@threadlabs/looma 0.21.6 → 0.22.0
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/ui-affordance-scope/ui-affordance-scope.html +1 -1
- package/components/ui-avatar/ui-avatar.html +4 -4
- package/components/ui-avatar-group/ui-avatar-group.html +2 -2
- package/components/ui-checkbox/ui-checkbox.html +1 -1
- package/components/ui-combobox/ui-combobox.html +18 -18
- package/components/ui-context-menu/ui-context-menu.html +1 -1
- package/components/ui-dialog/ui-dialog.html +2 -2
- package/components/ui-disclosure/ui-disclosure.html +4 -4
- package/components/ui-editable/ui-editable.html +3 -3
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +5 -5
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +5 -5
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +3 -3
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +3 -7
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +6 -6
- package/components/ui-listbox/ui-listbox.html +6 -6
- package/components/ui-menu/ui-menu.html +1 -1
- package/components/ui-menu-item/ui-menu-item.html +1 -1
- package/components/ui-popover/ui-popover.html +1 -1
- package/components/ui-radio/ui-radio.html +1 -1
- package/components/ui-radio-group/ui-radio-group.html +1 -1
- package/components/ui-search-shell/ui-search-shell.html +1 -1
- package/components/ui-sidebar/ui-sidebar.html +2 -2
- package/components/ui-switch/ui-switch.html +1 -1
- package/components/ui-switcher/ui-switcher.html +1 -1
- package/components/ui-tabs/ui-tabs.html +2 -2
- package/components/ui-toast-region/ui-toast-region.html +1 -1
- package/components/ui-tooltip/ui-tooltip.html +1 -1
- package/components/ui-tree-item/ui-tree-item.html +4 -4
- 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 +2 -2
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +2 -2
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +2 -2
- 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 +2 -2
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -1
- 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 +2 -2
- 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 +2 -2
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +2 -2
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +2 -2
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +2 -2
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +2 -2
- package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
- package/vanilla/UiEditorMentionMenuItem.js +1 -1
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +2 -2
- 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 +2 -2
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +2 -2
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +2 -2
- 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 +2 -2
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +2 -2
- package/vanilla/UiMenuGroup.d.ts +1 -1
- package/vanilla/UiMenuGroup.js +1 -1
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +2 -2
- 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 +2 -2
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +2 -2
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +2 -2
- package/vanilla/UiTable.d.ts +1 -1
- package/vanilla/UiTable.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +2 -2
- 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 +2 -2
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +2 -2
- 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 +2 -2
- package/vue/UiActionBar.vue +1 -1
- package/vue/UiAffordanceScope.vue +25 -7
- package/vue/UiAvatar.vue +125 -30
- package/vue/UiAvatarGroup.d.ts +1 -1
- package/vue/UiAvatarGroup.vue +67 -21
- package/vue/UiBadge.vue +34 -8
- package/vue/UiBreadcrumbItem.vue +15 -4
- package/vue/UiBreadcrumbs.vue +14 -4
- package/vue/UiButton.vue +123 -42
- package/vue/UiCallout.vue +16 -4
- package/vue/UiCard.vue +46 -10
- package/vue/UiCheckbox.d.ts +5 -5
- package/vue/UiCheckbox.vue +73 -19
- package/vue/UiCluster.vue +39 -10
- package/vue/UiCombobox.d.ts +5 -5
- package/vue/UiCombobox.vue +317 -78
- package/vue/UiContainer.vue +23 -6
- package/vue/UiContextMenu.vue +24 -7
- package/vue/UiCover.vue +16 -4
- package/vue/UiDescriptionItem.vue +14 -4
- package/vue/UiDescriptionList.vue +33 -8
- package/vue/UiDialog.vue +79 -26
- package/vue/UiDisclosure.vue +101 -38
- package/vue/UiEditable.d.ts +3 -3
- package/vue/UiEditable.vue +107 -27
- package/vue/UiEditorInsertTableGrid.vue +47 -11
- package/vue/UiEditorMentionMenu.vue +99 -20
- package/vue/UiEditorMentionMenuItem.vue +29 -8
- package/vue/UiEditorSlashMenu.vue +85 -16
- package/vue/UiEditorSlashMenuGroup.vue +14 -4
- package/vue/UiEditorSlashMenuItem.vue +43 -12
- package/vue/UiEditorTableContextMenu.d.ts +1 -1
- package/vue/UiEditorTableContextMenu.vue +95 -19
- package/vue/UiEditorTableOverlay.vue +91 -7
- package/vue/UiEditorTableToolbar.vue +105 -16
- package/vue/UiEditorToolbar.vue +15 -4
- package/vue/UiFloatingActionButton.vue +31 -8
- package/vue/UiFormField.d.ts +1 -1
- package/vue/UiFormField.vue +31 -8
- package/vue/UiGrid.vue +30 -8
- package/vue/UiIcon.vue +15 -4
- package/vue/UiIconButton.vue +70 -24
- package/vue/UiInput.vue +114 -39
- package/vue/UiInputGroup.vue +15 -4
- package/vue/UiList.vue +47 -16
- package/vue/UiListItem.vue +24 -6
- package/vue/UiListbox.d.ts +3 -3
- package/vue/UiListbox.vue +72 -24
- package/vue/UiMenu.vue +55 -15
- package/vue/UiMenuGroup.vue +14 -4
- package/vue/UiMenuItem.d.ts +4 -4
- package/vue/UiMenuItem.vue +77 -27
- package/vue/UiMeter.vue +65 -16
- package/vue/UiNavItem.vue +48 -24
- package/vue/UiPageHeader.vue +16 -4
- package/vue/UiPopover.vue +46 -21
- package/vue/UiRadio.d.ts +4 -4
- package/vue/UiRadio.vue +58 -15
- package/vue/UiRadioGroup.d.ts +3 -3
- package/vue/UiRadioGroup.vue +66 -17
- package/vue/UiReel.d.ts +1 -1
- package/vue/UiReel.vue +31 -8
- package/vue/UiScrollArea.vue +16 -4
- package/vue/UiSearchResultRow.vue +23 -6
- package/vue/UiSearchShell.vue +38 -11
- package/vue/UiSection.vue +33 -8
- package/vue/UiSelect.d.ts +1 -1
- package/vue/UiSelect.vue +45 -20
- package/vue/UiSeparator.vue +16 -4
- package/vue/UiSidebar.d.ts +2 -2
- package/vue/UiSidebar.vue +86 -22
- package/vue/UiSpinner.vue +23 -6
- package/vue/UiStack.vue +31 -8
- package/vue/UiStatusMessage.vue +32 -8
- package/vue/UiSwitch.d.ts +4 -4
- package/vue/UiSwitch.vue +57 -15
- package/vue/UiSwitcher.vue +41 -17
- package/vue/UiTable.vue +24 -6
- package/vue/UiTabs.vue +60 -14
- package/vue/UiText.vue +98 -35
- package/vue/UiTextarea.d.ts +1 -1
- package/vue/UiTextarea.vue +67 -26
- package/vue/UiToast.vue +24 -6
- package/vue/UiToastRegion.vue +41 -13
- package/vue/UiTooltip.d.ts +1 -1
- package/vue/UiTooltip.vue +85 -30
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTree.vue +56 -14
- package/vue/UiTreeItem.d.ts +3 -3
- package/vue/UiTreeItem.vue +147 -36
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +34 -7
- package/vue/chunks/UiAvatar.js +141 -21
- package/vue/chunks/UiAvatarGroup.js +83 -16
- package/vue/chunks/UiBadge.js +57 -19
- package/vue/chunks/UiBreadcrumbItem.js +19 -6
- package/vue/chunks/UiBreadcrumbs.js +19 -6
- package/vue/chunks/UiButton.js +194 -42
- package/vue/chunks/UiCallout.js +27 -13
- package/vue/chunks/UiCard.js +83 -25
- package/vue/chunks/UiCheckbox.js +104 -17
- package/vue/chunks/UiCluster.js +70 -25
- package/vue/chunks/UiCombobox.js +441 -46
- package/vue/chunks/UiContainer.js +36 -11
- package/vue/chunks/UiContextMenu.js +33 -7
- package/vue/chunks/UiCover.js +20 -6
- package/vue/chunks/UiDescriptionItem.js +18 -5
- package/vue/chunks/UiDescriptionList.js +54 -17
- package/vue/chunks/UiDialog.js +115 -23
- package/vue/chunks/UiDisclosure.js +110 -24
- package/vue/chunks/UiEditable.js +146 -18
- package/vue/chunks/UiEditorInsertTableGrid.js +65 -10
- package/vue/chunks/UiEditorMentionMenu.js +210 -14
- package/vue/chunks/UiEditorMentionMenuItem.js +43 -8
- package/vue/chunks/UiEditorSlashMenu.js +186 -12
- package/vue/chunks/UiEditorSlashMenuGroup.js +19 -6
- package/vue/chunks/UiEditorSlashMenuItem.js +65 -10
- package/vue/chunks/UiEditorTableContextMenu.js +116 -16
- package/vue/chunks/UiEditorTableOverlay.js +188 -7
- package/vue/chunks/UiEditorTableToolbar.js +125 -16
- package/vue/chunks/UiEditorToolbar.js +19 -6
- package/vue/chunks/UiFloatingActionButton.js +43 -8
- package/vue/chunks/UiFormField.js +43 -8
- package/vue/chunks/UiGrid.js +52 -18
- package/vue/chunks/UiIcon.js +19 -6
- package/vue/chunks/UiIconButton.js +107 -21
- package/vue/chunks/UiInput.js +309 -30
- package/vue/chunks/UiInputGroup.js +19 -6
- package/vue/chunks/UiList.js +62 -10
- package/vue/chunks/UiListItem.js +33 -7
- package/vue/chunks/UiListbox.js +105 -13
- package/vue/chunks/UiMenu.js +79 -11
- package/vue/chunks/UiMenuGroup.js +19 -6
- package/vue/chunks/UiMenuItem.js +93 -28
- package/vue/chunks/UiMeter.js +96 -19
- package/vue/chunks/UiNavItem.js +74 -17
- package/vue/chunks/UiPageHeader.js +20 -6
- package/vue/chunks/UiPopover.js +58 -21
- package/vue/chunks/UiRadio.js +82 -15
- package/vue/chunks/UiRadioGroup.js +89 -12
- package/vue/chunks/UiReel.js +53 -18
- package/vue/chunks/UiScrollArea.js +20 -6
- package/vue/chunks/UiSearchResultRow.js +32 -7
- package/vue/chunks/UiSearchShell.js +55 -9
- package/vue/chunks/UiSection.js +49 -12
- package/vue/chunks/UiSelect.js +68 -13
- package/vue/chunks/UiSeparator.js +20 -6
- package/vue/chunks/UiSidebar.js +123 -19
- package/vue/chunks/UiSpinner.js +33 -7
- package/vue/chunks/UiStack.js +59 -24
- package/vue/chunks/UiStatusMessage.js +53 -16
- package/vue/chunks/UiSwitch.js +82 -15
- package/vue/chunks/UiSwitcher.js +70 -25
- package/vue/chunks/UiTable.js +33 -7
- package/vue/chunks/UiTabs.js +81 -11
- package/vue/chunks/UiText.js +169 -58
- package/vue/chunks/UiTextarea.js +101 -16
- package/vue/chunks/UiToast.js +39 -13
- package/vue/chunks/UiToastRegion.js +41 -14
- package/vue/chunks/UiTooltip.js +113 -30
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +82 -15
- package/vue/chunks/UiTreeItem.js +184 -22
- package/vue/chunks/props.js +271 -35
- package/vue/components.css +1197 -1197
- package/vue/host.ts +6 -6
package/vue/UiStack.vue
CHANGED
|
@@ -1,11 +1,39 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
|
-
import { checkedProp } from './props'
|
|
5
|
+
import { checkedProp, vPropValidity } from './props'
|
|
6
6
|
|
|
7
7
|
defineOptions({ inheritAttrs: false })
|
|
8
8
|
|
|
9
|
+
const propValidityContract = {
|
|
10
|
+
props: {
|
|
11
|
+
align: {
|
|
12
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'align' },
|
|
15
|
+
description:
|
|
16
|
+
'How items sit across the stack: stretch (the default) makes each fill the stack\'s width; start, center, and end keep each at its own width, against the\n start, in the middle, or against the end.',
|
|
17
|
+
values: ['start', 'center', 'end', 'stretch'],
|
|
18
|
+
},
|
|
19
|
+
gap: {
|
|
20
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: 'gap' },
|
|
23
|
+
description:
|
|
24
|
+
'Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap custom property,\n set on the stack itself, overrides it; set on an ancestor, it does nothing.',
|
|
25
|
+
values: ['xs', 's', 'm', 'l', 'xl'],
|
|
26
|
+
},
|
|
27
|
+
justify: {
|
|
28
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
29
|
+
required: false,
|
|
30
|
+
target: { attribute: 'justify' },
|
|
31
|
+
description:
|
|
32
|
+
'Where items sit along a stack that is taller than its content: start (the default), center, end, or between, which spreads the spare space between items.\n It has no effect unless the stack is given a height or stretched to one.',
|
|
33
|
+
values: ['start', 'center', 'end', 'between'],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}
|
|
9
37
|
const props = defineProps({
|
|
10
38
|
align: {
|
|
11
39
|
type: null as unknown as PropType<'start' | 'center' | 'end' | 'stretch' | null>,
|
|
@@ -23,24 +51,18 @@ const checkedProps = computed(() => ({
|
|
|
23
51
|
{ kind: 'terminal', name: 'keyword' },
|
|
24
52
|
false,
|
|
25
53
|
'align',
|
|
26
|
-
undefined,
|
|
27
|
-
['start', 'center', 'end', 'stretch'],
|
|
28
54
|
),
|
|
29
55
|
gap: checkedProp<'xs' | 's' | 'm' | 'l' | 'xl'>(
|
|
30
56
|
props['gap'],
|
|
31
57
|
{ kind: 'terminal', name: 'keyword' },
|
|
32
58
|
false,
|
|
33
59
|
'gap',
|
|
34
|
-
undefined,
|
|
35
|
-
['xs', 's', 'm', 'l', 'xl'],
|
|
36
60
|
),
|
|
37
61
|
justify: checkedProp<'start' | 'center' | 'end' | 'between'>(
|
|
38
62
|
props['justify'],
|
|
39
63
|
{ kind: 'terminal', name: 'keyword' },
|
|
40
64
|
false,
|
|
41
65
|
'justify',
|
|
42
|
-
undefined,
|
|
43
|
-
['start', 'center', 'end', 'between'],
|
|
44
66
|
),
|
|
45
67
|
}))
|
|
46
68
|
void checkedProps.value
|
|
@@ -113,6 +135,7 @@ const hostState = computed(() =>
|
|
|
113
135
|
<div
|
|
114
136
|
data-component="ui-stack"
|
|
115
137
|
v-bind="nativeAttrs($attrs)"
|
|
138
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
116
139
|
:data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
|
|
117
140
|
:data-gap="reflectedProp('gap', 'gap', checkedProps.gap, undefined, false)"
|
|
118
141
|
:data-justify="reflectedProp('justify', 'justify', checkedProps.justify, undefined, false)"
|
package/vue/UiStatusMessage.vue
CHANGED
|
@@ -1,12 +1,41 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
|
-
import { checkedProp } from './props'
|
|
5
|
+
import { checkedProp, vPropValidity } from './props'
|
|
6
6
|
import UiSpinner from './UiSpinner.vue'
|
|
7
7
|
|
|
8
8
|
defineOptions({ inheritAttrs: false })
|
|
9
9
|
|
|
10
|
+
const propValidityContract = {
|
|
11
|
+
props: {
|
|
12
|
+
heading: {
|
|
13
|
+
type: { kind: 'terminal', name: 'string' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'heading' },
|
|
16
|
+
description: 'A short heading above the message, such as "No pages yet". Optional.',
|
|
17
|
+
default: '',
|
|
18
|
+
},
|
|
19
|
+
kind: {
|
|
20
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: 'kind' },
|
|
23
|
+
description:
|
|
24
|
+
'What the view is saying. empty: there is nothing here yet (announced politely); loading: it is on its way, with a spinner (announced politely); error: it\n could not be shown, in the danger tone (announced at once).',
|
|
25
|
+
values: ['empty', 'loading', 'error'],
|
|
26
|
+
default: 'empty',
|
|
27
|
+
},
|
|
28
|
+
layout: {
|
|
29
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
30
|
+
required: false,
|
|
31
|
+
target: { attribute: 'layout' },
|
|
32
|
+
description:
|
|
33
|
+
'Where it sits. inline takes its place in the view\'s flow; panel sits it on a dashed surface, for an empty area in a page; fill centres it in all the space\n it is given, for a whole view that is loading or failed.',
|
|
34
|
+
values: ['inline', 'panel', 'fill'],
|
|
35
|
+
default: 'inline',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}
|
|
10
39
|
const props = defineProps({
|
|
11
40
|
heading: { type: null as unknown as PropType<string | null>, default: '' },
|
|
12
41
|
kind: {
|
|
@@ -24,24 +53,18 @@ const checkedProps = computed(() => ({
|
|
|
24
53
|
{ kind: 'terminal', name: 'string' },
|
|
25
54
|
false,
|
|
26
55
|
'heading',
|
|
27
|
-
undefined,
|
|
28
|
-
undefined,
|
|
29
56
|
) as string,
|
|
30
57
|
kind: checkedProp<'empty' | 'loading' | 'error'>(
|
|
31
58
|
props['kind'],
|
|
32
59
|
{ kind: 'terminal', name: 'keyword' },
|
|
33
60
|
false,
|
|
34
61
|
'kind',
|
|
35
|
-
undefined,
|
|
36
|
-
['empty', 'loading', 'error'],
|
|
37
62
|
) as 'empty' | 'loading' | 'error',
|
|
38
63
|
layout: checkedProp<'inline' | 'panel' | 'fill'>(
|
|
39
64
|
props['layout'],
|
|
40
65
|
{ kind: 'terminal', name: 'keyword' },
|
|
41
66
|
false,
|
|
42
67
|
'layout',
|
|
43
|
-
undefined,
|
|
44
|
-
['inline', 'panel', 'fill'],
|
|
45
68
|
) as 'inline' | 'panel' | 'fill',
|
|
46
69
|
}))
|
|
47
70
|
void checkedProps.value
|
|
@@ -130,6 +153,7 @@ function attribute(value: unknown): any {
|
|
|
130
153
|
:role="attribute(
|
|
131
154
|
(({ true: 'alert', false: 'status' }) as Record<string, any>)[`${checkedProps.kind === 'error'}`],
|
|
132
155
|
)"
|
|
156
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
133
157
|
:data-heading="reflectedProp('heading', 'heading', checkedProps.heading, undefined, false)"
|
|
134
158
|
:data-kind="reflectedProp('kind', 'kind', checkedProps.kind, undefined, false)"
|
|
135
159
|
:data-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
|
package/vue/UiSwitch.d.ts
CHANGED
|
@@ -31,13 +31,13 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
31
31
|
default: string;
|
|
32
32
|
};
|
|
33
33
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
34
|
-
"update:checked": (value: boolean) => any;
|
|
35
|
-
"update:value": (value: string) => any;
|
|
36
34
|
change: (event: CustomEvent<{
|
|
37
35
|
readonly checked: boolean;
|
|
38
36
|
readonly value: string;
|
|
39
37
|
readonly trigger: "keyboard" | "pointer" | "programmatic";
|
|
40
38
|
}>) => any;
|
|
39
|
+
"update:checked": (value: boolean) => any;
|
|
40
|
+
"update:value": (value: string) => any;
|
|
41
41
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
42
42
|
checked: {
|
|
43
43
|
type: PropType<boolean | null>;
|
|
@@ -64,13 +64,13 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
64
64
|
default: string;
|
|
65
65
|
};
|
|
66
66
|
}>> & Readonly<{
|
|
67
|
-
"onUpdate:checked"?: ((value: boolean) => any) | undefined;
|
|
68
|
-
"onUpdate:value"?: ((value: string) => any) | undefined;
|
|
69
67
|
onChange?: ((event: CustomEvent<{
|
|
70
68
|
readonly checked: boolean;
|
|
71
69
|
readonly value: string;
|
|
72
70
|
readonly trigger: "keyboard" | "pointer" | "programmatic";
|
|
73
71
|
}>) => any) | undefined;
|
|
72
|
+
"onUpdate:checked"?: ((value: boolean) => any) | undefined;
|
|
73
|
+
"onUpdate:value"?: ((value: string) => any) | undefined;
|
|
74
74
|
}>, {
|
|
75
75
|
name: string | null;
|
|
76
76
|
value: string | null;
|
package/vue/UiSwitch.vue
CHANGED
|
@@ -1,13 +1,65 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import { computed, getCurrentInstance, ref, useTemplateRef, watchSyncEffect } from 'vue'
|
|
3
|
+
import { computed, getCurrentInstance, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
5
|
import { vBindControl } from './control'
|
|
6
6
|
import { createDispatch, useComponentHost } from './host'
|
|
7
|
-
import { checkedProp } from './props'
|
|
7
|
+
import { checkedProp, vPropValidity } from './props'
|
|
8
8
|
|
|
9
9
|
defineOptions({ inheritAttrs: false })
|
|
10
10
|
|
|
11
|
+
const propValidityContract = {
|
|
12
|
+
props: {
|
|
13
|
+
checked: {
|
|
14
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
15
|
+
required: false,
|
|
16
|
+
target: { attribute: 'checked' },
|
|
17
|
+
description:
|
|
18
|
+
'Whether the switch is checked initially or when set externally. A form reset returns it to this.',
|
|
19
|
+
default: false,
|
|
20
|
+
},
|
|
21
|
+
disabled: {
|
|
22
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
23
|
+
required: false,
|
|
24
|
+
target: { attribute: 'disabled' },
|
|
25
|
+
description: 'Disables the native switch, so it cannot be toggled or focused.',
|
|
26
|
+
default: false,
|
|
27
|
+
},
|
|
28
|
+
name: {
|
|
29
|
+
type: { kind: 'terminal', name: 'string' },
|
|
30
|
+
required: false,
|
|
31
|
+
target: { attribute: 'name' },
|
|
32
|
+
description:
|
|
33
|
+
'The native name the switch submits under: a form that contains it sends name=value while it is on, and nothing while it is off, as a native checkbox does.\n Left empty, it takes no part in form submission.',
|
|
34
|
+
default: '',
|
|
35
|
+
},
|
|
36
|
+
required: {
|
|
37
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
38
|
+
required: false,
|
|
39
|
+
target: { attribute: 'required' },
|
|
40
|
+
description:
|
|
41
|
+
'Marks the native switch required, so native form validation treats it as invalid until it is on.',
|
|
42
|
+
default: false,
|
|
43
|
+
},
|
|
44
|
+
size: {
|
|
45
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
46
|
+
required: false,
|
|
47
|
+
target: { attribute: 'size' },
|
|
48
|
+
description:
|
|
49
|
+
'Aligns the switch with fields and buttons of the same size. It keeps its track size; the label takes that size\'s field type size and its first line centres\n in that control height (sm 2rem, lg 3rem by default), so in a row of inputs, selects, and buttons of one size it shares their height and their text\n baseline. Under a coarse pointer an sm row grows to the 44px touch minimum, as they do. md is the standard layout.',
|
|
50
|
+
values: ['sm', 'md', 'lg'],
|
|
51
|
+
default: 'md',
|
|
52
|
+
},
|
|
53
|
+
value: {
|
|
54
|
+
type: { kind: 'terminal', name: 'string' },
|
|
55
|
+
required: false,
|
|
56
|
+
target: { attribute: 'value' },
|
|
57
|
+
description:
|
|
58
|
+
'The value a form submits under name while the switch is on, also reported in the change event\'s detail so one handler can tell switches apart. on by\n default, as on a native checkbox.',
|
|
59
|
+
default: 'on',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
}
|
|
11
63
|
const props = defineProps({
|
|
12
64
|
checked: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
13
65
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -22,48 +74,36 @@ const checkedProps = computed(() => ({
|
|
|
22
74
|
{ kind: 'terminal', name: 'boolean' },
|
|
23
75
|
false,
|
|
24
76
|
'checked',
|
|
25
|
-
undefined,
|
|
26
|
-
undefined,
|
|
27
77
|
) as boolean,
|
|
28
78
|
disabled: checkedProp<boolean>(
|
|
29
79
|
props['disabled'],
|
|
30
80
|
{ kind: 'terminal', name: 'boolean' },
|
|
31
81
|
false,
|
|
32
82
|
'disabled',
|
|
33
|
-
undefined,
|
|
34
|
-
undefined,
|
|
35
83
|
) as boolean,
|
|
36
84
|
name: checkedProp<string>(
|
|
37
85
|
props['name'],
|
|
38
86
|
{ kind: 'terminal', name: 'string' },
|
|
39
87
|
false,
|
|
40
88
|
'name',
|
|
41
|
-
undefined,
|
|
42
|
-
undefined,
|
|
43
89
|
) as string,
|
|
44
90
|
required: checkedProp<boolean>(
|
|
45
91
|
props['required'],
|
|
46
92
|
{ kind: 'terminal', name: 'boolean' },
|
|
47
93
|
false,
|
|
48
94
|
'required',
|
|
49
|
-
undefined,
|
|
50
|
-
undefined,
|
|
51
95
|
) as boolean,
|
|
52
96
|
size: checkedProp<'sm' | 'md' | 'lg'>(
|
|
53
97
|
props['size'],
|
|
54
98
|
{ kind: 'terminal', name: 'keyword' },
|
|
55
99
|
false,
|
|
56
100
|
'size',
|
|
57
|
-
undefined,
|
|
58
|
-
['sm', 'md', 'lg'],
|
|
59
101
|
) as 'sm' | 'md' | 'lg',
|
|
60
102
|
value: checkedProp<string>(
|
|
61
103
|
props['value'],
|
|
62
104
|
{ kind: 'terminal', name: 'string' },
|
|
63
105
|
false,
|
|
64
106
|
'value',
|
|
65
|
-
undefined,
|
|
66
|
-
undefined,
|
|
67
107
|
) as string,
|
|
68
108
|
}))
|
|
69
109
|
void checkedProps.value
|
|
@@ -121,6 +161,7 @@ const root = ref<HTMLElement | null>(null)
|
|
|
121
161
|
const inputElement = useTemplateRef<HTMLElement>('input')
|
|
122
162
|
const descriptionElement = useTemplateRef<HTMLElement>('description')
|
|
123
163
|
const internalChecked = ref(false)
|
|
164
|
+
provide('html-next:ui-switch:internalChecked', internalChecked)
|
|
124
165
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
125
166
|
if (
|
|
126
167
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -176,6 +217,7 @@ useComponentHost(() => import('../components/ui-switch/ui-switch.js'), {
|
|
|
176
217
|
<label
|
|
177
218
|
data-component="ui-switch"
|
|
178
219
|
v-bind="nativeAttrs($attrs)"
|
|
220
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
179
221
|
:data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
|
|
180
222
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
181
223
|
:data-name="reflectedProp('name', 'name', checkedProps.name, undefined, false)"
|
package/vue/UiSwitcher.vue
CHANGED
|
@@ -1,12 +1,47 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
|
|
3
|
+
import { computed, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
5
|
import { createDispatch, useComponentHost } from './host'
|
|
6
|
-
import { checkedProp } from './props'
|
|
6
|
+
import { checkedProp, vPropValidity } from './props'
|
|
7
7
|
|
|
8
8
|
defineOptions({ inheritAttrs: false })
|
|
9
9
|
|
|
10
|
+
const propValidityContract = {
|
|
11
|
+
props: {
|
|
12
|
+
align: {
|
|
13
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'align' },
|
|
16
|
+
description:
|
|
17
|
+
'How items line up while they sit in a row: stretch (the default) makes them equally tall; start, center, and end align their tops, middles, or\n bottoms.',
|
|
18
|
+
values: ['start', 'center', 'end', 'stretch'],
|
|
19
|
+
},
|
|
20
|
+
gap: {
|
|
21
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
22
|
+
required: false,
|
|
23
|
+
target: { attribute: 'gap' },
|
|
24
|
+
description:
|
|
25
|
+
'Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-switcher-gap custom\n property, set on the switcher itself, overrides it; set on an ancestor, it does nothing.',
|
|
26
|
+
values: ['xs', 's', 'm', 'l', 'xl'],
|
|
27
|
+
},
|
|
28
|
+
limit: {
|
|
29
|
+
type: { kind: 'terminal', name: 'integer' },
|
|
30
|
+
required: false,
|
|
31
|
+
target: { attribute: 'limit' },
|
|
32
|
+
description:
|
|
33
|
+
'Most children allowed in a horizontal row. When the count exceeds this value, every child stacks regardless of width. Omit it for no count limit.',
|
|
34
|
+
},
|
|
35
|
+
threshold: {
|
|
36
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
37
|
+
required: false,
|
|
38
|
+
target: { attribute: 'threshold' },
|
|
39
|
+
description:
|
|
40
|
+
'The container width at which items switch between a row and a stack: wider, they all sit side by side; narrower, each takes the full width. xs is 20rem, sm\n is 30rem (also the default), md is 45rem, and lg is 60rem.',
|
|
41
|
+
values: ['xs', 'sm', 'md', 'lg'],
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
}
|
|
10
45
|
const props = defineProps({
|
|
11
46
|
align: {
|
|
12
47
|
type: null as unknown as PropType<'start' | 'center' | 'end' | 'stretch' | null>,
|
|
@@ -22,32 +57,19 @@ const checkedProps = computed(() => ({
|
|
|
22
57
|
{ kind: 'terminal', name: 'keyword' },
|
|
23
58
|
false,
|
|
24
59
|
'align',
|
|
25
|
-
undefined,
|
|
26
|
-
['start', 'center', 'end', 'stretch'],
|
|
27
60
|
),
|
|
28
61
|
gap: checkedProp<'xs' | 's' | 'm' | 'l' | 'xl'>(
|
|
29
62
|
props['gap'],
|
|
30
63
|
{ kind: 'terminal', name: 'keyword' },
|
|
31
64
|
false,
|
|
32
65
|
'gap',
|
|
33
|
-
undefined,
|
|
34
|
-
['xs', 's', 'm', 'l', 'xl'],
|
|
35
|
-
),
|
|
36
|
-
limit: checkedProp<number>(
|
|
37
|
-
props['limit'],
|
|
38
|
-
{ kind: 'terminal', name: 'integer' },
|
|
39
|
-
false,
|
|
40
|
-
'limit',
|
|
41
|
-
undefined,
|
|
42
|
-
undefined,
|
|
43
66
|
),
|
|
67
|
+
limit: checkedProp<number>(props['limit'], { kind: 'terminal', name: 'integer' }, false, 'limit'),
|
|
44
68
|
threshold: checkedProp<'xs' | 'sm' | 'md' | 'lg'>(
|
|
45
69
|
props['threshold'],
|
|
46
70
|
{ kind: 'terminal', name: 'keyword' },
|
|
47
71
|
false,
|
|
48
72
|
'threshold',
|
|
49
|
-
undefined,
|
|
50
|
-
['xs', 'sm', 'md', 'lg'],
|
|
51
73
|
),
|
|
52
74
|
}))
|
|
53
75
|
void checkedProps.value
|
|
@@ -90,6 +112,7 @@ const hydrationInstance = getCurrentInstance()
|
|
|
90
112
|
|
|
91
113
|
const root = ref<HTMLElement | null>(null)
|
|
92
114
|
const overLimit = ref(false)
|
|
115
|
+
provide('html-next:ui-switcher:overLimit', overLimit)
|
|
93
116
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
94
117
|
if (
|
|
95
118
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -139,6 +162,7 @@ useComponentHost(() => import('../components/ui-switcher/ui-switcher.js'), {
|
|
|
139
162
|
<div
|
|
140
163
|
data-component="ui-switcher"
|
|
141
164
|
v-bind="nativeAttrs($attrs)"
|
|
165
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
142
166
|
:data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
|
|
143
167
|
:data-gap="reflectedProp('gap', 'gap', checkedProps.gap, undefined, false)"
|
|
144
168
|
:data-limit="reflectedProp('limit', 'limit', checkedProps.limit, undefined, false)"
|
package/vue/UiTable.vue
CHANGED
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
5
|
import { createDispatch, useComponentHost } from './host'
|
|
6
|
-
import { checkedProp } from './props'
|
|
6
|
+
import { checkedProp, vPropValidity } from './props'
|
|
7
7
|
|
|
8
8
|
defineOptions({ inheritAttrs: false })
|
|
9
9
|
|
|
10
|
+
const propValidityContract = {
|
|
11
|
+
props: {
|
|
12
|
+
density: {
|
|
13
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'density' },
|
|
16
|
+
description:
|
|
17
|
+
'How tall each row is. Every row is at least one control tall, so a row holding a control lines up with the rows around it. comfortable fits a control of\n the standard height (2.5rem), for tables read or edited at a glance; compact fits a small one (2rem), such as a Checkbox or a Button with size="sm", for\n long tables to scan.',
|
|
18
|
+
values: ['comfortable', 'compact'],
|
|
19
|
+
default: 'comfortable',
|
|
20
|
+
},
|
|
21
|
+
stickyHeader: {
|
|
22
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
23
|
+
required: false,
|
|
24
|
+
target: { attribute: 'stickyheader' },
|
|
25
|
+
description:
|
|
26
|
+
'Keeps the header row in view while the rows scroll beneath it. The table scrolls inside its own box, so this needs a bounded height, such as a table that\n fills a fixed-height panel.',
|
|
27
|
+
default: false,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
}
|
|
10
31
|
const props = defineProps({
|
|
11
32
|
density: {
|
|
12
33
|
type: null as unknown as PropType<'comfortable' | 'compact' | null>,
|
|
@@ -20,16 +41,12 @@ const checkedProps = computed(() => ({
|
|
|
20
41
|
{ kind: 'terminal', name: 'keyword' },
|
|
21
42
|
false,
|
|
22
43
|
'density',
|
|
23
|
-
undefined,
|
|
24
|
-
['comfortable', 'compact'],
|
|
25
44
|
) as 'comfortable' | 'compact',
|
|
26
45
|
stickyHeader: checkedProp<boolean>(
|
|
27
46
|
props['stickyHeader'],
|
|
28
47
|
{ kind: 'terminal', name: 'boolean' },
|
|
29
48
|
false,
|
|
30
49
|
'stickyHeader',
|
|
31
|
-
undefined,
|
|
32
|
-
undefined,
|
|
33
50
|
) as boolean,
|
|
34
51
|
}))
|
|
35
52
|
void checkedProps.value
|
|
@@ -112,6 +129,7 @@ useComponentHost(() => import('../components/ui-table/ui-table.js'), {
|
|
|
112
129
|
<div
|
|
113
130
|
data-component="ui-table"
|
|
114
131
|
v-bind="nativeAttrs($attrs)"
|
|
132
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
115
133
|
:data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
|
|
116
134
|
:data-sticky-header="reflectedProp('stickyHeader', 'sticky-header', checkedProps.stickyHeader, undefined, false)"
|
|
117
135
|
:data-ui-table-state="hostState || undefined"
|
package/vue/UiTabs.vue
CHANGED
|
@@ -1,20 +1,75 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import {
|
|
4
4
|
computed,
|
|
5
5
|
defineComponent,
|
|
6
6
|
getCurrentInstance,
|
|
7
7
|
h,
|
|
8
|
+
provide,
|
|
8
9
|
ref,
|
|
9
10
|
useTemplateRef,
|
|
10
11
|
watchSyncEffect,
|
|
11
12
|
} from 'vue'
|
|
12
13
|
import type { PropType, VNode } from 'vue'
|
|
13
14
|
import { createDispatch, useComponentHost } from './host'
|
|
14
|
-
import { checkedProp } from './props'
|
|
15
|
+
import { checkedProp, vPropValidity } from './props'
|
|
15
16
|
|
|
16
17
|
defineOptions({ inheritAttrs: false })
|
|
17
18
|
|
|
19
|
+
const propValidityContract = {
|
|
20
|
+
props: {
|
|
21
|
+
activation: {
|
|
22
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
23
|
+
required: false,
|
|
24
|
+
target: { attribute: 'activation' },
|
|
25
|
+
description:
|
|
26
|
+
'In auto mode, arrow keys move focus and select the next panel. In manual mode, arrows move focus while Enter or Space selects a panel. Use manual when\n displaying a panel takes time.',
|
|
27
|
+
values: ['auto', 'manual'],
|
|
28
|
+
default: 'auto',
|
|
29
|
+
},
|
|
30
|
+
density: {
|
|
31
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
32
|
+
required: false,
|
|
33
|
+
target: { attribute: 'density' },
|
|
34
|
+
description: 'Compact trades padding and type size for rows that fit more on screen.',
|
|
35
|
+
values: ['comfortable', 'compact'],
|
|
36
|
+
default: 'comfortable',
|
|
37
|
+
},
|
|
38
|
+
label: {
|
|
39
|
+
type: { kind: 'terminal', name: 'string' },
|
|
40
|
+
required: false,
|
|
41
|
+
target: { attribute: 'aria-label' },
|
|
42
|
+
description:
|
|
43
|
+
'The tab list\'s accessible name, announced when focus enters the list. Name what the tabs switch between.',
|
|
44
|
+
default: 'Tabs',
|
|
45
|
+
},
|
|
46
|
+
orientation: {
|
|
47
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
48
|
+
required: false,
|
|
49
|
+
target: { attribute: 'aria-orientation' },
|
|
50
|
+
description:
|
|
51
|
+
'horizontal puts the tabs in a row above the panels, moved between with the Left and Right arrow keys; vertical puts them in a column beside the panels,\n moved between with Up and Down.',
|
|
52
|
+
values: ['horizontal', 'vertical'],
|
|
53
|
+
default: 'horizontal',
|
|
54
|
+
},
|
|
55
|
+
stretch: {
|
|
56
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
57
|
+
required: false,
|
|
58
|
+
target: { attribute: 'stretch' },
|
|
59
|
+
description:
|
|
60
|
+
'Share the full width of the tab list equally between tabs instead of sizing each to its label.',
|
|
61
|
+
default: false,
|
|
62
|
+
},
|
|
63
|
+
value: {
|
|
64
|
+
type: { kind: 'terminal', name: 'string' },
|
|
65
|
+
required: false,
|
|
66
|
+
target: { attribute: 'value' },
|
|
67
|
+
description:
|
|
68
|
+
'The id of the selected panel, initially or when set externally; empty selects the first panel. Choosing a tab updates it from there and reports a select\n event. A panel without an id is given a generated one.',
|
|
69
|
+
default: '',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
}
|
|
18
73
|
const props = defineProps({
|
|
19
74
|
activation: { type: null as unknown as PropType<'auto' | 'manual' | null>, default: 'auto' },
|
|
20
75
|
density: {
|
|
@@ -35,48 +90,36 @@ const checkedProps = computed(() => ({
|
|
|
35
90
|
{ kind: 'terminal', name: 'keyword' },
|
|
36
91
|
false,
|
|
37
92
|
'activation',
|
|
38
|
-
undefined,
|
|
39
|
-
['auto', 'manual'],
|
|
40
93
|
) as 'auto' | 'manual',
|
|
41
94
|
density: checkedProp<'comfortable' | 'compact'>(
|
|
42
95
|
props['density'],
|
|
43
96
|
{ kind: 'terminal', name: 'keyword' },
|
|
44
97
|
false,
|
|
45
98
|
'density',
|
|
46
|
-
undefined,
|
|
47
|
-
['comfortable', 'compact'],
|
|
48
99
|
) as 'comfortable' | 'compact',
|
|
49
100
|
label: checkedProp<string>(
|
|
50
101
|
props['label'],
|
|
51
102
|
{ kind: 'terminal', name: 'string' },
|
|
52
103
|
false,
|
|
53
104
|
'label',
|
|
54
|
-
undefined,
|
|
55
|
-
undefined,
|
|
56
105
|
) as string,
|
|
57
106
|
orientation: checkedProp<'horizontal' | 'vertical'>(
|
|
58
107
|
props['orientation'],
|
|
59
108
|
{ kind: 'terminal', name: 'keyword' },
|
|
60
109
|
false,
|
|
61
110
|
'orientation',
|
|
62
|
-
undefined,
|
|
63
|
-
['horizontal', 'vertical'],
|
|
64
111
|
) as 'horizontal' | 'vertical',
|
|
65
112
|
stretch: checkedProp<boolean>(
|
|
66
113
|
props['stretch'],
|
|
67
114
|
{ kind: 'terminal', name: 'boolean' },
|
|
68
115
|
false,
|
|
69
116
|
'stretch',
|
|
70
|
-
undefined,
|
|
71
|
-
undefined,
|
|
72
117
|
) as boolean,
|
|
73
118
|
value: checkedProp<string>(
|
|
74
119
|
props['value'],
|
|
75
120
|
{ kind: 'terminal', name: 'string' },
|
|
76
121
|
false,
|
|
77
122
|
'value',
|
|
78
|
-
undefined,
|
|
79
|
-
undefined,
|
|
80
123
|
) as string,
|
|
81
124
|
}))
|
|
82
125
|
void checkedProps.value
|
|
@@ -160,6 +203,8 @@ const listElement = useTemplateRef<HTMLElement>('list')
|
|
|
160
203
|
const panelsElement = useTemplateRef<HTMLElement>('panels')
|
|
161
204
|
const internalValue = ref('')
|
|
162
205
|
const tabs = ref<{ id: string; label: string }[]>([])
|
|
206
|
+
provide('html-next:ui-tabs:internalValue', internalValue)
|
|
207
|
+
provide('html-next:ui-tabs:tabs', tabs)
|
|
163
208
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
164
209
|
if (
|
|
165
210
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -254,6 +299,7 @@ function uniqueKeys<T>(
|
|
|
254
299
|
<div
|
|
255
300
|
data-component="ui-tabs"
|
|
256
301
|
v-bind="nativeAttrs($attrs)"
|
|
302
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
257
303
|
:data-activation="reflectedProp('activation', 'activation', checkedProps.activation, undefined, false)"
|
|
258
304
|
:data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
|
|
259
305
|
:data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
|