@threadlabs/looma 0.24.1 → 0.25.1
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/README.md +1 -1
- package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
- package/components/ui-affordance-scope/ui-affordance-scope.js +6 -1
- package/components/ui-avatar/ui-avatar.html +4 -4
- package/components/ui-avatar/ui-avatar.js +6 -1
- package/components/ui-avatar-group/ui-avatar-group.html +2 -2
- package/components/ui-avatar-group/ui-avatar-group.js +6 -1
- package/components/ui-badge/ui-badge.html +30 -30
- package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +1 -1
- package/components/ui-button/ui-button.html +33 -33
- package/components/ui-button/ui-button.js +6 -1
- package/components/ui-callout/ui-callout.html +4 -4
- package/components/ui-card/ui-card.html +9 -9
- package/components/ui-checkbox/ui-checkbox.html +11 -11
- package/components/ui-checkbox/ui-checkbox.js +6 -1
- package/components/ui-cluster/ui-cluster.html +12 -12
- package/components/ui-combobox/ui-combobox.html +15 -17
- package/components/ui-combobox/ui-combobox.js +13 -15
- package/components/ui-container/ui-container.html +5 -5
- package/components/ui-context-menu/ui-context-menu.js +6 -1
- package/components/ui-cover/ui-cover.html +1 -1
- package/components/ui-description-list/ui-description-list.html +10 -10
- package/components/ui-dialog/ui-dialog.html +4 -4
- package/components/ui-dialog/ui-dialog.js +6 -1
- package/components/ui-disclosure/ui-disclosure.html +13 -13
- package/components/ui-disclosure/ui-disclosure.js +6 -1
- package/components/ui-editable/ui-editable.html +1 -1
- package/components/ui-editable/ui-editable.js +6 -1
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +6 -1
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +6 -1
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +6 -1
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +6 -1
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +6 -1
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +6 -1
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +4 -4
- package/components/ui-editor-toolbar/ui-editor-toolbar.js +6 -1
- package/components/ui-floating-action-button/ui-floating-action-button.html +1 -1
- package/components/ui-form-field/ui-form-field.html +1 -1
- package/components/ui-form-field/ui-form-field.js +6 -1
- package/components/ui-grid/ui-grid.html +7 -7
- package/components/ui-icon-button/ui-icon-button.html +26 -26
- package/components/ui-icon-button/ui-icon-button.js +6 -1
- package/components/ui-image/ui-image.html +11 -11
- package/components/ui-image/ui-image.js +6 -1
- package/components/ui-input/ui-input.html +9 -7
- package/components/ui-input/ui-input.js +6 -1
- package/components/ui-input-group/ui-input-group.html +37 -8
- package/components/ui-input-group/ui-input-group.js +8 -3
- package/components/ui-list/ui-list.html +6 -6
- package/components/ui-list-item/ui-list-item.html +8 -8
- package/components/ui-listbox/ui-listbox.js +6 -1
- package/components/ui-menu/ui-menu.html +3 -3
- package/components/ui-menu/ui-menu.js +6 -1
- package/components/ui-menu-item/ui-menu-item.html +3 -3
- package/components/ui-menu-item/ui-menu-item.js +6 -1
- package/components/ui-meter/ui-meter.html +7 -7
- package/components/ui-nav-item/ui-nav-item.html +6 -6
- package/components/ui-page-header/ui-page-header.html +2 -2
- package/components/ui-popover/ui-popover.html +3 -3
- package/components/ui-popover/ui-popover.js +6 -1
- package/components/ui-radio/ui-radio.html +10 -10
- package/components/ui-radio/ui-radio.js +6 -1
- package/components/ui-radio-group/ui-radio-group.html +2 -2
- package/components/ui-radio-group/ui-radio-group.js +6 -1
- package/components/ui-reel/ui-reel.html +11 -11
- package/components/ui-scroll-area/ui-scroll-area.html +4 -4
- package/components/ui-scroll-area/ui-scroll-area.js +6 -1
- package/components/ui-search-result-row/ui-search-result-row.html +5 -5
- package/components/ui-search-shell/ui-search-shell.js +6 -1
- package/components/ui-section/ui-section.html +4 -4
- package/components/ui-select/ui-select.html +3 -3
- package/components/ui-select/ui-select.js +6 -1
- package/components/ui-separator/ui-separator.html +4 -4
- package/components/ui-sidebar/ui-sidebar.html +6 -6
- package/components/ui-sidebar/ui-sidebar.js +6 -1
- package/components/ui-spinner/ui-spinner.html +1 -1
- package/components/ui-stack/ui-stack.html +12 -12
- package/components/ui-status-message/ui-status-message.html +4 -4
- package/components/ui-switch/ui-switch.html +11 -11
- package/components/ui-switch/ui-switch.js +6 -1
- package/components/ui-switcher/ui-switcher.html +11 -11
- package/components/ui-switcher/ui-switcher.js +6 -1
- package/components/ui-table/ui-table.html +2 -2
- package/components/ui-table/ui-table.js +6 -1
- package/components/ui-tabs/ui-tabs.html +8 -8
- package/components/ui-tabs/ui-tabs.js +6 -1
- package/components/ui-text/ui-text.html +20 -20
- package/components/ui-textarea/ui-textarea.html +46 -18
- package/components/ui-textarea/ui-textarea.js +6 -1
- package/components/ui-toast/ui-toast.html +4 -4
- package/components/ui-toast/ui-toast.js +6 -1
- package/components/ui-toast-region/ui-toast-region.html +16 -11
- package/components/ui-toast-region/ui-toast-region.js +12 -9
- package/components/ui-tooltip/ui-tooltip.html +1 -1
- package/components/ui-tooltip/ui-tooltip.js +6 -1
- package/components/ui-tree/ui-tree.html +2 -2
- package/components/ui-tree/ui-tree.js +6 -1
- package/components/ui-tree-item/ui-tree-item.html +4 -4
- package/components/ui-tree-item/ui-tree-item.js +6 -1
- package/dist/index.js +10 -4
- package/package.json +3 -3
- 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 +2 -2
- 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-image.css +1 -1
- package/styles/ui-input-group.css +36 -6
- 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 +2 -2
- 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 +43 -15
- 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 -3
- package/vanilla/UiCombobox.js +2 -2
- 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 +1 -1
- package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
- package/vanilla/UiEditorMentionMenuItem.js +1 -1
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +1 -1
- 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 +1 -1
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +1 -1
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +1 -1
- 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/UiImage.d.ts +1 -1
- package/vanilla/UiImage.js +1 -1
- package/vanilla/UiInput.d.ts +4 -4
- package/vanilla/UiInput.js +2 -2
- package/vanilla/UiInputGroup.d.ts +2 -1
- package/vanilla/UiInputGroup.js +2 -2
- 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 +1 -1
- 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 +2 -2
- package/vanilla/UiToastRegion.js +2 -2
- 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 +8 -1
- package/vue/UiAvatar.d.ts +6 -9
- package/vue/UiAvatar.vue +71 -20
- package/vue/UiAvatarGroup.d.ts +7 -10
- package/vue/UiAvatarGroup.vue +45 -12
- 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.d.ts +8 -11
- package/vue/UiCheckbox.vue +34 -11
- package/vue/UiCluster.vue +1 -1
- package/vue/UiCombobox.d.ts +60 -66
- package/vue/UiCombobox.vue +476 -124
- package/vue/UiContainer.vue +1 -1
- package/vue/UiContextMenu.vue +18 -9
- package/vue/UiCover.vue +1 -1
- package/vue/UiDescriptionItem.vue +1 -1
- package/vue/UiDescriptionList.vue +1 -1
- package/vue/UiDialog.d.ts +8 -11
- package/vue/UiDialog.vue +39 -12
- package/vue/UiDisclosure.d.ts +12 -15
- package/vue/UiDisclosure.vue +70 -24
- package/vue/UiEditable.d.ts +3 -3
- package/vue/UiEditable.vue +60 -21
- package/vue/UiEditorInsertTableGrid.d.ts +2 -2
- package/vue/UiEditorInsertTableGrid.vue +75 -14
- package/vue/UiEditorMentionMenu.d.ts +10 -13
- package/vue/UiEditorMentionMenu.vue +50 -7
- package/vue/UiEditorMentionMenuItem.vue +1 -1
- package/vue/UiEditorSlashMenu.d.ts +12 -15
- package/vue/UiEditorSlashMenu.vue +48 -7
- package/vue/UiEditorSlashMenuGroup.vue +1 -1
- package/vue/UiEditorSlashMenuItem.vue +1 -1
- package/vue/UiEditorTableContextMenu.vue +73 -4
- package/vue/UiEditorTableOverlay.d.ts +2 -2
- package/vue/UiEditorTableOverlay.vue +202 -38
- package/vue/UiEditorTableToolbar.d.ts +2 -2
- package/vue/UiEditorTableToolbar.vue +128 -7
- package/vue/UiEditorToolbar.vue +3 -3
- 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/UiImage.vue +7 -6
- package/vue/UiInput.d.ts +5 -5
- package/vue/UiInput.vue +15 -3
- package/vue/UiInputGroup.d.ts +9 -0
- package/vue/UiInputGroup.vue +57 -8
- package/vue/UiList.vue +1 -1
- package/vue/UiListItem.vue +1 -1
- package/vue/UiListbox.d.ts +6 -9
- package/vue/UiListbox.vue +70 -19
- package/vue/UiMenu.vue +20 -10
- package/vue/UiMenuGroup.vue +1 -1
- package/vue/UiMenuItem.d.ts +13 -16
- package/vue/UiMenuItem.vue +30 -7
- package/vue/UiMeter.vue +1 -1
- package/vue/UiNavItem.vue +1 -1
- package/vue/UiPageHeader.vue +1 -1
- package/vue/UiPopover.vue +12 -4
- package/vue/UiRadio.d.ts +8 -11
- package/vue/UiRadio.vue +34 -11
- package/vue/UiRadioGroup.vue +16 -7
- package/vue/UiReel.vue +1 -1
- package/vue/UiScrollArea.vue +3 -3
- package/vue/UiSearchResultRow.vue +1 -1
- package/vue/UiSearchShell.vue +14 -6
- package/vue/UiSection.vue +1 -1
- package/vue/UiSelect.vue +3 -2
- package/vue/UiSeparator.vue +1 -1
- package/vue/UiSidebar.d.ts +7 -10
- package/vue/UiSidebar.vue +44 -12
- package/vue/UiSpinner.vue +1 -1
- package/vue/UiStack.vue +1 -1
- package/vue/UiStatusMessage.vue +1 -1
- package/vue/UiSwitch.d.ts +8 -11
- package/vue/UiSwitch.vue +34 -11
- package/vue/UiSwitcher.vue +8 -1
- package/vue/UiTable.vue +1 -1
- package/vue/UiTabs.vue +30 -8
- package/vue/UiText.vue +1 -1
- package/vue/UiTextarea.vue +78 -17
- package/vue/UiToast.vue +7 -6
- package/vue/UiToastRegion.d.ts +15 -3
- package/vue/UiToastRegion.vue +90 -45
- package/vue/UiTooltip.d.ts +9 -12
- package/vue/UiTooltip.vue +30 -7
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTree.vue +17 -13
- package/vue/UiTreeItem.d.ts +15 -18
- package/vue/UiTreeItem.vue +79 -30
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +6 -2
- package/vue/chunks/UiAvatar.js +37 -10
- package/vue/chunks/UiAvatarGroup.js +26 -7
- package/vue/chunks/UiBadge.js +2 -2
- package/vue/chunks/UiBreadcrumbItem.js +2 -2
- package/vue/chunks/UiBreadcrumbs.js +2 -2
- package/vue/chunks/UiButton.js +2 -2
- package/vue/chunks/UiCallout.js +2 -2
- package/vue/chunks/UiCard.js +2 -2
- package/vue/chunks/UiCheckbox.js +25 -12
- package/vue/chunks/UiCluster.js +2 -2
- package/vue/chunks/UiCombobox.js +628 -117
- package/vue/chunks/UiContainer.js +2 -2
- package/vue/chunks/UiContextMenu.js +14 -10
- package/vue/chunks/UiCover.js +2 -2
- package/vue/chunks/UiDescriptionItem.js +2 -2
- package/vue/chunks/UiDescriptionList.js +2 -2
- package/vue/chunks/UiDialog.js +29 -11
- package/vue/chunks/UiDisclosure.js +44 -14
- package/vue/chunks/UiEditable.js +33 -9
- package/vue/chunks/UiEditorInsertTableGrid.js +98 -14
- package/vue/chunks/UiEditorMentionMenu.js +76 -9
- package/vue/chunks/UiEditorMentionMenuItem.js +2 -2
- package/vue/chunks/UiEditorSlashMenu.js +70 -11
- package/vue/chunks/UiEditorSlashMenuGroup.js +2 -2
- package/vue/chunks/UiEditorSlashMenuItem.js +2 -2
- package/vue/chunks/UiEditorTableContextMenu.js +120 -2
- package/vue/chunks/UiEditorTableOverlay.js +306 -12
- package/vue/chunks/UiEditorTableToolbar.js +215 -3
- package/vue/chunks/UiEditorToolbar.js +8 -8
- package/vue/chunks/UiFloatingActionButton.js +2 -2
- package/vue/chunks/UiFormField.js +2 -2
- package/vue/chunks/UiGrid.js +2 -2
- package/vue/chunks/UiIcon.js +2 -2
- package/vue/chunks/UiIconButton.js +2 -2
- package/vue/chunks/UiImage.js +12 -12
- package/vue/chunks/UiInput.js +34 -4
- package/vue/chunks/UiInputGroup.js +30 -4
- package/vue/chunks/UiList.js +2 -2
- package/vue/chunks/UiListItem.js +2 -2
- package/vue/chunks/UiListbox.js +96 -12
- package/vue/chunks/UiMenu.js +6 -2
- package/vue/chunks/UiMenuGroup.js +2 -2
- package/vue/chunks/UiMenuItem.js +15 -3
- package/vue/chunks/UiMeter.js +2 -2
- package/vue/chunks/UiNavItem.js +2 -2
- package/vue/chunks/UiPageHeader.js +2 -2
- package/vue/chunks/UiPopover.js +6 -2
- package/vue/chunks/UiRadio.js +25 -12
- package/vue/chunks/UiRadioGroup.js +6 -2
- package/vue/chunks/UiReel.js +2 -2
- package/vue/chunks/UiScrollArea.js +8 -8
- package/vue/chunks/UiSearchResultRow.js +2 -2
- package/vue/chunks/UiSearchShell.js +9 -4
- package/vue/chunks/UiSection.js +2 -2
- package/vue/chunks/UiSelect.js +5 -3
- package/vue/chunks/UiSeparator.js +2 -2
- package/vue/chunks/UiSidebar.js +28 -5
- package/vue/chunks/UiSpinner.js +2 -2
- package/vue/chunks/UiStack.js +2 -2
- package/vue/chunks/UiStatusMessage.js +2 -2
- package/vue/chunks/UiSwitch.js +25 -12
- package/vue/chunks/UiSwitcher.js +6 -2
- package/vue/chunks/UiTable.js +2 -2
- package/vue/chunks/UiTabs.js +39 -10
- package/vue/chunks/UiText.js +2 -2
- package/vue/chunks/UiTextarea.js +3 -2
- package/vue/chunks/UiToast.js +8 -8
- package/vue/chunks/UiToastRegion.js +86 -20
- package/vue/chunks/UiTooltip.js +15 -3
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +2 -2
- package/vue/chunks/UiTreeItem.js +84 -51
- package/vue/chunks/control.js +9 -2
- package/vue/chunks/host.js +203 -29
- package/vue/chunks/props.js +43 -7
- package/vue/components.css +1447 -1360
- package/vue/host.ts +286 -42
|
@@ -53,64 +53,64 @@
|
|
|
53
53
|
font-weight: inherit;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
:host
|
|
56
|
+
:host([size="xs"]) {
|
|
57
57
|
font-size: var(--ui-font-size-xs);
|
|
58
58
|
line-height: var(--ui-line-height);
|
|
59
59
|
}
|
|
60
|
-
:host
|
|
60
|
+
:host([size="sm"]) {
|
|
61
61
|
font-size: var(--ui-font-size-sm);
|
|
62
62
|
line-height: var(--ui-line-height);
|
|
63
63
|
}
|
|
64
|
-
:host
|
|
64
|
+
:host([size="md"]) {
|
|
65
65
|
font-size: var(--ui-font-size-md);
|
|
66
66
|
line-height: var(--ui-line-height);
|
|
67
67
|
}
|
|
68
|
-
:host
|
|
68
|
+
:host([size="lg"]) {
|
|
69
69
|
font-size: var(--ui-font-size-lg);
|
|
70
70
|
line-height: var(--ui-line-height-relaxed);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
:host
|
|
73
|
+
:host([tone="secondary"]) {
|
|
74
74
|
color: var(--ui-text-secondary);
|
|
75
75
|
}
|
|
76
|
-
:host
|
|
76
|
+
:host([tone="muted"]) {
|
|
77
77
|
color: var(--ui-text-muted);
|
|
78
78
|
}
|
|
79
|
-
:host
|
|
79
|
+
:host([tone="accent"]) {
|
|
80
80
|
color: var(--ui-accent-active);
|
|
81
81
|
}
|
|
82
82
|
/* Every status tone uses the text-safe token a subtle badge sets its words in, so text and badges
|
|
83
83
|
in one tone match, and each holds 4.5:1 on sunken surfaces where some base colours fall short. */
|
|
84
|
-
:host
|
|
84
|
+
:host([tone="danger"]) {
|
|
85
85
|
color: var(--ui-danger-subtle-text);
|
|
86
86
|
}
|
|
87
|
-
:host
|
|
87
|
+
:host([tone="success"]) {
|
|
88
88
|
color: var(--ui-success-subtle-text);
|
|
89
89
|
}
|
|
90
|
-
:host
|
|
90
|
+
:host([tone="info"]) {
|
|
91
91
|
color: var(--ui-info-subtle-text);
|
|
92
92
|
}
|
|
93
|
-
:host
|
|
93
|
+
:host([tone="warning"]) {
|
|
94
94
|
color: var(--ui-warning-subtle-text);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
:host
|
|
97
|
+
:host([weight="normal"]) {
|
|
98
98
|
font-weight: var(--ui-font-normal);
|
|
99
99
|
}
|
|
100
|
-
:host
|
|
100
|
+
:host([weight="medium"]) {
|
|
101
101
|
font-weight: var(--ui-font-medium);
|
|
102
102
|
}
|
|
103
|
-
:host
|
|
103
|
+
:host([weight="semibold"]) {
|
|
104
104
|
font-weight: var(--ui-font-semibold);
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
:host
|
|
107
|
+
:host([variant="eyebrow"]) {
|
|
108
108
|
font-size: var(--ui-font-size-xs);
|
|
109
109
|
font-weight: var(--ui-font-semibold);
|
|
110
110
|
letter-spacing: 0.06em;
|
|
111
111
|
text-transform: uppercase;
|
|
112
112
|
}
|
|
113
|
-
:host
|
|
113
|
+
:host([variant="code"]) {
|
|
114
114
|
font-family: var(--ui-font-family-mono);
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -123,21 +123,21 @@
|
|
|
123
123
|
text-underline-offset: 0.18em;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
:host
|
|
126
|
+
:host([truncate]) {
|
|
127
127
|
overflow: hidden;
|
|
128
128
|
text-overflow: ellipsis;
|
|
129
129
|
white-space: nowrap;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
:host
|
|
132
|
+
:host([align="center"]) {
|
|
133
133
|
text-align: center;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
:host
|
|
136
|
+
:host([font="sans"]) {
|
|
137
137
|
font-family: var(--ui-font-family-sans, sans-serif);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
:host
|
|
140
|
+
:host([wrap="anywhere"]) {
|
|
141
141
|
overflow-wrap: anywhere;
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -26,6 +26,30 @@
|
|
|
26
26
|
></textarea>
|
|
27
27
|
<style>
|
|
28
28
|
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
29
|
+
@property --ui-textarea-border-width {
|
|
30
|
+
syntax: "*";
|
|
31
|
+
inherits: false;
|
|
32
|
+
}
|
|
33
|
+
@property --ui-textarea-border {
|
|
34
|
+
syntax: "*";
|
|
35
|
+
inherits: false;
|
|
36
|
+
}
|
|
37
|
+
@property --ui-textarea-border-hover {
|
|
38
|
+
syntax: "*";
|
|
39
|
+
inherits: false;
|
|
40
|
+
}
|
|
41
|
+
@property --ui-textarea-focus-border {
|
|
42
|
+
syntax: "*";
|
|
43
|
+
inherits: false;
|
|
44
|
+
}
|
|
45
|
+
@property --ui-textarea-focus-outline {
|
|
46
|
+
syntax: "*";
|
|
47
|
+
inherits: false;
|
|
48
|
+
}
|
|
49
|
+
@property --ui-textarea-surface {
|
|
50
|
+
syntax: "*";
|
|
51
|
+
inherits: false;
|
|
52
|
+
}
|
|
29
53
|
@property --ui-textarea-focus-shadow {
|
|
30
54
|
syntax: "*";
|
|
31
55
|
inherits: false;
|
|
@@ -58,13 +82,14 @@
|
|
|
58
82
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
59
83
|
appearance: none;
|
|
60
84
|
resize: vertical;
|
|
61
|
-
border: var(--ui-border-width
|
|
62
|
-
|
|
63
|
-
|
|
85
|
+
border: var(--ui-textarea-border-width, var(--_ui-default-textarea-border-width, var(--ui-border-width))) solid
|
|
86
|
+
var(--ui-textarea-border, var(--_ui-default-textarea-border, var(--ui-control-border, var(--ui-border-strong))));
|
|
87
|
+
border-radius: var(--ui-textarea-radius, var(--_ui-default-textarea-radius, var(--ui-field-radius, var(--ui-radius-md))));
|
|
88
|
+
background: var(--ui-textarea-surface, var(--_ui-default-textarea-surface, var(--ui-control-surface, var(--ui-surface-elevated))));
|
|
64
89
|
color: var(--ui-text-primary);
|
|
65
90
|
font: inherit;
|
|
66
91
|
line-height: var(--ui-line-height-md);
|
|
67
|
-
box-shadow: var(--ui-textarea-shadow, var(--ui-control-inset));
|
|
92
|
+
box-shadow: var(--ui-textarea-shadow, var(--_ui-default-textarea-shadow, var(--ui-control-inset)));
|
|
68
93
|
transition:
|
|
69
94
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
70
95
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
|
|
@@ -83,29 +108,32 @@
|
|
|
83
108
|
}
|
|
84
109
|
|
|
85
110
|
:host:hover:not(:focus):not(:disabled):not(:read-only):not([aria-invalid="true"]):not(:user-invalid) {
|
|
86
|
-
border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
|
|
111
|
+
border-color: var(--ui-textarea-border-hover, var(--_ui-default-textarea-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary))));
|
|
87
112
|
}
|
|
88
113
|
|
|
89
114
|
:host:focus-visible {
|
|
90
|
-
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
91
|
-
outline: none;
|
|
92
|
-
box-shadow: var(--ui-textarea-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow));
|
|
115
|
+
border-color: var(--ui-textarea-focus-border, var(--_ui-default-textarea-focus-border, var(--ui-control-focus, var(--ui-accent-solid))));
|
|
116
|
+
outline: var(--ui-textarea-focus-outline, var(--_ui-default-textarea-focus-outline, none));
|
|
117
|
+
box-shadow: var(--ui-textarea-focus-shadow, var(--_ui-default-textarea-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow)));
|
|
93
118
|
}
|
|
94
119
|
|
|
95
120
|
/* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
|
|
96
121
|
:host[aria-invalid="true"],
|
|
97
122
|
:host:user-invalid {
|
|
98
|
-
border-color: var(--ui-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)));
|
|
123
|
+
border-color: var(--ui-textarea-invalid-border, var(--_ui-default-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))));
|
|
99
124
|
}
|
|
100
125
|
|
|
101
126
|
:host:is([aria-invalid="true"], :user-invalid):focus-visible {
|
|
102
127
|
box-shadow: var(
|
|
103
128
|
--ui-textarea-invalid-focus-shadow,
|
|
104
|
-
var(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
129
|
+
var(
|
|
130
|
+
--_ui-default-textarea-invalid-focus-shadow,
|
|
131
|
+
var(--ui-control-inset),
|
|
132
|
+
0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
|
|
133
|
+
in srgb,
|
|
134
|
+
var(--ui-textarea-invalid-border, var(--_ui-default-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)))) 22%,
|
|
135
|
+
transparent
|
|
136
|
+
)
|
|
109
137
|
)
|
|
110
138
|
);
|
|
111
139
|
}
|
|
@@ -117,20 +145,20 @@
|
|
|
117
145
|
cursor: not-allowed;
|
|
118
146
|
}
|
|
119
147
|
|
|
120
|
-
:host
|
|
148
|
+
:host([size="sm"]) {
|
|
121
149
|
--_padding-block: var(--ui-space-1);
|
|
122
150
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
123
151
|
font-size: var(--ui-font-size-sm);
|
|
124
152
|
}
|
|
125
153
|
|
|
126
|
-
:host
|
|
154
|
+
:host([size="lg"]) {
|
|
127
155
|
--_padding-block: var(--ui-space-3);
|
|
128
156
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
129
157
|
font-size: var(--ui-font-size-md);
|
|
130
158
|
}
|
|
131
159
|
|
|
132
160
|
@supports (field-sizing: content) {
|
|
133
|
-
:host
|
|
161
|
+
:host([autosize]) {
|
|
134
162
|
field-sizing: content;
|
|
135
163
|
min-block-size: calc(var(--_rows) * 1lh + var(--_padding-block) + var(--_padding-block) + 2px);
|
|
136
164
|
}
|
|
@@ -138,7 +166,7 @@
|
|
|
138
166
|
|
|
139
167
|
/* Below 16px, iOS zooms the page into the focused field, so touch keeps body-size text. */
|
|
140
168
|
@media (pointer: coarse) {
|
|
141
|
-
:host
|
|
169
|
+
:host([size="sm"]) {
|
|
142
170
|
font-size: inherit;
|
|
143
171
|
}
|
|
144
172
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// The value attribute only sets the default; a controlled value is applied to the live textarea. The
|
|
2
2
|
// value is also made the native default, so a form reset returns to it.
|
|
3
|
-
|
|
3
|
+
function connect(host) {
|
|
4
4
|
return host.effect(() => {
|
|
5
5
|
const value = host.props.value.value;
|
|
6
6
|
if (value === undefined || value === null) return;
|
|
@@ -8,3 +8,8 @@ export default function controller(host) {
|
|
|
8
8
|
if (host.element.value !== String(value)) host.element.value = String(value);
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
|
+
|
|
12
|
+
/** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
|
|
13
|
+
export default function controller(host) {
|
|
14
|
+
host.on("connect", () => connect(host));
|
|
15
|
+
}
|
|
@@ -61,16 +61,16 @@
|
|
|
61
61
|
pointer-events: auto;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
:host
|
|
64
|
+
:host([tone="info"]) {
|
|
65
65
|
--_ui-toast-accent: var(--ui-info-solid);
|
|
66
66
|
}
|
|
67
|
-
:host
|
|
67
|
+
:host([tone="success"]) {
|
|
68
68
|
--_ui-toast-accent: var(--ui-success-solid);
|
|
69
69
|
}
|
|
70
|
-
:host
|
|
70
|
+
:host([tone="warning"]) {
|
|
71
71
|
--_ui-toast-accent: var(--ui-warning-solid);
|
|
72
72
|
}
|
|
73
|
-
:host
|
|
73
|
+
:host([tone="danger"]) {
|
|
74
74
|
--_ui-toast-accent: var(--ui-danger-solid);
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -5,7 +5,7 @@ function inputFor(event) {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
/** Authored toasts request dismissal; their consumer owns removal from the rendered list. */
|
|
8
|
-
|
|
8
|
+
function connect(host) {
|
|
9
9
|
const element = host.element;
|
|
10
10
|
const { action } = host.refs;
|
|
11
11
|
if (!element.id) element.id = `ui-toast-authored-${++toastSequence}`;
|
|
@@ -66,3 +66,8 @@ export default function controller(host) {
|
|
|
66
66
|
element.removeEventListener("focusout", onFocusOut);
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
+
|
|
70
|
+
/** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
|
|
71
|
+
export default function controller(host) {
|
|
72
|
+
host.on("connect", () => connect(host));
|
|
73
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<template component="ui-toast-region" controller="./ui-toast-region.js">
|
|
4
4
|
<defs>
|
|
5
5
|
<prop name="duration" type="number" default="0"
|
|
6
|
-
>Default milliseconds for toasts added with show
|
|
6
|
+
>Default milliseconds for toasts added with the show-toast event or command; 0 keeps each until dismissed. Hover or focus pauses a timer.</prop>
|
|
7
7
|
<prop name="placement" type="keyword" values="top, top-start, top-end, bottom, bottom-start, bottom-end" default="top"
|
|
8
8
|
>Screen edge where the stack appears. Start and end follow the writing direction.</prop>
|
|
9
9
|
<state
|
|
@@ -24,7 +24,12 @@
|
|
|
24
24
|
<prop name="reason" required type="keyword" values="action, timeout"></prop>
|
|
25
25
|
<prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
|
|
26
26
|
</event>
|
|
27
|
-
<
|
|
27
|
+
<event name="show-toast" type="object">
|
|
28
|
+
<prop name="message" required type="string"></prop>
|
|
29
|
+
<prop name="id" type="string"></prop>
|
|
30
|
+
<prop name="tone" type="keyword" values="neutral, info, success, warning, danger"></prop>
|
|
31
|
+
<prop name="duration" type="number"></prop>
|
|
32
|
+
</event>
|
|
28
33
|
</defs>
|
|
29
34
|
<div role="region" aria-label="Notifications" aria-live="polite" popover="manual">
|
|
30
35
|
<slot></slot>
|
|
@@ -107,25 +112,25 @@
|
|
|
107
112
|
display: none;
|
|
108
113
|
}
|
|
109
114
|
|
|
110
|
-
:host
|
|
111
|
-
:host
|
|
115
|
+
:host([placement="top-start"]),
|
|
116
|
+
:host([placement="bottom-start"]) {
|
|
112
117
|
left: auto;
|
|
113
118
|
right: auto;
|
|
114
119
|
inset-inline-start: calc(var(--ui-space-4) + env(safe-area-inset-left));
|
|
115
120
|
transform: none;
|
|
116
121
|
}
|
|
117
122
|
|
|
118
|
-
:host
|
|
119
|
-
:host
|
|
123
|
+
:host([placement="top-end"]),
|
|
124
|
+
:host([placement="bottom-end"]) {
|
|
120
125
|
left: auto;
|
|
121
126
|
right: auto;
|
|
122
127
|
inset-inline-end: calc(var(--ui-space-4) + env(safe-area-inset-right));
|
|
123
128
|
transform: none;
|
|
124
129
|
}
|
|
125
130
|
|
|
126
|
-
:host
|
|
127
|
-
:host
|
|
128
|
-
:host
|
|
131
|
+
:host([placement="bottom"]),
|
|
132
|
+
:host([placement="bottom-start"]),
|
|
133
|
+
:host([placement="bottom-end"]) {
|
|
129
134
|
top: auto;
|
|
130
135
|
bottom: calc(var(--ui-space-4) + env(safe-area-inset-bottom));
|
|
131
136
|
}
|
|
@@ -168,11 +173,11 @@
|
|
|
168
173
|
pointer-events: none;
|
|
169
174
|
}
|
|
170
175
|
|
|
171
|
-
:is(:host
|
|
176
|
+
:is(:host([placement="bottom"]), :host([placement="bottom-start"]), :host([placement="bottom-end"])) .toast {
|
|
172
177
|
animation-name: ui-toast-enter-bottom;
|
|
173
178
|
}
|
|
174
179
|
|
|
175
|
-
:is(:host
|
|
180
|
+
:is(:host([placement="bottom"]), :host([placement="bottom-start"]), :host([placement="bottom-end"])) .toast.closing {
|
|
176
181
|
animation-name: ui-toast-exit-bottom;
|
|
177
182
|
}
|
|
178
183
|
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
import { announceOverlayOpen } from "../shared/overlay.js";
|
|
2
2
|
import { trackTrigger } from "../shared/trigger.js";
|
|
3
3
|
|
|
4
|
-
const instances = new WeakMap();
|
|
5
4
|
let toastIds = 0;
|
|
6
5
|
|
|
7
|
-
export async function show(host, message, options = {}) {
|
|
8
|
-
return instances.get(host.element)?.show(message, options);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
6
|
/**
|
|
12
7
|
* Shows the region while it has authored or generated messages. Generated messages dismiss by
|
|
13
8
|
* action or timeout; authored ui-toast children own their removal through the dismiss event.
|
|
14
9
|
*/
|
|
15
|
-
|
|
10
|
+
function connect(host) {
|
|
16
11
|
const element = host.element;
|
|
17
12
|
const [trigger, stopTracking] = trackTrigger(host);
|
|
18
13
|
const toasts = () => host.state.toasts ?? [];
|
|
@@ -85,24 +80,28 @@ export default function controller(host) {
|
|
|
85
80
|
if (id) dismiss(id, "action", trigger());
|
|
86
81
|
};
|
|
87
82
|
const onCommand = (event) => {
|
|
88
|
-
if (event.command === "--show-toast" && event.source?.value) add(event.source.value);
|
|
83
|
+
if (event.target === element && event.command === "--show-toast" && event.source?.value) add(event.source.value);
|
|
84
|
+
};
|
|
85
|
+
const onShowToast = (event) => {
|
|
86
|
+
if (event.target === element && typeof event.detail?.message === "string") add(event.detail.message, event.detail);
|
|
89
87
|
};
|
|
90
88
|
const stop = host.effect(sync);
|
|
91
89
|
const observer = new MutationObserver(sync);
|
|
92
90
|
observer.observe(element, { childList: true });
|
|
93
91
|
element.addEventListener("click", onClick);
|
|
94
92
|
element.addEventListener("command", onCommand);
|
|
93
|
+
element.addEventListener("show-toast", onShowToast);
|
|
95
94
|
element.addEventListener("pointerenter", pauseTimers);
|
|
96
95
|
element.addEventListener("pointerleave", resumeTimers);
|
|
97
96
|
element.addEventListener("focusin", pauseTimers);
|
|
98
97
|
element.addEventListener("focusout", resumeTimers);
|
|
99
|
-
instances.set(element, { show: add });
|
|
100
98
|
return () => {
|
|
101
99
|
stop();
|
|
102
100
|
stopTracking();
|
|
103
101
|
observer.disconnect();
|
|
104
102
|
element.removeEventListener("click", onClick);
|
|
105
103
|
element.removeEventListener("command", onCommand);
|
|
104
|
+
element.removeEventListener("show-toast", onShowToast);
|
|
106
105
|
element.removeEventListener("pointerenter", pauseTimers);
|
|
107
106
|
element.removeEventListener("pointerleave", resumeTimers);
|
|
108
107
|
element.removeEventListener("focusin", pauseTimers);
|
|
@@ -110,6 +109,10 @@ export default function controller(host) {
|
|
|
110
109
|
for (const timer of timers.values()) clearTimeout(timer.handle);
|
|
111
110
|
timers.clear();
|
|
112
111
|
if (element.matches(":popover-open")) element.hidePopover();
|
|
113
|
-
instances.delete(element);
|
|
114
112
|
};
|
|
115
113
|
}
|
|
114
|
+
|
|
115
|
+
/** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
|
|
116
|
+
export default function controller(host) {
|
|
117
|
+
host.on("connect", () => connect(host));
|
|
118
|
+
}
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
font: inherit;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
:host
|
|
155
|
+
:host([inverse]) .surface {
|
|
156
156
|
--_tooltip-line: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
157
157
|
background: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
|
|
158
158
|
color: var(--_ui-tooltip-inverse-text, var(--ui-surface-default));
|
|
@@ -2,7 +2,7 @@ import { closeOverlay, createAnchoredSurface, createIdResolver, onOverlayOpen, o
|
|
|
2
2
|
|
|
3
3
|
const warmTooltips = new WeakMap();
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
function connect(host) {
|
|
6
6
|
const element = host.element;
|
|
7
7
|
const document = element.ownerDocument;
|
|
8
8
|
const warm = warmTooltips.get(document) ?? { active: 0, until: 0 };
|
|
@@ -190,3 +190,8 @@ export default function controller(host) {
|
|
|
190
190
|
closeOverlay(document, overlayId);
|
|
191
191
|
};
|
|
192
192
|
}
|
|
193
|
+
|
|
194
|
+
/** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
|
|
195
|
+
export default function controller(host) {
|
|
196
|
+
host.on("connect", () => connect(host));
|
|
197
|
+
}
|
|
@@ -75,12 +75,12 @@
|
|
|
75
75
|
|
|
76
76
|
/* Reaches the items the way density does, so the setting lives on the tree the way a reader
|
|
77
77
|
thinks about it: this list scrolls its long names. */
|
|
78
|
-
:host
|
|
78
|
+
:host([marquee]) {
|
|
79
79
|
--_ui-default-tree-item-marquee: 1;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
/* The items' defaults for this density: an item's own hook still wins. */
|
|
83
|
-
:host
|
|
83
|
+
:host([density="compact"]) {
|
|
84
84
|
--_ui-default-tree-item-min-block-size: var(--ui-control-size-sm);
|
|
85
85
|
--_ui-default-tree-item-font-size: var(--ui-font-size-sm);
|
|
86
86
|
--_ui-default-tree-item-label-padding-block: 0;
|
|
@@ -16,7 +16,7 @@ function parentItem(item, tree) {
|
|
|
16
16
|
return parent && tree.contains(parent) ? parent : null;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
function connect(host) {
|
|
20
20
|
const element = host.element;
|
|
21
21
|
const document = element.ownerDocument;
|
|
22
22
|
const itemSelector = '[role="treeitem"]';
|
|
@@ -483,3 +483,8 @@ export default function controller(host) {
|
|
|
483
483
|
element.removeEventListener("click", onMoveClick, true);
|
|
484
484
|
};
|
|
485
485
|
}
|
|
486
|
+
|
|
487
|
+
/** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
|
|
488
|
+
export default function controller(host) {
|
|
489
|
+
host.on("connect", () => connect(host));
|
|
490
|
+
}
|
|
@@ -179,15 +179,15 @@
|
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
/* Selection is the same surface recipe as destination and choice rows. */
|
|
182
|
-
:host
|
|
182
|
+
:host([selected]) > .row {
|
|
183
183
|
color: var(--ui-selection-text);
|
|
184
184
|
background: var(--ui-selection-surface);
|
|
185
185
|
}
|
|
186
|
-
:host
|
|
186
|
+
:host([selected]):not([aria-disabled="true"]) > .row > .leading {
|
|
187
187
|
color: var(--ui-selection-text);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
:host
|
|
190
|
+
:host([disabled]) .row {
|
|
191
191
|
color: var(--ui-disabled-text);
|
|
192
192
|
background: var(--ui-disabled-surface);
|
|
193
193
|
}
|
|
@@ -687,7 +687,7 @@
|
|
|
687
687
|
outline: var(--ui-focus-width) solid Highlight;
|
|
688
688
|
outline-offset: calc(-1 * var(--ui-focus-width));
|
|
689
689
|
}
|
|
690
|
-
:host
|
|
690
|
+
:host([selected]):not(:focus-visible):not([aria-disabled="true"]) > .row {
|
|
691
691
|
outline: var(--ui-border-width) solid Highlight;
|
|
692
692
|
outline-offset: calc(-1 * var(--ui-border-width));
|
|
693
693
|
}
|
|
@@ -17,7 +17,7 @@ const CONTROLS = [
|
|
|
17
17
|
"radio", "switch", "tab", "slider", "spinbutton", "combobox", "textbox", "dialog"].map((role) => `[role="${role}"]`),
|
|
18
18
|
].join(", ");
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
function connect(host) {
|
|
21
21
|
const element = host.element;
|
|
22
22
|
const { row, disclosure, children, leading, label, actions, labelText } = host.refs;
|
|
23
23
|
// Touch use enlarges rows and hides drag handles (see the template's styles).
|
|
@@ -233,3 +233,8 @@ export default function controller(host) {
|
|
|
233
233
|
row.removeEventListener("click", onRowClick);
|
|
234
234
|
};
|
|
235
235
|
}
|
|
236
|
+
|
|
237
|
+
/** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
|
|
238
|
+
export default function controller(host) {
|
|
239
|
+
host.on("connect", () => connect(host));
|
|
240
|
+
}
|