@threadlabs/looma 0.21.6 → 0.22.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/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/editor/index.js +5 -2
- package/vue/editor/primitives.d.ts +4 -1
- package/vue/host.ts +6 -6
|
@@ -1,13 +1,100 @@
|
|
|
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 {
|
|
3
|
+
import {
|
|
4
|
+
computed,
|
|
5
|
+
defineComponent,
|
|
6
|
+
getCurrentInstance,
|
|
7
|
+
h,
|
|
8
|
+
provide,
|
|
9
|
+
ref,
|
|
10
|
+
watchSyncEffect,
|
|
11
|
+
} from 'vue'
|
|
4
12
|
import type { PropType, VNode } from 'vue'
|
|
5
13
|
import { createDispatch, useComponentHost } from './host'
|
|
6
|
-
import { checkedProp } from './props'
|
|
14
|
+
import { checkedProp, vPropValidity } from './props'
|
|
7
15
|
import UiIcon from './UiIcon.vue'
|
|
8
16
|
|
|
9
17
|
defineOptions({ inheritAttrs: false })
|
|
10
18
|
|
|
19
|
+
const propValidityContract = {
|
|
20
|
+
props: {
|
|
21
|
+
actions: {
|
|
22
|
+
type: {
|
|
23
|
+
kind: 'list',
|
|
24
|
+
item: {
|
|
25
|
+
kind: 'constrained',
|
|
26
|
+
base: { kind: 'terminal', name: 'keyword' },
|
|
27
|
+
values: [
|
|
28
|
+
'align-left',
|
|
29
|
+
'align-center',
|
|
30
|
+
'align-right',
|
|
31
|
+
'background-none',
|
|
32
|
+
'background-gray',
|
|
33
|
+
'background-yellow',
|
|
34
|
+
'background-blue',
|
|
35
|
+
'background-green',
|
|
36
|
+
'background-red',
|
|
37
|
+
'add-row-before',
|
|
38
|
+
'add-row-after',
|
|
39
|
+
'add-column-before',
|
|
40
|
+
'add-column-after',
|
|
41
|
+
'toggle-header-row',
|
|
42
|
+
'toggle-header-column',
|
|
43
|
+
'move-row-up',
|
|
44
|
+
'move-row-down',
|
|
45
|
+
'move-column-left',
|
|
46
|
+
'move-column-right',
|
|
47
|
+
'clear-cells',
|
|
48
|
+
'merge-cells',
|
|
49
|
+
'split-cell',
|
|
50
|
+
'delete-row',
|
|
51
|
+
'delete-column',
|
|
52
|
+
'delete-table',
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
required: false,
|
|
57
|
+
target: { attribute: 'actions' },
|
|
58
|
+
description: 'The complete set of commands the current selection permits.',
|
|
59
|
+
},
|
|
60
|
+
cellAlignment: {
|
|
61
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
62
|
+
required: false,
|
|
63
|
+
target: { attribute: 'cellalignment' },
|
|
64
|
+
description: 'Marks the alignment command that is active for the current cell.',
|
|
65
|
+
values: ['left', 'center', 'right'],
|
|
66
|
+
default: 'left',
|
|
67
|
+
},
|
|
68
|
+
cellBackground: {
|
|
69
|
+
type: { kind: 'terminal', name: 'string' },
|
|
70
|
+
required: false,
|
|
71
|
+
target: { attribute: 'cellbackground' },
|
|
72
|
+
description: 'Identifies the background choice that is active for the current cell.',
|
|
73
|
+
default: '',
|
|
74
|
+
},
|
|
75
|
+
headerColumn: {
|
|
76
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
77
|
+
required: false,
|
|
78
|
+
target: { attribute: 'headercolumn' },
|
|
79
|
+
description: 'Whether the table\'s first column currently uses header cells.',
|
|
80
|
+
default: false,
|
|
81
|
+
},
|
|
82
|
+
headerRow: {
|
|
83
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
84
|
+
required: false,
|
|
85
|
+
target: { attribute: 'headerrow' },
|
|
86
|
+
description: 'Whether the table\'s first row currently uses header cells.',
|
|
87
|
+
default: false,
|
|
88
|
+
},
|
|
89
|
+
open: {
|
|
90
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
91
|
+
required: false,
|
|
92
|
+
target: { attribute: 'open' },
|
|
93
|
+
description: 'Shows the toolbar while a table selection is active.',
|
|
94
|
+
default: false,
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
}
|
|
11
98
|
const props = defineProps({
|
|
12
99
|
actions: {
|
|
13
100
|
type: null as unknown as PropType<
|
|
@@ -117,48 +204,36 @@ const checkedProps = computed(() => ({
|
|
|
117
204
|
},
|
|
118
205
|
false,
|
|
119
206
|
'actions',
|
|
120
|
-
undefined,
|
|
121
|
-
undefined,
|
|
122
207
|
),
|
|
123
208
|
cellAlignment: checkedProp<'left' | 'center' | 'right'>(
|
|
124
209
|
props['cellAlignment'],
|
|
125
210
|
{ kind: 'terminal', name: 'keyword' },
|
|
126
211
|
false,
|
|
127
212
|
'cellAlignment',
|
|
128
|
-
undefined,
|
|
129
|
-
['left', 'center', 'right'],
|
|
130
213
|
) as 'left' | 'center' | 'right',
|
|
131
214
|
cellBackground: checkedProp<string>(
|
|
132
215
|
props['cellBackground'],
|
|
133
216
|
{ kind: 'terminal', name: 'string' },
|
|
134
217
|
false,
|
|
135
218
|
'cellBackground',
|
|
136
|
-
undefined,
|
|
137
|
-
undefined,
|
|
138
219
|
) as string,
|
|
139
220
|
headerColumn: checkedProp<boolean>(
|
|
140
221
|
props['headerColumn'],
|
|
141
222
|
{ kind: 'terminal', name: 'boolean' },
|
|
142
223
|
false,
|
|
143
224
|
'headerColumn',
|
|
144
|
-
undefined,
|
|
145
|
-
undefined,
|
|
146
225
|
) as boolean,
|
|
147
226
|
headerRow: checkedProp<boolean>(
|
|
148
227
|
props['headerRow'],
|
|
149
228
|
{ kind: 'terminal', name: 'boolean' },
|
|
150
229
|
false,
|
|
151
230
|
'headerRow',
|
|
152
|
-
undefined,
|
|
153
|
-
undefined,
|
|
154
231
|
) as boolean,
|
|
155
232
|
open: checkedProp<boolean>(
|
|
156
233
|
props['open'],
|
|
157
234
|
{ kind: 'terminal', name: 'boolean' },
|
|
158
235
|
false,
|
|
159
236
|
'open',
|
|
160
|
-
undefined,
|
|
161
|
-
undefined,
|
|
162
237
|
) as boolean,
|
|
163
238
|
}))
|
|
164
239
|
void checkedProps.value
|
|
@@ -282,6 +357,19 @@ const sections = ref<
|
|
|
282
357
|
>([])
|
|
283
358
|
const hasOverflow = ref(false)
|
|
284
359
|
const overflowOpen = ref(false)
|
|
360
|
+
let guardedPrevious: any
|
|
361
|
+
const guarded = computed(() => {
|
|
362
|
+
if (!(overflowOpen.value == null || typeof overflowOpen.value === 'boolean')) {
|
|
363
|
+
return guardedPrevious
|
|
364
|
+
}
|
|
365
|
+
return guardedPrevious = overflowOpen.value
|
|
366
|
+
})
|
|
367
|
+
provide('html-next:ui-editor-table-toolbar:alignments', alignments)
|
|
368
|
+
provide('html-next:ui-editor-table-toolbar:structure', structure)
|
|
369
|
+
provide('html-next:ui-editor-table-toolbar:swatches', swatches)
|
|
370
|
+
provide('html-next:ui-editor-table-toolbar:sections', sections)
|
|
371
|
+
provide('html-next:ui-editor-table-toolbar:hasOverflow', hasOverflow)
|
|
372
|
+
provide('html-next:ui-editor-table-toolbar:overflowOpen', overflowOpen)
|
|
285
373
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
286
374
|
if (
|
|
287
375
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -393,6 +481,7 @@ function uniqueKeys<T>(
|
|
|
393
481
|
aria-label="Table actions"
|
|
394
482
|
v-bind="nativeAttrs($attrs)"
|
|
395
483
|
:hidden="!checkedProps.open"
|
|
484
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
396
485
|
:data-actions="reflectedProp('actions', 'actions', checkedProps.actions, undefined, false)"
|
|
397
486
|
:data-cell-alignment="reflectedProp('cellAlignment', 'cell-alignment', checkedProps.cellAlignment, undefined, false)"
|
|
398
487
|
:data-cell-background="reflectedProp('cellBackground', 'cell-background', checkedProps.cellBackground, undefined, false)"
|
|
@@ -440,7 +529,7 @@ function uniqueKeys<T>(
|
|
|
440
529
|
class="more"
|
|
441
530
|
data-action="toggle-overflow"
|
|
442
531
|
aria-haspopup="menu"
|
|
443
|
-
:aria-expanded="
|
|
532
|
+
:aria-expanded="guarded"
|
|
444
533
|
>
|
|
445
534
|
<UiIcon name="table" />
|
|
446
535
|
<span>Table options</span>
|
package/vue/UiEditorToolbar.vue
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
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, useTemplateRef, 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
|
+
floating: {
|
|
13
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'floating' },
|
|
16
|
+
description:
|
|
17
|
+
'Shows the toolbar as a floating bar beside the selection rather than pinned to the editor.',
|
|
18
|
+
default: false,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
}
|
|
10
22
|
const props = defineProps({
|
|
11
23
|
floating: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
12
24
|
})
|
|
@@ -16,8 +28,6 @@ const checkedProps = computed(() => ({
|
|
|
16
28
|
{ kind: 'terminal', name: 'boolean' },
|
|
17
29
|
false,
|
|
18
30
|
'floating',
|
|
19
|
-
undefined,
|
|
20
|
-
undefined,
|
|
21
31
|
) as boolean,
|
|
22
32
|
}))
|
|
23
33
|
void checkedProps.value
|
|
@@ -104,6 +114,7 @@ useComponentHost(() => import('../components/ui-editor-toolbar/ui-editor-toolbar
|
|
|
104
114
|
role="toolbar"
|
|
105
115
|
aria-label="Editor toolbar"
|
|
106
116
|
v-bind="nativeAttrs($attrs)"
|
|
117
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
107
118
|
:data-floating="reflectedProp('floating', 'floating', checkedProps.floating, undefined, false)"
|
|
108
119
|
:data-ui-editor-toolbar-state="hostState || undefined"
|
|
109
120
|
ref="root"
|
|
@@ -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
|
+
disabled: {
|
|
12
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'disabled' },
|
|
15
|
+
description:
|
|
16
|
+
'Disables the button, so it cannot be pressed or focused, and gives it a flat muted treatment.',
|
|
17
|
+
default: false,
|
|
18
|
+
},
|
|
19
|
+
label: {
|
|
20
|
+
type: { kind: 'terminal', name: 'string' },
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: 'aria-label' },
|
|
23
|
+
description:
|
|
24
|
+
'The button\'s accessible name. The button usually holds only an icon, so name the action it performs.',
|
|
25
|
+
default: '',
|
|
26
|
+
},
|
|
27
|
+
mobileOnly: {
|
|
28
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
29
|
+
required: false,
|
|
30
|
+
target: { attribute: 'mobileonly' },
|
|
31
|
+
description:
|
|
32
|
+
'Hides the button on viewports 768px wide and wider, for a shortcut that only phones need. Make sure the action is reachable another way at those\n widths.',
|
|
33
|
+
default: false,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}
|
|
9
37
|
const props = defineProps({
|
|
10
38
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
11
39
|
label: { type: null as unknown as PropType<string | null>, default: '' },
|
|
@@ -17,24 +45,18 @@ const checkedProps = computed(() => ({
|
|
|
17
45
|
{ kind: 'terminal', name: 'boolean' },
|
|
18
46
|
false,
|
|
19
47
|
'disabled',
|
|
20
|
-
undefined,
|
|
21
|
-
undefined,
|
|
22
48
|
) as boolean,
|
|
23
49
|
label: checkedProp<string>(
|
|
24
50
|
props['label'],
|
|
25
51
|
{ kind: 'terminal', name: 'string' },
|
|
26
52
|
false,
|
|
27
53
|
'label',
|
|
28
|
-
undefined,
|
|
29
|
-
undefined,
|
|
30
54
|
) as string,
|
|
31
55
|
mobileOnly: checkedProp<boolean>(
|
|
32
56
|
props['mobileOnly'],
|
|
33
57
|
{ kind: 'terminal', name: 'boolean' },
|
|
34
58
|
false,
|
|
35
59
|
'mobileOnly',
|
|
36
|
-
undefined,
|
|
37
|
-
undefined,
|
|
38
60
|
) as boolean,
|
|
39
61
|
}))
|
|
40
62
|
void checkedProps.value
|
|
@@ -107,6 +129,7 @@ const hostState = computed(() =>
|
|
|
107
129
|
v-bind="nativeAttrs($attrs)"
|
|
108
130
|
:aria-label="checkedProps.label ?? undefined"
|
|
109
131
|
:disabled="checkedProps.disabled ?? undefined"
|
|
132
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
110
133
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
111
134
|
:data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
|
|
112
135
|
:data-mobile-only="reflectedProp('mobileOnly', 'mobile-only', checkedProps.mobileOnly, undefined, false)"
|
package/vue/UiFormField.d.ts
CHANGED
|
@@ -38,8 +38,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
38
38
|
default: boolean;
|
|
39
39
|
};
|
|
40
40
|
}>> & Readonly<{}>, {
|
|
41
|
-
disabled: boolean | null;
|
|
42
41
|
invalid: boolean | null;
|
|
42
|
+
disabled: boolean | null;
|
|
43
43
|
required: boolean | null;
|
|
44
44
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
45
45
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
package/vue/UiFormField.vue
CHANGED
|
@@ -1,12 +1,40 @@
|
|
|
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
|
+
disabled: {
|
|
13
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'disabled' },
|
|
16
|
+
description:
|
|
17
|
+
'Disables the field\'s control: the first input, textarea, or select inside it. The field writes this to the control whenever it updates, so set it here\n rather than on the control.',
|
|
18
|
+
default: false,
|
|
19
|
+
},
|
|
20
|
+
invalid: {
|
|
21
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
22
|
+
required: false,
|
|
23
|
+
target: { attribute: 'invalid' },
|
|
24
|
+
description:
|
|
25
|
+
'Marks the field\'s control invalid by setting aria-invalid on it. Only while invalid, the error slot appears and becomes part of the control\'s\n description.',
|
|
26
|
+
default: false,
|
|
27
|
+
},
|
|
28
|
+
required: {
|
|
29
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
30
|
+
required: false,
|
|
31
|
+
target: { attribute: 'required' },
|
|
32
|
+
description:
|
|
33
|
+
'Marks the field\'s control required, for native form validation. Like disabled, it is written to the control, so set it here rather than on the control. It\n adds no visual marker; show one in the label if the form needs it.',
|
|
34
|
+
default: false,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
}
|
|
10
38
|
const props = defineProps({
|
|
11
39
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
12
40
|
invalid: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -18,24 +46,18 @@ const checkedProps = computed(() => ({
|
|
|
18
46
|
{ kind: 'terminal', name: 'boolean' },
|
|
19
47
|
false,
|
|
20
48
|
'disabled',
|
|
21
|
-
undefined,
|
|
22
|
-
undefined,
|
|
23
49
|
) as boolean,
|
|
24
50
|
invalid: checkedProp<boolean>(
|
|
25
51
|
props['invalid'],
|
|
26
52
|
{ kind: 'terminal', name: 'boolean' },
|
|
27
53
|
false,
|
|
28
54
|
'invalid',
|
|
29
|
-
undefined,
|
|
30
|
-
undefined,
|
|
31
55
|
) as boolean,
|
|
32
56
|
required: checkedProp<boolean>(
|
|
33
57
|
props['required'],
|
|
34
58
|
{ kind: 'terminal', name: 'boolean' },
|
|
35
59
|
false,
|
|
36
60
|
'required',
|
|
37
|
-
undefined,
|
|
38
|
-
undefined,
|
|
39
61
|
) as boolean,
|
|
40
62
|
}))
|
|
41
63
|
void checkedProps.value
|
|
@@ -118,6 +140,7 @@ useComponentHost(() => import('../components/ui-form-field/ui-form-field.js'), {
|
|
|
118
140
|
<div
|
|
119
141
|
data-component="ui-form-field"
|
|
120
142
|
v-bind="nativeAttrs($attrs)"
|
|
143
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
121
144
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
122
145
|
:data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
|
|
123
146
|
:data-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
|
package/vue/UiGrid.vue
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
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
|
+
columns: {
|
|
12
|
+
type: { kind: 'terminal', name: 'integer' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'columns' },
|
|
15
|
+
description:
|
|
16
|
+
'Maximum columns when there is room. Omit for no cap. The grid still drops columns as its container narrows; it never forces a fixed column count.',
|
|
17
|
+
},
|
|
18
|
+
gap: {
|
|
19
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
20
|
+
required: false,
|
|
21
|
+
target: { attribute: 'gap' },
|
|
22
|
+
description:
|
|
23
|
+
'Space between cells, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-grid-gap custom property,\n set on the grid itself, overrides it; set on an ancestor, it does nothing.',
|
|
24
|
+
values: ['xs', 's', 'm', 'l', 'xl'],
|
|
25
|
+
},
|
|
26
|
+
min: {
|
|
27
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
28
|
+
required: false,
|
|
29
|
+
target: { attribute: 'min' },
|
|
30
|
+
description:
|
|
31
|
+
'The narrowest a column may get before the grid drops to fewer columns: sm is 12rem (also the default), md is 16rem, and lg is 20rem. The grid fits as many\n equal columns as its width allows, and a single column never overflows a narrower container.',
|
|
32
|
+
values: ['sm', 'md', 'lg'],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
}
|
|
9
36
|
const props = defineProps({
|
|
10
37
|
columns: { type: null as unknown as PropType<number | null>, default: null },
|
|
11
38
|
gap: { type: null as unknown as PropType<'xs' | 's' | 'm' | 'l' | 'xl' | null>, default: null },
|
|
@@ -17,24 +44,18 @@ const checkedProps = computed(() => ({
|
|
|
17
44
|
{ kind: 'terminal', name: 'integer' },
|
|
18
45
|
false,
|
|
19
46
|
'columns',
|
|
20
|
-
undefined,
|
|
21
|
-
undefined,
|
|
22
47
|
),
|
|
23
48
|
gap: checkedProp<'xs' | 's' | 'm' | 'l' | 'xl'>(
|
|
24
49
|
props['gap'],
|
|
25
50
|
{ kind: 'terminal', name: 'keyword' },
|
|
26
51
|
false,
|
|
27
52
|
'gap',
|
|
28
|
-
undefined,
|
|
29
|
-
['xs', 's', 'm', 'l', 'xl'],
|
|
30
53
|
),
|
|
31
54
|
min: checkedProp<'sm' | 'md' | 'lg'>(
|
|
32
55
|
props['min'],
|
|
33
56
|
{ kind: 'terminal', name: 'keyword' },
|
|
34
57
|
false,
|
|
35
58
|
'min',
|
|
36
|
-
undefined,
|
|
37
|
-
['sm', 'md', 'lg'],
|
|
38
59
|
),
|
|
39
60
|
}))
|
|
40
61
|
void checkedProps.value
|
|
@@ -105,6 +126,7 @@ const hostState = computed(() =>
|
|
|
105
126
|
data-component="ui-grid"
|
|
106
127
|
v-bind="nativeAttrs($attrs)"
|
|
107
128
|
:style="{ '--_grid-column-cap': checkedProps.columns ?? undefined }"
|
|
129
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
108
130
|
:data-columns="reflectedProp('columns', 'columns', checkedProps.columns, undefined, false)"
|
|
109
131
|
:data-gap="reflectedProp('gap', 'gap', checkedProps.gap, undefined, false)"
|
|
110
132
|
:data-min="reflectedProp('min', 'min', checkedProps.min, undefined, false)"
|
package/vue/UiIcon.vue
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
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
|
+
name: {
|
|
12
|
+
type: { kind: 'terminal', name: 'string' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'name' },
|
|
15
|
+
description:
|
|
16
|
+
'Which icon to draw, by its name in Looma\'s icon set (LOOMA_ICONS), such as "align-left". An unknown or empty name draws nothing. The icon is hidden from\n assistive technology, so name the control it sits in.',
|
|
17
|
+
default: '',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
}
|
|
9
21
|
const props = defineProps({
|
|
10
22
|
name: { type: null as unknown as PropType<string | null>, default: '' },
|
|
11
23
|
})
|
|
@@ -15,8 +27,6 @@ const checkedProps = computed(() => ({
|
|
|
15
27
|
{ kind: 'terminal', name: 'string' },
|
|
16
28
|
false,
|
|
17
29
|
'name',
|
|
18
|
-
undefined,
|
|
19
|
-
undefined,
|
|
20
30
|
) as string,
|
|
21
31
|
}))
|
|
22
32
|
void checkedProps.value
|
|
@@ -438,6 +448,7 @@ function list(value: unknown): any[] {
|
|
|
438
448
|
data-component="ui-icon"
|
|
439
449
|
aria-hidden="true"
|
|
440
450
|
v-bind="nativeAttrs($attrs)"
|
|
451
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
441
452
|
:data-name="reflectedProp('name', 'name', checkedProps.name, undefined, false)"
|
|
442
453
|
><svg
|
|
443
454
|
viewBox="0 0 24 24"
|
package/vue/UiIconButton.vue
CHANGED
|
@@ -1,13 +1,79 @@
|
|
|
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
|
import UiSpinner from './UiSpinner.vue'
|
|
8
8
|
|
|
9
9
|
defineOptions({ inheritAttrs: false })
|
|
10
10
|
|
|
11
|
+
const propValidityContract = {
|
|
12
|
+
props: {
|
|
13
|
+
anticipatory: {
|
|
14
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
15
|
+
required: false,
|
|
16
|
+
target: { attribute: 'anticipatory' },
|
|
17
|
+
description:
|
|
18
|
+
'Keeps the button out of sight until it is wanted: at rest a fine pointer sees only a small guide dot, and the button appears on hover, on focus, or when\n the pointer comes near inside a ui-affordance-scope. Touch devices and the solid variant always show it.',
|
|
19
|
+
default: false,
|
|
20
|
+
},
|
|
21
|
+
disabled: {
|
|
22
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
23
|
+
required: false,
|
|
24
|
+
target: { attribute: 'disabled' },
|
|
25
|
+
description:
|
|
26
|
+
'Disables the button, so it cannot be pressed or focused, and gives it a flat neutral surface and muted icon.',
|
|
27
|
+
default: false,
|
|
28
|
+
},
|
|
29
|
+
label: {
|
|
30
|
+
type: { kind: 'terminal', name: 'string' },
|
|
31
|
+
required: false,
|
|
32
|
+
target: { attribute: 'aria-label' },
|
|
33
|
+
description: 'Accessible name for the icon.',
|
|
34
|
+
},
|
|
35
|
+
loading: {
|
|
36
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
37
|
+
required: false,
|
|
38
|
+
target: { attribute: 'loading' },
|
|
39
|
+
description:
|
|
40
|
+
'Keeps the button focusable and named while work is in progress. It shows a spinner, states aria-disabled and aria-busy, and prevents activation until\n cleared.',
|
|
41
|
+
default: false,
|
|
42
|
+
},
|
|
43
|
+
pending: {
|
|
44
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
45
|
+
required: false,
|
|
46
|
+
target: { attribute: 'pending' },
|
|
47
|
+
description: 'Deprecated alias for loading.',
|
|
48
|
+
default: false,
|
|
49
|
+
},
|
|
50
|
+
round: {
|
|
51
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
52
|
+
required: false,
|
|
53
|
+
target: { attribute: 'round' },
|
|
54
|
+
description: 'Use a fully circular shape.',
|
|
55
|
+
default: false,
|
|
56
|
+
},
|
|
57
|
+
size: {
|
|
58
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
59
|
+
required: false,
|
|
60
|
+
target: { attribute: 'size' },
|
|
61
|
+
description:
|
|
62
|
+
'Button and icon size together: sm is 1.75rem with a small icon, md is 2rem, and lg is 2.5rem with a large icon. On touch, every size gets an invisible hit\n area of at least 44px.',
|
|
63
|
+
values: ['sm', 'md', 'lg'],
|
|
64
|
+
default: 'md',
|
|
65
|
+
},
|
|
66
|
+
variant: {
|
|
67
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
68
|
+
required: false,
|
|
69
|
+
target: { attribute: 'variant' },
|
|
70
|
+
description:
|
|
71
|
+
'Emphasis. ghost shows only the icon until it is hovered, for toolbars and dense rows; outline adds a border on the default surface; solid fills with the\n accent colour, for the one primary action in a group.',
|
|
72
|
+
values: ['ghost', 'outline', 'solid'],
|
|
73
|
+
default: 'ghost',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
}
|
|
11
77
|
const props = defineProps({
|
|
12
78
|
anticipatory: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
13
79
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -27,64 +93,43 @@ const checkedProps = computed(() => ({
|
|
|
27
93
|
{ kind: 'terminal', name: 'boolean' },
|
|
28
94
|
false,
|
|
29
95
|
'anticipatory',
|
|
30
|
-
undefined,
|
|
31
|
-
undefined,
|
|
32
96
|
) as boolean,
|
|
33
97
|
disabled: checkedProp<boolean>(
|
|
34
98
|
props['disabled'],
|
|
35
99
|
{ kind: 'terminal', name: 'boolean' },
|
|
36
100
|
false,
|
|
37
101
|
'disabled',
|
|
38
|
-
undefined,
|
|
39
|
-
undefined,
|
|
40
102
|
) as boolean,
|
|
41
|
-
label: checkedProp<string>(
|
|
42
|
-
props['label'],
|
|
43
|
-
{ kind: 'terminal', name: 'string' },
|
|
44
|
-
false,
|
|
45
|
-
'label',
|
|
46
|
-
undefined,
|
|
47
|
-
undefined,
|
|
48
|
-
),
|
|
103
|
+
label: checkedProp<string>(props['label'], { kind: 'terminal', name: 'string' }, false, 'label'),
|
|
49
104
|
loading: checkedProp<boolean>(
|
|
50
105
|
props['loading'],
|
|
51
106
|
{ kind: 'terminal', name: 'boolean' },
|
|
52
107
|
false,
|
|
53
108
|
'loading',
|
|
54
|
-
undefined,
|
|
55
|
-
undefined,
|
|
56
109
|
) as boolean,
|
|
57
110
|
pending: checkedProp<boolean>(
|
|
58
111
|
props['pending'],
|
|
59
112
|
{ kind: 'terminal', name: 'boolean' },
|
|
60
113
|
false,
|
|
61
114
|
'pending',
|
|
62
|
-
undefined,
|
|
63
|
-
undefined,
|
|
64
115
|
) as boolean,
|
|
65
116
|
round: checkedProp<boolean>(
|
|
66
117
|
props['round'],
|
|
67
118
|
{ kind: 'terminal', name: 'boolean' },
|
|
68
119
|
false,
|
|
69
120
|
'round',
|
|
70
|
-
undefined,
|
|
71
|
-
undefined,
|
|
72
121
|
) as boolean,
|
|
73
122
|
size: checkedProp<'sm' | 'md' | 'lg'>(
|
|
74
123
|
props['size'],
|
|
75
124
|
{ kind: 'terminal', name: 'keyword' },
|
|
76
125
|
false,
|
|
77
126
|
'size',
|
|
78
|
-
undefined,
|
|
79
|
-
['sm', 'md', 'lg'],
|
|
80
127
|
) as 'sm' | 'md' | 'lg',
|
|
81
128
|
variant: checkedProp<'ghost' | 'outline' | 'solid'>(
|
|
82
129
|
props['variant'],
|
|
83
130
|
{ kind: 'terminal', name: 'keyword' },
|
|
84
131
|
false,
|
|
85
132
|
'variant',
|
|
86
|
-
undefined,
|
|
87
|
-
['ghost', 'outline', 'solid'],
|
|
88
133
|
) as 'ghost' | 'outline' | 'solid',
|
|
89
134
|
}))
|
|
90
135
|
void checkedProps.value
|
|
@@ -205,6 +250,7 @@ function attribute(value: unknown): any {
|
|
|
205
250
|
],
|
|
206
251
|
)"
|
|
207
252
|
:aria-busy="checkedProps.loading || checkedProps.pending"
|
|
253
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
208
254
|
:data-anticipatory="reflectedProp('anticipatory', 'anticipatory', checkedProps.anticipatory, undefined, false)"
|
|
209
255
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
210
256
|
:data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
|