@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.
Files changed (127) hide show
  1. package/dist/_virtual_gea-hmr.mjs +11 -0
  2. package/dist/accordion.d.mts +34 -0
  3. package/dist/accordion.mjs +137 -0
  4. package/dist/accordion.mjs.map +1 -0
  5. package/dist/alert.d.mts +15 -0
  6. package/dist/alert.mjs +93 -0
  7. package/dist/alert.mjs.map +1 -0
  8. package/dist/avatar.d.mts +26 -0
  9. package/dist/avatar.mjs +95 -0
  10. package/dist/avatar.mjs.map +1 -0
  11. package/dist/badge.d.mts +9 -0
  12. package/dist/badge.mjs +47 -0
  13. package/dist/badge.mjs.map +1 -0
  14. package/dist/button.d.mts +21 -0
  15. package/dist/button.mjs +86 -0
  16. package/dist/button.mjs.map +1 -0
  17. package/dist/card.d.mts +24 -0
  18. package/dist/card.mjs +152 -0
  19. package/dist/card.mjs.map +1 -0
  20. package/dist/checkbox.d.mts +37 -0
  21. package/dist/checkbox.mjs +78 -0
  22. package/dist/checkbox.mjs.map +1 -0
  23. package/dist/clipboard.d.mts +33 -0
  24. package/dist/clipboard.mjs +96 -0
  25. package/dist/clipboard.mjs.map +1 -0
  26. package/dist/cn.mjs +10 -0
  27. package/dist/cn.mjs.map +1 -0
  28. package/dist/collapsible.d.mts +29 -0
  29. package/dist/collapsible.mjs +75 -0
  30. package/dist/collapsible.mjs.map +1 -0
  31. package/dist/combobox.d.mts +67 -0
  32. package/dist/combobox.mjs +314 -0
  33. package/dist/combobox.mjs.map +1 -0
  34. package/dist/dialog.d.mts +57 -0
  35. package/dist/dialog.mjs +137 -0
  36. package/dist/dialog.mjs.map +1 -0
  37. package/dist/dnd-manager.d.mts +67 -0
  38. package/dist/dnd-manager.mjs +373 -0
  39. package/dist/dnd-manager.mjs.map +1 -0
  40. package/dist/drag-drop-context.d.mts +11 -0
  41. package/dist/drag-drop-context.mjs +41 -0
  42. package/dist/drag-drop-context.mjs.map +1 -0
  43. package/dist/draggable.d.mts +11 -0
  44. package/dist/draggable.mjs +62 -0
  45. package/dist/draggable.mjs.map +1 -0
  46. package/dist/droppable.d.mts +14 -0
  47. package/dist/droppable.mjs +61 -0
  48. package/dist/droppable.mjs.map +1 -0
  49. package/dist/file-upload.d.mts +38 -0
  50. package/dist/file-upload.mjs +157 -0
  51. package/dist/file-upload.mjs.map +1 -0
  52. package/dist/hover-card.d.mts +33 -0
  53. package/dist/hover-card.mjs +87 -0
  54. package/dist/hover-card.mjs.map +1 -0
  55. package/dist/index.d.mts +41 -1068
  56. package/dist/index.mjs +41 -4332
  57. package/dist/input.d.mts +9 -0
  58. package/dist/input.mjs +62 -0
  59. package/dist/input.mjs.map +1 -0
  60. package/dist/label.d.mts +9 -0
  61. package/dist/label.mjs +37 -0
  62. package/dist/label.mjs.map +1 -0
  63. package/dist/menu.d.mts +36 -0
  64. package/dist/menu.mjs +86 -0
  65. package/dist/menu.mjs.map +1 -0
  66. package/dist/number-input.d.mts +46 -0
  67. package/dist/number-input.mjs +87 -0
  68. package/dist/number-input.mjs.map +1 -0
  69. package/dist/pagination.d.mts +37 -0
  70. package/dist/pagination.mjs +95 -0
  71. package/dist/pagination.mjs.map +1 -0
  72. package/dist/pin-input.d.mts +45 -0
  73. package/dist/pin-input.mjs +135 -0
  74. package/dist/pin-input.mjs.map +1 -0
  75. package/dist/popover.d.mts +39 -0
  76. package/dist/popover.mjs +107 -0
  77. package/dist/popover.mjs.map +1 -0
  78. package/dist/progress.d.mts +34 -0
  79. package/dist/progress.mjs +84 -0
  80. package/dist/progress.mjs.map +1 -0
  81. package/dist/radio-group.d.mts +37 -0
  82. package/dist/radio-group.mjs +154 -0
  83. package/dist/radio-group.mjs.map +1 -0
  84. package/dist/rating-group.d.mts +38 -0
  85. package/dist/rating-group.mjs +159 -0
  86. package/dist/rating-group.mjs.map +1 -0
  87. package/dist/select.d.mts +54 -0
  88. package/dist/select.mjs +235 -0
  89. package/dist/select.mjs.map +1 -0
  90. package/dist/separator.d.mts +9 -0
  91. package/dist/separator.mjs +44 -0
  92. package/dist/separator.mjs.map +1 -0
  93. package/dist/skeleton.d.mts +9 -0
  94. package/dist/skeleton.mjs +41 -0
  95. package/dist/skeleton.mjs.map +1 -0
  96. package/dist/slider.d.mts +44 -0
  97. package/dist/slider.mjs +114 -0
  98. package/dist/slider.mjs.map +1 -0
  99. package/dist/switch.d.mts +37 -0
  100. package/dist/switch.mjs +78 -0
  101. package/dist/switch.mjs.map +1 -0
  102. package/dist/tabs.d.mts +36 -0
  103. package/dist/tabs.mjs +175 -0
  104. package/dist/tabs.mjs.map +1 -0
  105. package/dist/tags-input.d.mts +48 -0
  106. package/dist/tags-input.mjs +213 -0
  107. package/dist/tags-input.mjs.map +1 -0
  108. package/dist/textarea.d.mts +9 -0
  109. package/dist/textarea.mjs +62 -0
  110. package/dist/textarea.mjs.map +1 -0
  111. package/dist/toast.d.mts +33 -0
  112. package/dist/toast.mjs +211 -0
  113. package/dist/toast.mjs.map +1 -0
  114. package/dist/toggle-group.d.mts +32 -0
  115. package/dist/toggle-group.mjs +112 -0
  116. package/dist/toggle-group.mjs.map +1 -0
  117. package/dist/tooltip.d.mts +39 -0
  118. package/dist/tooltip.mjs +83 -0
  119. package/dist/tooltip.mjs.map +1 -0
  120. package/dist/tree-view.d.mts +35 -0
  121. package/dist/tree-view.mjs +92 -0
  122. package/dist/tree-view.mjs.map +1 -0
  123. package/dist/zag-component.d.mts +39 -0
  124. package/dist/zag-component.mjs +127 -0
  125. package/dist/zag-component.mjs.map +1 -0
  126. package/package.json +6 -1
  127. 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
@@ -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.4",
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": {