@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.
- package/README.md +14 -19
- package/dist/accordion.d.mts +34 -0
- package/dist/accordion.mjs +167 -0
- package/dist/accordion.mjs.map +1 -0
- package/dist/alert.d.mts +15 -0
- package/dist/alert.mjs +101 -0
- package/dist/alert.mjs.map +1 -0
- package/dist/avatar.d.mts +26 -0
- package/dist/avatar.mjs +97 -0
- package/dist/avatar.mjs.map +1 -0
- package/dist/badge.d.mts +9 -0
- package/dist/badge.mjs +49 -0
- package/dist/badge.mjs.map +1 -0
- package/dist/button.d.mts +21 -0
- package/dist/button.mjs +96 -0
- package/dist/button.mjs.map +1 -0
- package/dist/card.d.mts +24 -0
- package/dist/card.mjs +169 -0
- package/dist/card.mjs.map +1 -0
- package/dist/checkbox.d.mts +37 -0
- package/dist/checkbox.mjs +80 -0
- package/dist/checkbox.mjs.map +1 -0
- package/dist/clipboard.d.mts +33 -0
- package/dist/clipboard.mjs +100 -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 +77 -0
- package/dist/collapsible.mjs.map +1 -0
- package/dist/combobox.d.mts +67 -0
- package/dist/combobox.mjs +375 -0
- package/dist/combobox.mjs.map +1 -0
- package/dist/dialog.d.mts +57 -0
- package/dist/dialog.mjs +139 -0
- package/dist/dialog.mjs.map +1 -0
- package/dist/dnd-manager.d.mts +67 -0
- package/dist/dnd-manager.mjs +387 -0
- package/dist/dnd-manager.mjs.map +1 -0
- package/dist/drag-drop-context.d.mts +11 -0
- package/dist/drag-drop-context.mjs +43 -0
- package/dist/drag-drop-context.mjs.map +1 -0
- package/dist/draggable.d.mts +11 -0
- package/dist/draggable.mjs +72 -0
- package/dist/draggable.mjs.map +1 -0
- package/dist/droppable.d.mts +14 -0
- package/dist/droppable.mjs +66 -0
- package/dist/droppable.mjs.map +1 -0
- package/dist/file-upload.d.mts +38 -0
- package/dist/file-upload.mjs +170 -0
- package/dist/file-upload.mjs.map +1 -0
- package/dist/hover-card.d.mts +33 -0
- package/dist/hover-card.mjs +92 -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 +82 -0
- package/dist/input.mjs.map +1 -0
- package/dist/label.d.mts +9 -0
- package/dist/label.mjs +42 -0
- package/dist/label.mjs.map +1 -0
- package/dist/menu.d.mts +36 -0
- package/dist/menu.mjs +88 -0
- package/dist/menu.mjs.map +1 -0
- package/dist/number-input.d.mts +46 -0
- package/dist/number-input.mjs +89 -0
- package/dist/number-input.mjs.map +1 -0
- package/dist/pagination.d.mts +37 -0
- package/dist/pagination.mjs +97 -0
- package/dist/pagination.mjs.map +1 -0
- package/dist/pin-input.d.mts +45 -0
- package/dist/pin-input.mjs +147 -0
- package/dist/pin-input.mjs.map +1 -0
- package/dist/popover.d.mts +39 -0
- package/dist/popover.mjs +109 -0
- package/dist/popover.mjs.map +1 -0
- package/dist/progress.d.mts +34 -0
- package/dist/progress.mjs +86 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/radio-group.d.mts +37 -0
- package/dist/radio-group.mjs +184 -0
- package/dist/radio-group.mjs.map +1 -0
- package/dist/rating-group.d.mts +38 -0
- package/dist/rating-group.mjs +171 -0
- package/dist/rating-group.mjs.map +1 -0
- package/dist/select.d.mts +54 -0
- package/dist/select.mjs +277 -0
- package/dist/select.mjs.map +1 -0
- package/dist/separator.d.mts +9 -0
- package/dist/separator.mjs +49 -0
- package/dist/separator.mjs.map +1 -0
- package/dist/skeleton.d.mts +9 -0
- package/dist/skeleton.mjs +43 -0
- package/dist/skeleton.mjs.map +1 -0
- package/dist/slider.d.mts +44 -0
- package/dist/slider.mjs +117 -0
- package/dist/slider.mjs.map +1 -0
- package/dist/switch.d.mts +37 -0
- package/dist/switch.mjs +80 -0
- package/dist/switch.mjs.map +1 -0
- package/dist/tabs.d.mts +36 -0
- package/dist/tabs.mjs +197 -0
- package/dist/tabs.mjs.map +1 -0
- package/dist/tags-input.d.mts +48 -0
- package/dist/tags-input.mjs +267 -0
- package/dist/tags-input.mjs.map +1 -0
- package/dist/textarea.d.mts +9 -0
- package/dist/textarea.mjs +73 -0
- package/dist/textarea.mjs.map +1 -0
- package/dist/toast.d.mts +33 -0
- package/dist/toast.mjs +213 -0
- package/dist/toast.mjs.map +1 -0
- package/dist/toggle-group.d.mts +32 -0
- package/dist/toggle-group.mjs +124 -0
- package/dist/toggle-group.mjs.map +1 -0
- package/dist/tooltip.d.mts +39 -0
- package/dist/tooltip.mjs +85 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/tree-view.d.mts +35 -0
- package/dist/tree-view.mjs +94 -0
- package/dist/tree-view.mjs.map +1 -0
- package/dist/zag-component.d.mts +40 -0
- package/dist/zag-component.mjs +135 -0
- package/dist/zag-component.mjs.map +1 -0
- package/package.json +8 -8
- 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"}
|