@threadlabs/looma 0.1.22 → 0.1.23
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/dist/{chunk-NIPNHZ5W.js → chunk-GDMQKT5F.js} +63 -31
- package/dist/{chunk-SZJQ3NPX.js → chunk-TL4FIE7X.js} +4 -8
- package/dist/cjs/{index-D07f6BOw.js → index-BHG9Rpil.js} +33 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/looma.cjs.js +2 -2
- package/dist/cjs/{manager-C9j3HZay.js → manager-Ce25WRtl.js} +6 -7
- package/dist/cjs/ui-affordance-scope.cjs.entry.js +1 -1
- package/dist/cjs/ui-avatar-group.cjs.entry.js +1 -1
- package/dist/cjs/ui-avatar.cjs.entry.js +1 -1
- package/dist/cjs/ui-badge.cjs.entry.js +1 -1
- package/dist/cjs/ui-button.cjs.entry.js +16 -5
- package/dist/cjs/ui-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ui-combobox.cjs.entry.js +541 -0
- package/dist/cjs/ui-context-menu.cjs.entry.js +3 -3
- package/dist/cjs/ui-dialog.cjs.entry.js +3 -3
- package/dist/cjs/ui-disclosure.cjs.entry.js +2 -2
- package/dist/cjs/ui-floating-action-button.cjs.entry.js +2 -2
- package/dist/cjs/ui-form-field.cjs.entry.js +3 -3
- package/dist/cjs/ui-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/ui-input.cjs.entry.js +11 -6
- package/dist/cjs/ui-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/ui-menu.cjs.entry.js +3 -3
- package/dist/cjs/ui-popover.cjs.entry.js +3 -3
- package/dist/cjs/ui-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/ui-radio.cjs.entry.js +3 -3
- package/dist/cjs/ui-search-result-row.cjs.entry.js +2 -2
- package/dist/cjs/ui-search-shell.cjs.entry.js +2 -2
- package/dist/cjs/ui-select.cjs.entry.js +15 -7
- package/dist/cjs/ui-switch.cjs.entry.js +3 -3
- package/dist/cjs/ui-tabs.cjs.entry.js +2 -2
- package/dist/cjs/ui-textarea.cjs.entry.js +10 -6
- package/dist/cjs/ui-toast-region.cjs.entry.js +2 -2
- package/dist/cjs/ui-tooltip.cjs.entry.js +52 -16
- package/dist/cjs/ui-top-bar.cjs.entry.js +2 -2
- package/dist/cjs/ui-tree-item.cjs.entry.js +7 -3
- package/dist/cjs/ui-tree.cjs.entry.js +81 -9
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ui-button/ui-button.css +36 -26
- package/dist/collection/components/ui-button/ui-button.js +14 -3
- package/dist/collection/components/ui-combobox/ui-combobox.css +24 -0
- package/dist/collection/components/ui-combobox/ui-combobox.js +973 -0
- package/dist/collection/components/ui-context-menu/ui-context-menu.js +1 -1
- package/dist/collection/components/ui-dialog/ui-dialog.js +1 -1
- package/dist/collection/components/ui-disclosure/ui-disclosure.js +1 -1
- package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +1 -1
- package/dist/collection/components/ui-form-field/ui-form-field.css +4 -0
- package/dist/collection/components/ui-form-field/ui-form-field.js +1 -1
- package/dist/collection/components/ui-icon-button/ui-icon-button.js +1 -1
- package/dist/collection/components/ui-input/ui-input.css +8 -6
- package/dist/collection/components/ui-input/ui-input.js +11 -7
- package/dist/collection/components/ui-menu/ui-menu.js +1 -1
- package/dist/collection/components/ui-menu-item/ui-menu-item.js +1 -1
- package/dist/collection/components/ui-popover/ui-popover.js +1 -1
- package/dist/collection/components/ui-radio/ui-radio.js +2 -2
- package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
- package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +1 -1
- package/dist/collection/components/ui-search-shell/ui-search-shell.js +1 -1
- package/dist/collection/components/ui-select/ui-select.css +8 -6
- package/dist/collection/components/ui-select/ui-select.js +17 -11
- package/dist/collection/components/ui-switch/ui-switch.js +2 -2
- package/dist/collection/components/ui-tabs/ui-tabs.js +1 -1
- package/dist/collection/components/ui-textarea/ui-textarea.css +7 -6
- package/dist/collection/components/ui-textarea/ui-textarea.js +10 -7
- package/dist/collection/components/ui-toast-region/ui-toast-region.js +1 -1
- package/dist/collection/components/ui-tooltip/ui-tooltip.js +102 -15
- package/dist/collection/components/ui-top-bar/ui-top-bar.js +1 -1
- package/dist/collection/components/ui-tree/ui-tree.js +100 -8
- package/dist/collection/components/ui-tree-item/ui-tree-item.js +44 -2
- package/dist/collection/field/combobox.js +4 -0
- package/dist/collection/field/valibot.js +5 -0
- package/dist/collection/field/validation.js +62 -0
- package/dist/collection/overlay/manager.js +6 -7
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -1
- package/dist/components/p-Bh_1GxOD.js +1 -0
- package/dist/components/p-C-0syqXZ.js +1 -0
- package/dist/components/p-CaietZcq.js +1 -0
- package/dist/components/p-DHd18bK7.js +1 -0
- package/dist/components/ui-affordance-scope.js +1 -1
- package/dist/components/ui-avatar-group.js +1 -1
- package/dist/components/ui-avatar.js +1 -1
- package/dist/components/ui-badge.js +1 -1
- package/dist/components/ui-button.js +1 -1
- package/dist/components/ui-checkbox.js +1 -1
- package/dist/components/ui-combobox.d.ts +11 -0
- package/dist/components/ui-combobox.js +1 -0
- package/dist/components/ui-context-menu.js +1 -1
- package/dist/components/ui-dialog.js +1 -1
- package/dist/components/ui-disclosure.js +1 -1
- package/dist/components/ui-floating-action-button.js +1 -1
- package/dist/components/ui-form-field.js +1 -1
- package/dist/components/ui-icon-button.js +1 -1
- package/dist/components/ui-input.js +1 -1
- package/dist/components/ui-menu-item.js +1 -1
- package/dist/components/ui-menu.js +1 -1
- package/dist/components/ui-popover.js +1 -1
- package/dist/components/ui-radio-group.js +1 -1
- package/dist/components/ui-radio.js +1 -1
- package/dist/components/ui-search-result-row.js +1 -1
- package/dist/components/ui-search-shell.js +1 -1
- package/dist/components/ui-select.js +1 -1
- package/dist/components/ui-switch.js +1 -1
- package/dist/components/ui-tabs.js +1 -1
- package/dist/components/ui-textarea.js +1 -1
- package/dist/components/ui-toast-region.js +1 -1
- package/dist/components/ui-tooltip.js +1 -1
- package/dist/components/ui-top-bar.js +1 -1
- package/dist/components/ui-tree-item.js +2 -2
- package/dist/components/ui-tree.js +1 -1
- package/dist/esm/{index-CEeiinfk.js → index-8BGiMGQ0.js} +33 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/looma.js +3 -3
- package/dist/esm/{manager-PM9a74r7.js → manager-C-0syqXZ.js} +6 -7
- package/dist/esm/ui-affordance-scope.entry.js +1 -1
- package/dist/esm/ui-avatar-group.entry.js +1 -1
- package/dist/esm/ui-avatar.entry.js +1 -1
- package/dist/esm/ui-badge.entry.js +1 -1
- package/dist/esm/ui-button.entry.js +16 -5
- package/dist/esm/ui-checkbox.entry.js +1 -1
- package/dist/esm/ui-combobox.entry.js +539 -0
- package/dist/esm/ui-context-menu.entry.js +3 -3
- package/dist/esm/ui-dialog.entry.js +3 -3
- package/dist/esm/ui-disclosure.entry.js +2 -2
- package/dist/esm/ui-floating-action-button.entry.js +2 -2
- package/dist/esm/ui-form-field.entry.js +3 -3
- package/dist/esm/ui-icon-button.entry.js +2 -2
- package/dist/esm/ui-input.entry.js +11 -6
- package/dist/esm/ui-menu-item.entry.js +2 -2
- package/dist/esm/ui-menu.entry.js +3 -3
- package/dist/esm/ui-popover.entry.js +3 -3
- package/dist/esm/ui-radio-group.entry.js +2 -2
- package/dist/esm/ui-radio.entry.js +3 -3
- package/dist/esm/ui-search-result-row.entry.js +2 -2
- package/dist/esm/ui-search-shell.entry.js +2 -2
- package/dist/esm/ui-select.entry.js +15 -7
- package/dist/esm/ui-switch.entry.js +3 -3
- package/dist/esm/ui-tabs.entry.js +2 -2
- package/dist/esm/ui-textarea.entry.js +10 -6
- package/dist/esm/ui-toast-region.entry.js +2 -2
- package/dist/esm/ui-tooltip.entry.js +52 -16
- package/dist/esm/ui-top-bar.entry.js +2 -2
- package/dist/esm/ui-tree-item.entry.js +7 -3
- package/dist/esm/ui-tree.entry.js +81 -9
- package/dist/index.cjs +883 -123
- package/dist/index.d.cts +104 -1
- package/dist/index.d.ts +104 -1
- package/dist/index.js +62 -8
- package/dist/looma/looma.esm.js +1 -1
- package/dist/looma/{p-0198bb21.entry.js → p-13347631.entry.js} +1 -1
- package/dist/looma/p-14c081cf.entry.js +1 -0
- package/dist/looma/{p-0f45c5f0.entry.js → p-25366205.entry.js} +1 -1
- package/dist/looma/{p-a9f46811.entry.js → p-2e3aa869.entry.js} +1 -1
- package/dist/looma/p-40fe7fee.entry.js +1 -0
- package/dist/looma/p-446cda76.entry.js +1 -0
- package/dist/looma/p-4fc1b005.entry.js +13 -0
- package/dist/looma/p-582973b5.entry.js +1 -0
- package/dist/looma/{p-d273b857.entry.js → p-5a87b59d.entry.js} +1 -1
- package/dist/looma/{p-2ed7e241.entry.js → p-5da09f47.entry.js} +1 -1
- package/dist/looma/{p-7e94d90d.entry.js → p-69a5557b.entry.js} +1 -1
- package/dist/looma/p-6a8a4736.entry.js +1 -0
- package/dist/looma/{p-caa8fc7b.entry.js → p-6bf4038b.entry.js} +1 -1
- package/dist/looma/p-7e0bb7f6.entry.js +1 -0
- package/dist/looma/{p-ed5abf6d.entry.js → p-8204fee6.entry.js} +1 -1
- package/dist/looma/{p-5ba9d496.entry.js → p-8238e0dc.entry.js} +1 -1
- package/dist/looma/p-8BGiMGQ0.js +2 -0
- package/dist/looma/{p-051f578c.entry.js → p-8b8840b8.entry.js} +1 -1
- package/dist/looma/{p-1674cda4.entry.js → p-99d88efb.entry.js} +1 -1
- package/dist/looma/p-C-0syqXZ.js +1 -0
- package/dist/looma/p-a27669b1.entry.js +1 -0
- package/dist/looma/{p-11083743.entry.js → p-a6ee76b7.entry.js} +1 -1
- package/dist/looma/p-a90d2821.entry.js +1 -0
- package/dist/looma/{p-2e6f791e.entry.js → p-add36e74.entry.js} +1 -1
- package/dist/looma/{p-0584a051.entry.js → p-b6398a6b.entry.js} +1 -1
- package/dist/looma/{p-078f9fb8.entry.js → p-d50faaff.entry.js} +1 -1
- package/dist/looma/{p-b7aa4488.entry.js → p-d77278ce.entry.js} +1 -1
- package/dist/looma/p-d9ec13b7.entry.js +1 -0
- package/dist/looma/{p-1681b218.entry.js → p-ecf8005f.entry.js} +1 -1
- package/dist/looma/p-ed368426.entry.js +1 -0
- package/dist/looma/{p-063f5a89.entry.js → p-f0487ff3.entry.js} +1 -1
- package/dist/looma/p-f74e5546.entry.js +1 -0
- package/dist/types/components/ui-combobox/ui-combobox.d.ts +93 -0
- package/dist/types/components/ui-input/ui-input.d.ts +1 -1
- package/dist/types/components/ui-select/ui-select.d.ts +3 -2
- package/dist/types/components/ui-textarea/ui-textarea.d.ts +1 -1
- package/dist/types/components/ui-tooltip/ui-tooltip.d.ts +18 -1
- package/dist/types/components/ui-tree/ui-tree.d.ts +9 -1
- package/dist/types/components/ui-tree-item/ui-tree-item.d.ts +4 -0
- package/dist/types/components.d.ts +260 -28
- package/dist/types/field/combobox.d.ts +46 -0
- package/dist/types/field/valibot.d.ts +7 -0
- package/dist/types/field/validation.d.ts +56 -0
- package/dist/{ui-affordance-scope.entry-L533MECG.js → ui-affordance-scope.entry-VO4C2MZX.js} +1 -1
- package/dist/{ui-avatar-group.entry-BWS7E2CM.js → ui-avatar-group.entry-TAXJRIIU.js} +1 -1
- package/dist/{ui-avatar.entry-3INAY3XP.js → ui-avatar.entry-T6FU6ZYM.js} +1 -1
- package/dist/{ui-badge.entry-2WOBVOYP.js → ui-badge.entry-MZFYNBMJ.js} +1 -1
- package/dist/ui-button.entry-7UXMUGHN.js +80 -0
- package/dist/{ui-checkbox.entry-2PTBHSCQ.js → ui-checkbox.entry-DMZJB3RE.js} +1 -1
- package/dist/ui-combobox.entry-ZCTPXEES.js +553 -0
- package/dist/{ui-context-menu.entry-AYDDCIZS.js → ui-context-menu.entry-2WMCBGCP.js} +6 -6
- package/dist/{ui-dialog.entry-I2XI3ZTZ.js → ui-dialog.entry-WO23XOSW.js} +6 -6
- package/dist/{ui-disclosure.entry-5LY2BT7B.js → ui-disclosure.entry-USX7OUEW.js} +2 -2
- package/dist/{ui-floating-action-button.entry-EJAMR5AM.js → ui-floating-action-button.entry-MXDIN7MV.js} +2 -2
- package/dist/{ui-form-field.entry-SJ6NNFXB.js → ui-form-field.entry-7ZCMEHPY.js} +3 -3
- package/dist/{ui-icon-button.entry-7SD2LVXE.js → ui-icon-button.entry-MJUNXHBU.js} +2 -2
- package/dist/{ui-input.entry-7MM7GEQW.js → ui-input.entry-AWG63YIG.js} +8 -6
- package/dist/{ui-menu-item.entry-V3HIMR75.js → ui-menu-item.entry-HFTWG62N.js} +2 -2
- package/dist/{ui-menu.entry-R4WK5QSX.js → ui-menu.entry-IT3GW5TL.js} +7 -7
- package/dist/{ui-popover.entry-ZRJRTXA7.js → ui-popover.entry-ZQQB4N6E.js} +6 -6
- package/dist/{ui-radio-group.entry-S6RXHFSN.js → ui-radio-group.entry-V7PCTS7I.js} +2 -2
- package/dist/{ui-radio.entry-B73QZK2M.js → ui-radio.entry-JYH6TQBI.js} +3 -3
- package/dist/{ui-search-result-row.entry-DR2Y5S7P.js → ui-search-result-row.entry-JBNYXXUN.js} +2 -2
- package/dist/{ui-search-shell.entry-ST5IKJBC.js → ui-search-shell.entry-TEAWE76O.js} +2 -2
- package/dist/{ui-select.entry-7GPRFV67.js → ui-select.entry-F3A6TE2U.js} +13 -7
- package/dist/{ui-switch.entry-XQ5IRJRH.js → ui-switch.entry-MJIICMP2.js} +3 -3
- package/dist/{ui-tabs.entry-HPW5L5CY.js → ui-tabs.entry-6REFIUHV.js} +2 -2
- package/dist/{ui-textarea.entry-W2PSRYVS.js → ui-textarea.entry-OJTXCED7.js} +8 -6
- package/dist/{ui-toast-region.entry-FJUHFXKZ.js → ui-toast-region.entry-NOFXLKPS.js} +5 -5
- package/dist/{ui-tooltip.entry-G5WHQW7K.js → ui-tooltip.entry-COWTWVHX.js} +57 -21
- package/dist/{ui-top-bar.entry-3NCHFC4Y.js → ui-top-bar.entry-PIAWXJNV.js} +2 -2
- package/dist/{ui-tree-item.entry-45RR3CMP.js → ui-tree-item.entry-BSEWNL2O.js} +7 -3
- package/dist/{ui-tree.entry-SZW4Q5PY.js → ui-tree.entry-XYI3ZFAZ.js} +77 -8
- package/dist/valibot.d.ts +52 -0
- package/dist/valibot.js +7 -0
- package/package.json +11 -3
- package/styles.css +36 -20
- package/theme-high-contrast.css +12 -0
- package/tokens.css +23 -0
- package/vue/{chunk-5KWCMTXB.js → chunk-JLW23USW.js} +88 -1
- package/vue/editor/index.js +1 -1
- package/vue/index.d.ts +123 -1
- package/vue/index.js +3 -1
- package/dist/components/p-CEYIKqYc.js +0 -1
- package/dist/components/p-CIA4RyEp.js +0 -1
- package/dist/components/p-PM9a74r7.js +0 -1
- package/dist/looma/p-34417499.entry.js +0 -1
- package/dist/looma/p-4b422d40.entry.js +0 -1
- package/dist/looma/p-54722713.entry.js +0 -13
- package/dist/looma/p-54c41576.entry.js +0 -1
- package/dist/looma/p-5d4713a6.entry.js +0 -1
- package/dist/looma/p-624ba086.entry.js +0 -1
- package/dist/looma/p-8d5adb17.entry.js +0 -1
- package/dist/looma/p-9194a99d.entry.js +0 -1
- package/dist/looma/p-CEeiinfk.js +0 -2
- package/dist/looma/p-PM9a74r7.js +0 -1
- package/dist/looma/p-a33522a2.entry.js +0 -1
- package/dist/looma/p-a5127c7d.entry.js +0 -1
- package/dist/looma/p-e3f99a24.entry.js +0 -1
- package/dist/ui-button.entry-VCGSEONK.js +0 -71
|
@@ -2,9 +2,14 @@ export declare class UITree {
|
|
|
2
2
|
host: HTMLElement;
|
|
3
3
|
label: string;
|
|
4
4
|
hoverExpandDelay: number;
|
|
5
|
+
/** Maximum resulting item depth accepted by pointer reordering. Zero is unlimited. */
|
|
6
|
+
maxDepth: number;
|
|
5
7
|
private source;
|
|
6
8
|
private target;
|
|
7
9
|
private position;
|
|
10
|
+
private rejectedTarget;
|
|
11
|
+
private rejectedPosition;
|
|
12
|
+
private rejection;
|
|
8
13
|
private hoverIntent;
|
|
9
14
|
componentDidLoad(): void;
|
|
10
15
|
disconnectedCallback(): void;
|
|
@@ -15,8 +20,10 @@ export declare class UITree {
|
|
|
15
20
|
private isWithinTree;
|
|
16
21
|
private acceptsChildren;
|
|
17
22
|
private itemMetadata;
|
|
18
|
-
private
|
|
23
|
+
private constraintDepth;
|
|
24
|
+
private dropRejection;
|
|
19
25
|
private clearTarget;
|
|
26
|
+
private clearRejection;
|
|
20
27
|
private finishDrag;
|
|
21
28
|
private expandTarget;
|
|
22
29
|
private onDragStart;
|
|
@@ -25,6 +32,7 @@ export declare class UITree {
|
|
|
25
32
|
private onDragOver;
|
|
26
33
|
private onDragLeave;
|
|
27
34
|
private dispatchReorder;
|
|
35
|
+
private dispatchReorderRejected;
|
|
28
36
|
private onDrop;
|
|
29
37
|
private onDragEnd;
|
|
30
38
|
private visibleItems;
|
|
@@ -6,6 +6,10 @@ export declare class UITreeItem {
|
|
|
6
6
|
label: string;
|
|
7
7
|
/** One-based visual and semantic nesting level. */
|
|
8
8
|
depth: number;
|
|
9
|
+
/** Application hierarchy depth used for drop constraints. Defaults to visual depth. */
|
|
10
|
+
dropDepth?: number;
|
|
11
|
+
/** Deepest descendant distance, used with the tree's max-depth drop constraint. */
|
|
12
|
+
subtreeDepth?: number;
|
|
9
13
|
/** Whether this item accepts children and exposes disclosure behavior. */
|
|
10
14
|
container: boolean;
|
|
11
15
|
/** Whether this item participates in pointer drag and drop. */
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* It contains typing information for all components that exist in this project.
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
|
+
import { ComboboxChange, ComboboxConfig, ComboboxOption, ComboboxValidationState } from "./field/combobox";
|
|
8
9
|
import { AnchoredPlacement } from "./overlay/positioning";
|
|
10
|
+
export { ComboboxChange, ComboboxConfig, ComboboxOption, ComboboxValidationState } from "./field/combobox";
|
|
9
11
|
export { AnchoredPlacement } from "./overlay/positioning";
|
|
10
12
|
export namespace Components {
|
|
11
13
|
interface UiAffordanceScope {
|
|
@@ -84,6 +86,75 @@ export namespace Components {
|
|
|
84
86
|
*/
|
|
85
87
|
"value": string;
|
|
86
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* A single editable field with contextual suggestions, optional help and field validation.
|
|
91
|
+
*/
|
|
92
|
+
interface UiCombobox {
|
|
93
|
+
/**
|
|
94
|
+
* @default false
|
|
95
|
+
*/
|
|
96
|
+
"clearable": boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Immutable configuration; replace the object/context when dependencies change.
|
|
99
|
+
* @default {}
|
|
100
|
+
*/
|
|
101
|
+
"config": ComboboxConfig;
|
|
102
|
+
/**
|
|
103
|
+
* @default ''
|
|
104
|
+
*/
|
|
105
|
+
"defaultQuery": string;
|
|
106
|
+
"defaultValue"?: string;
|
|
107
|
+
/**
|
|
108
|
+
* @default false
|
|
109
|
+
*/
|
|
110
|
+
"disabled": boolean;
|
|
111
|
+
/**
|
|
112
|
+
* @default false
|
|
113
|
+
*/
|
|
114
|
+
"disclosure": boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Optional description shown by the connected question-mark button.
|
|
117
|
+
* @default ''
|
|
118
|
+
*/
|
|
119
|
+
"help": string;
|
|
120
|
+
/**
|
|
121
|
+
* Accessible visible label, associated with the native text input.
|
|
122
|
+
* @default ''
|
|
123
|
+
*/
|
|
124
|
+
"label": string;
|
|
125
|
+
/**
|
|
126
|
+
* @default ''
|
|
127
|
+
*/
|
|
128
|
+
"name": string;
|
|
129
|
+
/**
|
|
130
|
+
* @default ''
|
|
131
|
+
*/
|
|
132
|
+
"placeholder": string;
|
|
133
|
+
/**
|
|
134
|
+
* Controlled raw editing text; independent of canonical selection.
|
|
135
|
+
*/
|
|
136
|
+
"query"?: string;
|
|
137
|
+
/**
|
|
138
|
+
* @default false
|
|
139
|
+
*/
|
|
140
|
+
"readOnly": boolean;
|
|
141
|
+
/**
|
|
142
|
+
* @default false
|
|
143
|
+
*/
|
|
144
|
+
"required": boolean;
|
|
145
|
+
/**
|
|
146
|
+
* @default 'md'
|
|
147
|
+
*/
|
|
148
|
+
"size": 'sm' | 'md';
|
|
149
|
+
/**
|
|
150
|
+
* Validate for submission. Caller submits only non-pending, non-error output.
|
|
151
|
+
*/
|
|
152
|
+
"validate": () => Promise<ComboboxValidationState>;
|
|
153
|
+
/**
|
|
154
|
+
* Controlled canonical value. Undefined selects uncontrolled mode; null means no selection.
|
|
155
|
+
*/
|
|
156
|
+
"value"?: string | null;
|
|
157
|
+
}
|
|
87
158
|
interface UiContextMenu {
|
|
88
159
|
/**
|
|
89
160
|
* Opens the menu on first client render.
|
|
@@ -204,10 +275,7 @@ export namespace Components {
|
|
|
204
275
|
* @default false
|
|
205
276
|
*/
|
|
206
277
|
"readOnly": boolean;
|
|
207
|
-
|
|
208
|
-
* @default ''
|
|
209
|
-
*/
|
|
210
|
-
"value": string;
|
|
278
|
+
"value"?: string;
|
|
211
279
|
}
|
|
212
280
|
interface UiMenu {
|
|
213
281
|
/**
|
|
@@ -317,10 +385,7 @@ export namespace Components {
|
|
|
317
385
|
interface UiSearchShell {
|
|
318
386
|
}
|
|
319
387
|
interface UiSelect {
|
|
320
|
-
|
|
321
|
-
* @default ''
|
|
322
|
-
*/
|
|
323
|
-
"defaultValue": string;
|
|
388
|
+
"defaultValue"?: string;
|
|
324
389
|
/**
|
|
325
390
|
* @default false
|
|
326
391
|
*/
|
|
@@ -333,10 +398,7 @@ export namespace Components {
|
|
|
333
398
|
* @default false
|
|
334
399
|
*/
|
|
335
400
|
"required": boolean;
|
|
336
|
-
|
|
337
|
-
* @default ''
|
|
338
|
-
*/
|
|
339
|
-
"value": string;
|
|
401
|
+
"value"?: string;
|
|
340
402
|
}
|
|
341
403
|
interface UiSwitch {
|
|
342
404
|
/**
|
|
@@ -395,10 +457,7 @@ export namespace Components {
|
|
|
395
457
|
* @default 4
|
|
396
458
|
*/
|
|
397
459
|
"rows": number;
|
|
398
|
-
|
|
399
|
-
* @default ''
|
|
400
|
-
*/
|
|
401
|
-
"value": string;
|
|
460
|
+
"value"?: string;
|
|
402
461
|
}
|
|
403
462
|
interface UiToastRegion {
|
|
404
463
|
/**
|
|
@@ -433,6 +492,11 @@ export namespace Components {
|
|
|
433
492
|
* @default 500
|
|
434
493
|
*/
|
|
435
494
|
"showDelay": number;
|
|
495
|
+
/**
|
|
496
|
+
* Click or tap pins the description; activate again to dismiss.
|
|
497
|
+
* @default false
|
|
498
|
+
*/
|
|
499
|
+
"toggleOnClick": boolean;
|
|
436
500
|
}
|
|
437
501
|
interface UiTopBar {
|
|
438
502
|
}
|
|
@@ -445,6 +509,11 @@ export namespace Components {
|
|
|
445
509
|
* @default 'Tree'
|
|
446
510
|
*/
|
|
447
511
|
"label": string;
|
|
512
|
+
/**
|
|
513
|
+
* Maximum resulting item depth accepted by pointer reordering. Zero is unlimited.
|
|
514
|
+
* @default 0
|
|
515
|
+
*/
|
|
516
|
+
"maxDepth": number;
|
|
448
517
|
}
|
|
449
518
|
interface UiTreeItem {
|
|
450
519
|
/**
|
|
@@ -476,6 +545,10 @@ export namespace Components {
|
|
|
476
545
|
* @default 'item'
|
|
477
546
|
*/
|
|
478
547
|
"dragType": string;
|
|
548
|
+
/**
|
|
549
|
+
* Application hierarchy depth used for drop constraints. Defaults to visual depth.
|
|
550
|
+
*/
|
|
551
|
+
"dropDepth"?: number;
|
|
479
552
|
/**
|
|
480
553
|
* Application-defined parent/list identity included with reorder events.
|
|
481
554
|
* @default ''
|
|
@@ -505,8 +578,20 @@ export namespace Components {
|
|
|
505
578
|
* @default false
|
|
506
579
|
*/
|
|
507
580
|
"sortable": boolean;
|
|
581
|
+
/**
|
|
582
|
+
* Deepest descendant distance, used with the tree's max-depth drop constraint.
|
|
583
|
+
*/
|
|
584
|
+
"subtreeDepth"?: number;
|
|
508
585
|
}
|
|
509
586
|
}
|
|
587
|
+
export interface UiComboboxCustomEvent<T> extends CustomEvent<T> {
|
|
588
|
+
detail: T;
|
|
589
|
+
target: HTMLUiComboboxElement;
|
|
590
|
+
}
|
|
591
|
+
export interface UiTooltipCustomEvent<T> extends CustomEvent<T> {
|
|
592
|
+
detail: T;
|
|
593
|
+
target: HTMLUiTooltipElement;
|
|
594
|
+
}
|
|
510
595
|
declare global {
|
|
511
596
|
interface HTMLUiAffordanceScopeElement extends Components.UiAffordanceScope, HTMLStencilElement {
|
|
512
597
|
}
|
|
@@ -544,6 +629,32 @@ declare global {
|
|
|
544
629
|
prototype: HTMLUiCheckboxElement;
|
|
545
630
|
new (): HTMLUiCheckboxElement;
|
|
546
631
|
};
|
|
632
|
+
interface HTMLUiComboboxElementEventMap {
|
|
633
|
+
"query-change": { query: string; display: string; trigger: 'keyboard' | 'pointer' | 'programmatic' };
|
|
634
|
+
"value-change": ComboboxChange;
|
|
635
|
+
"free-entry": ComboboxChange;
|
|
636
|
+
"create-entry": ComboboxChange;
|
|
637
|
+
"dependency-invalidate": ComboboxChange;
|
|
638
|
+
"validation-change": ComboboxValidationState;
|
|
639
|
+
"options-change": readonly ComboboxOption[];
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* A single editable field with contextual suggestions, optional help and field validation.
|
|
643
|
+
*/
|
|
644
|
+
interface HTMLUiComboboxElement extends Components.UiCombobox, HTMLStencilElement {
|
|
645
|
+
addEventListener<K extends keyof HTMLUiComboboxElementEventMap>(type: K, listener: (this: HTMLUiComboboxElement, ev: UiComboboxCustomEvent<HTMLUiComboboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
646
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
647
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
648
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
649
|
+
removeEventListener<K extends keyof HTMLUiComboboxElementEventMap>(type: K, listener: (this: HTMLUiComboboxElement, ev: UiComboboxCustomEvent<HTMLUiComboboxElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
650
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
651
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
652
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
653
|
+
}
|
|
654
|
+
var HTMLUiComboboxElement: {
|
|
655
|
+
prototype: HTMLUiComboboxElement;
|
|
656
|
+
new (): HTMLUiComboboxElement;
|
|
657
|
+
};
|
|
547
658
|
interface HTMLUiContextMenuElement extends Components.UiContextMenu, HTMLStencilElement {
|
|
548
659
|
}
|
|
549
660
|
var HTMLUiContextMenuElement: {
|
|
@@ -658,7 +769,19 @@ declare global {
|
|
|
658
769
|
prototype: HTMLUiToastRegionElement;
|
|
659
770
|
new (): HTMLUiToastRegionElement;
|
|
660
771
|
};
|
|
772
|
+
interface HTMLUiTooltipElementEventMap {
|
|
773
|
+
"open": { open: boolean; reason: string; trigger: string };
|
|
774
|
+
"close": { open: boolean; reason: string; trigger: string };
|
|
775
|
+
}
|
|
661
776
|
interface HTMLUiTooltipElement extends Components.UiTooltip, HTMLStencilElement {
|
|
777
|
+
addEventListener<K extends keyof HTMLUiTooltipElementEventMap>(type: K, listener: (this: HTMLUiTooltipElement, ev: UiTooltipCustomEvent<HTMLUiTooltipElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
778
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
779
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
780
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
781
|
+
removeEventListener<K extends keyof HTMLUiTooltipElementEventMap>(type: K, listener: (this: HTMLUiTooltipElement, ev: UiTooltipCustomEvent<HTMLUiTooltipElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
782
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
783
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
784
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
662
785
|
}
|
|
663
786
|
var HTMLUiTooltipElement: {
|
|
664
787
|
prototype: HTMLUiTooltipElement;
|
|
@@ -689,6 +812,7 @@ declare global {
|
|
|
689
812
|
"ui-badge": HTMLUiBadgeElement;
|
|
690
813
|
"ui-button": HTMLUiButtonElement;
|
|
691
814
|
"ui-checkbox": HTMLUiCheckboxElement;
|
|
815
|
+
"ui-combobox": HTMLUiComboboxElement;
|
|
692
816
|
"ui-context-menu": HTMLUiContextMenuElement;
|
|
693
817
|
"ui-dialog": HTMLUiDialogElement;
|
|
694
818
|
"ui-disclosure": HTMLUiDisclosureElement;
|
|
@@ -791,6 +915,81 @@ declare namespace LocalJSX {
|
|
|
791
915
|
*/
|
|
792
916
|
"value"?: string;
|
|
793
917
|
}
|
|
918
|
+
/**
|
|
919
|
+
* A single editable field with contextual suggestions, optional help and field validation.
|
|
920
|
+
*/
|
|
921
|
+
interface UiCombobox {
|
|
922
|
+
/**
|
|
923
|
+
* @default false
|
|
924
|
+
*/
|
|
925
|
+
"clearable"?: boolean;
|
|
926
|
+
/**
|
|
927
|
+
* Immutable configuration; replace the object/context when dependencies change.
|
|
928
|
+
* @default {}
|
|
929
|
+
*/
|
|
930
|
+
"config"?: ComboboxConfig;
|
|
931
|
+
/**
|
|
932
|
+
* @default ''
|
|
933
|
+
*/
|
|
934
|
+
"defaultQuery"?: string;
|
|
935
|
+
"defaultValue"?: string;
|
|
936
|
+
/**
|
|
937
|
+
* @default false
|
|
938
|
+
*/
|
|
939
|
+
"disabled"?: boolean;
|
|
940
|
+
/**
|
|
941
|
+
* @default false
|
|
942
|
+
*/
|
|
943
|
+
"disclosure"?: boolean;
|
|
944
|
+
/**
|
|
945
|
+
* Optional description shown by the connected question-mark button.
|
|
946
|
+
* @default ''
|
|
947
|
+
*/
|
|
948
|
+
"help"?: string;
|
|
949
|
+
/**
|
|
950
|
+
* Accessible visible label, associated with the native text input.
|
|
951
|
+
* @default ''
|
|
952
|
+
*/
|
|
953
|
+
"label"?: string;
|
|
954
|
+
/**
|
|
955
|
+
* @default ''
|
|
956
|
+
*/
|
|
957
|
+
"name"?: string;
|
|
958
|
+
"onCreate-entry"?: (event: UiComboboxCustomEvent<ComboboxChange>) => void;
|
|
959
|
+
"onDependency-invalidate"?: (event: UiComboboxCustomEvent<ComboboxChange>) => void;
|
|
960
|
+
"onFree-entry"?: (event: UiComboboxCustomEvent<ComboboxChange>) => void;
|
|
961
|
+
/**
|
|
962
|
+
* Supplies the current result rows for framework-owned rich slots.
|
|
963
|
+
*/
|
|
964
|
+
"onOptions-change"?: (event: UiComboboxCustomEvent<readonly ComboboxOption[]>) => void;
|
|
965
|
+
"onQuery-change"?: (event: UiComboboxCustomEvent<{ query: string; display: string; trigger: 'keyboard' | 'pointer' | 'programmatic' }>) => void;
|
|
966
|
+
"onValidation-change"?: (event: UiComboboxCustomEvent<ComboboxValidationState>) => void;
|
|
967
|
+
"onValue-change"?: (event: UiComboboxCustomEvent<ComboboxChange>) => void;
|
|
968
|
+
/**
|
|
969
|
+
* @default ''
|
|
970
|
+
*/
|
|
971
|
+
"placeholder"?: string;
|
|
972
|
+
/**
|
|
973
|
+
* Controlled raw editing text; independent of canonical selection.
|
|
974
|
+
*/
|
|
975
|
+
"query"?: string;
|
|
976
|
+
/**
|
|
977
|
+
* @default false
|
|
978
|
+
*/
|
|
979
|
+
"readOnly"?: boolean;
|
|
980
|
+
/**
|
|
981
|
+
* @default false
|
|
982
|
+
*/
|
|
983
|
+
"required"?: boolean;
|
|
984
|
+
/**
|
|
985
|
+
* @default 'md'
|
|
986
|
+
*/
|
|
987
|
+
"size"?: 'sm' | 'md';
|
|
988
|
+
/**
|
|
989
|
+
* Controlled canonical value. Undefined selects uncontrolled mode; null means no selection.
|
|
990
|
+
*/
|
|
991
|
+
"value"?: string | null;
|
|
992
|
+
}
|
|
794
993
|
interface UiContextMenu {
|
|
795
994
|
/**
|
|
796
995
|
* Opens the menu on first client render.
|
|
@@ -911,9 +1110,6 @@ declare namespace LocalJSX {
|
|
|
911
1110
|
* @default false
|
|
912
1111
|
*/
|
|
913
1112
|
"readOnly"?: boolean;
|
|
914
|
-
/**
|
|
915
|
-
* @default ''
|
|
916
|
-
*/
|
|
917
1113
|
"value"?: string;
|
|
918
1114
|
}
|
|
919
1115
|
interface UiMenu {
|
|
@@ -1024,9 +1220,6 @@ declare namespace LocalJSX {
|
|
|
1024
1220
|
interface UiSearchShell {
|
|
1025
1221
|
}
|
|
1026
1222
|
interface UiSelect {
|
|
1027
|
-
/**
|
|
1028
|
-
* @default ''
|
|
1029
|
-
*/
|
|
1030
1223
|
"defaultValue"?: string;
|
|
1031
1224
|
/**
|
|
1032
1225
|
* @default false
|
|
@@ -1040,9 +1233,6 @@ declare namespace LocalJSX {
|
|
|
1040
1233
|
* @default false
|
|
1041
1234
|
*/
|
|
1042
1235
|
"required"?: boolean;
|
|
1043
|
-
/**
|
|
1044
|
-
* @default ''
|
|
1045
|
-
*/
|
|
1046
1236
|
"value"?: string;
|
|
1047
1237
|
}
|
|
1048
1238
|
interface UiSwitch {
|
|
@@ -1102,9 +1292,6 @@ declare namespace LocalJSX {
|
|
|
1102
1292
|
* @default 4
|
|
1103
1293
|
*/
|
|
1104
1294
|
"rows"?: number;
|
|
1105
|
-
/**
|
|
1106
|
-
* @default ''
|
|
1107
|
-
*/
|
|
1108
1295
|
"value"?: string;
|
|
1109
1296
|
}
|
|
1110
1297
|
interface UiToastRegion {
|
|
@@ -1127,6 +1314,8 @@ declare namespace LocalJSX {
|
|
|
1127
1314
|
* @default 100
|
|
1128
1315
|
*/
|
|
1129
1316
|
"hideDelay"?: number;
|
|
1317
|
+
"onClose"?: (event: UiTooltipCustomEvent<{ open: boolean; reason: string; trigger: string }>) => void;
|
|
1318
|
+
"onOpen"?: (event: UiTooltipCustomEvent<{ open: boolean; reason: string; trigger: string }>) => void;
|
|
1130
1319
|
/**
|
|
1131
1320
|
* @default false
|
|
1132
1321
|
*/
|
|
@@ -1140,6 +1329,11 @@ declare namespace LocalJSX {
|
|
|
1140
1329
|
* @default 500
|
|
1141
1330
|
*/
|
|
1142
1331
|
"showDelay"?: number;
|
|
1332
|
+
/**
|
|
1333
|
+
* Click or tap pins the description; activate again to dismiss.
|
|
1334
|
+
* @default false
|
|
1335
|
+
*/
|
|
1336
|
+
"toggleOnClick"?: boolean;
|
|
1143
1337
|
}
|
|
1144
1338
|
interface UiTopBar {
|
|
1145
1339
|
}
|
|
@@ -1152,6 +1346,11 @@ declare namespace LocalJSX {
|
|
|
1152
1346
|
* @default 'Tree'
|
|
1153
1347
|
*/
|
|
1154
1348
|
"label"?: string;
|
|
1349
|
+
/**
|
|
1350
|
+
* Maximum resulting item depth accepted by pointer reordering. Zero is unlimited.
|
|
1351
|
+
* @default 0
|
|
1352
|
+
*/
|
|
1353
|
+
"maxDepth"?: number;
|
|
1155
1354
|
}
|
|
1156
1355
|
interface UiTreeItem {
|
|
1157
1356
|
/**
|
|
@@ -1183,6 +1382,10 @@ declare namespace LocalJSX {
|
|
|
1183
1382
|
* @default 'item'
|
|
1184
1383
|
*/
|
|
1185
1384
|
"dragType"?: string;
|
|
1385
|
+
/**
|
|
1386
|
+
* Application hierarchy depth used for drop constraints. Defaults to visual depth.
|
|
1387
|
+
*/
|
|
1388
|
+
"dropDepth"?: number;
|
|
1186
1389
|
/**
|
|
1187
1390
|
* Application-defined parent/list identity included with reorder events.
|
|
1188
1391
|
* @default ''
|
|
@@ -1212,6 +1415,10 @@ declare namespace LocalJSX {
|
|
|
1212
1415
|
* @default false
|
|
1213
1416
|
*/
|
|
1214
1417
|
"sortable"?: boolean;
|
|
1418
|
+
/**
|
|
1419
|
+
* Deepest descendant distance, used with the tree's max-depth drop constraint.
|
|
1420
|
+
*/
|
|
1421
|
+
"subtreeDepth"?: number;
|
|
1215
1422
|
}
|
|
1216
1423
|
|
|
1217
1424
|
interface UiAffordanceScopeAttributes {
|
|
@@ -1244,6 +1451,22 @@ declare namespace LocalJSX {
|
|
|
1244
1451
|
"required": boolean;
|
|
1245
1452
|
"value": string;
|
|
1246
1453
|
}
|
|
1454
|
+
interface UiComboboxAttributes {
|
|
1455
|
+
"label": string;
|
|
1456
|
+
"placeholder": string;
|
|
1457
|
+
"name": string;
|
|
1458
|
+
"value": string | null;
|
|
1459
|
+
"defaultValue": string;
|
|
1460
|
+
"query": string;
|
|
1461
|
+
"defaultQuery": string;
|
|
1462
|
+
"disabled": boolean;
|
|
1463
|
+
"readOnly": boolean;
|
|
1464
|
+
"required": boolean;
|
|
1465
|
+
"size": 'sm' | 'md';
|
|
1466
|
+
"disclosure": boolean;
|
|
1467
|
+
"clearable": boolean;
|
|
1468
|
+
"help": string;
|
|
1469
|
+
}
|
|
1247
1470
|
interface UiContextMenuAttributes {
|
|
1248
1471
|
"open": boolean;
|
|
1249
1472
|
"defaultOpen": boolean;
|
|
@@ -1357,15 +1580,19 @@ declare namespace LocalJSX {
|
|
|
1357
1580
|
"placement": AnchoredPlacement;
|
|
1358
1581
|
"showDelay": number;
|
|
1359
1582
|
"hideDelay": number;
|
|
1583
|
+
"toggleOnClick": boolean;
|
|
1360
1584
|
}
|
|
1361
1585
|
interface UiTreeAttributes {
|
|
1362
1586
|
"label": string;
|
|
1363
1587
|
"hoverExpandDelay": number;
|
|
1588
|
+
"maxDepth": number;
|
|
1364
1589
|
}
|
|
1365
1590
|
interface UiTreeItemAttributes {
|
|
1366
1591
|
"itemId": string;
|
|
1367
1592
|
"label": string;
|
|
1368
1593
|
"depth": number;
|
|
1594
|
+
"dropDepth": number;
|
|
1595
|
+
"subtreeDepth": number;
|
|
1369
1596
|
"container": boolean;
|
|
1370
1597
|
"sortable": boolean;
|
|
1371
1598
|
"dragType": string;
|
|
@@ -1384,6 +1611,7 @@ declare namespace LocalJSX {
|
|
|
1384
1611
|
"ui-badge": Omit<UiBadge, keyof UiBadgeAttributes> & { [K in keyof UiBadge & keyof UiBadgeAttributes]?: UiBadge[K] } & { [K in keyof UiBadge & keyof UiBadgeAttributes as `attr:${K}`]?: UiBadgeAttributes[K] } & { [K in keyof UiBadge & keyof UiBadgeAttributes as `prop:${K}`]?: UiBadge[K] };
|
|
1385
1612
|
"ui-button": Omit<UiButton, keyof UiButtonAttributes> & { [K in keyof UiButton & keyof UiButtonAttributes]?: UiButton[K] } & { [K in keyof UiButton & keyof UiButtonAttributes as `attr:${K}`]?: UiButtonAttributes[K] } & { [K in keyof UiButton & keyof UiButtonAttributes as `prop:${K}`]?: UiButton[K] };
|
|
1386
1613
|
"ui-checkbox": Omit<UiCheckbox, keyof UiCheckboxAttributes> & { [K in keyof UiCheckbox & keyof UiCheckboxAttributes]?: UiCheckbox[K] } & { [K in keyof UiCheckbox & keyof UiCheckboxAttributes as `attr:${K}`]?: UiCheckboxAttributes[K] } & { [K in keyof UiCheckbox & keyof UiCheckboxAttributes as `prop:${K}`]?: UiCheckbox[K] };
|
|
1614
|
+
"ui-combobox": Omit<UiCombobox, keyof UiComboboxAttributes> & { [K in keyof UiCombobox & keyof UiComboboxAttributes]?: UiCombobox[K] } & { [K in keyof UiCombobox & keyof UiComboboxAttributes as `attr:${K}`]?: UiComboboxAttributes[K] } & { [K in keyof UiCombobox & keyof UiComboboxAttributes as `prop:${K}`]?: UiCombobox[K] };
|
|
1387
1615
|
"ui-context-menu": Omit<UiContextMenu, keyof UiContextMenuAttributes> & { [K in keyof UiContextMenu & keyof UiContextMenuAttributes]?: UiContextMenu[K] } & { [K in keyof UiContextMenu & keyof UiContextMenuAttributes as `attr:${K}`]?: UiContextMenuAttributes[K] } & { [K in keyof UiContextMenu & keyof UiContextMenuAttributes as `prop:${K}`]?: UiContextMenu[K] };
|
|
1388
1616
|
"ui-dialog": Omit<UiDialog, keyof UiDialogAttributes> & { [K in keyof UiDialog & keyof UiDialogAttributes]?: UiDialog[K] } & { [K in keyof UiDialog & keyof UiDialogAttributes as `attr:${K}`]?: UiDialogAttributes[K] } & { [K in keyof UiDialog & keyof UiDialogAttributes as `prop:${K}`]?: UiDialog[K] };
|
|
1389
1617
|
"ui-disclosure": Omit<UiDisclosure, keyof UiDisclosureAttributes> & { [K in keyof UiDisclosure & keyof UiDisclosureAttributes]?: UiDisclosure[K] } & { [K in keyof UiDisclosure & keyof UiDisclosureAttributes as `attr:${K}`]?: UiDisclosureAttributes[K] } & { [K in keyof UiDisclosure & keyof UiDisclosureAttributes as `prop:${K}`]?: UiDisclosure[K] };
|
|
@@ -1419,6 +1647,10 @@ declare module "@stencil/core" {
|
|
|
1419
1647
|
"ui-badge": LocalJSX.IntrinsicElements["ui-badge"] & JSXBase.HTMLAttributes<HTMLUiBadgeElement>;
|
|
1420
1648
|
"ui-button": LocalJSX.IntrinsicElements["ui-button"] & JSXBase.HTMLAttributes<HTMLUiButtonElement>;
|
|
1421
1649
|
"ui-checkbox": LocalJSX.IntrinsicElements["ui-checkbox"] & JSXBase.HTMLAttributes<HTMLUiCheckboxElement>;
|
|
1650
|
+
/**
|
|
1651
|
+
* A single editable field with contextual suggestions, optional help and field validation.
|
|
1652
|
+
*/
|
|
1653
|
+
"ui-combobox": LocalJSX.IntrinsicElements["ui-combobox"] & JSXBase.HTMLAttributes<HTMLUiComboboxElement>;
|
|
1422
1654
|
"ui-context-menu": LocalJSX.IntrinsicElements["ui-context-menu"] & JSXBase.HTMLAttributes<HTMLUiContextMenuElement>;
|
|
1423
1655
|
"ui-dialog": LocalJSX.IntrinsicElements["ui-dialog"] & JSXBase.HTMLAttributes<HTMLUiDialogElement>;
|
|
1424
1656
|
"ui-disclosure": LocalJSX.IntrinsicElements["ui-disclosure"] & JSXBase.HTMLAttributes<HTMLUiDisclosureElement>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { FieldFormatter, FieldIssue, FieldValidation } from './validation';
|
|
2
|
+
export interface ComboboxOption<Metadata = unknown> {
|
|
3
|
+
id: string;
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
metadata?: Metadata;
|
|
8
|
+
group?: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface ComboboxRequest<Context = unknown> {
|
|
12
|
+
query: string;
|
|
13
|
+
context: Context;
|
|
14
|
+
signal: AbortSignal;
|
|
15
|
+
reason: 'input' | 'disclosure' | 'context';
|
|
16
|
+
}
|
|
17
|
+
export type ComboboxProvider = (request: ComboboxRequest) => readonly ComboboxOption[] | Promise<readonly ComboboxOption[]>;
|
|
18
|
+
/** Map domain records at the boundary, preserving typed metadata for rich rows. */
|
|
19
|
+
export declare function mapComboboxOptions<T>(rows: readonly T[], map: (row: T) => Omit<ComboboxOption<T>, 'metadata'>): ComboboxOption<T>[];
|
|
20
|
+
export interface ComboboxConfig extends FieldValidation {
|
|
21
|
+
options?: readonly ComboboxOption[];
|
|
22
|
+
provider?: ComboboxProvider;
|
|
23
|
+
filter?: (option: ComboboxOption, query: string, context: unknown) => boolean;
|
|
24
|
+
context?: unknown;
|
|
25
|
+
invalidation?: 'clear' | 'retain-query' | 'retain';
|
|
26
|
+
debounce?: number;
|
|
27
|
+
allowFreeText?: boolean;
|
|
28
|
+
allowCreate?: boolean;
|
|
29
|
+
format?: FieldFormatter;
|
|
30
|
+
formatOn?: 'input' | 'blur';
|
|
31
|
+
validateOn?: 'input' | 'blur' | 'submit';
|
|
32
|
+
}
|
|
33
|
+
export interface ComboboxChange {
|
|
34
|
+
value: string | null;
|
|
35
|
+
query: string;
|
|
36
|
+
option: ComboboxOption | null;
|
|
37
|
+
kind: 'selection' | 'clear' | 'free-entry' | 'create' | 'invalidation';
|
|
38
|
+
trigger: 'keyboard' | 'pointer' | 'programmatic';
|
|
39
|
+
}
|
|
40
|
+
export interface ComboboxValidationState {
|
|
41
|
+
status: 'pristine' | 'pending' | 'valid' | 'warning' | 'error';
|
|
42
|
+
touched: boolean;
|
|
43
|
+
dirty: boolean;
|
|
44
|
+
issues: readonly FieldIssue[];
|
|
45
|
+
output?: unknown;
|
|
46
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GenericSchema, GenericSchemaAsync, InferOutput } from 'valibot';
|
|
2
|
+
import type { FieldSchema, FieldValidation } from './validation';
|
|
3
|
+
/** Valibot's Standard Schema implementation preserves async transforms and issue paths.
|
|
4
|
+
* Type-only Valibot imports keep the adapter free of a schema-library runtime. */
|
|
5
|
+
export declare function valibotField<T extends GenericSchema | GenericSchemaAsync>(schema: T, options?: Omit<FieldValidation, 'schema'>): FieldValidation & {
|
|
6
|
+
schema: FieldSchema<InferOutput<T>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Structural Standard Schema v1 boundary; no schema-library runtime dependency. */
|
|
2
|
+
export interface FieldSchema<Output = unknown> {
|
|
3
|
+
readonly '~standard': {
|
|
4
|
+
readonly version: 1;
|
|
5
|
+
readonly vendor: string;
|
|
6
|
+
readonly validate: (value: unknown) => FieldSchemaResult<Output> | Promise<FieldSchemaResult<Output>>;
|
|
7
|
+
readonly types?: {
|
|
8
|
+
readonly input: unknown;
|
|
9
|
+
readonly output: Output;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export interface FieldIssue {
|
|
14
|
+
readonly message: string;
|
|
15
|
+
readonly path?: ReadonlyArray<PropertyKey | {
|
|
16
|
+
readonly key: PropertyKey;
|
|
17
|
+
}>;
|
|
18
|
+
readonly severity?: 'error' | 'warning';
|
|
19
|
+
}
|
|
20
|
+
export type FieldSchemaResult<T = unknown> = {
|
|
21
|
+
readonly value: T;
|
|
22
|
+
readonly issues?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
readonly issues: readonly FieldIssue[];
|
|
25
|
+
};
|
|
26
|
+
export interface FieldRequest<Context = unknown> {
|
|
27
|
+
raw: string;
|
|
28
|
+
value: string | null;
|
|
29
|
+
context: Context;
|
|
30
|
+
signal: AbortSignal;
|
|
31
|
+
}
|
|
32
|
+
export interface FieldResult<Output = unknown> {
|
|
33
|
+
output?: Output;
|
|
34
|
+
issues: readonly FieldIssue[];
|
|
35
|
+
}
|
|
36
|
+
export interface FieldValidation {
|
|
37
|
+
schema?: FieldSchema;
|
|
38
|
+
parse?: (raw: string, request: FieldRequest) => unknown | Promise<unknown>;
|
|
39
|
+
normalize?: (value: unknown, request: FieldRequest) => unknown | Promise<unknown>;
|
|
40
|
+
validator?: (value: unknown, request: FieldRequest) => Partial<FieldResult> | Promise<Partial<FieldResult>>;
|
|
41
|
+
issues?: readonly FieldIssue[];
|
|
42
|
+
}
|
|
43
|
+
export interface FieldSelection {
|
|
44
|
+
start: number;
|
|
45
|
+
end: number;
|
|
46
|
+
direction?: 'forward' | 'backward' | 'none';
|
|
47
|
+
}
|
|
48
|
+
export interface FieldFormat {
|
|
49
|
+
display: string;
|
|
50
|
+
selection: FieldSelection;
|
|
51
|
+
}
|
|
52
|
+
export type FieldFormatter = (raw: string, selection: FieldSelection) => FieldFormat | undefined;
|
|
53
|
+
/** Formatting is additive: every original character must survive in order.
|
|
54
|
+
* Normalization belongs to submitted output, never the visible editing buffer. */
|
|
55
|
+
export declare function formatEditingValue(raw: string, selection: FieldSelection, format?: FieldFormatter): FieldFormat;
|
|
56
|
+
export declare function validateField(request: FieldRequest, config: FieldValidation): Promise<FieldResult>;
|
package/dist/{ui-affordance-scope.entry-L533MECG.js → ui-affordance-scope.entry-VO4C2MZX.js}
RENAMED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
getElement,
|
|
8
8
|
h,
|
|
9
9
|
registerInstance
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GDMQKT5F.js";
|
|
11
11
|
|
|
12
12
|
// dist/esm/ui-affordance-scope.entry.js
|
|
13
13
|
var uiAffordanceScopeCss = () => `:host{display:contents;--ui-affordance-scope-engaged:0}:host([data-ui-interaction='engaged']){--ui-affordance-scope-engaged:1}`;
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
getElement,
|
|
4
4
|
h,
|
|
5
5
|
registerInstance
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GDMQKT5F.js";
|
|
7
7
|
|
|
8
8
|
// dist/esm/ui-avatar-group.entry.js
|
|
9
9
|
var uiAvatarGroupCss = () => `:host{display:flex;align-items:center;flex-direction:row-reverse;gap:0}::slotted(*:not([data-ui-avatar-group-overflow])){margin-inline-end:-0.5rem;flex-shrink:0}::slotted(*:last-of-type:not([data-ui-avatar-group-overflow])){margin-inline-end:0}.overflow{margin-inline-end:-0.5rem;display:inline-flex;align-items:center;justify-content:center;inline-size:2.5rem;block-size:2.5rem;border-radius:999px;border:1px solid var(--ui-border-default);background:var(--ui-surface-muted);color:var(--ui-text-secondary);font:inherit;font-size:0.75rem;font-weight:600;flex-shrink:0}`;
|