@geajs/ui 0.1.4 → 0.2.0

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/README.md +14 -19
  2. package/dist/accordion.d.mts +34 -0
  3. package/dist/accordion.mjs +167 -0
  4. package/dist/accordion.mjs.map +1 -0
  5. package/dist/alert.d.mts +15 -0
  6. package/dist/alert.mjs +101 -0
  7. package/dist/alert.mjs.map +1 -0
  8. package/dist/avatar.d.mts +26 -0
  9. package/dist/avatar.mjs +97 -0
  10. package/dist/avatar.mjs.map +1 -0
  11. package/dist/badge.d.mts +9 -0
  12. package/dist/badge.mjs +49 -0
  13. package/dist/badge.mjs.map +1 -0
  14. package/dist/button.d.mts +21 -0
  15. package/dist/button.mjs +96 -0
  16. package/dist/button.mjs.map +1 -0
  17. package/dist/card.d.mts +24 -0
  18. package/dist/card.mjs +169 -0
  19. package/dist/card.mjs.map +1 -0
  20. package/dist/checkbox.d.mts +37 -0
  21. package/dist/checkbox.mjs +80 -0
  22. package/dist/checkbox.mjs.map +1 -0
  23. package/dist/clipboard.d.mts +33 -0
  24. package/dist/clipboard.mjs +100 -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 +77 -0
  30. package/dist/collapsible.mjs.map +1 -0
  31. package/dist/combobox.d.mts +67 -0
  32. package/dist/combobox.mjs +375 -0
  33. package/dist/combobox.mjs.map +1 -0
  34. package/dist/dialog.d.mts +57 -0
  35. package/dist/dialog.mjs +139 -0
  36. package/dist/dialog.mjs.map +1 -0
  37. package/dist/dnd-manager.d.mts +67 -0
  38. package/dist/dnd-manager.mjs +387 -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 +43 -0
  42. package/dist/drag-drop-context.mjs.map +1 -0
  43. package/dist/draggable.d.mts +11 -0
  44. package/dist/draggable.mjs +72 -0
  45. package/dist/draggable.mjs.map +1 -0
  46. package/dist/droppable.d.mts +14 -0
  47. package/dist/droppable.mjs +66 -0
  48. package/dist/droppable.mjs.map +1 -0
  49. package/dist/file-upload.d.mts +38 -0
  50. package/dist/file-upload.mjs +170 -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 +92 -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 +82 -0
  59. package/dist/input.mjs.map +1 -0
  60. package/dist/label.d.mts +9 -0
  61. package/dist/label.mjs +42 -0
  62. package/dist/label.mjs.map +1 -0
  63. package/dist/menu.d.mts +36 -0
  64. package/dist/menu.mjs +88 -0
  65. package/dist/menu.mjs.map +1 -0
  66. package/dist/number-input.d.mts +46 -0
  67. package/dist/number-input.mjs +89 -0
  68. package/dist/number-input.mjs.map +1 -0
  69. package/dist/pagination.d.mts +37 -0
  70. package/dist/pagination.mjs +97 -0
  71. package/dist/pagination.mjs.map +1 -0
  72. package/dist/pin-input.d.mts +45 -0
  73. package/dist/pin-input.mjs +147 -0
  74. package/dist/pin-input.mjs.map +1 -0
  75. package/dist/popover.d.mts +39 -0
  76. package/dist/popover.mjs +109 -0
  77. package/dist/popover.mjs.map +1 -0
  78. package/dist/progress.d.mts +34 -0
  79. package/dist/progress.mjs +86 -0
  80. package/dist/progress.mjs.map +1 -0
  81. package/dist/radio-group.d.mts +37 -0
  82. package/dist/radio-group.mjs +184 -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 +171 -0
  86. package/dist/rating-group.mjs.map +1 -0
  87. package/dist/select.d.mts +54 -0
  88. package/dist/select.mjs +277 -0
  89. package/dist/select.mjs.map +1 -0
  90. package/dist/separator.d.mts +9 -0
  91. package/dist/separator.mjs +49 -0
  92. package/dist/separator.mjs.map +1 -0
  93. package/dist/skeleton.d.mts +9 -0
  94. package/dist/skeleton.mjs +43 -0
  95. package/dist/skeleton.mjs.map +1 -0
  96. package/dist/slider.d.mts +44 -0
  97. package/dist/slider.mjs +117 -0
  98. package/dist/slider.mjs.map +1 -0
  99. package/dist/switch.d.mts +37 -0
  100. package/dist/switch.mjs +80 -0
  101. package/dist/switch.mjs.map +1 -0
  102. package/dist/tabs.d.mts +36 -0
  103. package/dist/tabs.mjs +197 -0
  104. package/dist/tabs.mjs.map +1 -0
  105. package/dist/tags-input.d.mts +48 -0
  106. package/dist/tags-input.mjs +267 -0
  107. package/dist/tags-input.mjs.map +1 -0
  108. package/dist/textarea.d.mts +9 -0
  109. package/dist/textarea.mjs +73 -0
  110. package/dist/textarea.mjs.map +1 -0
  111. package/dist/toast.d.mts +33 -0
  112. package/dist/toast.mjs +213 -0
  113. package/dist/toast.mjs.map +1 -0
  114. package/dist/toggle-group.d.mts +32 -0
  115. package/dist/toggle-group.mjs +124 -0
  116. package/dist/toggle-group.mjs.map +1 -0
  117. package/dist/tooltip.d.mts +39 -0
  118. package/dist/tooltip.mjs +85 -0
  119. package/dist/tooltip.mjs.map +1 -0
  120. package/dist/tree-view.d.mts +35 -0
  121. package/dist/tree-view.mjs +94 -0
  122. package/dist/tree-view.mjs.map +1 -0
  123. package/dist/zag-component.d.mts +40 -0
  124. package/dist/zag-component.mjs +135 -0
  125. package/dist/zag-component.mjs.map +1 -0
  126. package/package.json +8 -8
  127. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { Component } from "@geajs/core";
