@geajs/ui 0.1.4 → 0.1.5
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/_virtual_gea-hmr.mjs +11 -0
- package/dist/accordion.d.mts +34 -0
- package/dist/accordion.mjs +137 -0
- package/dist/accordion.mjs.map +1 -0
- package/dist/alert.d.mts +15 -0
- package/dist/alert.mjs +93 -0
- package/dist/alert.mjs.map +1 -0
- package/dist/avatar.d.mts +26 -0
- package/dist/avatar.mjs +95 -0
- package/dist/avatar.mjs.map +1 -0
- package/dist/badge.d.mts +9 -0
- package/dist/badge.mjs +47 -0
- package/dist/badge.mjs.map +1 -0
- package/dist/button.d.mts +21 -0
- package/dist/button.mjs +86 -0
- package/dist/button.mjs.map +1 -0
- package/dist/card.d.mts +24 -0
- package/dist/card.mjs +152 -0
- package/dist/card.mjs.map +1 -0
- package/dist/checkbox.d.mts +37 -0
- package/dist/checkbox.mjs +78 -0
- package/dist/checkbox.mjs.map +1 -0
- package/dist/clipboard.d.mts +33 -0
- package/dist/clipboard.mjs +96 -0
- package/dist/clipboard.mjs.map +1 -0
- package/dist/cn.mjs +10 -0
- package/dist/cn.mjs.map +1 -0
- package/dist/collapsible.d.mts +29 -0
- package/dist/collapsible.mjs +75 -0
- package/dist/collapsible.mjs.map +1 -0
- package/dist/combobox.d.mts +67 -0
- package/dist/combobox.mjs +314 -0
- package/dist/combobox.mjs.map +1 -0
- package/dist/dialog.d.mts +57 -0
- package/dist/dialog.mjs +137 -0
- package/dist/dialog.mjs.map +1 -0
- package/dist/dnd-manager.d.mts +67 -0
- package/dist/dnd-manager.mjs +373 -0
- package/dist/dnd-manager.mjs.map +1 -0
- package/dist/drag-drop-context.d.mts +11 -0
- package/dist/drag-drop-context.mjs +41 -0
- package/dist/drag-drop-context.mjs.map +1 -0
- package/dist/draggable.d.mts +11 -0
- package/dist/draggable.mjs +62 -0
- package/dist/draggable.mjs.map +1 -0
- package/dist/droppable.d.mts +14 -0
- package/dist/droppable.mjs +61 -0
- package/dist/droppable.mjs.map +1 -0
- package/dist/file-upload.d.mts +38 -0
- package/dist/file-upload.mjs +157 -0
- package/dist/file-upload.mjs.map +1 -0
- package/dist/hover-card.d.mts +33 -0
- package/dist/hover-card.mjs +87 -0
- package/dist/hover-card.mjs.map +1 -0
- package/dist/index.d.mts +41 -1068
- package/dist/index.mjs +41 -4332
- package/dist/input.d.mts +9 -0
- package/dist/input.mjs +62 -0
- package/dist/input.mjs.map +1 -0
- package/dist/label.d.mts +9 -0
- package/dist/label.mjs +37 -0
- package/dist/label.mjs.map +1 -0
- package/dist/menu.d.mts +36 -0
- package/dist/menu.mjs +86 -0
- package/dist/menu.mjs.map +1 -0
- package/dist/number-input.d.mts +46 -0
- package/dist/number-input.mjs +87 -0
- package/dist/number-input.mjs.map +1 -0
- package/dist/pagination.d.mts +37 -0
- package/dist/pagination.mjs +95 -0
- package/dist/pagination.mjs.map +1 -0
- package/dist/pin-input.d.mts +45 -0
- package/dist/pin-input.mjs +135 -0
- package/dist/pin-input.mjs.map +1 -0
- package/dist/popover.d.mts +39 -0
- package/dist/popover.mjs +107 -0
- package/dist/popover.mjs.map +1 -0
- package/dist/progress.d.mts +34 -0
- package/dist/progress.mjs +84 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/radio-group.d.mts +37 -0
- package/dist/radio-group.mjs +154 -0
- package/dist/radio-group.mjs.map +1 -0
- package/dist/rating-group.d.mts +38 -0
- package/dist/rating-group.mjs +159 -0
- package/dist/rating-group.mjs.map +1 -0
- package/dist/select.d.mts +54 -0
- package/dist/select.mjs +235 -0
- package/dist/select.mjs.map +1 -0
- package/dist/separator.d.mts +9 -0
- package/dist/separator.mjs +44 -0
- package/dist/separator.mjs.map +1 -0
- package/dist/skeleton.d.mts +9 -0
- package/dist/skeleton.mjs +41 -0
- package/dist/skeleton.mjs.map +1 -0
- package/dist/slider.d.mts +44 -0
- package/dist/slider.mjs +114 -0
- package/dist/slider.mjs.map +1 -0
- package/dist/switch.d.mts +37 -0
- package/dist/switch.mjs +78 -0
- package/dist/switch.mjs.map +1 -0
- package/dist/tabs.d.mts +36 -0
- package/dist/tabs.mjs +175 -0
- package/dist/tabs.mjs.map +1 -0
- package/dist/tags-input.d.mts +48 -0
- package/dist/tags-input.mjs +213 -0
- package/dist/tags-input.mjs.map +1 -0
- package/dist/textarea.d.mts +9 -0
- package/dist/textarea.mjs +62 -0
- package/dist/textarea.mjs.map +1 -0
- package/dist/toast.d.mts +33 -0
- package/dist/toast.mjs +211 -0
- package/dist/toast.mjs.map +1 -0
- package/dist/toggle-group.d.mts +32 -0
- package/dist/toggle-group.mjs +112 -0
- package/dist/toggle-group.mjs.map +1 -0
- package/dist/tooltip.d.mts +39 -0
- package/dist/tooltip.mjs +83 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/tree-view.d.mts +35 -0
- package/dist/tree-view.mjs +92 -0
- package/dist/tree-view.mjs.map +1 -0
- package/dist/zag-component.d.mts +39 -0
- package/dist/zag-component.mjs +127 -0
- package/dist/zag-component.mjs.map +1 -0
- package/package.json +6 -1
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import "./_virtual_gea-hmr.mjs";
|
|
3
|
+
import { Component } from "@geajs/core";
|
|
4
|
+
import { normalizeProps } from "@zag-js/vanilla";
|
|
5
|
+
import * as toggleGroup from "@zag-js/toggle-group";
|
|
6
|
+
//#region src/components/toggle-group.tsx
|
|
7
|
+
const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
|
|
8
|
+
var ToggleGroup = class extends ZagComponent {
|
|
9
|
+
createMachine(_props) {
|
|
10
|
+
return toggleGroup.machine;
|
|
11
|
+
}
|
|
12
|
+
getMachineProps(props) {
|
|
13
|
+
return {
|
|
14
|
+
id: this.id,
|
|
15
|
+
value: props.value,
|
|
16
|
+
defaultValue: props.defaultValue,
|
|
17
|
+
multiple: props.multiple ?? false,
|
|
18
|
+
disabled: props.disabled,
|
|
19
|
+
orientation: props.orientation ?? "horizontal",
|
|
20
|
+
loopFocus: props.loopFocus ?? true,
|
|
21
|
+
rovingFocus: props.rovingFocus ?? true,
|
|
22
|
+
onValueChange: (details) => {
|
|
23
|
+
this.value = details.value;
|
|
24
|
+
props.onValueChange?.(details);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
connectApi(service) {
|
|
29
|
+
return toggleGroup.connect(service, normalizeProps);
|
|
30
|
+
}
|
|
31
|
+
getSpreadMap() {
|
|
32
|
+
return {
|
|
33
|
+
"[data-part=\"root\"]": "getRootProps",
|
|
34
|
+
"[data-part=\"item\"]": (api, el) => api.getItemProps({ value: el.dataset.value })
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
syncState(api) {
|
|
38
|
+
this.value = api.value;
|
|
39
|
+
}
|
|
40
|
+
template(props) {
|
|
41
|
+
const __id = this.id;
|
|
42
|
+
Component._register(ZagComponent);
|
|
43
|
+
const items = props.items || [];
|
|
44
|
+
return `<div id="${__id}" data-part="root" class="${`toggle-group-root inline-flex rounded-md border ${props.class || ""}`.trim()}">${items.map((item) => `<button data-gea-item-id="${item?.value ?? item}" data-part="item"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`} class="toggle-group-item inline-flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground">${item.label}</button>`).join("") + "<!---->"}</div>`;
|
|
45
|
+
}
|
|
46
|
+
render__unresolved_0Item(item) {
|
|
47
|
+
return `<button data-gea-item-id="${item?.value ?? item}" data-part="item"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`} class="toggle-group-item inline-flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground">${item.label}</button>`;
|
|
48
|
+
}
|
|
49
|
+
create__unresolved_0Item(item) {
|
|
50
|
+
var __c = this.____unresolved_0_container;
|
|
51
|
+
if (!__c.__geaTpl) try {
|
|
52
|
+
var __tw = document.createElement("template");
|
|
53
|
+
__tw.innerHTML = this.render__unresolved_0Item({
|
|
54
|
+
value: 0,
|
|
55
|
+
label: ""
|
|
56
|
+
});
|
|
57
|
+
__c.__geaTpl = __tw.content.firstElementChild;
|
|
58
|
+
} catch (__err) {
|
|
59
|
+
console.error(__err);
|
|
60
|
+
}
|
|
61
|
+
if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
|
|
62
|
+
else {
|
|
63
|
+
var __fw = document.createElement("template");
|
|
64
|
+
__fw.innerHTML = this.render__unresolved_0Item(item);
|
|
65
|
+
var el = __fw.content.firstElementChild;
|
|
66
|
+
}
|
|
67
|
+
var __av = item.value;
|
|
68
|
+
if (__av == null || __av === false) el.removeAttribute("data-value");
|
|
69
|
+
else el.setAttribute("data-value", String(__av));
|
|
70
|
+
el.textContent = `
|
|
71
|
+
${item.label}
|
|
72
|
+
`;
|
|
73
|
+
el.setAttribute("data-gea-item-id", item?.value ?? item);
|
|
74
|
+
el.__geaItem = item;
|
|
75
|
+
return el;
|
|
76
|
+
}
|
|
77
|
+
patch__unresolved_0Item(row, item, __prevItem) {
|
|
78
|
+
if (!row) return;
|
|
79
|
+
var __av = item.value;
|
|
80
|
+
if (__av == null || __av === false) row.removeAttribute("data-value");
|
|
81
|
+
else row.setAttribute("data-value", String(__av));
|
|
82
|
+
row.textContent = `
|
|
83
|
+
${item.label}
|
|
84
|
+
`;
|
|
85
|
+
row.setAttribute("data-gea-item-id", item?.value ?? item);
|
|
86
|
+
row.__geaItem = item;
|
|
87
|
+
}
|
|
88
|
+
__onPropChange(key, value) {
|
|
89
|
+
if (key === "class") {
|
|
90
|
+
const __el = this.element_;
|
|
91
|
+
this.props;
|
|
92
|
+
const __boundValue = `toggle-group-root inline-flex rounded-md border ${value || ""}`;
|
|
93
|
+
if (__el) {
|
|
94
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
95
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (key === "items") this.__geaSyncMap(0);
|
|
99
|
+
}
|
|
100
|
+
__observe_local_props(__v, __c) {
|
|
101
|
+
this.__geaSyncMap(0);
|
|
102
|
+
}
|
|
103
|
+
createdHooks() {
|
|
104
|
+
this.__geaRegisterMap(0, "____unresolved_0_container", () => this.$(":scope"), () => {
|
|
105
|
+
return this.props.items || [];
|
|
106
|
+
}, (__item) => this.create__unresolved_0Item(__item), "value");
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
//#endregion
|
|
110
|
+
export { ToggleGroup as default };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=toggle-group.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-group.mjs","names":["__v","v","valueOf","Component","toggleGroup","normalizeProps","ZagComponent","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","ToggleGroup","value","createMachine","_props","machine","getMachineProps","props","id","defaultValue","multiple","disabled","orientation","loopFocus","rovingFocus","onValueChange","details","ValueChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","getItemProps","HTMLElement","dataset","syncState","template","__id","_register","items","class","trim","map","item","label","join","render__unresolved_0Item","create__unresolved_0Item","__c","____unresolved_0_container","__geaTpl","__tw","document","createElement","innerHTML","content","firstElementChild","__err","console","error","cloneNode","__fw","__av","removeAttribute","setAttribute","String","textContent","__geaItem","patch__unresolved_0Item","row","__prevItem","__onPropChange","key","__el","element_","__boundValue","__newClass","className","__geaSyncMap","__observe_local_props","createdHooks","__geaRegisterMap","$","__item","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","constructor","name","call","__origDispose","dispose"],"sources":["../src/components/toggle-group.tsx"],"sourcesContent":["import * as toggleGroup from '@zag-js/toggle-group'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class ToggleGroup extends ZagComponent {\n declare value: string[]\n\n createMachine(_props: any): any {\n return toggleGroup.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n multiple: props.multiple ?? false,\n disabled: props.disabled,\n orientation: props.orientation ?? 'horizontal',\n loopFocus: props.loopFocus ?? true,\n rovingFocus: props.rovingFocus ?? true,\n onValueChange: (details: toggleGroup.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return toggleGroup.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"item\"]': (api, el) => api.getItemProps({ value: (el as HTMLElement).dataset.value }),\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n }\n\n template(props: any) {\n const items = props.items || []\n return (\n <div data-part=\"root\" class={`toggle-group-root inline-flex rounded-md border ${props.class || ''}`}>\n {items.map((item: any) => (\n <button\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n class=\"toggle-group-item inline-flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground\"\n >\n {item.label}\n </button>\n ))}\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { n as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import * as tooltip from "@zag-js/tooltip";
|
|
3
|
+
import * as _zag_js_types0 from "@zag-js/types";
|
|
4
|
+
|
|
5
|
+
//#region src/components/tooltip.d.ts
|
|
6
|
+
declare class Tooltip extends ZagComponent {
|
|
7
|
+
open: boolean;
|
|
8
|
+
createMachine(_props: any): any;
|
|
9
|
+
getMachineProps(props: any): {
|
|
10
|
+
id: string;
|
|
11
|
+
open: any;
|
|
12
|
+
defaultOpen: any;
|
|
13
|
+
openDelay: any;
|
|
14
|
+
closeDelay: any;
|
|
15
|
+
closeOnPointerDown: any;
|
|
16
|
+
closeOnEscape: any;
|
|
17
|
+
closeOnScroll: any;
|
|
18
|
+
interactive: any;
|
|
19
|
+
disabled: any;
|
|
20
|
+
positioning: any;
|
|
21
|
+
'aria-label': any;
|
|
22
|
+
onOpenChange: (details: tooltip.OpenChangeDetails) => void;
|
|
23
|
+
};
|
|
24
|
+
connectApi(service: any): tooltip.Api<_zag_js_types0.PropTypes<{
|
|
25
|
+
[x: string]: any;
|
|
26
|
+
}>>;
|
|
27
|
+
getSpreadMap(): {
|
|
28
|
+
'[data-part="trigger"]': string;
|
|
29
|
+
'[data-part="positioner"]': string;
|
|
30
|
+
'[data-part="content"]': string;
|
|
31
|
+
'[data-part="arrow"]': string;
|
|
32
|
+
'[data-part="arrow-tip"]': string;
|
|
33
|
+
};
|
|
34
|
+
syncState(api: any): void;
|
|
35
|
+
template(props: any): string;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { Tooltip as default };
|
|
39
|
+
//# sourceMappingURL=tooltip.d.mts.map
|
package/dist/tooltip.mjs
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import "./_virtual_gea-hmr.mjs";
|
|
3
|
+
import { Component } from "@geajs/core";
|
|
4
|
+
import { normalizeProps } from "@zag-js/vanilla";
|
|
5
|
+
import * as tooltip from "@zag-js/tooltip";
|
|
6
|
+
//#region src/components/tooltip.tsx
|
|
7
|
+
var Tooltip = class extends ZagComponent {
|
|
8
|
+
createMachine(_props) {
|
|
9
|
+
return tooltip.machine;
|
|
10
|
+
}
|
|
11
|
+
getMachineProps(props) {
|
|
12
|
+
return {
|
|
13
|
+
id: this.id,
|
|
14
|
+
open: props.open,
|
|
15
|
+
defaultOpen: props.defaultOpen,
|
|
16
|
+
openDelay: props.openDelay ?? 400,
|
|
17
|
+
closeDelay: props.closeDelay ?? 150,
|
|
18
|
+
closeOnPointerDown: props.closeOnPointerDown ?? true,
|
|
19
|
+
closeOnEscape: props.closeOnEscape ?? true,
|
|
20
|
+
closeOnScroll: props.closeOnScroll ?? true,
|
|
21
|
+
interactive: props.interactive ?? false,
|
|
22
|
+
disabled: props.disabled,
|
|
23
|
+
positioning: props.positioning,
|
|
24
|
+
"aria-label": props["aria-label"],
|
|
25
|
+
onOpenChange: (details) => {
|
|
26
|
+
this.open = details.open;
|
|
27
|
+
props.onOpenChange?.(details);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
connectApi(service) {
|
|
32
|
+
return tooltip.connect(service, normalizeProps);
|
|
33
|
+
}
|
|
34
|
+
getSpreadMap() {
|
|
35
|
+
return {
|
|
36
|
+
"[data-part=\"trigger\"]": "getTriggerProps",
|
|
37
|
+
"[data-part=\"positioner\"]": "getPositionerProps",
|
|
38
|
+
"[data-part=\"content\"]": "getContentProps",
|
|
39
|
+
"[data-part=\"arrow\"]": "getArrowProps",
|
|
40
|
+
"[data-part=\"arrow-tip\"]": "getArrowTipProps"
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
syncState(api) {
|
|
44
|
+
this.open = api.open;
|
|
45
|
+
}
|
|
46
|
+
template(props) {
|
|
47
|
+
const __id = this.id;
|
|
48
|
+
Component._register(ZagComponent);
|
|
49
|
+
return `<div id="${__id}"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`} style="display: inline-block"><div id="${__id + "-b1"}" data-part="trigger" class="tooltip-trigger" style="display: inline-block">${props.children}</div><div data-part="positioner" class="tooltip-positioner"><div id="${__id + "-b2"}" data-part="content" class="tooltip-content z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-md">${props.content}</div></div></div>`;
|
|
50
|
+
}
|
|
51
|
+
__onPropChange(key, value) {
|
|
52
|
+
const __id = this.id;
|
|
53
|
+
if (key === "class") {
|
|
54
|
+
const __el = this.element_;
|
|
55
|
+
this.props;
|
|
56
|
+
const __boundValue = value || "";
|
|
57
|
+
if (__el) {
|
|
58
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
59
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (key === "children") {
|
|
63
|
+
const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
|
|
64
|
+
if (__el && __el.innerHTML !== value) {
|
|
65
|
+
__el.innerHTML = value;
|
|
66
|
+
this.instantiateChildComponents_();
|
|
67
|
+
if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (key === "content") {
|
|
71
|
+
const __el = this.__e1 || (this.__e1 = document.getElementById(__id + "-b2"));
|
|
72
|
+
if (__el && __el.textContent !== value) __el.textContent = value;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
__resetEls() {
|
|
76
|
+
this.__e0 = null;
|
|
77
|
+
this.__e1 = null;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
//#endregion
|
|
81
|
+
export { Tooltip as default };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=tooltip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.mjs","names":["tooltip","normalizeProps","ZagComponent","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","Tooltip","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","openDelay","closeDelay","closeOnPointerDown","closeOnEscape","closeOnScroll","interactive","disabled","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","String","trim","children","content","__onPropChange","key","value","__el","element_","__boundValue","__newClass","className","__e0","document","getElementById","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_","__e1","textContent","__resetEls","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","constructor","name","call","__origDispose","dispose"],"sources":["../src/components/tooltip.tsx"],"sourcesContent":["import * as tooltip from '@zag-js/tooltip'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Tooltip extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return tooltip.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n openDelay: props.openDelay ?? 400,\n closeDelay: props.closeDelay ?? 150,\n closeOnPointerDown: props.closeOnPointerDown ?? true,\n closeOnEscape: props.closeOnEscape ?? true,\n closeOnScroll: props.closeOnScroll ?? true,\n interactive: props.interactive ?? false,\n disabled: props.disabled,\n positioning: props.positioning,\n 'aria-label': props['aria-label'],\n onOpenChange: (details: tooltip.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return tooltip.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"arrow\"]': 'getArrowProps',\n '[data-part=\"arrow-tip\"]': 'getArrowTipProps',\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n }\n\n template(props: any) {\n return (\n <div class={props.class || ''} style={{ display: 'inline-block' }}>\n <div data-part=\"trigger\" class=\"tooltip-trigger\" style={{ display: 'inline-block' }}>\n {props.children}\n </div>\n <div data-part=\"positioner\" class=\"tooltip-positioner\">\n <div\n data-part=\"content\"\n class=\"tooltip-content z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-md\"\n >\n {props.content}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;;AAIA,IAAqBO,UAArB,cAAqCL,aAAa;CAGhDO,cAAcC,QAAkB;AAC9B,SAAOV,QAAQW;;CAGjBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTN,MAAMK,MAAML;GACZO,aAAaF,MAAME;GACnBC,WAAWH,MAAMG,aAAa;GAC9BC,YAAYJ,MAAMI,cAAc;GAChCC,oBAAoBL,MAAMK,sBAAsB;GAChDC,eAAeN,MAAMM,iBAAiB;GACtCC,eAAeP,MAAMO,iBAAiB;GACtCC,aAAaR,MAAMQ,eAAe;GAClCC,UAAUT,MAAMS;GAChBC,aAAaV,MAAMU;GACnB,cAAcV,MAAM;GACpBW,eAAeC,YAAuC;AACpD,SAAKjB,OAAOiB,QAAQjB;AACpBK,UAAMW,eAAeC,QAAQ;;GAEhC;;CAGHE,WAAWC,SAAc;AACvB,SAAO5B,QAAQ6B,QAAQD,SAAS3B,eAAe;;CAGjD6B,eAAe;AACb,SAAO;GACL,2BAAyB;GACzB,8BAA4B;GAC5B,2BAAyB;GACzB,yBAAuB;GACvB,6BAA2B;GAC5B;;CAGHC,UAAUC,KAAU;AAClB,OAAKxB,OAAOwB,IAAIxB;;CAGlByB,SAASpB,OAAY;EAAA,MAAAqB,OAAA,KAAApB;AAAAqB,YAAAC,UAAAlC,aAAA;AACnB,SAAA,YAAAgC,KAAA,IACcrB,MAAMwB,SAAS,OAAE,SAAjBxB,MAAMwB,SAAS,QAAE,QAAA,KAAA,aAAjBxB,MAAMwB,SAAS,OAAE,OAAAC,OAAjBzB,MAAMwB,SAAS,GAAE,GAAA,IAAAE,MAAA,CAAA,GAAA,0CAAAL,OAAA,MAAA,8EAExBrB,MAAM2B,SAAQ,wEAAAN,OAAA,MAAA,iJAOZrB,MAAM4B,QAAO;;CA5D1BC,eAAsBC,KAAKC,OAAK;EAAA,MAAAV,OAAA,KAAApB;AAAA,MAAA6B,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAC;AAiDX,QAAAjC;GAAA,MAAAkC,eAAAH,SAEY;AAAE,OAAAC,MAAA;IAAA,MAAAG,cAAAD,gBAAA,OAAAT,OAAAS,aAAA,GAAA,IAAAR,MAAA;AAAA,QAAAM,KAAAI,cAAAD,WAAAH,MAAAI,YAAAD;;;AAAA,MAAAL,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAK,SAAA,KAAAA,OAAAC,SAAAC,eAAAlB,OAAA,MAAA;AAAA,OAAAW,QAAAA,KAAAQ,cAAAT,OAAA;AAAAC,SAAAQ,YAAAT;AAAA,SAAAU,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA;;;AAAA,MAAAb,QAAA,WAAA;GAAA,MAAAE,OAAA,KAAAY,SAAA,KAAAA,OAAAN,SAAAC,eAAAlB,OAAA,MAAA;AAAA,OAAAW,QAAAA,KAAAa,gBAAAd,MAAAC,MAAAa,cAAAd;;;CAnDCe,aAAA;AAAA,OAAAT,OAAA;AAAA,OAAAO,OAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { n as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import * as treeView from "@zag-js/tree-view";
|
|
3
|
+
import * as _zag_js_types0 from "@zag-js/types";
|
|
4
|
+
|
|
5
|
+
//#region src/components/tree-view.d.ts
|
|
6
|
+
declare class TreeView extends ZagComponent {
|
|
7
|
+
selectedValue: string[];
|
|
8
|
+
expandedValue: string[];
|
|
9
|
+
createMachine(_props: any): any;
|
|
10
|
+
getMachineProps(props: any): {
|
|
11
|
+
id: string;
|
|
12
|
+
collection: any;
|
|
13
|
+
selectedValue: any;
|
|
14
|
+
defaultSelectedValue: any;
|
|
15
|
+
expandedValue: any;
|
|
16
|
+
defaultExpandedValue: any;
|
|
17
|
+
selectionMode: any;
|
|
18
|
+
expandOnClick: any;
|
|
19
|
+
onSelectionChange: (details: treeView.SelectionChangeDetails) => void;
|
|
20
|
+
onExpandedChange: (details: treeView.ExpandedChangeDetails) => void;
|
|
21
|
+
};
|
|
22
|
+
connectApi(service: any): treeView.Api<_zag_js_types0.PropTypes<{
|
|
23
|
+
[x: string]: any;
|
|
24
|
+
}>, any>;
|
|
25
|
+
getSpreadMap(): {
|
|
26
|
+
'[data-part="root"]': string;
|
|
27
|
+
'[data-part="label"]': string;
|
|
28
|
+
'[data-part="tree"]': string;
|
|
29
|
+
};
|
|
30
|
+
syncState(api: any): void;
|
|
31
|
+
template(props: any): string;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { TreeView as default };
|
|
35
|
+
//# sourceMappingURL=tree-view.d.mts.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import "./_virtual_gea-hmr.mjs";
|
|
3
|
+
import { Component } from "@geajs/core";
|
|
4
|
+
import { normalizeProps } from "@zag-js/vanilla";
|
|
5
|
+
import * as treeView from "@zag-js/tree-view";
|
|
6
|
+
//#region src/components/tree-view.tsx
|
|
7
|
+
var TreeView = class extends ZagComponent {
|
|
8
|
+
constructor(...args) {
|
|
9
|
+
super(...args);
|
|
10
|
+
this.selectedValue = [];
|
|
11
|
+
this.expandedValue = [];
|
|
12
|
+
this.props;
|
|
13
|
+
this.__geaCond_0 = !!this.props.label;
|
|
14
|
+
this.__geaRegisterCond(0, "c0", () => {
|
|
15
|
+
this.props;
|
|
16
|
+
return this.props.label;
|
|
17
|
+
}, () => {
|
|
18
|
+
this.props;
|
|
19
|
+
return `<label data-part="label" class="tree-view-label text-sm font-medium mb-2 block">${this.props.label}</label>`;
|
|
20
|
+
}, null);
|
|
21
|
+
}
|
|
22
|
+
createMachine(_props) {
|
|
23
|
+
return treeView.machine;
|
|
24
|
+
}
|
|
25
|
+
getMachineProps(props) {
|
|
26
|
+
return {
|
|
27
|
+
id: this.id,
|
|
28
|
+
collection: props.collection,
|
|
29
|
+
selectedValue: props.selectedValue,
|
|
30
|
+
defaultSelectedValue: props.defaultSelectedValue,
|
|
31
|
+
expandedValue: props.expandedValue,
|
|
32
|
+
defaultExpandedValue: props.defaultExpandedValue,
|
|
33
|
+
selectionMode: props.selectionMode ?? "single",
|
|
34
|
+
expandOnClick: props.expandOnClick ?? true,
|
|
35
|
+
onSelectionChange: (details) => {
|
|
36
|
+
this.selectedValue = details.selectedValue;
|
|
37
|
+
props.onSelectionChange?.(details);
|
|
38
|
+
},
|
|
39
|
+
onExpandedChange: (details) => {
|
|
40
|
+
this.expandedValue = details.expandedValue;
|
|
41
|
+
props.onExpandedChange?.(details);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
connectApi(service) {
|
|
46
|
+
return treeView.connect(service, normalizeProps);
|
|
47
|
+
}
|
|
48
|
+
getSpreadMap() {
|
|
49
|
+
return {
|
|
50
|
+
"[data-part=\"root\"]": "getRootProps",
|
|
51
|
+
"[data-part=\"label\"]": "getLabelProps",
|
|
52
|
+
"[data-part=\"tree\"]": "getTreeProps"
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
syncState(api) {
|
|
56
|
+
this.selectedValue = api.selectedValue;
|
|
57
|
+
this.expandedValue = api.expandedValue;
|
|
58
|
+
}
|
|
59
|
+
template(props) {
|
|
60
|
+
const __id = this.id;
|
|
61
|
+
Component._register(ZagComponent);
|
|
62
|
+
return `<div id="${__id}" data-part="root"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`}><!--${__id + "-c0"}-->${props.label && `<label data-part="label" class="tree-view-label text-sm font-medium mb-2 block">${props.label}</label>` || ""}<!--${__id + "-c0-end"}--><div id="${__id + "-b1"}" data-part="tree" class="tree-view-tree" role="tree">${props.children}</div></div>`;
|
|
63
|
+
}
|
|
64
|
+
__onPropChange(key, value) {
|
|
65
|
+
const __id = this.id;
|
|
66
|
+
if (key === "class") {
|
|
67
|
+
const __el = this.element_;
|
|
68
|
+
this.props;
|
|
69
|
+
const __boundValue = value || "";
|
|
70
|
+
if (__el) {
|
|
71
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
72
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (key === "children") {
|
|
76
|
+
const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
|
|
77
|
+
if (__el && __el.innerHTML !== value) {
|
|
78
|
+
__el.innerHTML = value;
|
|
79
|
+
this.instantiateChildComponents_();
|
|
80
|
+
if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (key === "label") this.__geaPatchCond(0);
|
|
84
|
+
}
|
|
85
|
+
__resetEls() {
|
|
86
|
+
this.__e0 = null;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
//#endregion
|
|
90
|
+
export { TreeView as default };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=tree-view.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-view.mjs","names":["treeView","normalizeProps","ZagComponent","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","TreeView","constructor","args","props","__geaCond_0","label","__geaRegisterCond","selectedValue","expandedValue","createMachine","_props","machine","getMachineProps","id","collection","defaultSelectedValue","defaultExpandedValue","selectionMode","expandOnClick","onSelectionChange","details","SelectionChangeDetails","onExpandedChange","ExpandedChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","String","trim","children","__onPropChange","key","value","__el","element_","__boundValue","__newClass","className","__e0","document","getElementById","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_","__geaPatchCond","__resetEls","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","name","call","__origDispose","dispose"],"sources":["../src/components/tree-view.tsx"],"sourcesContent":["import * as treeView from '@zag-js/tree-view'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class TreeView extends ZagComponent {\n selectedValue: string[] = []\n expandedValue: string[] = []\n\n createMachine(_props: any): any {\n return treeView.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n collection: props.collection,\n selectedValue: props.selectedValue,\n defaultSelectedValue: props.defaultSelectedValue,\n expandedValue: props.expandedValue,\n defaultExpandedValue: props.defaultExpandedValue,\n selectionMode: props.selectionMode ?? 'single',\n expandOnClick: props.expandOnClick ?? true,\n onSelectionChange: (details: treeView.SelectionChangeDetails) => {\n this.selectedValue = details.selectedValue\n props.onSelectionChange?.(details)\n },\n onExpandedChange: (details: treeView.ExpandedChangeDetails) => {\n this.expandedValue = details.expandedValue\n props.onExpandedChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return treeView.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"tree\"]': 'getTreeProps',\n }\n }\n\n syncState(api: any) {\n this.selectedValue = api.selectedValue\n this.expandedValue = api.expandedValue\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"tree-view-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"tree\" class=\"tree-view-tree\" role=\"tree\">\n {props.children}\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;;AAIA,IAAqBO,WAArB,cAAsCL,aAAa;CAHnDM,YAAsB,GAAGC,MAAI;AAAA,QAAA,GAAAA,KAAA;uBAID,EAAE;uBACF,EAAE;AA4CT,OAAAC;AAAA,OAAAC,cAAA,CAAA,CAAA,KAAAD,MAGNE;AAAK,OAAAC,kBAAA,GAAA,YAAA;AAHC,QAAAH;AAAA,UAAA,KAAAA,MAGNE;WAAK;AAHC,QAAAF;AAAA,UAAA,mFAAA,KAAAA,MAKFE,MAAK;KAAA,KAAA;;CA/CtBI,cAAcC,QAAkB;AAC9B,SAAOjB,SAASkB;;CAGlBC,gBAAgBT,OAAY;AAC1B,SAAO;GACLU,IAAI,KAAKA;GACTC,YAAYX,MAAMW;GAClBP,eAAeJ,MAAMI;GACrBQ,sBAAsBZ,MAAMY;GAC5BP,eAAeL,MAAMK;GACrBQ,sBAAsBb,MAAMa;GAC5BC,eAAed,MAAMc,iBAAiB;GACtCC,eAAef,MAAMe,iBAAiB;GACtCC,oBAAoBC,YAA6C;AAC/D,SAAKb,gBAAgBa,QAAQb;AAC7BJ,UAAMgB,oBAAoBC,QAAQ;;GAEpCE,mBAAmBF,YAA4C;AAC7D,SAAKZ,gBAAgBY,QAAQZ;AAC7BL,UAAMmB,mBAAmBF,QAAQ;;GAEpC;;CAGHI,WAAWC,SAAc;AACvB,SAAOhC,SAASiC,QAAQD,SAAS/B,eAAe;;CAGlDiC,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,wBAAsB;GACvB;;CAGHC,UAAUC,KAAU;AAClB,OAAKtB,gBAAgBsB,IAAItB;AACzB,OAAKC,gBAAgBqB,IAAIrB;;CAG3BsB,SAAS3B,OAAY;EAAA,MAAA4B,OAAA,KAAAlB;AAAAmB,YAAAC,UAAAtC,aAAA;AACnB,SAAA,YAAAoC,KAAA,qBAC+B5B,MAAM+B,SAAS,OAAE,SAAjB/B,MAAM+B,SAAS,QAAE,QAAA,KAAA,aAAjB/B,MAAM+B,SAAS,OAAE,OAAAC,OAAjBhC,MAAM+B,SAAS,GAAE,GAAA,IAAAE,MAAA,CAAA,GAAA,OAAAL,OAAA,MAAA,KAC3C5B,MAAME,SAAK,mFAEPF,MAAME,MAAK,aAAA,GAAA,MAAA0B,OAAA,UAAA,cAAAA,OAAA,MAAA,wDAIb5B,MAAMkC,SAAQ;;CA1DzBC,eAAsBC,KAAKC,OAAK;EAAA,MAAAT,OAAA,KAAAlB;AAAA,MAAA0B,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAC;AAiDX,QAAAvC;GAAA,MAAAwC,eAAAH,SAE6B;AAAE,OAAAC,MAAA;IAAA,MAAAG,cAAAD,gBAAA,OAAAR,OAAAQ,aAAA,GAAA,IAAAP,MAAA;AAAA,QAAAK,KAAAI,cAAAD,WAAAH,MAAAI,YAAAD;;;AAAA,MAAAL,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAK,SAAA,KAAAA,OAAAC,SAAAC,eAAAjB,OAAA,MAAA;AAAA,OAAAU,QAAAA,KAAAQ,cAAAT,OAAA;AAAAC,SAAAQ,YAAAT;AAAA,SAAAU,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA;;;AAAA,MAAAb,QAAA,QAAA,MAAAc,eAAA,EAAA;;CAnDhBC,aAAA;AAAA,OAAAR,OAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component } from "@geajs/core";
|
|
2
|
+
import { VanillaMachine } from "@zag-js/vanilla";
|
|
3
|
+
import * as _zag_js_types0 from "@zag-js/types";
|
|
4
|
+
|
|
5
|
+
//#region src/primitives/zag-component.d.ts
|
|
6
|
+
type SpreadCleanup = () => void;
|
|
7
|
+
type PropsGetter = string | ((api: any, el: Element) => Record<string, any>);
|
|
8
|
+
interface SpreadMap {
|
|
9
|
+
[selector: string]: PropsGetter;
|
|
10
|
+
}
|
|
11
|
+
declare class ZagComponent<P = Record<string, unknown>> extends Component<P> {
|
|
12
|
+
_machine: VanillaMachine<any> | null;
|
|
13
|
+
_api: any;
|
|
14
|
+
_spreadCleanups: Map<string, SpreadCleanup>;
|
|
15
|
+
_spreadScheduled: boolean;
|
|
16
|
+
_zagIdMap: Map<string, Element>;
|
|
17
|
+
createMachine(_props: any): any;
|
|
18
|
+
getMachineProps(_props: any): any;
|
|
19
|
+
connectApi(_service: any): any;
|
|
20
|
+
getSpreadMap(): {};
|
|
21
|
+
syncState(_api: any): void;
|
|
22
|
+
created(props: P): void;
|
|
23
|
+
_syncMachineProps(): void;
|
|
24
|
+
__geaUpdateProps(nextProps: Record<string, any>): void;
|
|
25
|
+
_scheduleSpreadApplication(): void;
|
|
26
|
+
_resolveProps(getter: PropsGetter, el: Element): Record<string, any> | null;
|
|
27
|
+
_queryAllIncludingSelf(selector: string): Element[];
|
|
28
|
+
_applyAllSpreads(): void;
|
|
29
|
+
__geaSyncMap(idx: number): void;
|
|
30
|
+
onAfterRender(): void;
|
|
31
|
+
_cacheArrayContainers(): void;
|
|
32
|
+
dispose(): void;
|
|
33
|
+
static normalizeProps: _zag_js_types0.NormalizeProps<_zag_js_types0.PropTypes<{
|
|
34
|
+
[x: string]: any;
|
|
35
|
+
}>>;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { ZagComponent as n, SpreadMap as t };
|
|
39
|
+
//# sourceMappingURL=zag-component.d.mts.map
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Component } from "@geajs/core";
|
|
2
|
+
import { VanillaMachine, normalizeProps, spreadProps } from "@zag-js/vanilla";
|
|
3
|
+
//#region src/primitives/zag-component.ts
|
|
4
|
+
var ZagComponent = class extends Component {
|
|
5
|
+
createMachine(_props) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
getMachineProps(_props) {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
connectApi(_service) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
getSpreadMap() {
|
|
15
|
+
return {};
|
|
16
|
+
}
|
|
17
|
+
syncState(_api) {}
|
|
18
|
+
created(props) {
|
|
19
|
+
if (!this._spreadCleanups) this._spreadCleanups = /* @__PURE__ */ new Map();
|
|
20
|
+
if (this._spreadScheduled === void 0) this._spreadScheduled = false;
|
|
21
|
+
if (!this._zagIdMap) this._zagIdMap = /* @__PURE__ */ new Map();
|
|
22
|
+
const machineDef = this.createMachine(props);
|
|
23
|
+
if (!machineDef) return;
|
|
24
|
+
this._machine = new VanillaMachine(machineDef, this.getMachineProps(props));
|
|
25
|
+
const zagIdMap = this._zagIdMap;
|
|
26
|
+
const origGetById = this._machine.scope.getById;
|
|
27
|
+
this._machine.scope.getById = ((id) => {
|
|
28
|
+
return origGetById(id) || zagIdMap.get(id) || null;
|
|
29
|
+
});
|
|
30
|
+
this._machine.start();
|
|
31
|
+
this._api = this.connectApi(this._machine.service);
|
|
32
|
+
this.syncState(this._api);
|
|
33
|
+
this._machine.subscribe(() => {
|
|
34
|
+
if (!this._machine) return;
|
|
35
|
+
this._api = this.connectApi(this._machine.service);
|
|
36
|
+
this._scheduleSpreadApplication();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
_syncMachineProps() {
|
|
40
|
+
const machine = this._machine;
|
|
41
|
+
if (!machine?.userPropsRef) return;
|
|
42
|
+
const next = this.getMachineProps(this.props);
|
|
43
|
+
machine.userPropsRef.current = next;
|
|
44
|
+
this._api = this.connectApi(this._machine.service);
|
|
45
|
+
this._scheduleSpreadApplication();
|
|
46
|
+
}
|
|
47
|
+
__geaUpdateProps(nextProps) {
|
|
48
|
+
super.__geaUpdateProps(nextProps);
|
|
49
|
+
this._syncMachineProps();
|
|
50
|
+
}
|
|
51
|
+
_scheduleSpreadApplication() {
|
|
52
|
+
if (this._spreadScheduled) return;
|
|
53
|
+
this._spreadScheduled = true;
|
|
54
|
+
queueMicrotask(() => {
|
|
55
|
+
this._spreadScheduled = false;
|
|
56
|
+
this._applyAllSpreads();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
_resolveProps(getter, el) {
|
|
60
|
+
if (typeof getter === "function") return getter(this._api, el);
|
|
61
|
+
const method = this._api[getter];
|
|
62
|
+
if (typeof method !== "function") return null;
|
|
63
|
+
return method.call(this._api);
|
|
64
|
+
}
|
|
65
|
+
_queryAllIncludingSelf(selector) {
|
|
66
|
+
const results = this.$$(selector);
|
|
67
|
+
const root = this.el;
|
|
68
|
+
if (root && root.matches(selector) && !results.includes(root)) results.unshift(root);
|
|
69
|
+
return results;
|
|
70
|
+
}
|
|
71
|
+
_applyAllSpreads() {
|
|
72
|
+
if (!this.rendered_ || !this._api) return;
|
|
73
|
+
const map = this.getSpreadMap();
|
|
74
|
+
for (const selector in map) {
|
|
75
|
+
const getter = map[selector];
|
|
76
|
+
const elements = this._queryAllIncludingSelf(selector);
|
|
77
|
+
for (let i = 0; i < elements.length; i++) {
|
|
78
|
+
const el = elements[i];
|
|
79
|
+
const key = selector + ":" + i;
|
|
80
|
+
const nextProps = this._resolveProps(getter, el);
|
|
81
|
+
if (!nextProps) continue;
|
|
82
|
+
const bindingId = el.id;
|
|
83
|
+
const cleanup = spreadProps(el, nextProps);
|
|
84
|
+
if (bindingId && el.id !== bindingId) {
|
|
85
|
+
this._zagIdMap.set(el.id, el);
|
|
86
|
+
el.id = bindingId;
|
|
87
|
+
}
|
|
88
|
+
this._spreadCleanups.set(key, cleanup);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
__geaSyncMap(idx) {
|
|
93
|
+
super.__geaSyncMap(idx);
|
|
94
|
+
this._scheduleSpreadApplication();
|
|
95
|
+
}
|
|
96
|
+
onAfterRender() {
|
|
97
|
+
this._cacheArrayContainers();
|
|
98
|
+
this._applyAllSpreads();
|
|
99
|
+
}
|
|
100
|
+
_cacheArrayContainers() {
|
|
101
|
+
const maps = this.__geaMaps;
|
|
102
|
+
if (!maps) return;
|
|
103
|
+
for (const idx in maps) {
|
|
104
|
+
const map = maps[idx];
|
|
105
|
+
map.container = map.getContainer();
|
|
106
|
+
if (map.container) this[map.containerProp] = map.container;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
dispose() {
|
|
110
|
+
for (const cleanup of this._spreadCleanups.values()) cleanup();
|
|
111
|
+
this._spreadCleanups.clear();
|
|
112
|
+
if (this._machine) {
|
|
113
|
+
this._machine.stop();
|
|
114
|
+
this._machine = null;
|
|
115
|
+
}
|
|
116
|
+
this._api = null;
|
|
117
|
+
this._zagIdMap?.clear();
|
|
118
|
+
super.dispose();
|
|
119
|
+
}
|
|
120
|
+
static {
|
|
121
|
+
this.normalizeProps = normalizeProps;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
//#endregion
|
|
125
|
+
export { ZagComponent as t };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=zag-component.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zag-component.mjs","names":[],"sources":["../src/primitives/zag-component.ts"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { VanillaMachine, normalizeProps, spreadProps } from '@zag-js/vanilla'\n\ntype SpreadCleanup = () => void\ntype PropsGetter = string | ((api: any, el: Element) => Record<string, any>)\n\nexport interface SpreadMap {\n [selector: string]: PropsGetter\n}\n\nexport default class ZagComponent<P = Record<string, unknown>> extends Component<P> {\n declare _machine: VanillaMachine<any> | null\n declare _api: any\n declare _spreadCleanups: Map<string, SpreadCleanup>\n declare _spreadScheduled: boolean\n declare _zagIdMap: Map<string, Element>\n\n createMachine(_props: any): any {\n return null\n }\n\n getMachineProps(_props: any): any {\n return {}\n }\n\n connectApi(_service: any): any {\n return null\n }\n\n getSpreadMap() {\n return {}\n }\n\n syncState(_api: any): void {}\n\n created(props: P) {\n if (!this._spreadCleanups) this._spreadCleanups = new Map()\n if (this._spreadScheduled === undefined) this._spreadScheduled = false\n if (!this._zagIdMap) this._zagIdMap = new Map()\n\n const machineDef = this.createMachine(props)\n if (!machineDef) return\n\n const machineProps = this.getMachineProps(props)\n this._machine = new VanillaMachine(machineDef, machineProps)\n\n // Patch scope.getById: Zag uses IDs like \"tags-input:xyz:...\" for DOM\n // lookups, but _applyAllSpreads restores compiler binding IDs on elements.\n // The mapping lets Zag find elements by their expected Zag IDs.\n const zagIdMap = this._zagIdMap\n const origGetById = this._machine.scope.getById\n this._machine.scope.getById = ((id: string) => {\n return origGetById(id) || zagIdMap.get(id) || null\n }) as typeof origGetById\n\n this._machine.start()\n\n this._api = this.connectApi(this._machine.service)\n this.syncState(this._api)\n\n this._machine.subscribe(() => {\n if (!this._machine) return\n this._api = this.connectApi(this._machine.service)\n this._scheduleSpreadApplication()\n })\n }\n\n _syncMachineProps() {\n const machine = this._machine as any\n if (!machine?.userPropsRef) return\n const next = this.getMachineProps(this.props)\n machine.userPropsRef.current = next\n this._api = this.connectApi(this._machine!.service)\n this._scheduleSpreadApplication()\n }\n\n __geaUpdateProps(nextProps: Record<string, any>) {\n super.__geaUpdateProps(nextProps)\n this._syncMachineProps()\n }\n\n _scheduleSpreadApplication() {\n if (this._spreadScheduled) return\n this._spreadScheduled = true\n queueMicrotask(() => {\n this._spreadScheduled = false\n this._applyAllSpreads()\n })\n }\n\n _resolveProps(getter: PropsGetter, el: Element): Record<string, any> | null {\n if (typeof getter === 'function') {\n return getter(this._api, el)\n }\n const method = this._api[getter]\n if (typeof method !== 'function') return null\n return method.call(this._api)\n }\n\n _queryAllIncludingSelf(selector: string): Element[] {\n const results = this.$$(selector)\n const root = this.el\n if (root && root.matches(selector) && !results.includes(root)) {\n results.unshift(root)\n }\n return results\n }\n\n _applyAllSpreads() {\n if (!this.rendered_ || !this._api) return\n const map = this.getSpreadMap()\n\n for (const selector in map) {\n const getter = map[selector]\n const elements = this._queryAllIncludingSelf(selector)\n\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i]\n const key = selector + ':' + i\n const nextProps = this._resolveProps(getter, el)\n if (!nextProps) continue\n\n // Preserve compiled binding IDs: Zag's spreadProps overrides element\n // IDs, but the compiler's observers rely on getElementById with binding\n // IDs. We restore the binding ID and store the Zag ID in _zagIdMap so\n // scope.getById (patched in created()) can still find elements.\n // Note: we never clear _zagIdMap here because spreadProps caches\n // previous attrs and skips unchanged values — on subsequent calls the\n // ID won't be re-set, so we'd lose the mapping.\n const bindingId = el.id\n const cleanup = spreadProps(el, nextProps)\n if (bindingId && el.id !== bindingId) {\n this._zagIdMap.set(el.id, el)\n el.id = bindingId\n }\n this._spreadCleanups.set(key, cleanup)\n }\n }\n }\n\n __geaSyncMap(idx: number) {\n super.__geaSyncMap(idx)\n // After the map syncs new/updated DOM items, Zag spreads must be\n // re-applied because createItemFn produces elements without Zag's\n // event handlers and attributes.\n this._scheduleSpreadApplication()\n }\n\n onAfterRender() {\n this._cacheArrayContainers()\n this._applyAllSpreads()\n }\n\n _cacheArrayContainers() {\n const maps = (this as any).__geaMaps\n if (!maps) return\n for (const idx in maps) {\n const map = maps[idx]\n map.container = map.getContainer()\n if (map.container) (this as any)[map.containerProp] = map.container\n }\n }\n\n dispose() {\n for (const cleanup of this._spreadCleanups.values()) {\n cleanup()\n }\n this._spreadCleanups.clear()\n\n if (this._machine) {\n this._machine.stop()\n this._machine = null\n }\n this._api = null\n this._zagIdMap?.clear()\n\n super.dispose()\n }\n\n static normalizeProps = normalizeProps\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geajs/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Accessible UI components for Gea, powered by Zag.js state machines and styled with Tailwind CSS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -15,9 +15,14 @@
|
|
|
15
15
|
"import": "./dist/index.mjs"
|
|
16
16
|
},
|
|
17
17
|
"./style.css": "./dist/theme.css",
|
|
18
|
+
"./styles/theme.css": "./dist/theme.css",
|
|
18
19
|
"./tailwind-preset": {
|
|
19
20
|
"types": "./dist/tailwind-preset.d.mts",
|
|
20
21
|
"import": "./dist/tailwind-preset.mjs"
|
|
22
|
+
},
|
|
23
|
+
"./*": {
|
|
24
|
+
"types": "./dist/*.d.mts",
|
|
25
|
+
"import": "./dist/*.mjs"
|
|
21
26
|
}
|
|
22
27
|
},
|
|
23
28
|
"repository": {
|