Skip to content

Post milestone3m#744

Draft
SharonStrats wants to merge 45 commits intomainfrom
post-milestone3m
Draft

Post milestone3m#744
SharonStrats wants to merge 45 commits intomainfrom
post-milestone3m

Conversation

@SharonStrats
Copy link
Copy Markdown
Contributor

No description provided.

@SharonStrats SharonStrats self-assigned this Apr 29, 2026
@SharonStrats SharonStrats moved this to In progress in SolidOS NLNet UI Apr 29, 2026
Comment thread README.md
* Claude Sonnet 4.6: Make the dop down as a list under the input field and entlarge the pop up, make it higher, adjustable to fit the drop down. And make the drop down arrow area larger

* GPT-5.4: can you wire up the keyboard interactions and aria attributes for Select. No newline at end of file
* GPT-5.4 Model: can you wire up the keyboard interactions and aria attributes for Select.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* GPT-5.4 Model: can you wire up the keyboard interactions and aria attributes for Select.
* GPT-5.4 Model: can you wire up the keyboard interactions and aria attributes for Select?

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR expands the v2 web component surface (new Button/Select/Combobox/PhotoCapture, plus v2 header/footer/auth components) and introduces a manifest-driven build/export pipeline to keep webpack entries and package.json subpath exports in sync, alongside a few widget/login behavior fixes and new unit tests.

Changes:

  • Introduces scripts/component-manifest.mjs + sync/watch scripts, updates webpack config to consume manifest entries, and updates package.json exports/scripts accordingly.
  • Adds new Lit-based components (actions/button, forms/select, forms/combobox, media/photoCapture) with READMEs and unit tests; reorganizes v2 layout/auth component entrypoints.
  • Fixes/adjusts runtime behavior: prevent concurrent checkbox updates, normalize dropped URIs and stop propagation on DnD, broaden drop targets for attachments, and harden getUserRoles() for missing session/current user.

Reviewed changes

Copilot reviewed 39 out of 52 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
webpack.config.mjs Switches component entry configuration to spread componentEntries from the manifest.
test/unit/widgets/forms/index.test.ts Adds a regression test for checkbox async update double-click suppression.
test/unit/login/login.test.ts Adds coverage for getUserRoles() returning [] when currentUser is missing and avoiding preference loads.
src/widgets/forms.js Prevents concurrent checkbox updates by disabling the button while an async update is in flight.
src/widgets/dragAndDrop.js Normalizes dropped URI lists and improves drag event handling by stopping propagation.
src/widgets/buttons.ts Extends drop targets to include the paperclip <img> for better DnD usability.
src/v2/components/media/photoCapture/README.md Documents the new photo capture component API and usage.
src/v2/components/media/photoCapture/PhotoCapture.ts Implements solid-ui-photo-capture with inline/dialog presentation, events, and form participation.
src/v2/components/media/photoCapture/PhotoCapture.test.ts Adds unit tests for preview startup, constraints parsing, events, and form-like submission.
src/v2/components/media/photoCapture/index.ts Exports and registers the solid-ui-photo-capture custom element.
src/v2/components/layout/header/README.md Updates README paths after moving header under layout/header and auth button docs relocation.
src/v2/components/layout/header/index.ts Adds a v2 header entrypoint that exports/registers solid-ui-header.
src/v2/components/layout/header/Header.ts Updates import paths for icons/auth components; improves account menu label layout (ellipsis).
src/v2/components/layout/header/header.test.ts Adds unit tests for the moved header component and its key behaviors.
src/v2/components/layout/footer/README.md Updates README test-path references for the moved footer component.
src/v2/components/layout/footer/index.ts Adds a v2 footer entrypoint that exports/registers solid-ui-footer.
src/v2/components/layout/footer/Footer.ts Fixes import path to shared header/footer helper after directory move.
src/v2/components/layout/footer/Footer.test.ts Adds unit tests for the moved footer component behaviors/layout styling.
src/v2/components/forms/shared/optionTypes.ts Introduces shared option typing (SelectOption) for select/combobox listboxes.
src/v2/components/forms/shared/listboxTemplate.ts Adds shared listbox rendering template with ARIA roles and disabled handling.
src/v2/components/forms/shared/listboxStyles.ts Adds shared listbox CSS tokens and styles used by select/combobox.
src/v2/components/forms/shared/keyboard.ts Adds shared keyboard navigation helpers (skip disabled, Home/End, etc.).
src/v2/components/forms/shared/downArrow.ts Adds shared down-arrow SVG template used by form controls.
src/v2/components/forms/select/Select.ts Implements solid-ui-select with popup listbox and keyboard support.
src/v2/components/forms/select/Select.test.ts Adds unit tests for select rendering, mouse selection, keyboard selection, and outside-click close.
src/v2/components/forms/select/README.md Documents select usage, theming hooks, ARIA behavior, and build output.
src/v2/components/forms/select/index.ts Exports and registers the solid-ui-select custom element.
src/v2/components/forms/combobox/README.md Documents combobox usage including async suggestionProvider and portal popup behavior.
src/v2/components/forms/combobox/index.ts Exports and registers the solid-ui-combobox custom element.
src/v2/components/forms/combobox/comboboxTypes.ts Defines ComboboxSuggestion type extending shared select options.
src/v2/components/forms/combobox/Combobox.ts Implements solid-ui-combobox with suggestion loading, keyboard nav, and portal-based popup positioning.
src/v2/components/forms/combobox/Combobox.test.ts Adds unit tests for suggestion loading, popup rendering via portal, selection, and close-on-outside-click.
src/v2/components/auth/signupButton/SignupButton.ts Implements solid-ui-signup-button component that opens a signup URL in a new tab.
src/v2/components/auth/signupButton/SignupButton.test.ts Adds unit tests for signup button behavior, icon rendering, and mobile layout styling.
src/v2/components/auth/signupButton/README.md Documents signup button API and usage.
src/v2/components/auth/signupButton/index.ts Exports and registers the solid-ui-signup-button custom element.
src/v2/components/auth/loginButton/README.md Documents login button API/behavior and how it integrates with header.
src/v2/components/auth/loginButton/LoginButton.ts Implements solid-ui-login-button with dialog-based issuer selection and OIDC login initiation.
src/v2/components/auth/loginButton/LoginButton.test.ts Adds unit tests for basic rendering and popup label/input association.
src/v2/components/auth/loginButton/index.ts Exports and registers the solid-ui-login-button custom element.
src/v2/components/auth/loginButton/downArrow.ts Adds an arrow icon template used by login button dropdown toggle.
src/v2/components/actions/button/README.md Documents new base solid-ui-button component API, theming, and sizing.
src/v2/components/actions/button/index.ts Exports/registers solid-ui-button and adds a global tag-name mapping.
src/v2/components/actions/button/Button.ts Implements base button component with variants/sizes, icon slot/fallback, and callback support.
src/v2/components/actions/button/Button.test.ts Adds unit tests for variants, selected state, callback behavior, and icon rendering precedence.
src/login/login.ts Hardens getUserRoles() (early returns + improved error message) and loosens say() background parameter typing.
scripts/watch-component-exports.mjs Watches the component manifest and triggers export sync automatically for dev workflows.
scripts/sync-component-exports.mjs Updates package.json.exports component subpaths from the manifest (preserving non-component exports).
scripts/component-manifest.mjs Defines v2 component source paths, webpack entry mapping, and package subpath export mapping.
scripts/build-component-dts.mjs Updates DTS wrapper generation to follow manifest source paths (with a directory-scan fallback).
README.md Updates build pipeline documentation and appends prompt history entries.
package.json Adds/expands component subpath exports and wires sync scripts into build/watch/version workflows.
Comments suppressed due to low confidence (1)