2
+
3
+ //#region src/components/drag-drop-context.d.ts
4
+ declare class DragDropContext extends Component {
5
+ created(): void;
6
+ dispose(): void;
7
+ template(props: any): string;
8
+ }
9
+ //#endregion
10
+ export { DragDropContext as default };
11
+ //# sourceMappingURL=drag-drop-context.d.mts.map
@@ -0,0 +1,43 @@
1
+ import { dndManager } from "./dnd-manager.mjs";
2
+ import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
3
+ //#region src/components/drag-drop-context.tsx
4
+ var DragDropContext = class extends Component {
5
+ static {
6
+ this[GEA_CTOR_TAG_NAME] = "drag-drop-context";
7
+ }
8
+ created() {
9
+ dndManager.onDragEnd = (result) => {
10
+ this.props.onDragEnd?.(result);
11
+ };
12
+ }
13
+ dispose() {
14
+ dndManager.destroy();
15
+ super.dispose();
16
+ }
17
+ template(props) {
18
+ return `<div id="${this.id}" class="${`gea-dnd-context ${props.class || ""}`.trim()}">${props.children}</div>`;
19
+ }
20
+ __onPropChange(key, value) {
21
+ if (key === "class") {
22
+ const __el = this[GEA_ELEMENT];
23
+ this.props;
24
+ const __boundValue = `gea-dnd-context ${value || ""}`;
25
+ if (__el) {
26
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
27
+ if (__el.className !== __newClass) __el.className = __newClass;
28
+ }
29
+ }
30
+ if (key === "children") {
31
+ const __el = this[GEA_ELEMENT];
32
+ if (__el && __el.innerHTML !== value) {
33
+ __el.innerHTML = value;
34
+ this.instantiateChildComponents_();
35
+ if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
36
+ }
37
+ }
38
+ }
39
+ };
40
+ //#endregion
41
+ export { DragDropContext as default };
42
+
43
+ //# sourceMappingURL=drag-drop-context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag-drop-context.mjs","names":["Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","dndManager","DragResult","DragDropContext","created","onDragEnd","result","props","dispose","destroy","template","__id","id","class","trim","children","__onPropChange","key","value","__el","__boundValue","__newClass","String","className","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_"],"sources":["../src/components/drag-drop-context.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { dndManager } from './dnd-manager'\nimport type { DragResult } from './dnd-manager'\n\nexport default class DragDropContext extends Component {\n created() {\n dndManager.onDragEnd = (result: DragResult) => {\n ;(this.props as any).onDragEnd?.(result)\n }\n }\n\n dispose() {\n dndManager.destroy()\n super.dispose()\n }\n\n template(props: any) {\n return <div class={`gea-dnd-context ${props.class || ''}`}>{props.children}</div>\n }\n}\n"],"mappings":";;;AAIA,IAAqBwC,kBAArB,cAA6CxC,UAAU;;OAAAqC,qBAAA;;CACrDI,UAAU;AACRH,aAAWI,aAAaC,WAAuB;AAC3C,QAAKC,MAAcF,YAAYC,OAAO;;;CAI5CE,UAAU;AACRP,aAAWQ,SAAS;AACpB,QAAMD,SAAS;;CAGjBE,SAASH,OAAY;AACnB,SAAA,YADmB,KAAAK,GACnB,WAAmB,mBAAmBL,MAAMM,SAAS,KAAIC,MAAA,CAAA,IAAGP,MAAMQ,SAAQ;;CAhB9EC,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAtD;AAeX,QAAA0C;GAAA,MAAAa,eAAA,mBAAAF,SACoC;AAAE,OAAAC,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAAE,OAAAF,aAAA,GAAA,IAAAN,MAAA;AAAA,QAAAK,KAAAI,cAAAF,WAAAF,MAAAI,YAAAF;;;AAAA,MAAAJ,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAtD;AAAA,OAAAsD,QAAAA,KAAAK,cAAAN,OAAA;AAAAC,SAAAK,YAAAN;AAAA,SAAAO,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA"}
@@ -0,0 +1,11 @@
1
+ import { Component } from "@geajs/core";
2
+
3
+ //#region src/components/draggable.d.ts
4
+ declare class Draggable extends Component {
5
+ _didDrag: boolean;
6
+ _onPointerDown(e: PointerEvent): void;
7
+ template(props: any): string;
8
+ }
9
+ //#endregion
10
+ export { Draggable as default };
11
+ //# sourceMappingURL=draggable.d.mts.map
@@ -0,0 +1,72 @@
1
+ import { dndManager } from "./dnd-manager.mjs";
2
+ import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
3
+ //#region src/components/draggable.tsx
4
+ var Draggable = class extends Component {
5
+ constructor(..._args) {
6
+ super(..._args);
7
+ this._didDrag = false;
8
+ }
9
+ static {
10
+ this[GEA_CTOR_TAG_NAME] = "draggable";
11
+ }
12
+ _onPointerDown(e) {
13
+ const el = e.currentTarget.closest(".gea-draggable");
14
+ if (!el) return;
15
+ this._didDrag = false;
16
+ dndManager.startTracking(e, this.props.draggableId, el);
17
+ }
18
+ template(props) {
19
+ return `<div id="${this.id}" class="${`gea-draggable ${props.class || ""}`.trim()}"${props.draggableId == null || props.draggableId === false ? "" : ` data-draggable-id="${props.draggableId}"`}${props.index == null || props.index === false ? "" : ` data-index="${props.index}"`}${` pointerdown="${(e) => this._onPointerDown(e)}"`}>${props.children}</div>`;
20
+ }
21
+ get events() {
22
+ if (this.__evts && this[GEA_ELEMENT]) return this.__evts;
23
+ const __geaEvtsResult = { click: { [`#${this.id}`]: (e, targetComponent) => this.__event_click_0(e, targetComponent) } };
24
+ if (this[GEA_ELEMENT]) this.__evts = __geaEvtsResult;
25
+ return __geaEvtsResult;
26
+ }
27
+ __event_click_0(e, targetComponent) {
28
+ if (dndManager.isDragging) {
29
+ e.preventDefault();
30
+ e.stopPropagation();
31
+ }
32
+ }
33
+ __onPropChange(key, value) {
34
+ if (key === "class") {
35
+ const __el = this[GEA_ELEMENT];
36
+ this.props;
37
+ const __boundValue = `gea-draggable ${value || ""}`;
38
+ if (__el) {
39
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
40
+ if (__el.className !== __newClass) __el.className = __newClass;
41
+ }
42
+ }
43
+ if (key === "draggableId") {
44
+ const __el = this[GEA_ELEMENT];
45
+ if (__el) if (value === null || value === void 0) __el.removeAttribute("data-draggable-id");
46
+ else {
47
+ const __newAttr = String(value);
48
+ if (__el.getAttribute("data-draggable-id") !== __newAttr) __el.setAttribute("data-draggable-id", __newAttr);
49
+ }
50
+ }
51
+ if (key === "index") {
52
+ const __el = this[GEA_ELEMENT];
53
+ if (__el) if (value === null || value === void 0) __el.removeAttribute("data-index");
54
+ else {
55
+ const __newAttr = String(value);
56
+ if (__el.getAttribute("data-index") !== __newAttr) __el.setAttribute("data-index", __newAttr);
57
+ }
58
+ }
59
+ if (key === "children") {
60
+ const __el = this[GEA_ELEMENT];
61
+ if (__el && __el.innerHTML !== value) {
62
+ __el.innerHTML = value;
63
+ this.instantiateChildComponents_();
64
+ if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
65
+ }
66
+ }
67
+ }
68
+ };
69
+ //#endregion
70
+ export { Draggable as default };
71
+
72
+ //# sourceMappingURL=draggable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draggable.mjs","names":["Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","dndManager","Draggable","_didDrag","_onPointerDown","e","PointerEvent","el","currentTarget","HTMLElement","closest","startTracking","props","draggableId","template","__id","id","class","trim","index","children","events","__evts","__geaEvtsResult","click","targetComponent","__event_click_0","isDragging","preventDefault","stopPropagation","__onPropChange","key","value","__el","__boundValue","__newClass","String","className","undefined","removeAttribute","__newAttr","getAttribute","setAttribute","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_"],"sources":["../src/components/draggable.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { dndManager } from './dnd-manager'\n\nexport default class Draggable extends Component {\n _didDrag = false\n\n _onPointerDown(e: PointerEvent) {\n const el = (e.currentTarget as HTMLElement).closest('.gea-draggable') as HTMLElement\n if (!el) return\n this._didDrag = false\n dndManager.startTracking(e, this.props.draggableId as string, el)\n }\n\n template(props: any) {\n return (\n <div\n class={`gea-draggable ${props.class || ''}`}\n data-draggable-id={props.draggableId}\n data-index={props.index}\n pointerdown={(e: PointerEvent) => this._onPointerDown(e)}\n click={(e: MouseEvent) => {\n if (dndManager.isDragging) {\n e.preventDefault()\n e.stopPropagation()\n }\n }}\n >\n {props.children}\n </div>\n )\n }\n}\n"],"mappings":";;;AAGA,IAAqBuC,YAArB,cAAuCvC,UAAU;;;kBACpC;;;OADoCqC,qBAAA;;CAG/CI,eAAeC,GAAiB;EAC9B,MAAME,KAAMF,EAAEG,cAA8BE,QAAQ,iBAAiB;AACrE,MAAI,CAACH,GAAI;AACT,OAAKJ,WAAW;AAChBF,aAAWU,cAAcN,GAAG,KAAKO,MAAMC,aAAuBN,GAAG;;CAGnEO,SAASF,OAAY;AACnB,SAAA,YADmB,KAAAI,GACnB,WAEW,iBAAiBJ,MAAMK,SAAS,KAAIC,MAAA,CAAA,GACxBN,MAAMC,eAAW,QAAjBD,MAAMC,gBAAW,QAAA,KAAA,uBAAjBD,MAAMC,YAAW,KACxBD,MAAMO,SAAK,QAAXP,MAAMO,UAAK,QAAA,KAAA,gBAAXP,MAAMO,MAAK,KACiC,kBAA1Cd,MAAoB,KAAKD,eAAeC,EAAE,CAAA,GAAA,GAQvDO,MAAMQ,SAAQ;;CAGpB,IAAAC,SAAA;AAAA,MAAA,KAAAC,UAAA,KAAAzD,aAAA,QAAA,KAAAyD;EAAA,MAAAC,kBAAA,EAAAC,OAAA,GAAA,IAAA,KAAAR,QAAAX,GAAAoB,oBAAA,KAAAC,gBAAArB,GAAAoB,gBAAA,EAAA,EAAA;AAAA,MAAA,KAAA5D,aAAA,MAAAyD,SAAAC;AAAA,SAAAA;;CA7BHG,gBAAsBrB,GAAGoB,iBAAiB;AAAA,MAoB5BxB,WAAW0B,YAAU;AACvBtB,KAAEuB,gBAAc;AAChBvB,KAAEwB,iBAAe;;;CAtB7BC,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAApE;AAYX,QAAA+C;GAAA,MAAAsB,eAAA,iBAAAF,SAG0B;AAAE,OAAAC,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAAE,OAAAF,aAAA,GAAA,IAAAhB,MAAA;AAAA,QAAAe,KAAAI,cAAAF,WAAAF,MAAAI,YAAAF;;;AAAA,MAAAJ,QAAA,eAAA;GAAA,MAAAE,OAAA,KAAApE;AAAA,OAAAoE,KAAA,KAAAD,UAAA,QAAAA,UAAAM,KAAAA,EAAAL,MAAAM,gBAAA,oBAAA;QAAA;IAAA,MAAAC,YAAAJ,OAAAJ,MAAA;AAAA,QAAAC,KAAAQ,aAAA,oBAAA,KAAAD,UAAAP,MAAAS,aAAA,qBAAAF,UAAA;;;AAAA,MAAAT,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAApE;AAAA,OAAAoE,KAAA,KAAAD,UAAA,QAAAA,UAAAM,KAAAA,EAAAL,MAAAM,gBAAA,aAAA;QAAA;IAAA,MAAAC,YAAAJ,OAAAJ,MAAA;AAAA,QAAAC,KAAAQ,aAAA,aAAA,KAAAD,UAAAP,MAAAS,aAAA,cAAAF,UAAA;;;AAAA,MAAAT,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAApE;AAAA,OAAAoE,QAAAA,KAAAU,cAAAX,OAAA;AAAAC,SAAAU,YAAAX;AAAA,SAAAY,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA"}
@@ -0,0 +1,14 @@
1
+ import { Component } from "@geajs/core";
2
+
3
+ //#region src/components/droppable.d.ts
4
+ declare class Droppable extends Component {
5
+ private _registered;
6
+ _registerWithManager(): void;
7
+ created(): void;
8
+ onAfterRender(): void;
9
+ dispose(): void;
10
+ template(props: any): string;
11
+ }
12
+ //#endregion
13
+ export { Droppable as default };
14
+ //# sourceMappingURL=droppable.d.mts.map
@@ -0,0 +1,66 @@
1
+ import { dndManager } from "./dnd-manager.mjs";
2
+ import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
3
+ //#region src/components/droppable.tsx
4
+ var Droppable = class extends Component {
5
+ constructor(..._args) {
6
+ super(..._args);
7
+ this._registered = false;
8
+ }
9
+ static {
10
+ this[GEA_CTOR_TAG_NAME] = "droppable";
11
+ }
12
+ _registerWithManager() {
13
+ const el = this.el?.querySelector("[data-droppable-id]");
14
+ if (el && !this._registered) {
15
+ dndManager.registerDroppable(this.props.droppableId, el);
16
+ this._registered = true;
17
+ }
18
+ }
19
+ created() {
20
+ queueMicrotask(() => this._registerWithManager());
21
+ }
22
+ onAfterRender() {
23
+ this._registerWithManager();
24
+ }
25
+ dispose() {
26
+ if (this._registered) {
27
+ dndManager.unregisterDroppable(this.props.droppableId);
28
+ this._registered = false;
29
+ }
30
+ super.dispose();
31
+ }
32
+ template(props) {
33
+ return `<div id="${this.id}" class="${`gea-droppable ${props.class || ""}`.trim()}"${props.droppableId == null || props.droppableId === false ? "" : ` data-droppable-id="${props.droppableId}"`}>${props.children}</div>`;
34
+ }
35
+ __onPropChange(key, value) {
36
+ if (key === "class") {
37
+ const __el = this[GEA_ELEMENT];
38
+ this.props;
39
+ const __boundValue = `gea-droppable ${value || ""}`;
40
+ if (__el) {
41
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
42
+ if (__el.className !== __newClass) __el.className = __newClass;
43
+ }
44
+ }
45
+ if (key === "droppableId") {
46
+ const __el = this[GEA_ELEMENT];
47
+ if (__el) if (value === null || value === void 0) __el.removeAttribute("data-droppable-id");
48
+ else {
49
+ const __newAttr = String(value);
50
+ if (__el.getAttribute("data-droppable-id") !== __newAttr) __el.setAttribute("data-droppable-id", __newAttr);
51
+ }
52
+ }
53
+ if (key === "children") {
54
+ const __el = this[GEA_ELEMENT];
55
+ if (__el && __el.innerHTML !== value) {
56
+ __el.innerHTML = value;
57
+ this.instantiateChildComponents_();
58
+ if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
59
+ }
60
+ }
61
+ }
62
+ };
63
+ //#endregion
64
+ export { Droppable as default };
65
+
66
+ //# sourceMappingURL=droppable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droppable.mjs","names":["Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","dndManager","Droppable","_registered","_registerWithManager","el","querySelector","HTMLElement","registerDroppable","props","droppableId","created","queueMicrotask","onAfterRender","dispose","unregisterDroppable","template","__id","id","class","trim","children","__onPropChange","key","value","__el","__boundValue","__newClass","String","className","undefined","removeAttribute","__newAttr","getAttribute","setAttribute","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_"],"sources":["../src/components/droppable.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { dndManager } from './dnd-manager'\n\nexport default class Droppable extends Component {\n private _registered = false\n\n _registerWithManager() {\n const el = this.el?.querySelector('[data-droppable-id]') as HTMLElement\n if (el && !this._registered) {\n dndManager.registerDroppable(this.props.droppableId as string, el)\n this._registered = true\n }\n }\n\n created() {\n queueMicrotask(() => this._registerWithManager())\n }\n\n onAfterRender() {\n this._registerWithManager()\n }\n\n dispose() {\n if (this._registered) {\n dndManager.unregisterDroppable(this.props.droppableId as string)\n this._registered = false\n }\n super.dispose()\n }\n\n template(props: any) {\n return (\n <div class={`gea-droppable ${props.class || ''}`} data-droppable-id={props.droppableId}>\n {props.children}\n </div>\n )\n }\n}\n"],"mappings":";;;AAGA,IAAqBuC,YAArB,cAAuCvC,UAAU;;;qBACzB;;;OADyBqC,qBAAA;;CAG/CI,uBAAuB;EACrB,MAAMC,KAAK,KAAKA,IAAIC,cAAc,sBAAsB;AACxD,MAAID,MAAM,CAAC,KAAKF,aAAa;AAC3BF,cAAWO,kBAAkB,KAAKC,MAAMC,aAAuBL,GAAG;AAClE,QAAKF,cAAc;;;CAIvBQ,UAAU;AACRC,uBAAqB,KAAKR,sBAAsB,CAAC;;CAGnDS,gBAAgB;AACd,OAAKT,sBAAsB;;CAG7BU,UAAU;AACR,MAAI,KAAKX,aAAa;AACpBF,cAAWc,oBAAoB,KAAKN,MAAMC,YAAsB;AAChE,QAAKP,cAAc;;AAErB,QAAMW,SAAS;;CAGjBE,SAASP,OAAY;AACnB,SAAA,YADmB,KAAAS,GACnB,WACc,iBAAiBT,MAAMU,SAAS,KAAIC,MAAA,CAAA,GAAqBX,MAAMC,eAAW,QAAjBD,MAAMC,gBAAW,QAAA,KAAA,uBAAjBD,MAAMC,YAAW,GAAA,GACnFD,MAAMY,SAAQ;;CAhCvBC,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAA5D;AA6BX,QAAA4C;GAAA,MAAAiB,eAAA,iBAAAF,SAE6B;AAAE,OAAAC,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAAE,OAAAF,aAAA,GAAA,IAAAN,MAAA;AAAA,QAAAK,KAAAI,cAAAF,WAAAF,MAAAI,YAAAF;;;AAAA,MAAAJ,QAAA,eAAA;GAAA,MAAAE,OAAA,KAAA5D;AAAA,OAAA4D,KAAA,KAAAD,UAAA,QAAAA,UAAAM,KAAAA,EAAAL,MAAAM,gBAAA,oBAAA;QAAA;IAAA,MAAAC,YAAAJ,OAAAJ,MAAA;AAAA,QAAAC,KAAAQ,aAAA,oBAAA,KAAAD,UAAAP,MAAAS,aAAA,qBAAAF,UAAA;;;AAAA,MAAAT,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAA5D;AAAA,OAAA4D,QAAAA,KAAAU,cAAAX,OAAA;AAAAC,SAAAU,YAAAX;AAAA,SAAAY,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA"}
@@ -0,0 +1,38 @@
1
+ import { n as ZagComponent } from "./zag-component.mjs";
2
+ import * as fileUpload from "@zag-js/file-upload";
3
+ import * as _$_zag_js_types0 from "@zag-js/types";
4
+
5
+ //#region src/components/file-upload.d.ts
6
+ declare class FileUpload extends ZagComponent {
7
+ acceptedFiles: File[];
8
+ rejectedFiles: any[];
9
+ createMachine(_props: any): any;
10
+ getMachineProps(props: any): {
11
+ id: any;
12
+ accept: any;
13
+ maxFiles: any;
14
+ maxFileSize: any;
15
+ minFileSize: any;
16
+ multiple: any;
17
+ disabled: any;
18
+ allowDrop: any;
19
+ name: any;
20
+ onFileChange: (details: fileUpload.FileChangeDetails) => void;
21
+ };
22
+ connectApi(service: any): fileUpload.Api<_$_zag_js_types0.PropTypes<{
23
+ [x: string]: any;
24
+ }>>;
25
+ getSpreadMap(): {
26
+ '[data-part="root"]': string;
27
+ '[data-part="label"]': string;
28
+ '[data-part="dropzone"]': string;
29
+ '[data-part="trigger"]': string;
30
+ '[data-part="hidden-input"]': string;
31
+ '[data-part="clear-trigger"]': string;
32
+ };
33
+ syncState(api: any): void;
34
+ template(props: any): string;
35
+ }
36
+ //#endregion
37
+ export { FileUpload as default };
38
+ //# sourceMappingURL=file-upload.d.mts.map
@@ -0,0 +1,170 @@
1
+ import { t as ZagComponent } from "./zag-component.mjs";
2
+ import { Component, GEA_APPLY_LIST_CHANGES, GEA_CTOR_TAG_NAME, GEA_DOM_ITEM, GEA_DOM_KEY, GEA_ELEMENT, GEA_ENSURE_ARRAY_CONFIGS, GEA_MAP_CONFIG_TPL, GEA_OBSERVE, GEA_PATCH_COND, GEA_REGISTER_COND, GEA_RENDERED, GEA_SETUP_LOCAL_STATE_OBSERVERS, geaCondPatchedSymbol, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
3
+ import { normalizeProps } from "@zag-js/vanilla";
4
+ import * as fileUpload from "@zag-js/file-upload";
5
+ //#region src/components/file-upload.tsx
6
+ var FileUpload = class extends ZagComponent {
7
+ static {
8
+ this[GEA_CTOR_TAG_NAME] = "file-upload";
9
+ }
10
+ #__rowEls_list;
11
+ #__dc_acceptedFiles;
12
+ constructor(...args) {
13
+ super(...args);
14
+ this.props;
15
+ this[geaCondValueSymbol(0)] = !!this.props.label;
16
+ this[geaCondValueSymbol(1)] = !!(this.acceptedFiles.length > 0);
17
+ this[GEA_REGISTER_COND](0, "c0", () => {
18
+ this.props;
19
+ return this.props.label;
20
+ }, () => {
21
+ this.props;
22
+ return `<label data-part="label" class="file-upload-label text-sm font-medium mb-2 block">${geaEscapeHtml(String(this.props.label))}</label>`;
23
+ }, null);
24
+ this[GEA_REGISTER_COND](1, "c1", () => {
25
+ this.props;
26
+ return this.acceptedFiles.length > 0;
27
+ }, () => {
28
+ this.props;
29
+ return `<div class="file-upload-file-list mt-3 space-y-1">${this.acceptedFiles.map((file) => this.renderAcceptedFilesItem(file)).join("")}<button data-part="clear-trigger" class="file-upload-clear text-xs text-muted-foreground hover:text-foreground mt-1">Clear all</button></div>`;
30
+ }, null);
31
+ }
32
+ createMachine(_props) {
33
+ return fileUpload.machine;
34
+ }
35
+ getMachineProps(props) {
36
+ return {
37
+ id: this.id,
38
+ accept: props.accept,
39
+ maxFiles: props.maxFiles,
40
+ maxFileSize: props.maxFileSize,
41
+ minFileSize: props.minFileSize,
42
+ multiple: props.multiple ?? false,
43
+ disabled: props.disabled,
44
+ allowDrop: props.allowDrop ?? true,
45
+ name: props.name,
46
+ onFileChange: (details) => {
47
+ this.acceptedFiles = details.acceptedFiles;
48
+ this.rejectedFiles = details.rejectedFiles;
49
+ props.onFileChange?.(details);
50
+ }
51
+ };
52
+ }
53
+ connectApi(service) {
54
+ return fileUpload.connect(service, normalizeProps);
55
+ }
56
+ getSpreadMap() {
57
+ return {
58
+ "[data-part=\"root\"]": "getRootProps",
59
+ "[data-part=\"label\"]": "getLabelProps",
60
+ "[data-part=\"dropzone\"]": "getDropzoneProps",
61
+ "[data-part=\"trigger\"]": "getTriggerProps",
62
+ "[data-part=\"hidden-input\"]": "getHiddenInputProps",
63
+ "[data-part=\"clear-trigger\"]": "getClearTriggerProps"
64
+ };
65
+ }
66
+ syncState(api) {
67
+ this.acceptedFiles = api.acceptedFiles;
68
+ this.rejectedFiles = api.rejectedFiles;
69
+ }
70
+ template(props) {
71
+ const __id = this.id;
72
+ Component._register(ZagComponent, "zag-component");
73
+ 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="file-upload-label text-sm font-medium mb-2 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div data-part="dropzone" class="file-upload-dropzone flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 p-8 text-center hover:border-muted-foreground/50 transition-colors"><p class="text-sm text-muted-foreground mb-2">Drag and drop files here</p><button data-part="trigger" class="file-upload-trigger inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow hover:bg-primary/90">Choose Files</button></div><input data-part="hidden-input" type="file" class="sr-only" /><!--${__id + "-c1"}-->${this.acceptedFiles.length > 0 && `<div class="file-upload-file-list mt-3 space-y-1">${this.acceptedFiles.map((file) => this.renderAcceptedFilesItem(file)).join("")}<button data-part="clear-trigger" class="file-upload-clear text-xs text-muted-foreground hover:text-foreground mt-1">Clear all</button></div>` || ""}<!--${__id + "-c1-end"}--></div>`;
74
+ }
75
+ __onPropChange(key, value) {
76
+ if (key === "class") {
77
+ const __el = this[GEA_ELEMENT];
78
+ this.props;
79
+ const __boundValue = value || "";
80
+ if (__el) {
81
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
82
+ if (__el.className !== __newClass) __el.className = __newClass;
83
+ }
84
+ }
85
+ if (key === "label") this[GEA_PATCH_COND](0);
86
+ this[GEA_PATCH_COND](1);
87
+ }
88
+ __observe_local_acceptedFiles(value, change) {
89
+ if (this[GEA_RENDERED]) {
90
+ if (this[geaCondPatchedSymbol(1)]) return;
91
+ this[geaCondPatchedSymbol(1)] = this[GEA_PATCH_COND](1);
92
+ if (this[geaCondPatchedSymbol(1)]) queueMicrotask(() => this[geaCondPatchedSymbol(1)] = false);
93
+ }
94
+ if (!this.__acceptedFiles_container) this.__acceptedFiles_container = this.$(":scope");
95
+ if (!this.__acceptedFiles_container) return;
96
+ if (Array.isArray(value) && value.length === 0) {
97
+ this.#__rowEls_list = null;
98
+ this.__acceptedFiles_container.textContent = "";
99
+ return;
100
+ }
101
+ this[GEA_ENSURE_ARRAY_CONFIGS]();
102
+ this[GEA_APPLY_LIST_CHANGES](this.__acceptedFiles_container, value, change, this.__acceptedFilesListConfig);
103
+ }
104
+ __observe_local_acceptedFiles__join(value, change) {
105
+ if (this[GEA_RENDERED]) {
106
+ if (this[geaCondPatchedSymbol(1)]) return;
107
+ this[geaCondPatchedSymbol(1)] = this[GEA_PATCH_COND](1);
108
+ if (this[geaCondPatchedSymbol(1)]) queueMicrotask(() => this[geaCondPatchedSymbol(1)] = false);
109
+ if (this[geaCondPatchedSymbol(1)]) return;
110
+ }
111
+ }
112
+ renderAcceptedFilesItem(file) {
113
+ return `<div data-gea-item-id="${file?.name ?? file}" class="flex items-center justify-between rounded-md border px-3 py-2 text-sm"><span>${file.name}</span></div>`;
114
+ }
115
+ createAcceptedFilesItem(item) {
116
+ var __c = this.#__dc_acceptedFiles || (this.#__dc_acceptedFiles = this.__acceptedFiles_container);
117
+ if (!__c[GEA_MAP_CONFIG_TPL]) try {
118
+ var __tw = document.createElement("template");
119
+ __tw.innerHTML = this.renderAcceptedFilesItem({ name: 0 });
120
+ __c[GEA_MAP_CONFIG_TPL] = __tw.content.firstElementChild;
121
+ __c[GEA_MAP_CONFIG_TPL]?.removeAttribute("data-gea-item-id");
122
+ } catch (__err) {
123
+ console.error(__err);
124
+ }
125
+ if (__c[GEA_MAP_CONFIG_TPL]) var el = __c[GEA_MAP_CONFIG_TPL].cloneNode(true);
126
+ else {
127
+ var __fw = document.createElement("template");
128
+ __fw.innerHTML = this.renderAcceptedFilesItem(item);
129
+ var el = __fw.content.firstElementChild;
130
+ }
131
+ el.__ref_0 = el.firstElementChild;
132
+ el.__ref_0.firstChild.nodeValue = `${item.name}`;
133
+ el[GEA_DOM_KEY] = String(item?.name ?? item);
134
+ el[GEA_DOM_ITEM] = item;
135
+ return el;
136
+ }
137
+ patchAcceptedFilesItem(row, item, __prevItem) {
138
+ if (!row) return;
139
+ if (!row.__ref_0) row.__ref_0 = row.firstElementChild;
140
+ row.__ref_0.firstChild.nodeValue = `${item.name}`;
141
+ row[GEA_DOM_KEY] = String(item?.name ?? item);
142
+ (this.#__rowEls_list || (this.#__rowEls_list = {}))[String(item?.name ?? item)] = row;
143
+ row[GEA_DOM_ITEM] = item;
144
+ }
145
+ [GEA_ENSURE_ARRAY_CONFIGS]() {
146
+ if (!this.__acceptedFilesListConfig) this.__acceptedFilesListConfig = {
147
+ arrayPathParts: ["acceptedFiles"],
148
+ render: this.renderAcceptedFilesItem.bind(this),
149
+ create: this.createAcceptedFilesItem.bind(this),
150
+ patchRow: this.patchAcceptedFilesItem && this.patchAcceptedFilesItem.bind(this),
151
+ getKey: (item) => String(item?.name ?? item),
152
+ propPatchers: { "name": [(row, value, item) => {
153
+ const __target = row.__ref_0 || (row.__ref_0 = row.firstElementChild);
154
+ if (!__target) return;
155
+ __target.firstChild && (__target.firstChild.nodeValue = `${item.name}`) || (__target.textContent = `${item.name}`);
156
+ }, (row, value) => row.classList.toggle("name", value)] }
157
+ };
158
+ }
159
+ [GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
160
+ this[GEA_ENSURE_ARRAY_CONFIGS]();
161
+ if (!this.__store) return;
162
+ this[GEA_OBSERVE](this, ["acceptedFiles"], this.__observe_local_acceptedFiles);
163
+ this[GEA_OBSERVE](this, ["acceptedFiles", "join"], this.__observe_local_acceptedFiles__join);
164
+ this[GEA_OBSERVE](this, ["acceptedFiles", "map"], this.__observe_local_acceptedFiles__join);
165
+ }
166
+ };
167
+ //#endregion
168
+ export { FileUpload as default };
169
+
170
+ //# sourceMappingURL=file-upload.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload.mjs","names":["fileUpload","normalizeProps","ZagComponent","FileUpload","GEA_CTOR_TAG_NAME","__rowEls_list","__dc_acceptedFiles","constructor","args","props","geaCondValueSymbol","label","acceptedFiles","length","GEA_REGISTER_COND","geaEscapeHtml","String","map","file","File","renderAcceptedFilesItem","join","rejectedFiles","createMachine","_props","machine","getMachineProps","id","accept","maxFiles","maxFileSize","minFileSize","multiple","disabled","allowDrop","name","onFileChange","details","FileChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","trim","__onPropChange","key","value","__el","GEA_ELEMENT","__boundValue","__newClass","className","GEA_PATCH_COND","__observe_local_acceptedFiles","change","GEA_RENDERED","geaCondPatchedSymbol","queueMicrotask","__acceptedFiles_container","$","Array","isArray","textContent","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","__acceptedFilesListConfig","__observe_local_acceptedFiles__join","createAcceptedFilesItem","item","__c","GEA_MAP_CONFIG_TPL","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","el","cloneNode","__fw","__ref_0","firstChild","nodeValue","GEA_DOM_KEY","GEA_DOM_ITEM","patchAcceptedFilesItem","row","__prevItem","arrayPathParts","render","bind","create","patchRow","getKey","propPatchers","__target","classList","toggle","GEA_SETUP_LOCAL_STATE_OBSERVERS","__store","GEA_OBSERVE"],"sources":["../src/components/file-upload.tsx"],"sourcesContent":["import * as fileUpload from '@zag-js/file-upload'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class FileUpload extends ZagComponent {\n declare acceptedFiles: File[]\n declare rejectedFiles: any[]\n\n createMachine(_props: any): any {\n return fileUpload.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n accept: props.accept,\n maxFiles: props.maxFiles,\n maxFileSize: props.maxFileSize,\n minFileSize: props.minFileSize,\n multiple: props.multiple ?? false,\n disabled: props.disabled,\n allowDrop: props.allowDrop ?? true,\n name: props.name,\n onFileChange: (details: fileUpload.FileChangeDetails) => {\n this.acceptedFiles = details.acceptedFiles\n this.rejectedFiles = details.rejectedFiles\n props.onFileChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return fileUpload.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"dropzone\"]': 'getDropzoneProps',\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n }\n }\n\n syncState(api: any) {\n this.acceptedFiles = api.acceptedFiles\n this.rejectedFiles = api.rejectedFiles\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=\"file-upload-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div\n data-part=\"dropzone\"\n class=\"file-upload-dropzone flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 p-8 text-center hover:border-muted-foreground/50 transition-colors\"\n >\n <p class=\"text-sm text-muted-foreground mb-2\">Drag and drop files here</p>\n <button\n data-part=\"trigger\"\n class=\"file-upload-trigger inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow hover:bg-primary/90\"\n >\n Choose Files\n </button>\n </div>\n <input data-part=\"hidden-input\" type=\"file\" class=\"sr-only\" />\n {this.acceptedFiles.length > 0 && (\n <div class=\"file-upload-file-list mt-3 space-y-1\">\n {this.acceptedFiles.map((file: File) => (\n <div key={file.name} class=\"flex items-center justify-between rounded-md border px-3 py-2 text-sm\">\n <span>{file.name}</span>\n </div>\n ))}\n <button\n data-part=\"clear-trigger\"\n class=\"file-upload-clear text-xs text-muted-foreground hover:text-foreground mt-1\"\n >\n Clear all\n </button>\n </div>\n )}\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { n as ZagComponent } from "./zag-component.mjs";
2
+ import * as hoverCard from "@zag-js/hover-card";
3
+ import * as _$_zag_js_types0 from "@zag-js/types";
4
+
5
+ //#region src/components/hover-card.d.ts
6
+ declare class HoverCard extends ZagComponent {
7
+ open: boolean;
8
+ createMachine(_props: any): any;
9
+ getMachineProps(props: any): {
10
+ id: any;
11
+ open: any;
12
+ defaultOpen: any;
13
+ openDelay: any;
14
+ closeDelay: any;
15
+ positioning: any;
16
+ onOpenChange: (details: hoverCard.OpenChangeDetails) => void;
17
+ };
18
+ connectApi(service: any): hoverCard.Api<_$_zag_js_types0.PropTypes<{
19
+ [x: string]: any;
20
+ }>>;
21
+ getSpreadMap(): {
22
+ '[data-part="trigger"]': string;
23
+ '[data-part="positioner"]': string;
24
+ '[data-part="content"]': string;
25
+ '[data-part="arrow"]': string;
26
+ '[data-part="arrow-tip"]': string;
27
+ };
28
+ syncState(api: any): void;
29
+ template(props: any): string;
30
+ }
31
+ //#endregion
32
+ export { HoverCard as default };
33
+ //# sourceMappingURL=hover-card.d.mts.map
@@ -0,0 +1,92 @@
1
+ import { t as ZagComponent } from "./zag-component.mjs";
2
+ import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT, geaEscapeHtml, geaSanitizeAttr } from "@geajs/core";
3
+ import { normalizeProps } from "@zag-js/vanilla";
4
+ import * as hoverCard from "@zag-js/hover-card";
5
+ //#region src/components/hover-card.tsx
6
+ var HoverCard = class extends ZagComponent {
7
+ static {
8
+ this[GEA_CTOR_TAG_NAME] = "hover-card";
9
+ }
10
+ createMachine(_props) {
11
+ return hoverCard.machine;
12
+ }
13
+ getMachineProps(props) {
14
+ return {
15
+ id: this.id,
16
+ open: props.open,
17
+ defaultOpen: props.defaultOpen,
18
+ openDelay: props.openDelay,
19
+ closeDelay: props.closeDelay,
20
+ positioning: props.positioning,
21
+ onOpenChange: (details) => {
22
+ this.open = details.open;
23
+ props.onOpenChange?.(details);
24
+ }
25
+ };
26
+ }
27
+ connectApi(service) {
28
+ return hoverCard.connect(service, normalizeProps);
29
+ }
30
+ getSpreadMap() {
31
+ return {
32
+ "[data-part=\"trigger\"]": "getTriggerProps",
33
+ "[data-part=\"positioner\"]": "getPositionerProps",
34
+ "[data-part=\"content\"]": "getContentProps",
35
+ "[data-part=\"arrow\"]": "getArrowProps",
36
+ "[data-part=\"arrow-tip\"]": "getArrowTipProps"
37
+ };
38
+ }
39
+ syncState(api) {
40
+ this.open = api.open;
41
+ }
42
+ template(props) {
43
+ const __id = this.id;
44
+ Component._register(ZagComponent, "zag-component");
45
+ return `<div id="${__id}"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`} style="display: inline-block"><a id="${__id + "-b1"}" data-part="trigger"${(props.href || "#") == null || (props.href || "#") === false ? "" : ` href="${geaSanitizeAttr("href", String(props.href || "#"))}"`} class="hover-card-trigger inline-block">${geaEscapeHtml(String(props.triggerLabel || "Hover me"))}</a><div data-part="positioner" class="hover-card-positioner"><div id="${__id + "-b2"}" data-part="content" class="hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none">${props.children}</div></div></div>`;
46
+ }
47
+ __onPropChange(key, value) {
48
+ const __id = this.id;
49
+ if (key === "class") {
50
+ const __el = this[GEA_ELEMENT];
51
+ this.props;
52
+ const __boundValue = value || "";
53
+ if (__el) {
54
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
55
+ if (__el.className !== __newClass) __el.className = __newClass;
56
+ }
57
+ }
58
+ if (key === "href") {
59
+ const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
60
+ this.props;
61
+ const __boundValue = value || "#";
62
+ if (__el) if (__boundValue === null || __boundValue === void 0) __el.removeAttribute("href");
63
+ else {
64
+ const __newAttr = geaSanitizeAttr("href", String(__boundValue));
65
+ if (__el.getAttribute("href") !== __newAttr) __el.setAttribute("href", __newAttr);
66
+ }
67
+ }
68
+ if (key === "triggerLabel") {
69
+ const __el = this.__e1 || (this.__e1 = document.getElementById(__id + "-b1"));
70
+ this.props;
71
+ const __boundValue = value || "Hover me";
72
+ if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
73
+ }
74
+ if (key === "children") {
75
+ const __el = this.__e2 || (this.__e2 = document.getElementById(__id + "-b2"));
76
+ if (__el && __el.innerHTML !== value) {
77
+ __el.innerHTML = value;
78
+ this.instantiateChildComponents_();
79
+ if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
80
+ }
81
+ }
82
+ }
83
+ *GEA_RESET_ELS() {
84
+ this.__e0 = null;
85
+ this.__e1 = null;
86
+ this.__e2 = null;
87
+ }
88
+ };
89
+ //#endregion
90
+ export { HoverCard as default };
91
+
92
+ //# sourceMappingURL=hover-card.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-card.mjs","names":["hoverCard","normalizeProps","ZagComponent","HoverCard","GEA_CTOR_TAG_NAME","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","openDelay","closeDelay","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","String","trim","href","geaSanitizeAttr","geaEscapeHtml","triggerLabel","children","__onPropChange","key","value","__el","GEA_ELEMENT","__boundValue","__newClass","className","__e0","document","getElementById","undefined","removeAttribute","__newAttr","getAttribute","setAttribute","__e1","textContent","__e2","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_","GEA_RESET_ELS"],"sources":["../src/components/hover-card.tsx"],"sourcesContent":["import * as hoverCard from '@zag-js/hover-card'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class HoverCard extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return hoverCard.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,\n closeDelay: props.closeDelay,\n positioning: props.positioning,\n onOpenChange: (details: hoverCard.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return hoverCard.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 <a data-part=\"trigger\" href={props.href || '#'} class=\"hover-card-trigger inline-block\">\n {props.triggerLabel || 'Hover me'}\n </a>\n <div data-part=\"positioner\" class=\"hover-card-positioner\">\n <div\n data-part=\"content\"\n class=\"hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none\"\n >\n {props.children}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;AAIA,IAAqBG,YAArB,cAAuCD,aAAa;;OAAAE,qBAAA;;CAGlDE,cAAcC,QAAkB;AAC9B,SAAOP,UAAUQ;;CAGnBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTN,MAAMK,MAAML;GACZO,aAAaF,MAAME;GACnBC,WAAWH,MAAMG;GACjBC,YAAYJ,MAAMI;GAClBC,aAAaL,MAAMK;GACnBC,eAAeC,YAAyC;AACtD,SAAKZ,OAAOY,QAAQZ;AACpBK,UAAMM,eAAeC,QAAQ;;GAEhC;;CAGHE,WAAWC,SAAc;AACvB,SAAOpB,UAAUqB,QAAQD,SAASnB,eAAe;;CAGnDqB,eAAe;AACb,SAAO;GACL,2BAAyB;GACzB,8BAA4B;GAC5B,2BAAyB;GACzB,yBAAuB;GACvB,6BAA2B;GAC5B;;CAGHC,UAAUC,KAAU;AAClB,OAAKnB,OAAOmB,IAAInB;;CAGlBoB,SAASf,OAAY;EAAA,MAAAgB,OAAA,KAAAf;AAAAgB,YAAAC,UAAA1B,cAAA,gBAAA;AACnB,SAAA,YAAAwB,KAAA,IACchB,MAAMmB,SAAS,OAAE,SAAjBnB,MAAMmB,SAAS,QAAE,QAAA,KAAA,aAAjBnB,MAAMmB,SAAS,OAAE,OAAAC,OAAjBpB,MAAMmB,SAAS,GAAE,GAAA,IAAAE,MAAA,CAAA,GAAA,wCAAAL,OAAA,MAAA,wBACEhB,MAAMsB,QAAQ,QAAG,SAAjBtB,MAAMsB,QAAQ,SAAG,QAAA,KAAA,UAAAC,gBAAA,QAAAH,OAAjBpB,MAAMsB,QAAQ,IAAG,CAAA,CAAA,GAAA,2CAAAE,cAAAJ,OAC3CpB,MAAMyB,gBAAgB,WAAU,CAAA,CAAA,yEAAAT,OAAA,MAAA,6IAO9BhB,MAAM0B,SAAQ;;CAtD3BC,eAAsBC,KAAKC,OAAK;EAAA,MAAAb,OAAA,KAAAf;AAAA,MAAA2B,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAC;AA2CX,QAAA/B;GAAA,MAAAgC,eAAAH,SAEY;AAAE,OAAAC,MAAA;IAAA,MAAAG,cAAAD,gBAAA,OAAAZ,OAAAY,aAAA,GAAA,IAAAX,MAAA;AAAA,QAAAS,KAAAI,cAAAD,WAAAH,MAAAI,YAAAD;;;AAAA,MAAAL,QAAA,QAAA;GAAA,MAAAE,OAAA,KAAAK,SAAA,KAAAA,OAAAC,SAAAC,eAAArB,OAAA,MAAA;AAFd,QAAAhB;GAAA,MAAAgC,eAAAH,SAG8B;AAAG,OAAAC,KAAA,KAAAE,iBAAA,QAAAA,iBAAAM,KAAAA,EAAAR,MAAAS,gBAAA,OAAA;QAAA;IAAA,MAAAC,YAAAjB,gBAAA,QAAAH,OAAAY,aAAA,CAAA;AAAA,QAAAF,KAAAW,aAAA,OAAA,KAAAD,UAAAV,MAAAY,aAAA,QAAAF,UAAA;;;AAAA,MAAAZ,QAAA,gBAAA;GAAA,MAAAE,OAAA,KAAAa,SAAA,KAAAA,OAAAP,SAAAC,eAAArB,OAAA,MAAA;AAHjC,QAAAhB;GAAA,MAAAgC,eAAAH,SAIY;AAAU,OAAAC,QAAAA,KAAAc,gBAAAZ,aAAAF,MAAAc,cAAAZ;;AAAA,MAAAJ,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAe,SAAA,KAAAA,OAAAT,SAAAC,eAAArB,OAAA,MAAA;AAAA,OAAAc,QAAAA,KAAAgB,cAAAjB,OAAA;AAAAC,SAAAgB,YAAAjB;AAAA,SAAAkB,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA;;;;CA/CP,CAAAC,gBAAA;AAAA,OAAAf,OAAA;AAAA,OAAAQ,OAAA;AAAA,OAAAE,OAAA"}