@threadlabs/looma 0.23.19 → 0.23.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/shared/radio-group.js +27 -0
- package/components/ui-combobox/ui-combobox.html +7 -8
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +2 -2
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +3 -3
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +2 -2
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +4 -4
- package/components/ui-listbox/ui-listbox.html +1 -1
- package/components/ui-radio/ui-radio.js +8 -4
- package/components/ui-radio-group/ui-radio-group.js +12 -5
- package/components/ui-toast-region/ui-toast-region.html +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/styles/ui-action-bar.css +1 -1
- package/styles/ui-affordance-scope.css +1 -1
- package/styles/ui-avatar-group.css +1 -1
- package/styles/ui-avatar.css +1 -1
- package/styles/ui-badge.css +1 -1
- package/styles/ui-breadcrumb-item.css +1 -1
- package/styles/ui-breadcrumbs.css +1 -1
- package/styles/ui-button.css +1 -1
- package/styles/ui-callout.css +1 -1
- package/styles/ui-card.css +1 -1
- package/styles/ui-checkbox.css +1 -1
- package/styles/ui-cluster.css +1 -1
- package/styles/ui-combobox.css +1 -1
- package/styles/ui-container.css +1 -1
- package/styles/ui-context-menu.css +1 -1
- package/styles/ui-cover.css +1 -1
- package/styles/ui-description-item.css +1 -1
- package/styles/ui-description-list.css +1 -1
- package/styles/ui-dialog.css +1 -1
- package/styles/ui-disclosure.css +1 -1
- package/styles/ui-editable.css +1 -1
- package/styles/ui-editor-insert-table-grid.css +1 -1
- package/styles/ui-editor-mention-menu-item.css +1 -1
- package/styles/ui-editor-mention-menu.css +1 -1
- package/styles/ui-editor-slash-menu-group.css +1 -1
- package/styles/ui-editor-slash-menu-item.css +1 -1
- package/styles/ui-editor-slash-menu.css +1 -1
- package/styles/ui-editor-table-context-menu.css +1 -1
- package/styles/ui-editor-table-overlay.css +1 -1
- package/styles/ui-editor-table-toolbar.css +1 -1
- package/styles/ui-editor-toolbar.css +1 -1
- package/styles/ui-floating-action-button.css +1 -1
- package/styles/ui-form-field.css +1 -1
- package/styles/ui-grid.css +1 -1
- package/styles/ui-icon-button.css +1 -1
- package/styles/ui-icon.css +1 -1
- package/styles/ui-input-group.css +1 -1
- package/styles/ui-input.css +1 -1
- package/styles/ui-list-item.css +1 -1
- package/styles/ui-list.css +1 -1
- package/styles/ui-listbox.css +1 -1
- package/styles/ui-menu-group.css +1 -1
- package/styles/ui-menu-item.css +1 -1
- package/styles/ui-menu.css +1 -1
- package/styles/ui-meter.css +1 -1
- package/styles/ui-nav-item.css +1 -1
- package/styles/ui-page-header.css +1 -1
- package/styles/ui-popover.css +1 -1
- package/styles/ui-radio-group.css +1 -1
- package/styles/ui-radio.css +1 -1
- package/styles/ui-reel.css +1 -1
- package/styles/ui-scroll-area.css +1 -1
- package/styles/ui-search-result-row.css +1 -1
- package/styles/ui-search-shell.css +1 -1
- package/styles/ui-section.css +1 -1
- package/styles/ui-select.css +1 -1
- package/styles/ui-separator.css +1 -1
- package/styles/ui-sidebar.css +1 -1
- package/styles/ui-spinner.css +1 -1
- package/styles/ui-stack.css +1 -1
- package/styles/ui-status-message.css +1 -1
- package/styles/ui-switch.css +1 -1
- package/styles/ui-switcher.css +1 -1
- package/styles/ui-table.css +1 -1
- package/styles/ui-tabs.css +1 -1
- package/styles/ui-text.css +1 -1
- package/styles/ui-textarea.css +1 -1
- package/styles/ui-toast-region.css +1 -1
- package/styles/ui-toast.css +1 -1
- package/styles/ui-tooltip.css +1 -1
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +1 -1
- package/styles/ui-tree.css +1 -1
- package/vanilla/UiActionBar.d.ts +1 -1
- package/vanilla/UiActionBar.js +1 -1
- package/vanilla/UiAffordanceScope.d.ts +1 -1
- package/vanilla/UiAffordanceScope.js +1 -1
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +1 -1
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +1 -1
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiBreadcrumbItem.d.ts +1 -1
- package/vanilla/UiBreadcrumbItem.js +1 -1
- package/vanilla/UiBreadcrumbs.d.ts +1 -1
- package/vanilla/UiBreadcrumbs.js +1 -1
- package/vanilla/UiButton.d.ts +1 -1
- package/vanilla/UiButton.js +1 -1
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +1 -1
- package/vanilla/UiCard.d.ts +1 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -1
- package/vanilla/UiCheckbox.js +1 -1
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -1
- package/vanilla/UiCombobox.js +181 -167
- package/vanilla/UiContainer.d.ts +1 -1
- package/vanilla/UiContainer.js +1 -1
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +1 -1
- package/vanilla/UiCover.d.ts +1 -1
- package/vanilla/UiCover.js +1 -1
- package/vanilla/UiDescriptionItem.d.ts +1 -1
- package/vanilla/UiDescriptionItem.js +1 -1
- package/vanilla/UiDescriptionList.d.ts +1 -1
- package/vanilla/UiDescriptionList.js +1 -1
- package/vanilla/UiDialog.d.ts +1 -1
- package/vanilla/UiDialog.js +1 -1
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +1 -1
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +1 -1
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +1 -1
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +19 -13
- package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
- package/vanilla/UiEditorMentionMenuItem.js +1 -1
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +17 -13
- package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuGroup.js +1 -1
- package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuItem.js +1 -1
- package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
- package/vanilla/UiEditorTableContextMenu.js +26 -20
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +69 -65
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +72 -64
- package/vanilla/UiEditorToolbar.d.ts +1 -1
- package/vanilla/UiEditorToolbar.js +1 -1
- package/vanilla/UiFloatingActionButton.d.ts +1 -1
- package/vanilla/UiFloatingActionButton.js +1 -1
- package/vanilla/UiFormField.d.ts +1 -1
- package/vanilla/UiFormField.js +1 -1
- package/vanilla/UiGrid.d.ts +1 -1
- package/vanilla/UiGrid.js +1 -1
- package/vanilla/UiIcon.d.ts +1 -1
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.js +1 -1
- package/vanilla/UiInput.d.ts +1 -1
- package/vanilla/UiInput.js +1 -1
- package/vanilla/UiInputGroup.d.ts +1 -1
- package/vanilla/UiInputGroup.js +1 -1
- package/vanilla/UiList.d.ts +1 -1
- package/vanilla/UiList.js +1 -1
- package/vanilla/UiListItem.d.ts +1 -1
- package/vanilla/UiListItem.js +1 -1
- package/vanilla/UiListbox.d.ts +1 -1
- package/vanilla/UiListbox.js +33 -31
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiMenuGroup.d.ts +1 -1
- package/vanilla/UiMenuGroup.js +1 -1
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +1 -1
- package/vanilla/UiMeter.d.ts +1 -1
- package/vanilla/UiMeter.js +1 -1
- package/vanilla/UiNavItem.d.ts +1 -1
- package/vanilla/UiNavItem.js +1 -1
- package/vanilla/UiPageHeader.d.ts +1 -1
- package/vanilla/UiPageHeader.js +1 -1
- package/vanilla/UiPopover.d.ts +1 -1
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +1 -1
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +1 -1
- package/vanilla/UiReel.d.ts +1 -1
- package/vanilla/UiReel.js +1 -1
- package/vanilla/UiScrollArea.d.ts +1 -1
- package/vanilla/UiScrollArea.js +1 -1
- package/vanilla/UiSearchResultRow.d.ts +1 -1
- package/vanilla/UiSearchResultRow.js +1 -1
- package/vanilla/UiSearchShell.d.ts +1 -1
- package/vanilla/UiSearchShell.js +1 -1
- package/vanilla/UiSection.d.ts +1 -1
- package/vanilla/UiSection.js +1 -1
- package/vanilla/UiSelect.d.ts +1 -1
- package/vanilla/UiSelect.js +1 -1
- package/vanilla/UiSeparator.d.ts +1 -1
- package/vanilla/UiSeparator.js +1 -1
- package/vanilla/UiSidebar.d.ts +1 -1
- package/vanilla/UiSidebar.js +1 -1
- package/vanilla/UiSpinner.d.ts +1 -1
- package/vanilla/UiSpinner.js +1 -1
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +1 -1
- package/vanilla/UiStatusMessage.d.ts +1 -1
- package/vanilla/UiStatusMessage.js +1 -1
- package/vanilla/UiSwitch.d.ts +1 -1
- package/vanilla/UiSwitch.js +1 -1
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +1 -1
- package/vanilla/UiTable.d.ts +1 -1
- package/vanilla/UiTable.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +1 -1
- package/vanilla/UiText.d.ts +1 -1
- package/vanilla/UiText.js +1 -1
- package/vanilla/UiTextarea.d.ts +1 -1
- package/vanilla/UiTextarea.js +1 -1
- package/vanilla/UiToast.d.ts +1 -1
- package/vanilla/UiToast.js +1 -1
- package/vanilla/UiToastRegion.d.ts +1 -1
- package/vanilla/UiToastRegion.js +13 -11
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +1 -1
- package/vanilla/UiTopBar.d.ts +1 -1
- package/vanilla/UiTopBar.js +1 -1
- package/vanilla/UiTree.d.ts +1 -1
- package/vanilla/UiTree.js +1 -1
- package/vanilla/UiTreeItem.d.ts +1 -1
- package/vanilla/UiTreeItem.js +1 -1
- package/vue/UiActionBar.vue +1 -1
- package/vue/UiAffordanceScope.vue +1 -1
- package/vue/UiAvatar.vue +1 -1
- package/vue/UiAvatarGroup.vue +2 -2
- package/vue/UiBadge.vue +1 -1
- package/vue/UiBreadcrumbItem.vue +1 -1
- package/vue/UiBreadcrumbs.vue +1 -1
- package/vue/UiButton.vue +1 -1
- package/vue/UiCallout.vue +1 -1
- package/vue/UiCard.vue +1 -1
- package/vue/UiCheckbox.vue +1 -1
- package/vue/UiCluster.vue +1 -1
- package/vue/UiCombobox.vue +1 -1
- package/vue/UiContainer.vue +1 -1
- package/vue/UiContextMenu.vue +1 -1
- package/vue/UiCover.vue +1 -1
- package/vue/UiDescriptionItem.vue +1 -1
- package/vue/UiDescriptionList.vue +1 -1
- package/vue/UiDialog.vue +1 -1
- package/vue/UiDisclosure.vue +1 -1
- package/vue/UiEditable.vue +1 -1
- package/vue/UiEditorInsertTableGrid.vue +1 -1
- package/vue/UiEditorMentionMenu.vue +1 -1
- package/vue/UiEditorMentionMenuItem.vue +1 -1
- package/vue/UiEditorSlashMenu.vue +1 -1
- package/vue/UiEditorSlashMenuGroup.vue +1 -1
- package/vue/UiEditorSlashMenuItem.vue +1 -1
- package/vue/UiEditorTableContextMenu.vue +1 -1
- package/vue/UiEditorTableOverlay.vue +1 -1
- package/vue/UiEditorTableToolbar.vue +1 -1
- package/vue/UiEditorToolbar.vue +1 -1
- package/vue/UiFloatingActionButton.vue +1 -1
- package/vue/UiFormField.vue +1 -1
- package/vue/UiGrid.vue +1 -1
- package/vue/UiIcon.vue +1 -1
- package/vue/UiIconButton.vue +1 -1
- package/vue/UiInput.vue +1 -1
- package/vue/UiInputGroup.vue +1 -1
- package/vue/UiList.vue +1 -1
- package/vue/UiListItem.vue +1 -1
- package/vue/UiListbox.vue +1 -1
- package/vue/UiMenu.vue +1 -1
- package/vue/UiMenuGroup.vue +1 -1
- package/vue/UiMenuItem.vue +1 -1
- package/vue/UiMeter.vue +1 -1
- package/vue/UiNavItem.vue +1 -1
- package/vue/UiPageHeader.vue +1 -1
- package/vue/UiPopover.vue +1 -1
- package/vue/UiRadio.vue +1 -1
- package/vue/UiRadioGroup.vue +1 -1
- package/vue/UiReel.vue +1 -1
- package/vue/UiScrollArea.vue +1 -1
- package/vue/UiSearchResultRow.vue +1 -1
- package/vue/UiSearchShell.vue +1 -1
- package/vue/UiSection.vue +1 -1
- package/vue/UiSelect.vue +1 -1
- package/vue/UiSeparator.vue +1 -1
- package/vue/UiSidebar.vue +1 -1
- package/vue/UiSpinner.vue +1 -1
- package/vue/UiStack.vue +1 -1
- package/vue/UiStatusMessage.vue +1 -1
- package/vue/UiSwitch.vue +1 -1
- package/vue/UiSwitcher.vue +1 -1
- package/vue/UiTable.vue +1 -1
- package/vue/UiTabs.vue +1 -1
- package/vue/UiText.vue +1 -1
- package/vue/UiTextarea.vue +1 -1
- package/vue/UiToast.vue +1 -1
- package/vue/UiToastRegion.vue +1 -1
- package/vue/UiTooltip.vue +1 -1
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTree.vue +1 -1
- package/vue/UiTreeItem.vue +1 -1
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +2 -2
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiBreadcrumbItem.js +1 -1
- package/vue/chunks/UiBreadcrumbs.js +1 -1
- package/vue/chunks/UiButton.js +1 -1
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCard.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiCover.js +1 -1
- package/vue/chunks/UiDescriptionItem.js +1 -1
- package/vue/chunks/UiDescriptionList.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +1 -1
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
- package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableOverlay.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +1 -1
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +1 -1
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiInputGroup.js +1 -1
- package/vue/chunks/UiList.js +1 -1
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiListbox.js +1 -1
- package/vue/chunks/UiMenu.js +1 -1
- package/vue/chunks/UiMenuGroup.js +1 -1
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiMeter.js +1 -1
- package/vue/chunks/UiNavItem.js +1 -1
- package/vue/chunks/UiPageHeader.js +1 -1
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiRadio.js +1 -1
- package/vue/chunks/UiRadioGroup.js +1 -1
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiScrollArea.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSection.js +1 -1
- package/vue/chunks/UiSelect.js +1 -1
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiSpinner.js +1 -1
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiStatusMessage.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTable.js +1 -1
- package/vue/chunks/UiTabs.js +1 -1
- package/vue/chunks/UiText.js +1 -1
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToast.js +1 -1
- package/vue/chunks/UiToastRegion.js +1 -1
- package/vue/chunks/UiTooltip.js +1 -1
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +1302 -1302
- package/vue/host.ts +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const groups = new WeakMap();
|
|
2
|
+
const radios = new WeakMap();
|
|
3
|
+
|
|
4
|
+
// Native names own exclusivity and defaultChecked owns form reset. A group's model also has to
|
|
5
|
+
// update a child's reactive checked binding, which otherwise can overwrite the native property
|
|
6
|
+
// after controller startup. Coordinate through native elements, independently of the adapter.
|
|
7
|
+
export function checkRadio(input, checked) {
|
|
8
|
+
radios.get(input)?.(checked);
|
|
9
|
+
input.checked = checked;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function radioGroupOwns(input) {
|
|
13
|
+
return groups.has(input.closest('[role="radiogroup"]'));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** Register a group's selection callback until its controller disconnects. */
|
|
17
|
+
export function connectRadioGroup(element, apply) {
|
|
18
|
+
groups.set(element, apply);
|
|
19
|
+
return () => groups.delete(element);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Join a live group, or let its later startup find this control's checked binding. */
|
|
23
|
+
export function connectRadio(input, update) {
|
|
24
|
+
radios.set(input, update);
|
|
25
|
+
groups.get(input.closest('[role="radiogroup"]'))?.(input);
|
|
26
|
+
return () => radios.delete(input);
|
|
27
|
+
}
|
|
@@ -388,7 +388,7 @@
|
|
|
388
388
|
from:disabled="disabled or readonly or item.disabled"
|
|
389
389
|
from:aria-label="concat(item.label, ', press Delete or Backspace to remove')"
|
|
390
390
|
>
|
|
391
|
-
<slot from:name="concat('item-', item.id)"><ui-badge
|
|
391
|
+
<slot from:name="concat('item-', item.id)"><ui-badge>{$item.label}</ui-badge></slot>
|
|
392
392
|
</button>
|
|
393
393
|
</template>
|
|
394
394
|
<input
|
|
@@ -467,7 +467,7 @@
|
|
|
467
467
|
<div class="popup" $ref="popup" from:hidden="not expanded">
|
|
468
468
|
<div role="listbox" $ref="listbox" from:id="concat(uid, '-listbox')" from:aria-label="concat(label, ' suggestions')" from:aria-busy="loading">
|
|
469
469
|
<div $each="group of groups" $key="group.name" from:role="group.role" from:aria-label="group.label">
|
|
470
|
-
<div $if="group.name" class="group"
|
|
470
|
+
<div $if="group.name" class="group">{$group.name}</div>
|
|
471
471
|
<div
|
|
472
472
|
$each="row of group.rows"
|
|
473
473
|
$key="row.id"
|
|
@@ -486,15 +486,14 @@
|
|
|
486
486
|
<slot from:name="concat('option-', row.id)">
|
|
487
487
|
<span $if="row.detail" class="detail">
|
|
488
488
|
<span class="line">
|
|
489
|
-
<span class="primary" from:id="concat(uid, '-option-', row.index, '-label')"
|
|
489
|
+
<span class="primary" from:id="concat(uid, '-option-', row.index, '-label')">{$row.label}</span>
|
|
490
490
|
<ui-badge $if="row.tag" from:tone="row.tag.tone" style:--ui-badge-color="row.tag.color"><span
|
|
491
491
|
from:id="concat(uid, '-option-', row.index, '-tag')"
|
|
492
|
-
|
|
493
|
-
></span></ui-badge>
|
|
492
|
+
>{$row.tag.label}</span></ui-badge>
|
|
494
493
|
</span>
|
|
495
|
-
<span $if="row.description" class="description" from:id="concat(uid, '-option-', row.index, '-description')"
|
|
494
|
+
<span $if="row.description" class="description" from:id="concat(uid, '-option-', row.index, '-description')">{$row.description}</span>
|
|
496
495
|
</span>
|
|
497
|
-
<span $if="not row.detail" class="primary"
|
|
496
|
+
<span $if="not row.detail" class="primary">{$row.label}</span>
|
|
498
497
|
</slot>
|
|
499
498
|
</div>
|
|
500
499
|
</div>
|
|
@@ -517,7 +516,7 @@
|
|
|
517
516
|
<slot name="footer"></slot>
|
|
518
517
|
</div>
|
|
519
518
|
<div class="message" from:id="concat(uid, '-validation')" from:hidden="not validation.issues.length">
|
|
520
|
-
<div $each="issue of validation.issues"
|
|
519
|
+
<div $each="issue of validation.issues">{$issue.message}</div>
|
|
521
520
|
</div>
|
|
522
521
|
<div class="sr-only" role="status" aria-live="polite" aria-atomic="true">{$statusText}</div>
|
|
523
522
|
<div class="authored-options" $ref="options" hidden aria-hidden="true"><slot></slot></div>
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
from:data-index="index"
|
|
37
37
|
from:data-value="row.id"
|
|
38
38
|
>
|
|
39
|
-
<span class="avatar" aria-hidden="true"
|
|
40
|
-
<span class="body"><span class="label"
|
|
39
|
+
<span class="avatar" aria-hidden="true">{$row.initials}</span>
|
|
40
|
+
<span class="body"><span class="label">{$row.label}</span><span $if="row.detail" class="detail">{$row.detail}</span></span>
|
|
41
41
|
</li>
|
|
42
42
|
<slot></slot>
|
|
43
43
|
</ul>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
from:data-value="item.value"
|
|
36
36
|
>
|
|
37
37
|
<span class="icon" aria-hidden="true"><ui-icon from:name="item.icon"></ui-icon></span>
|
|
38
|
-
<span class="body"><span class="title"
|
|
38
|
+
<span class="body"><span class="title">{$item.title}</span><span class="description">{$item.description}</span></span>
|
|
39
39
|
</li>
|
|
40
40
|
<slot></slot>
|
|
41
41
|
</ul>
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
from:data-action="swatch.action"
|
|
57
57
|
>
|
|
58
58
|
<span class="swatch" class:default="not swatch.color" style:--_swatch="swatch.color"></span>
|
|
59
|
-
<span class="swatch-label"
|
|
59
|
+
<span class="swatch-label">{$swatch.label}</span>
|
|
60
60
|
</button>
|
|
61
61
|
</div>
|
|
62
62
|
</div>
|
|
63
63
|
<template $each="section of sections" $key="section.heading">
|
|
64
64
|
<div class="sep"></div>
|
|
65
65
|
<div class="section" role="none">
|
|
66
|
-
<div class="heading" role="presentation"
|
|
66
|
+
<div class="heading" role="presentation">{$section.heading}</div>
|
|
67
67
|
<button
|
|
68
68
|
$each="item of section.items"
|
|
69
69
|
$key="item.action"
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
from:data-action="item.action"
|
|
75
75
|
>
|
|
76
76
|
<ui-icon from:name="item.icon"></ui-icon>
|
|
77
|
-
<span
|
|
77
|
+
<span>{$item.label}</span>
|
|
78
78
|
</button>
|
|
79
79
|
</div>
|
|
80
80
|
</template>
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
from:aria-label="control.label"
|
|
128
128
|
>
|
|
129
129
|
<ui-icon name="plus"></ui-icon>
|
|
130
|
-
<span class="tooltip" role="tooltip"
|
|
130
|
+
<span class="tooltip" role="tooltip">{$control.label}</span>
|
|
131
131
|
</button>
|
|
132
132
|
</div>
|
|
133
133
|
</div>
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
from:aria-label="control.label"
|
|
152
152
|
>
|
|
153
153
|
<ui-icon name="plus"></ui-icon>
|
|
154
|
-
<span class="tooltip" role="tooltip"
|
|
154
|
+
<span class="tooltip" role="tooltip">{$control.label}</span>
|
|
155
155
|
</button>
|
|
156
156
|
</div>
|
|
157
157
|
</div>
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<div $if="structure" class="group" role="group" aria-label="Table structure">
|
|
72
72
|
<button $each="item of structure" $key="item.action" type="button" from:data-action="item.action">
|
|
73
73
|
<ui-icon from:name="item.icon"></ui-icon>
|
|
74
|
-
<span
|
|
74
|
+
<span>{$item.label}</span>
|
|
75
75
|
</button>
|
|
76
76
|
</div>
|
|
77
77
|
<div $if="(alignments or structure) and hasOverflow" class="sep" aria-hidden="true"></div>
|
|
@@ -96,12 +96,12 @@
|
|
|
96
96
|
from:data-action="swatch.action"
|
|
97
97
|
>
|
|
98
98
|
<span class="swatch" class:default="not swatch.color" style:--_swatch="swatch.color"></span>
|
|
99
|
-
<span
|
|
99
|
+
<span>{$swatch.label}</span>
|
|
100
100
|
</button>
|
|
101
101
|
</div>
|
|
102
102
|
</div>
|
|
103
103
|
<div $each="section of sections" $key="section.heading" class="menu-section divided" role="none">
|
|
104
|
-
<div class="menu-heading" role="presentation"
|
|
104
|
+
<div class="menu-heading" role="presentation">{$section.heading}</div>
|
|
105
105
|
<button
|
|
106
106
|
$each="item of section.items"
|
|
107
107
|
$key="item.action"
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
from:data-action="item.action"
|
|
113
113
|
>
|
|
114
114
|
<ui-icon from:name="item.icon"></ui-icon>
|
|
115
|
-
<span
|
|
115
|
+
<span>{$item.label}</span>
|
|
116
116
|
</button>
|
|
117
117
|
</div>
|
|
118
118
|
</div>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { afterFormReset } from "../shared/form-reset.js";
|
|
2
2
|
import { describeInput } from "../shared/describe.js";
|
|
3
|
+
import { connectRadio, radioGroupOwns } from "../shared/radio-group.js";
|
|
3
4
|
import { trackTrigger } from "../shared/trigger.js";
|
|
4
5
|
|
|
5
6
|
// `checked` sets the control initially and whenever it changes; the user's changes update the state.
|
|
@@ -9,13 +10,15 @@ export default function controller(host) {
|
|
|
9
10
|
const input = host.refs.input;
|
|
10
11
|
describeInput(input, host.refs.description);
|
|
11
12
|
const [trigger, stopTracking] = trackTrigger(host);
|
|
13
|
+
const stopRadio = connectRadio(input, (checked) => { host.state.internalChecked = checked; });
|
|
12
14
|
let external = host.props.checked.value;
|
|
13
|
-
host.state.internalChecked = Boolean(external);
|
|
15
|
+
if (!radioGroupOwns(input)) host.state.internalChecked = Boolean(external);
|
|
14
16
|
const stop = host.effect(() => {
|
|
15
|
-
|
|
17
|
+
const grouped = radioGroupOwns(input);
|
|
18
|
+
if (!grouped) input.defaultChecked = Boolean(host.props.checked.value);
|
|
16
19
|
if (host.props.checked.value === external) return;
|
|
17
20
|
external = host.props.checked.value;
|
|
18
|
-
host.state.internalChecked = Boolean(external);
|
|
21
|
+
if (!grouped) host.state.internalChecked = Boolean(external);
|
|
19
22
|
});
|
|
20
23
|
const onChange = () => {
|
|
21
24
|
host.state.internalChecked = input.checked;
|
|
@@ -25,12 +28,13 @@ export default function controller(host) {
|
|
|
25
28
|
input.addEventListener("change", onChange);
|
|
26
29
|
const stopReset = afterFormReset(input, () => {
|
|
27
30
|
// Inside a ui-radio-group the group's value decides, whichever reset runs first.
|
|
28
|
-
if (input
|
|
31
|
+
if (radioGroupOwns(input)) return;
|
|
29
32
|
host.state.internalChecked = Boolean(external);
|
|
30
33
|
input.checked = Boolean(external);
|
|
31
34
|
});
|
|
32
35
|
return () => {
|
|
33
36
|
stop();
|
|
37
|
+
stopRadio();
|
|
34
38
|
stopReset();
|
|
35
39
|
stopTracking();
|
|
36
40
|
input.removeEventListener("change", onChange);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { afterFormReset } from "../shared/form-reset.js";
|
|
2
|
+
import { checkRadio, connectRadioGroup } from "../shared/radio-group.js";
|
|
2
3
|
import { trackTrigger } from "../shared/trigger.js";
|
|
3
4
|
|
|
4
5
|
let groups = 0;
|
|
@@ -15,6 +16,14 @@ export default function controller(host) {
|
|
|
15
16
|
// A radio's own required survives until the group's required changes, since either one makes the
|
|
16
17
|
// whole name group required.
|
|
17
18
|
let required = false;
|
|
19
|
+
const apply = (input, value = host.state.internalValue) => {
|
|
20
|
+
if (required) input.required = true;
|
|
21
|
+
input.name = name;
|
|
22
|
+
checkRadio(input, input.value === value);
|
|
23
|
+
// The value prop is the choice a native form reset returns to.
|
|
24
|
+
input.defaultChecked = input.value === String(external ?? "");
|
|
25
|
+
};
|
|
26
|
+
const stopGroup = connectRadioGroup(element, apply);
|
|
18
27
|
host.state.internalValue = String(external ?? "");
|
|
19
28
|
const stop = host.effect(() => {
|
|
20
29
|
if (host.props.value.value !== external) {
|
|
@@ -26,10 +35,7 @@ export default function controller(host) {
|
|
|
26
35
|
required = Boolean(host.props.required.value);
|
|
27
36
|
for (const input of inputs()) {
|
|
28
37
|
if (applyRequired) input.required = required;
|
|
29
|
-
input
|
|
30
|
-
input.checked = input.value === value;
|
|
31
|
-
// The value prop is the choice a form reset returns to.
|
|
32
|
-
input.defaultChecked = input.value === String(external ?? "");
|
|
38
|
+
apply(input, value);
|
|
33
39
|
}
|
|
34
40
|
});
|
|
35
41
|
const onChange = (event) => {
|
|
@@ -44,10 +50,11 @@ export default function controller(host) {
|
|
|
44
50
|
element.addEventListener("change", onChange);
|
|
45
51
|
const stopReset = afterFormReset(element, () => {
|
|
46
52
|
host.state.internalValue = String(external ?? "");
|
|
47
|
-
for (const input of inputs()) input
|
|
53
|
+
for (const input of inputs()) checkRadio(input, input.value === host.state.internalValue);
|
|
48
54
|
});
|
|
49
55
|
return () => {
|
|
50
56
|
stop();
|
|
57
|
+
stopGroup();
|
|
51
58
|
stopReset();
|
|
52
59
|
stopTracking();
|
|
53
60
|
element.removeEventListener("change", onChange);
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
from:role="toast.role"
|
|
38
38
|
from:data-tone="toast.tone"
|
|
39
39
|
>
|
|
40
|
-
<span class="message"
|
|
40
|
+
<span class="message">{$toast.message}</span>
|
|
41
41
|
<span class="dismiss" from:data-toast="toast.id">
|
|
42
42
|
<ui-icon-button size="sm" variant="ghost" from:round="true" from:label="concat('Dismiss ', toast.message)">
|
|
43
43
|
<ui-icon name="x"></ui-icon>
|