README.md:433

  • This prompt history entry includes a developer-specific absolute filesystem path (/Users/...). That’s not portable and shouldn’t live in repo documentation; replace it with a repo-relative path (e.g. src/media/media-capture.ts) or remove the local path.

* GPT-5.4 Model: Take the code from /Users/sharon/2025Dev/solid-ui/src/media/media-capture.ts and make it a web component. Make it work in forms as well as not. Make it configurable and follow LoginButton.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

theme: { type: String, reflect: true },
layout: { type: String, reflect: true },
value: { type: String, reflect: true },
inputValue: { type: String },
static styles = [
listboxStyles,
css`
:host { // default theme
Comment on lines +42 to +50
static properties = {
label: { type: String, reflect: true },
theme: { type: String, reflect: true },
options: { type: Array, reflect: true },
layout: { type: String, reflect: true },
value: { type: String, reflect: true },
_popupOpen: { state: true },
_activeIndex: { state: true }
}
listboxStyles,
css`
:host {
// default theme
Comment on lines +3 to +6
export const listboxStyles = css`
:host { // default theme
--input-background: var(--color-background, #F8F9FB);
--item-text: var(--color-text, #1A1A1A);
Comment on lines +96 to 98
uris = [trimmedText]
debug.log('Waring: Poor man\'s drop: using text for URI') // chrome disables text/uri-list??
}
Comment thread src/widgets/forms.js
Comment on lines 1908 to 1914
const boxHandler = function (_e) {
if (isUpdating) {
return // Ignore clicks while update is in progress
}
isUpdating = true
input.disabled = true // Disable button to provide user feedback
colorCarrier.style.color = '#bbb' // grey -- not saved yet
Comment thread README.md
* Raptor mini: add a readme to the Footer component with example.

* Claude Sonnet 4.6: Make the dop down as a list under the input field and entlarge the pop up, make it higher, adjustable to fit the drop down. And make the drop down arrow area larger No newline at end of file
* Claude Sonnet 4.6: Make the dop down as a list under the input field and entlarge the pop up, make it higher, adjustable to fit the drop down. And make the drop down arrow area larger
Comment on lines +319 to +326
this.presentation = 'inline'
this.theme = 'light'
this.facingMode = 'environment'
this.constraints = ''
this.captureFormat = DEFAULT_CAPTURE_FORMAT
this.captureQuality = undefined
this.open = true
this.disabled = false
Comment on lines +19 to +25
```html
<solid-ui-photo-capture
heading="Profile photo"
confirm-label="Use profile photo"
show-trigger
presentation="dialog"
></solid-ui-photo-capture>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants