@threadlabs/looma 0.5.2 → 0.6.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/shared/overlay.js +3 -0
- package/components/ui-button/ui-button.html +46 -26
- package/components/ui-callout/ui-callout.html +1 -1
- package/components/ui-checkbox/ui-checkbox.html +1 -1
- package/components/ui-cluster/ui-cluster.html +6 -6
- package/components/ui-combobox/ui-combobox.html +23 -23
- package/components/ui-container/ui-container.html +4 -4
- package/components/ui-context-menu/ui-context-menu.html +2 -2
- package/components/ui-dialog/ui-dialog.html +12 -12
- package/components/ui-disclosure/ui-disclosure.html +19 -4
- package/components/ui-editable/ui-editable.html +6 -6
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +20 -20
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +25 -25
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +39 -39
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +20 -20
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +48 -48
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +34 -34
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +9 -9
- package/components/ui-floating-action-button/ui-floating-action-button.html +16 -22
- package/components/ui-grid/ui-grid.html +6 -6
- package/components/ui-icon-button/ui-icon-button.html +45 -40
- package/components/ui-input/ui-input.html +2 -2
- package/components/ui-menu/ui-menu.html +15 -4
- package/components/ui-menu-item/ui-menu-item.html +5 -5
- package/components/ui-popover/ui-popover.html +3 -3
- package/components/ui-reel/ui-reel.html +6 -6
- package/components/ui-search-result-row/ui-search-result-row.html +9 -9
- package/components/ui-search-shell/ui-search-shell.html +3 -3
- package/components/ui-select/ui-select.html +2 -2
- package/components/ui-sidebar/ui-sidebar.html +11 -11
- package/components/ui-stack/ui-stack.html +6 -6
- package/components/ui-switcher/ui-switcher.html +6 -6
- package/components/ui-tabs/ui-tabs.html +18 -4
- package/components/ui-textarea/ui-textarea.html +2 -2
- package/components/ui-toast-region/ui-toast-region.html +2 -2
- package/components/ui-tooltip/ui-tooltip.html +1 -1
- package/components/ui-top-bar/ui-top-bar.html +5 -5
- package/components/ui-tree/ui-tree.html +7 -0
- package/components/ui-tree-item/ui-tree-item.html +15 -7
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-button.css +47 -26
- package/styles/ui-callout.css +1 -1
- package/styles/ui-checkbox.css +1 -1
- package/styles/ui-cluster.css +6 -6
- package/styles/ui-combobox.css +23 -23
- package/styles/ui-container.css +4 -4
- package/styles/ui-context-menu.css +2 -2
- package/styles/ui-dialog.css +12 -12
- package/styles/ui-disclosure.css +22 -6
- package/styles/ui-editable.css +6 -6
- package/styles/ui-editor-insert-table-grid.css +20 -20
- package/styles/ui-editor-mention-menu.css +25 -25
- package/styles/ui-editor-slash-menu.css +39 -39
- package/styles/ui-editor-table-context-menu.css +20 -20
- package/styles/ui-editor-table-overlay.css +48 -48
- package/styles/ui-editor-table-toolbar.css +34 -34
- package/styles/ui-editor-toolbar.css +9 -9
- package/styles/ui-floating-action-button.css +16 -22
- package/styles/ui-grid.css +6 -6
- package/styles/ui-icon-button.css +45 -40
- package/styles/ui-input.css +2 -2
- package/styles/ui-menu-item.css +5 -5
- package/styles/ui-menu.css +18 -6
- package/styles/ui-popover.css +3 -3
- package/styles/ui-reel.css +6 -6
- package/styles/ui-search-result-row.css +9 -9
- package/styles/ui-search-shell.css +3 -3
- package/styles/ui-select.css +2 -2
- package/styles/ui-sidebar.css +11 -11
- package/styles/ui-stack.css +6 -6
- package/styles/ui-switcher.css +6 -6
- package/styles/ui-tabs.css +20 -6
- package/styles/ui-textarea.css +2 -2
- package/styles/ui-toast-region.css +2 -2
- package/styles/ui-tooltip.css +1 -1
- package/styles/ui-top-bar.css +5 -5
- package/styles/ui-tree-item.css +21 -8
- package/styles/ui-tree.css +7 -1
- package/theme-dark.css +46 -103
- package/theme-high-contrast.css +22 -22
- package/theme-light.css +17 -41
- package/tokens.css +154 -201
- package/vanilla/UiButton.d.ts +1 -0
- package/vanilla/UiButton.js +1 -1
- package/vanilla/UiDisclosure.d.ts +1 -0
- package/vanilla/UiDisclosure.js +1 -1
- package/vanilla/UiMenu.d.ts +1 -0
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -0
- package/vanilla/UiTabs.js +1 -1
- package/vanilla/UiTree.d.ts +1 -0
- package/vanilla/UiTree.js +1 -1
- package/vue/UiButton.d.ts +2 -0
- package/vue/UiButton.vue +56 -41
- package/vue/UiCallout.vue +1 -1
- package/vue/UiCheckbox.vue +1 -1
- package/vue/UiCluster.vue +6 -6
- package/vue/UiCombobox.vue +23 -23
- package/vue/UiContainer.vue +4 -4
- package/vue/UiContextMenu.vue +2 -2
- package/vue/UiDialog.vue +12 -12
- package/vue/UiDisclosure.d.ts +2 -0
- package/vue/UiDisclosure.vue +21 -4
- package/vue/UiEditable.vue +6 -6
- package/vue/UiEditorInsertTableGrid.vue +20 -20
- package/vue/UiEditorMentionMenu.vue +25 -25
- package/vue/UiEditorSlashMenu.vue +39 -39
- package/vue/UiEditorTableContextMenu.vue +20 -20
- package/vue/UiEditorTableOverlay.vue +48 -57
- package/vue/UiEditorTableToolbar.vue +34 -34
- package/vue/UiEditorToolbar.vue +9 -9
- package/vue/UiFloatingActionButton.vue +17 -22
- package/vue/UiGrid.vue +6 -6
- package/vue/UiIconButton.vue +45 -55
- package/vue/UiInput.vue +2 -2
- package/vue/UiMenu.d.ts +2 -0
- package/vue/UiMenu.vue +17 -7
- package/vue/UiMenuItem.vue +6 -5
- package/vue/UiPopover.vue +3 -3
- package/vue/UiReel.vue +6 -6
- package/vue/UiSearchResultRow.vue +10 -13
- package/vue/UiSearchShell.vue +3 -3
- package/vue/UiSelect.vue +2 -2
- package/vue/UiSidebar.vue +11 -16
- package/vue/UiStack.vue +6 -6
- package/vue/UiSwitcher.vue +6 -6
- package/vue/UiTabs.d.ts +2 -0
- package/vue/UiTabs.vue +21 -4
- package/vue/UiTextarea.vue +2 -2
- package/vue/UiToastRegion.vue +2 -2
- package/vue/UiTooltip.vue +1 -1
- package/vue/UiTopBar.vue +5 -5
- package/vue/UiTree.d.ts +2 -0
- package/vue/UiTree.vue +24 -1
- package/vue/UiTreeItem.vue +16 -8
- package/vue/chunks/UiButton.js +4 -2
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +3 -2
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableOverlay.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiMenu.js +3 -2
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSelect.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTabs.js +7 -2
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToastRegion.js +1 -1
- package/vue/chunks/UiTooltip.js +1 -1
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +8 -2
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +1114 -1090
- package/vue/editor/LoomaEditor.d.ts +11 -0
- package/vue/editor/index.js +17 -0
package/vanilla/UiMenu.js
CHANGED
|
@@ -3,7 +3,7 @@ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
|
|
|
3
3
|
import * as controller from "../components/ui-menu/ui-menu.js";
|
|
4
4
|
import "../styles/ui-menu.css";
|
|
5
5
|
|
|
6
|
-
const definition = {...{"contract":{"tag":"ui-menu","props":{"for":{"type":"string","required":false,"target":{"attribute":"for"},"default":""},"open":{"type":"boolean","required":false,"target":{"attribute":"open"},"default":false},"placement":{"type":"string","required":false,"target":{"attribute":"placement"},"default":"bottom-start"}}},"template":{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"role","value":"menu"},{"kind":"literal","name":"aria-orientation","value":"vertical"}],"children":[{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"surface"}],"children":[{"kind":"slot"}]}]},"declarations":[{"kind":"state","name":"internalOpen","expression":{"source":"false","ast":{"kind":"literal","value":false},"dependencies":[]}},{"kind":"event","name":"select","type":"object({ value: string, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"open","type":"object({ open: boolean, reason: action | programmatic, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"close","type":"object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
|
|
6
|
+
const definition = {...{"contract":{"tag":"ui-menu","props":{"density":{"type":{"enum":["comfortable","compact"]},"required":false,"target":{"attribute":"density"},"default":"comfortable"},"for":{"type":"string","required":false,"target":{"attribute":"for"},"default":""},"open":{"type":"boolean","required":false,"target":{"attribute":"open"},"default":false},"placement":{"type":"string","required":false,"target":{"attribute":"placement"},"default":"bottom-start"}}},"template":{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"role","value":"menu"},{"kind":"literal","name":"aria-orientation","value":"vertical"}],"children":[{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"surface"}],"children":[{"kind":"slot"}]}]},"declarations":[{"kind":"state","name":"internalOpen","expression":{"source":"false","ast":{"kind":"literal","value":false},"dependencies":[]}},{"kind":"event","name":"select","type":"object({ value: string, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"open","type":"object({ open: boolean, reason: action | programmatic, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"close","type":"object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
|
|
7
7
|
|
|
8
8
|
export function createUiMenu(options = {}) {
|
|
9
9
|
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
package/vanilla/UiTabs.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface UiTabsElement extends HTMLDivElement {
|
|
|
7
7
|
removeEventListener<K extends keyof UiTabsEventMap>(type: K, listener: (this: UiTabsElement, event: UiTabsEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
8
8
|
}
|
|
9
9
|
export interface UiTabsProps {
|
|
10
|
+
density?: "comfortable" | "compact" | null;
|
|
10
11
|
label?: string | null;
|
|
11
12
|
orientation?: "horizontal" | "vertical" | null;
|
|
12
13
|
stretch?: boolean | null;
|
package/vanilla/UiTabs.js
CHANGED
|
@@ -3,7 +3,7 @@ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
|
|
|
3
3
|
import * as controller from "../components/ui-tabs/ui-tabs.js";
|
|
4
4
|
import "../styles/ui-tabs.css";
|
|
5
5
|
|
|
6
|
-
const definition = {...{"contract":{"tag":"ui-tabs","props":{"label":{"type":"string","required":false,"target":{"attribute":"aria-label"},"default":"Tabs"},"orientation":{"type":{"enum":["horizontal","vertical"]},"required":false,"target":{"attribute":"aria-orientation"},"default":"horizontal"},"stretch":{"type":"boolean","required":false,"target":{"attribute":"stretch"},"default":false},"value":{"type":"string","required":false,"target":{"attribute":"value"},"default":""}}},"template":{"kind":"element","name":"div","attributes":[],"children":[{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"list"},{"kind":"literal","name":"role","value":"tablist"},{"kind":"attribute","name":"aria-label","expression":"label","expressionPlan":{"source":"label","ast":{"kind":"id","name":"label"},"dependencies":["label"]}},{"kind":"attribute","name":"aria-orientation","expression":"orientation","expressionPlan":{"source":"orientation","ast":{"kind":"id","name":"orientation"},"dependencies":["orientation"]}}],"children":[{"kind":"element","name":"button","attributes":[{"kind":"literal","name":"type","value":"button"},{"kind":"literal","name":"role","value":"tab"},{"kind":"attribute","name":"id","expression":"format('%s-tab', tab.id)","expressionPlan":{"source":"format('%s-tab', tab.id)","ast":{"kind":"call","fn":"format","args":[{"kind":"literal","value":"%s-tab"},{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"}]},"dependencies":["tab.id"]}},{"kind":"attribute","name":"value","expression":"tab.id","expressionPlan":{"source":"tab.id","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"dependencies":["tab.id"]}},{"kind":"attribute","name":"aria-controls","expression":"tab.id","expressionPlan":{"source":"tab.id","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"dependencies":["tab.id"]}},{"kind":"attribute","name":"aria-selected","expression":"tab.id = internalValue","expressionPlan":{"source":"tab.id = internalValue","ast":{"kind":"binary","op":"=","left":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"right":{"kind":"id","name":"internalValue"}},"dependencies":["internalValue","tab.id"]}},{"kind":"directive","name":"value","expression":"tab.label","expressionPlan":{"source":"tab.label","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"label"},"dependencies":["tab.label"]}}],"children":[],"flow":{"kind":"each","item":"tab","list":"tabs","listPlan":{"source":"tabs","ast":{"kind":"id","name":"tabs"},"dependencies":["tabs"]},"key":"tab.id","keyPlan":{"source":"tab.id","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"dependencies":["tab.id"]}}}],"ref":"list"},{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"panels"}],"children":[{"kind":"slot"}],"ref":"panels"}]},"declarations":[{"kind":"state","name":"internalValue","expression":{"source":"''","ast":{"kind":"literal","value":""},"dependencies":[]}},{"kind":"state","name":"tabs","type":"list(object({ id: string, label: string }))","expression":{"source":"[]","ast":{"kind":"array","items":[]},"dependencies":[]}},{"kind":"event","name":"select","type":"object({ value: string, previousValue: string, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
|
|
6
|
+
const definition = {...{"contract":{"tag":"ui-tabs","props":{"density":{"type":{"enum":["comfortable","compact"]},"required":false,"target":{"attribute":"density"},"default":"comfortable"},"label":{"type":"string","required":false,"target":{"attribute":"aria-label"},"default":"Tabs"},"orientation":{"type":{"enum":["horizontal","vertical"]},"required":false,"target":{"attribute":"aria-orientation"},"default":"horizontal"},"stretch":{"type":"boolean","required":false,"target":{"attribute":"stretch"},"default":false},"value":{"type":"string","required":false,"target":{"attribute":"value"},"default":""}}},"template":{"kind":"element","name":"div","attributes":[],"children":[{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"list"},{"kind":"literal","name":"role","value":"tablist"},{"kind":"attribute","name":"aria-label","expression":"label","expressionPlan":{"source":"label","ast":{"kind":"id","name":"label"},"dependencies":["label"]}},{"kind":"attribute","name":"aria-orientation","expression":"orientation","expressionPlan":{"source":"orientation","ast":{"kind":"id","name":"orientation"},"dependencies":["orientation"]}}],"children":[{"kind":"element","name":"button","attributes":[{"kind":"literal","name":"type","value":"button"},{"kind":"literal","name":"role","value":"tab"},{"kind":"attribute","name":"id","expression":"format('%s-tab', tab.id)","expressionPlan":{"source":"format('%s-tab', tab.id)","ast":{"kind":"call","fn":"format","args":[{"kind":"literal","value":"%s-tab"},{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"}]},"dependencies":["tab.id"]}},{"kind":"attribute","name":"value","expression":"tab.id","expressionPlan":{"source":"tab.id","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"dependencies":["tab.id"]}},{"kind":"attribute","name":"aria-controls","expression":"tab.id","expressionPlan":{"source":"tab.id","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"dependencies":["tab.id"]}},{"kind":"attribute","name":"aria-selected","expression":"tab.id = internalValue","expressionPlan":{"source":"tab.id = internalValue","ast":{"kind":"binary","op":"=","left":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"right":{"kind":"id","name":"internalValue"}},"dependencies":["internalValue","tab.id"]}},{"kind":"directive","name":"value","expression":"tab.label","expressionPlan":{"source":"tab.label","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"label"},"dependencies":["tab.label"]}}],"children":[],"flow":{"kind":"each","item":"tab","list":"tabs","listPlan":{"source":"tabs","ast":{"kind":"id","name":"tabs"},"dependencies":["tabs"]},"key":"tab.id","keyPlan":{"source":"tab.id","ast":{"kind":"member","object":{"kind":"id","name":"tab"},"key":"id"},"dependencies":["tab.id"]}}}],"ref":"list"},{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"class","value":"panels"}],"children":[{"kind":"slot"}],"ref":"panels"}]},"declarations":[{"kind":"state","name":"internalValue","expression":{"source":"''","ast":{"kind":"literal","value":""},"dependencies":[]}},{"kind":"state","name":"tabs","type":"list(object({ id: string, label: string }))","expression":{"source":"[]","ast":{"kind":"array","items":[]},"dependencies":[]}},{"kind":"event","name":"select","type":"object({ value: string, previousValue: string, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
|
|
7
7
|
|
|
8
8
|
export function createUiTabs(options = {}) {
|
|
9
9
|
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
package/vanilla/UiTree.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface UiTreeElement extends HTMLDivElement {
|
|
|
8
8
|
removeEventListener<K extends keyof UiTreeEventMap>(type: K, listener: (this: UiTreeElement, event: UiTreeEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
9
9
|
}
|
|
10
10
|
export interface UiTreeProps {
|
|
11
|
+
density?: "comfortable" | "compact" | null;
|
|
11
12
|
hoverExpandDelay?: number | null;
|
|
12
13
|
label?: string | null;
|
|
13
14
|
maxDepth?: number | null;
|
package/vanilla/UiTree.js
CHANGED
|
@@ -3,7 +3,7 @@ import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
|
|
|
3
3
|
import * as controller from "../components/ui-tree/ui-tree.js";
|
|
4
4
|
import "../styles/ui-tree.css";
|
|
5
5
|
|
|
6
|
-
const definition = {...{"contract":{"tag":"ui-tree","props":{"hoverExpandDelay":{"type":"number","required":false,"target":{"attribute":"hoverexpanddelay"},"default":700},"label":{"type":"string","required":false,"target":{"attribute":"label"},"default":"Tree"},"maxDepth":{"type":"number","required":false,"target":{"attribute":"maxdepth"},"default":0}}},"template":{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"role","value":"tree"}],"children":[{"kind":"slot"}]},"declarations":[{"kind":"event","name":"reorder","type":"object({ sourceId: string, targetId: string, position: before | inside | after, sourceType: string, targetType: string, sourceScope: string, targetScope: string, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"reorder-rejected","type":"object({ sourceId: string, targetId: string, position: before | inside | after, reason: max-depth, maxDepth: integer, resultingDepth: integer, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
|
|
6
|
+
const definition = {...{"contract":{"tag":"ui-tree","props":{"density":{"type":{"enum":["comfortable","compact"]},"required":false,"target":{"attribute":"density"},"default":"comfortable"},"hoverExpandDelay":{"type":"number","required":false,"target":{"attribute":"hoverexpanddelay"},"default":700},"label":{"type":"string","required":false,"target":{"attribute":"label"},"default":"Tree"},"maxDepth":{"type":"number","required":false,"target":{"attribute":"maxdepth"},"default":0}}},"template":{"kind":"element","name":"div","attributes":[{"kind":"literal","name":"role","value":"tree"}],"children":[{"kind":"slot"}]},"declarations":[{"kind":"event","name":"reorder","type":"object({ sourceId: string, targetId: string, position: before | inside | after, sourceType: string, targetType: string, sourceScope: string, targetScope: string, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false},{"kind":"event","name":"reorder-rejected","type":"object({ sourceId: string, targetId: string, position: before | inside | after, reason: max-depth, maxDepth: integer, resultingDepth: integer, trigger: keyboard | pointer | programmatic })","bubbles":true,"composed":true,"cancelable":false}],"root":{"kind":"native","element":"div","choices":["div"]}},source:{file:import.meta.url},css:""};
|
|
7
7
|
|
|
8
8
|
export function createUiTree(options = {}) {
|
|
9
9
|
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
package/vue/UiButton.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ type __VLS_Props = {
|
|
|
3
3
|
disabled?: boolean;
|
|
4
4
|
size?: 'sm' | 'md' | 'lg';
|
|
5
5
|
stretch?: boolean;
|
|
6
|
+
tone?: 'neutral' | 'accent';
|
|
6
7
|
variant?: 'outline' | 'solid' | 'danger' | 'ghost' | 'link';
|
|
7
8
|
};
|
|
8
9
|
declare var __VLS_1: {};
|
|
@@ -10,6 +11,7 @@ type __VLS_Slots = {} & {
|
|
|
10
11
|
default?: (props: typeof __VLS_1) => any;
|
|
11
12
|
};
|
|
12
13
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
+
tone: "neutral" | "accent";
|
|
13
15
|
variant: "outline" | "solid" | "danger" | "ghost" | "link";
|
|
14
16
|
align: "center" | "start";
|
|
15
17
|
disabled: boolean;
|
package/vue/UiButton.vue
CHANGED
|
@@ -10,6 +10,7 @@ const props = withDefaults(
|
|
|
10
10
|
disabled?: boolean
|
|
11
11
|
size?: 'sm' | 'md' | 'lg'
|
|
12
12
|
stretch?: boolean
|
|
13
|
+
tone?: 'neutral' | 'accent'
|
|
13
14
|
variant?: 'outline' | 'solid' | 'danger' | 'ghost' | 'link'
|
|
14
15
|
}>(),
|
|
15
16
|
{
|
|
@@ -17,6 +18,7 @@ const props = withDefaults(
|
|
|
17
18
|
disabled: false,
|
|
18
19
|
size: 'md',
|
|
19
20
|
stretch: false,
|
|
21
|
+
tone: 'neutral',
|
|
20
22
|
variant: 'outline',
|
|
21
23
|
},
|
|
22
24
|
)
|
|
@@ -28,6 +30,7 @@ const hostState = computed(() =>
|
|
|
28
30
|
props.align && `align align=${props.align}`,
|
|
29
31
|
props.stretch && 'stretch',
|
|
30
32
|
props.size && `size size=${props.size}`,
|
|
33
|
+
props.tone && `tone tone=${props.tone}`,
|
|
31
34
|
].filter(Boolean).join(' ')
|
|
32
35
|
)
|
|
33
36
|
</script>
|
|
@@ -69,16 +72,16 @@ const hostState = computed(() =>
|
|
|
69
72
|
|
|
70
73
|
[data-component~="ui-button"] {
|
|
71
74
|
appearance: none;
|
|
72
|
-
min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md
|
|
75
|
+
min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
|
|
73
76
|
border: 1px solid var(--ui-button-border, var(--ui-border-strong));
|
|
74
|
-
border-radius: var(--ui-button-radius, var(--ui-radius-
|
|
77
|
+
border-radius: var(--ui-button-radius, var(--ui-radius-md));
|
|
75
78
|
background: var(--ui-button-surface, var(--ui-surface-elevated));
|
|
76
79
|
color: var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
|
|
77
80
|
font: inherit;
|
|
78
|
-
font-weight: var(--ui-font-medium
|
|
81
|
+
font-weight: var(--ui-font-medium);
|
|
79
82
|
line-height: var(--ui-line-height-tight);
|
|
80
83
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
81
|
-
background-image: var(--ui-raised-highlight
|
|
84
|
+
background-image: var(--ui-raised-highlight);
|
|
82
85
|
box-shadow: var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs)));
|
|
83
86
|
cursor: pointer;
|
|
84
87
|
transition:
|
|
@@ -98,13 +101,13 @@ const hostState = computed(() =>
|
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
[data-component~="ui-button"][data-ui-button-state~="size=sm"] {
|
|
101
|
-
min-block-size: var(--ui-control-size-sm
|
|
104
|
+
min-block-size: var(--ui-control-size-sm);
|
|
102
105
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
103
106
|
font-size: 0.875rem;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
[data-component~="ui-button"][data-ui-button-state~="size=lg"] {
|
|
107
|
-
min-block-size: var(--ui-control-size-lg
|
|
110
|
+
min-block-size: var(--ui-control-size-lg);
|
|
108
111
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
109
112
|
font-size: 1rem;
|
|
110
113
|
}
|
|
@@ -166,6 +169,26 @@ const hostState = computed(() =>
|
|
|
166
169
|
transform: translateY(0);
|
|
167
170
|
}
|
|
168
171
|
|
|
172
|
+
/* An accent-tinted secondary action: the outline, ghost, and link variants in the accent colour.
|
|
173
|
+
Solid and danger already carry their own intent. */
|
|
174
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=accent"][data-component~="ui-button"][data-ui-button-state~="variant=outline"] {
|
|
175
|
+
border-color: var(--ui-button-accent-border, var(--ui-accent));
|
|
176
|
+
background: var(--ui-button-accent-surface, var(--ui-accent-subtle));
|
|
177
|
+
color: var(--ui-button-accent-text, var(--ui-accent-active));
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=accent"][data-component~="ui-button"][data-ui-button-state~="variant=outline"]:hover:enabled {
|
|
181
|
+
border-color: var(--ui-button-accent-hover-border, var(--ui-accent-hover));
|
|
182
|
+
background: var(
|
|
183
|
+
--ui-button-accent-hover-surface,
|
|
184
|
+
color-mix(in srgb, var(--ui-accent) 16%, var(--ui-surface))
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
[data-component~="ui-button"][data-ui-button-state~="tone=accent"]:is([data-component~="ui-button"][data-ui-button-state~="variant=ghost"], [data-component~="ui-button"][data-ui-button-state~="variant=link"]) {
|
|
189
|
+
color: var(--ui-button-accent-text, var(--ui-accent-active));
|
|
190
|
+
}
|
|
191
|
+
|
|
169
192
|
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"] {
|
|
170
193
|
border-color: transparent;
|
|
171
194
|
background: transparent;
|
|
@@ -175,12 +198,18 @@ const hostState = computed(() =>
|
|
|
175
198
|
|
|
176
199
|
/* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
|
|
177
200
|
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:hover:enabled {
|
|
178
|
-
background: var(
|
|
201
|
+
background: var(
|
|
202
|
+
--ui-button-ghost-hover-surface,
|
|
203
|
+
color-mix(in srgb, currentColor 8%, transparent)
|
|
204
|
+
);
|
|
179
205
|
border-color: transparent;
|
|
180
206
|
}
|
|
181
207
|
|
|
182
208
|
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:active:enabled {
|
|
183
|
-
background: var(
|
|
209
|
+
background: var(
|
|
210
|
+
--ui-button-ghost-active-surface,
|
|
211
|
+
color-mix(in srgb, currentColor 14%, transparent)
|
|
212
|
+
);
|
|
184
213
|
border-color: transparent;
|
|
185
214
|
}
|
|
186
215
|
|
|
@@ -200,49 +229,34 @@ const hostState = computed(() =>
|
|
|
200
229
|
|
|
201
230
|
/* Disabled colours fall back to each variant's own; ghost and link take only the text colour. */
|
|
202
231
|
[data-component~="ui-button"]:disabled {
|
|
203
|
-
opacity: var(--ui-button-disabled-opacity,
|
|
232
|
+
opacity: var(--ui-button-disabled-opacity, 1);
|
|
204
233
|
cursor: not-allowed;
|
|
205
|
-
border-color: var(--ui-button-disabled-border, var(--ui-
|
|
206
|
-
background-color: var(
|
|
207
|
-
|
|
208
|
-
var(--ui-button-surface, var(--ui-surface-elevated))
|
|
209
|
-
);
|
|
210
|
-
color: var(
|
|
211
|
-
--ui-button-disabled-text,
|
|
212
|
-
var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary)))
|
|
213
|
-
);
|
|
234
|
+
border-color: var(--ui-button-disabled-border, var(--ui-border));
|
|
235
|
+
background-color: var(--ui-button-disabled-surface, var(--ui-disabled-surface));
|
|
236
|
+
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
|
214
237
|
}
|
|
215
238
|
|
|
216
239
|
[data-component~="ui-button"][data-ui-button-state~="variant=solid"]:disabled {
|
|
217
|
-
border-color: var(
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
);
|
|
221
|
-
background-color: var(
|
|
222
|
-
--ui-button-disabled-surface,
|
|
223
|
-
var(--ui-action-primary-surface, var(--ui-accent-solid))
|
|
224
|
-
);
|
|
225
|
-
color: var(--ui-button-disabled-text, var(--ui-action-primary-text, var(--ui-text-on-accent)));
|
|
240
|
+
border-color: var(--ui-button-disabled-border, var(--ui-border));
|
|
241
|
+
background-color: var(--ui-button-disabled-surface, var(--ui-disabled-surface));
|
|
242
|
+
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
|
226
243
|
}
|
|
227
244
|
|
|
228
245
|
[data-component~="ui-button"][data-ui-button-state~="variant=danger"]:disabled {
|
|
229
|
-
border-color: var(--ui-button-disabled-border, var(--ui-
|
|
230
|
-
background-color: var(--ui-button-disabled-surface, var(--ui-
|
|
231
|
-
color: var(--ui-button-disabled-text, var(--ui-text
|
|
246
|
+
border-color: var(--ui-button-disabled-border, var(--ui-border));
|
|
247
|
+
background-color: var(--ui-button-disabled-surface, var(--ui-disabled-surface));
|
|
248
|
+
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
|
232
249
|
}
|
|
233
250
|
|
|
234
251
|
[data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:disabled {
|
|
252
|
+
background: none;
|
|
235
253
|
border-color: transparent;
|
|
236
|
-
|
|
237
|
-
color: var(
|
|
238
|
-
--ui-button-disabled-text,
|
|
239
|
-
var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary)))
|
|
240
|
-
);
|
|
254
|
+
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
|
241
255
|
}
|
|
242
256
|
|
|
243
257
|
@media (pointer: coarse) {
|
|
244
258
|
[data-component~="ui-button"] {
|
|
245
|
-
min-block-size: var(--ui-control-min-block-size
|
|
259
|
+
min-block-size: var(--ui-control-min-block-size);
|
|
246
260
|
}
|
|
247
261
|
}
|
|
248
262
|
|
|
@@ -253,11 +267,11 @@ const hostState = computed(() =>
|
|
|
253
267
|
min-block-size: 0;
|
|
254
268
|
padding: 0;
|
|
255
269
|
border: 0;
|
|
256
|
-
border-radius: var(--ui-radius-sm
|
|
270
|
+
border-radius: var(--ui-radius-sm);
|
|
257
271
|
background: none;
|
|
258
272
|
box-shadow: none;
|
|
259
273
|
font: inherit;
|
|
260
|
-
color: var(--ui-button-link-
|
|
274
|
+
color: var(--ui-button-link-text, var(--ui-text-secondary));
|
|
261
275
|
text-decoration-line: underline;
|
|
262
276
|
text-decoration-thickness: 1px;
|
|
263
277
|
text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
|
|
@@ -268,7 +282,7 @@ const hostState = computed(() =>
|
|
|
268
282
|
}
|
|
269
283
|
|
|
270
284
|
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:hover:enabled {
|
|
271
|
-
color: var(--ui-button-link-hover-
|
|
285
|
+
color: var(--ui-button-link-hover-text, var(--ui-text-primary));
|
|
272
286
|
text-decoration-color: currentColor;
|
|
273
287
|
background: none;
|
|
274
288
|
transform: none;
|
|
@@ -281,13 +295,14 @@ const hostState = computed(() =>
|
|
|
281
295
|
|
|
282
296
|
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:disabled {
|
|
283
297
|
background: none;
|
|
284
|
-
color:
|
|
298
|
+
border-color: transparent;
|
|
299
|
+
color: var(--ui-button-disabled-text, var(--ui-disabled-text));
|
|
285
300
|
}
|
|
286
301
|
|
|
287
302
|
[data-component~="ui-button"][data-ui-button-state~="variant=link"]:focus-visible {
|
|
288
303
|
box-shadow: none;
|
|
289
304
|
/* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
|
|
290
|
-
outline: 2px solid var(--ui-focus-ring
|
|
305
|
+
outline: 2px solid var(--ui-focus-ring);
|
|
291
306
|
outline-offset: 2px;
|
|
292
307
|
}
|
|
293
308
|
|
package/vue/UiCallout.vue
CHANGED
|
@@ -113,7 +113,7 @@ const hostState = computed(() =>
|
|
|
113
113
|
color-mix(in srgb, var(--ui-callout-border, var(--_callout-border)) 35%, transparent);
|
|
114
114
|
border-inline-start: var(--ui-callout-leading-border-width, 4px) solid
|
|
115
115
|
var(--ui-callout-border, var(--_callout-border));
|
|
116
|
-
border-radius: var(--ui-radius-
|
|
116
|
+
border-radius: var(--ui-radius-md);
|
|
117
117
|
background: var(--ui-callout-surface, var(--_callout-surface));
|
|
118
118
|
color: var(--ui-callout-text, var(--ui-text-primary));
|
|
119
119
|
font-family: var(--ui-font-family-sans);
|
package/vue/UiCheckbox.vue
CHANGED
|
@@ -212,7 +212,7 @@ input {
|
|
|
212
212
|
block-size: var(--ui-checkbox-size, 1.125rem);
|
|
213
213
|
margin: 0.125em 0 0;
|
|
214
214
|
border: 1px solid var(--ui-control-border-hover, var(--ui-border-strong));
|
|
215
|
-
border-radius: var(--ui-radius-
|
|
215
|
+
border-radius: var(--ui-radius-sm);
|
|
216
216
|
background: var(--ui-control-surface, var(--ui-surface-default));
|
|
217
217
|
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--ui-text-primary) 8%, transparent);
|
|
218
218
|
cursor: pointer;
|
package/vue/UiCluster.vue
CHANGED
|
@@ -26,7 +26,7 @@ const hostState = computed(() =>
|
|
|
26
26
|
|
|
27
27
|
<style scoped>
|
|
28
28
|
[data-component~="ui-cluster"] {
|
|
29
|
-
--_layout-gap: var(--ui-space-3
|
|
29
|
+
--_layout-gap: var(--ui-space-3);
|
|
30
30
|
display: flex;
|
|
31
31
|
flex-wrap: wrap;
|
|
32
32
|
align-items: center;
|
|
@@ -37,19 +37,19 @@ const hostState = computed(() =>
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
[data-component~="ui-cluster"][data-ui-cluster-state~="gap=xs"] {
|
|
40
|
-
--_layout-gap: var(--ui-space-2
|
|
40
|
+
--_layout-gap: var(--ui-space-2);
|
|
41
41
|
}
|
|
42
42
|
[data-component~="ui-cluster"][data-ui-cluster-state~="gap=s"] {
|
|
43
|
-
--_layout-gap: var(--ui-space-3
|
|
43
|
+
--_layout-gap: var(--ui-space-3);
|
|
44
44
|
}
|
|
45
45
|
[data-component~="ui-cluster"][data-ui-cluster-state~="gap=m"] {
|
|
46
|
-
--_layout-gap: var(--ui-space-4
|
|
46
|
+
--_layout-gap: var(--ui-space-4);
|
|
47
47
|
}
|
|
48
48
|
[data-component~="ui-cluster"][data-ui-cluster-state~="gap=l"] {
|
|
49
|
-
--_layout-gap: var(--ui-space-5
|
|
49
|
+
--_layout-gap: var(--ui-space-5);
|
|
50
50
|
}
|
|
51
51
|
[data-component~="ui-cluster"][data-ui-cluster-state~="gap=xl"] {
|
|
52
|
-
--_layout-gap: var(--ui-space-6
|
|
52
|
+
--_layout-gap: var(--ui-space-6);
|
|
53
53
|
}
|
|
54
54
|
[data-component~="ui-cluster"][data-ui-cluster-state~="align=start"] {
|
|
55
55
|
align-items: flex-start;
|
package/vue/UiCombobox.vue
CHANGED
|
@@ -858,15 +858,15 @@ defineExpose({
|
|
|
858
858
|
font: inherit;
|
|
859
859
|
}
|
|
860
860
|
label {
|
|
861
|
-
color: var(--ui-
|
|
862
|
-
font-size: var(--ui-
|
|
863
|
-
font-weight:
|
|
861
|
+
color: var(--ui-combobox-label-text, var(--ui-text-primary));
|
|
862
|
+
font-size: var(--ui-combobox-label-font-size, 0.875rem);
|
|
863
|
+
font-weight: 500;
|
|
864
864
|
}
|
|
865
865
|
.field {
|
|
866
866
|
display: flex;
|
|
867
867
|
min-inline-size: 0;
|
|
868
868
|
border: 1px solid var(--ui-control-border, var(--ui-border-default));
|
|
869
|
-
border-radius: var(--ui-radius-
|
|
869
|
+
border-radius: var(--ui-radius-md);
|
|
870
870
|
background: var(--ui-control-surface, var(--ui-surface-default));
|
|
871
871
|
box-shadow: var(--ui-control-inset);
|
|
872
872
|
transition:
|
|
@@ -887,7 +887,7 @@ input {
|
|
|
887
887
|
appearance: none;
|
|
888
888
|
width: 100%;
|
|
889
889
|
min-inline-size: 0;
|
|
890
|
-
min-block-size: calc(var(--ui-control-size-md
|
|
890
|
+
min-block-size: calc(var(--ui-control-size-md) - 2px);
|
|
891
891
|
box-sizing: border-box;
|
|
892
892
|
border: 0;
|
|
893
893
|
border-radius: inherit;
|
|
@@ -900,7 +900,7 @@ input {
|
|
|
900
900
|
outline: none;
|
|
901
901
|
}
|
|
902
902
|
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input {
|
|
903
|
-
min-block-size: calc(var(--ui-
|
|
903
|
+
min-block-size: calc(var(--ui-control-size-sm) - 2px);
|
|
904
904
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
905
905
|
}
|
|
906
906
|
button {
|
|
@@ -909,19 +909,19 @@ button {
|
|
|
909
909
|
place-items: center;
|
|
910
910
|
align-self: stretch;
|
|
911
911
|
border: 0;
|
|
912
|
-
border-radius: var(--ui-radius-
|
|
912
|
+
border-radius: var(--ui-radius-md);
|
|
913
913
|
background: transparent;
|
|
914
|
-
color: var(--ui-
|
|
914
|
+
color: var(--ui-combobox-affordance-text, var(--ui-text-secondary));
|
|
915
915
|
font: inherit;
|
|
916
|
-
font-weight:
|
|
916
|
+
font-weight: 400;
|
|
917
917
|
min-inline-size: 2rem;
|
|
918
918
|
padding: 0 var(--ui-space-1);
|
|
919
919
|
cursor: pointer;
|
|
920
920
|
}
|
|
921
921
|
.affordance-icon {
|
|
922
922
|
display: block;
|
|
923
|
-
inline-size: var(--ui-icon-size-sm
|
|
924
|
-
block-size: var(--ui-icon-size-sm
|
|
923
|
+
inline-size: var(--ui-icon-size-sm);
|
|
924
|
+
block-size: var(--ui-icon-size-sm);
|
|
925
925
|
}
|
|
926
926
|
button:hover:enabled {
|
|
927
927
|
background: var(--ui-surface-muted);
|
|
@@ -951,7 +951,7 @@ input:disabled, button:disabled {
|
|
|
951
951
|
margin: 0;
|
|
952
952
|
padding: var(--ui-space-1);
|
|
953
953
|
border: 1px solid var(--ui-border-default);
|
|
954
|
-
border-radius: var(--ui-radius-
|
|
954
|
+
border-radius: var(--ui-radius-md);
|
|
955
955
|
background: var(--ui-surface-elevated);
|
|
956
956
|
color: var(--ui-text-primary);
|
|
957
957
|
box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
|
|
@@ -961,13 +961,13 @@ input:disabled, button:disabled {
|
|
|
961
961
|
}
|
|
962
962
|
.option {
|
|
963
963
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
964
|
-
border-radius: var(--ui-radius-
|
|
964
|
+
border-radius: var(--ui-radius-sm);
|
|
965
965
|
cursor: pointer;
|
|
966
966
|
overflow-wrap: anywhere;
|
|
967
967
|
}
|
|
968
968
|
.option:hover, .option.active {
|
|
969
969
|
background: var(--ui-surface-muted);
|
|
970
|
-
outline: 1px solid var(--ui-focus-ring
|
|
970
|
+
outline: 1px solid var(--ui-focus-ring);
|
|
971
971
|
outline-offset: -1px;
|
|
972
972
|
}
|
|
973
973
|
.option[aria-disabled="true"] {
|
|
@@ -976,12 +976,12 @@ input:disabled, button:disabled {
|
|
|
976
976
|
}
|
|
977
977
|
.primary {
|
|
978
978
|
display: block;
|
|
979
|
-
color: var(--ui-option-
|
|
980
|
-
font-weight:
|
|
979
|
+
color: var(--ui-combobox-option-text, var(--ui-text-primary));
|
|
980
|
+
font-weight: 500;
|
|
981
981
|
}
|
|
982
982
|
.message, .group {
|
|
983
|
-
color: var(--ui-
|
|
984
|
-
font-weight:
|
|
983
|
+
color: var(--ui-combobox-message-text, var(--ui-text-secondary));
|
|
984
|
+
font-weight: 400;
|
|
985
985
|
font-size: var(--ui-font-size-sm);
|
|
986
986
|
line-height: var(--ui-line-height-md);
|
|
987
987
|
overflow-wrap: anywhere;
|
|
@@ -1017,11 +1017,11 @@ input:disabled, button:disabled {
|
|
|
1017
1017
|
flex-wrap: wrap;
|
|
1018
1018
|
align-items: center;
|
|
1019
1019
|
gap: var(--ui-space-1);
|
|
1020
|
-
min-block-size: var(--ui-
|
|
1020
|
+
min-block-size: var(--ui-combobox-item-min-block-size, 2.5rem);
|
|
1021
1021
|
padding: var(--ui-space-1);
|
|
1022
1022
|
}
|
|
1023
1023
|
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input {
|
|
1024
|
-
flex: 1 0 var(--ui-
|
|
1024
|
+
flex: 1 0 var(--ui-combobox-item-input-min-inline-size, 5rem);
|
|
1025
1025
|
width: auto;
|
|
1026
1026
|
min-block-size: 1.75rem;
|
|
1027
1027
|
padding: var(--ui-space-0-5) var(--ui-space-1);
|
|
@@ -1030,18 +1030,18 @@ input:disabled, button:disabled {
|
|
|
1030
1030
|
appearance: none;
|
|
1031
1031
|
display: inline-flex;
|
|
1032
1032
|
min-inline-size: 0;
|
|
1033
|
-
max-inline-size: min(100%, var(--ui-
|
|
1033
|
+
max-inline-size: min(100%, var(--ui-combobox-item-item-max-inline-size, 12rem));
|
|
1034
1034
|
overflow: hidden;
|
|
1035
1035
|
padding: 0;
|
|
1036
1036
|
border: 0;
|
|
1037
|
-
border-radius: var(--ui-radius-
|
|
1037
|
+
border-radius: var(--ui-radius-sm);
|
|
1038
1038
|
background: transparent;
|
|
1039
1039
|
color: inherit;
|
|
1040
1040
|
font: inherit;
|
|
1041
1041
|
cursor: default;
|
|
1042
1042
|
}
|
|
1043
1043
|
.item:focus-visible {
|
|
1044
|
-
outline: 2px solid var(--ui-focus-ring
|
|
1044
|
+
outline: 2px solid var(--ui-focus-ring);
|
|
1045
1045
|
outline-offset: 1px;
|
|
1046
1046
|
}
|
|
1047
1047
|
.item:disabled {
|
package/vue/UiContainer.vue
CHANGED
|
@@ -31,7 +31,7 @@ const hostState = computed(() =>
|
|
|
31
31
|
<style scoped>
|
|
32
32
|
[data-component~="ui-container"] {
|
|
33
33
|
--_container-measure: 65ch;
|
|
34
|
-
--_container-gutters: var(--ui-space-4
|
|
34
|
+
--_container-gutters: var(--ui-space-4);
|
|
35
35
|
display: block;
|
|
36
36
|
inline-size: 100%;
|
|
37
37
|
max-inline-size: var(--ui-container-measure, var(--_container-measure));
|
|
@@ -46,13 +46,13 @@ const hostState = computed(() =>
|
|
|
46
46
|
--_container-measure: 80ch;
|
|
47
47
|
}
|
|
48
48
|
[data-component~="ui-container"][data-ui-container-state~="gutters=s"] {
|
|
49
|
-
--_container-gutters: var(--ui-space-3
|
|
49
|
+
--_container-gutters: var(--ui-space-3);
|
|
50
50
|
}
|
|
51
51
|
[data-component~="ui-container"][data-ui-container-state~="gutters=m"] {
|
|
52
|
-
--_container-gutters: var(--ui-space-4
|
|
52
|
+
--_container-gutters: var(--ui-space-4);
|
|
53
53
|
}
|
|
54
54
|
[data-component~="ui-container"][data-ui-container-state~="gutters=l"] {
|
|
55
|
-
--_container-gutters: var(--ui-space-5
|
|
55
|
+
--_container-gutters: var(--ui-space-5);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
package/vue/UiContextMenu.vue
CHANGED
|
@@ -210,11 +210,11 @@ onBeforeUnmount(() => {
|
|
|
210
210
|
padding: var(--ui-space-1);
|
|
211
211
|
background: var(--ui-surface-elevated);
|
|
212
212
|
border: 1px solid var(--ui-border-default);
|
|
213
|
-
border-radius: var(--ui-radius-
|
|
213
|
+
border-radius: var(--ui-radius-lg);
|
|
214
214
|
box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
|
|
215
215
|
outline: 0;
|
|
216
216
|
overflow: auto;
|
|
217
|
-
z-index: var(--ui-z-
|
|
217
|
+
z-index: var(--ui-context-menu-z-index, 1000);
|
|
218
218
|
min-width: 12rem;
|
|
219
219
|
opacity: 0;
|
|
220
220
|
transform: translateY(-4px) scale(0.99);
|
package/vue/UiDialog.vue
CHANGED
|
@@ -182,11 +182,11 @@ onBeforeUnmount(() => {
|
|
|
182
182
|
inset: 0;
|
|
183
183
|
box-sizing: border-box;
|
|
184
184
|
inline-size: min(
|
|
185
|
-
calc(100% - var(--ui-dialog-viewport-gap, var(--ui-space-4
|
|
185
|
+
calc(100% - var(--ui-dialog-viewport-gap, var(--ui-space-4)) * 2),
|
|
186
186
|
var(--ui-dialog-max-width, 440px)
|
|
187
187
|
);
|
|
188
188
|
max-inline-size: none;
|
|
189
|
-
max-block-size: calc(100dvh - var(--ui-dialog-viewport-gap, var(--ui-space-4
|
|
189
|
+
max-block-size: calc(100dvh - var(--ui-dialog-viewport-gap, var(--ui-space-4)) * 2);
|
|
190
190
|
margin: auto;
|
|
191
191
|
padding: 0;
|
|
192
192
|
overflow: hidden;
|
|
@@ -235,8 +235,8 @@ header {
|
|
|
235
235
|
border: 0;
|
|
236
236
|
color: var(--ui-text-primary);
|
|
237
237
|
letter-spacing: normal;
|
|
238
|
-
font-size: var(--ui-font-size-lg
|
|
239
|
-
font-weight: var(--ui-font-semibold
|
|
238
|
+
font-size: var(--ui-font-size-lg);
|
|
239
|
+
font-weight: var(--ui-font-semibold);
|
|
240
240
|
line-height: var(--ui-line-height-tight);
|
|
241
241
|
}
|
|
242
242
|
|
|
@@ -245,11 +245,11 @@ header {
|
|
|
245
245
|
place-items: center;
|
|
246
246
|
flex: none;
|
|
247
247
|
margin-inline-start: auto;
|
|
248
|
-
inline-size: var(--ui-control-size-sm
|
|
249
|
-
block-size: var(--ui-control-size-sm
|
|
248
|
+
inline-size: var(--ui-control-size-sm);
|
|
249
|
+
block-size: var(--ui-control-size-sm);
|
|
250
250
|
padding: 0;
|
|
251
251
|
border: 0;
|
|
252
|
-
border-radius: var(--ui-radius-round
|
|
252
|
+
border-radius: var(--ui-radius-round);
|
|
253
253
|
background: transparent;
|
|
254
254
|
color: var(--ui-text-secondary);
|
|
255
255
|
cursor: pointer;
|
|
@@ -280,21 +280,21 @@ header {
|
|
|
280
280
|
}
|
|
281
281
|
|
|
282
282
|
.close:focus-visible {
|
|
283
|
-
outline: 2px solid var(--ui-focus-ring
|
|
283
|
+
outline: 2px solid var(--ui-focus-ring);
|
|
284
284
|
outline-offset: 2px;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
/* A touch target, like Button on coarse pointers. */
|
|
288
288
|
@media (pointer: coarse) {
|
|
289
289
|
.close {
|
|
290
|
-
inline-size: var(--ui-control-min-block-size
|
|
291
|
-
block-size: var(--ui-control-min-block-size
|
|
290
|
+
inline-size: var(--ui-control-min-block-size);
|
|
291
|
+
block-size: var(--ui-control-min-block-size);
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
|
|
295
295
|
html[data-ui-input-modality="touch"] [data-component~="ui-dialog"] .close {
|
|
296
|
-
inline-size: var(--ui-control-min-block-size
|
|
297
|
-
block-size: var(--ui-control-min-block-size
|
|
296
|
+
inline-size: var(--ui-control-min-block-size);
|
|
297
|
+
block-size: var(--ui-control-min-block-size);
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
.body {
|
package/vue/UiDisclosure.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
|
+
density?: 'comfortable' | 'compact';
|
|
2
3
|
disabled?: boolean;
|
|
3
4
|
open?: boolean;
|
|
4
5
|
summary?: string;
|
|
@@ -35,6 +36,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
35
36
|
summary: string;
|
|
36
37
|
disabled: boolean;
|
|
37
38
|
open: boolean;
|
|
39
|
+
density: "comfortable" | "compact";
|
|
38
40
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
39
41
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
40
42
|
declare const _default: typeof __VLS_export;
|