@geajs/ui 0.2.4 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.d.mts +2 -2
- package/dist/accordion.mjs +92 -122
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert.d.mts +3 -3
- package/dist/alert.mjs +45 -107
- package/dist/alert.mjs.map +1 -1
- package/dist/avatar.d.mts +2 -2
- package/dist/avatar.mjs +38 -62
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.d.mts +1 -1
- package/dist/badge.mjs +18 -43
- package/dist/badge.mjs.map +1 -1
- package/dist/bind.mjs +130 -0
- package/dist/bind.mjs.map +1 -0
- package/dist/button.d.mts +3 -2
- package/dist/button.mjs +30 -85
- package/dist/button.mjs.map +1 -1
- package/dist/card.d.mts +6 -6
- package/dist/card.mjs +82 -194
- package/dist/card.mjs.map +1 -1
- package/dist/checkbox.d.mts +2 -2
- package/dist/checkbox.mjs +30 -31
- package/dist/checkbox.mjs.map +1 -1
- package/dist/clipboard.d.mts +2 -2
- package/dist/clipboard.mjs +49 -55
- package/dist/clipboard.mjs.map +1 -1
- package/dist/collapsible.d.mts +2 -2
- package/dist/collapsible.mjs +18 -45
- package/dist/collapsible.mjs.map +1 -1
- package/dist/combobox.d.mts +2 -2
- package/dist/combobox.mjs +322 -261
- package/dist/combobox.mjs.map +1 -1
- package/dist/compiled-component.mjs +119 -0
- package/dist/compiled-component.mjs.map +1 -0
- package/dist/compiled-reactive-component.mjs +337 -0
- package/dist/compiled-reactive-component.mjs.map +1 -0
- package/dist/component-id.mjs +10 -0
- package/dist/component-id.mjs.map +1 -0
- package/dist/conditional-truthy.mjs +48 -0
- package/dist/conditional-truthy.mjs.map +1 -0
- package/dist/conditional.mjs +54 -0
- package/dist/conditional.mjs.map +1 -0
- package/dist/delegate-event.mjs +53 -0
- package/dist/delegate-event.mjs.map +1 -0
- package/dist/dialog.d.mts +4 -3
- package/dist/dialog.mjs +57 -70
- package/dist/dialog.mjs.map +1 -1
- package/dist/dirty-symbols.mjs +7 -0
- package/dist/dirty-symbols.mjs.map +1 -0
- package/dist/disposer.mjs +46 -0
- package/dist/disposer.mjs.map +1 -0
- package/dist/dnd-manager.d.mts +9 -1
- package/dist/dnd-manager.mjs +67 -29
- package/dist/dnd-manager.mjs.map +1 -1
- package/dist/drag-drop-context.d.mts +1 -1
- package/dist/drag-drop-context.mjs +17 -33
- package/dist/drag-drop-context.mjs.map +1 -1
- package/dist/draggable.d.mts +1 -1
- package/dist/draggable.mjs +2 -91
- package/dist/draggable2.mjs +321 -0
- package/dist/draggable2.mjs.map +1 -0
- package/dist/droppable.d.mts +1 -1
- package/dist/droppable.mjs +20 -44
- package/dist/droppable.mjs.map +1 -1
- package/dist/file-upload.d.mts +2 -2
- package/dist/file-upload.mjs +337 -122
- package/dist/file-upload.mjs.map +1 -1
- package/dist/hover-card.d.mts +2 -2
- package/dist/hover-card.mjs +24 -59
- package/dist/hover-card.mjs.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/input.d.mts +1 -1
- package/dist/input.mjs +1 -93
- package/dist/input2.mjs +56 -0
- package/dist/input2.mjs.map +1 -0
- package/dist/internal-symbols.mjs +9 -0
- package/dist/internal-symbols.mjs.map +1 -0
- package/dist/item-obs.mjs +68 -0
- package/dist/item-obs.mjs.map +1 -0
- package/dist/keyed-list-symbols.mjs +6 -0
- package/dist/keyed-list-symbols.mjs.map +1 -0
- package/dist/keyed-list.mjs +487 -0
- package/dist/keyed-list.mjs.map +1 -0
- package/dist/label.d.mts +1 -1
- package/dist/label.mjs +20 -45
- package/dist/label.mjs.map +1 -1
- package/dist/menu.d.mts +2 -2
- package/dist/menu.mjs +87 -41
- package/dist/menu.mjs.map +1 -1
- package/dist/number-input.d.mts +2 -2
- package/dist/number-input.mjs +28 -32
- package/dist/number-input.mjs.map +1 -1
- package/dist/pagination.d.mts +2 -2
- package/dist/pagination.mjs +12 -35
- package/dist/pagination.mjs.map +1 -1
- package/dist/patch.mjs +21 -0
- package/dist/patch.mjs.map +1 -0
- package/dist/pin-input.d.mts +2 -2
- package/dist/pin-input.mjs +88 -87
- package/dist/pin-input.mjs.map +1 -1
- package/dist/popover.d.mts +2 -2
- package/dist/popover.mjs +45 -67
- package/dist/popover.mjs.map +1 -1
- package/dist/progress.d.mts +2 -2
- package/dist/progress.mjs +37 -43
- package/dist/progress.mjs.map +1 -1
- package/dist/radio-group.d.mts +2 -2
- package/dist/radio-group.mjs +99 -140
- package/dist/radio-group.mjs.map +1 -1
- package/dist/rating-group.d.mts +2 -2
- package/dist/rating-group.mjs +91 -99
- package/dist/rating-group.mjs.map +1 -1
- package/dist/reactive-attr.mjs +13 -0
- package/dist/reactive-attr.mjs.map +1 -0
- package/dist/reactive-bool.mjs +13 -0
- package/dist/reactive-bool.mjs.map +1 -0
- package/dist/reactive-class-name.mjs +15 -0
- package/dist/reactive-class-name.mjs.map +1 -0
- package/dist/reactive-class.mjs +53 -0
- package/dist/reactive-class.mjs.map +1 -0
- package/dist/reactive-style.mjs +21 -0
- package/dist/reactive-style.mjs.map +1 -0
- package/dist/reactive-text.mjs +62 -0
- package/dist/reactive-text.mjs.map +1 -0
- package/dist/select.d.mts +2 -2
- package/dist/select.mjs +106 -186
- package/dist/select.mjs.map +1 -1
- package/dist/separator.d.mts +1 -1
- package/dist/separator.mjs +19 -45
- package/dist/separator.mjs.map +1 -1
- package/dist/skeleton.d.mts +1 -1
- package/dist/skeleton.mjs +11 -35
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.d.mts +2 -2
- package/dist/slider.mjs +31 -32
- package/dist/slider.mjs.map +1 -1
- package/dist/switch.d.mts +2 -2
- package/dist/switch.mjs +30 -31
- package/dist/switch.mjs.map +1 -1
- package/dist/tabs.d.mts +7 -2
- package/dist/tabs.mjs +180 -147
- package/dist/tabs.mjs.map +1 -1
- package/dist/tags-input.d.mts +2 -2
- package/dist/tags-input.mjs +102 -188
- package/dist/tags-input.mjs.map +1 -1
- package/dist/textarea.d.mts +1 -1
- package/dist/textarea.mjs +32 -75
- package/dist/textarea.mjs.map +1 -1
- package/dist/theme.css +4 -5
- package/dist/toast.d.mts +1 -1
- package/dist/toast.mjs +14 -34
- package/dist/toast.mjs.map +1 -1
- package/dist/toggle-group.d.mts +2 -2
- package/dist/toggle-group.mjs +78 -85
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/tooltip.d.mts +2 -2
- package/dist/tooltip.mjs +23 -43
- package/dist/tooltip.mjs.map +1 -1
- package/dist/tree-view.d.mts +2 -2
- package/dist/tree-view.mjs +32 -50
- package/dist/tree-view.mjs.map +1 -1
- package/dist/types.d.mts +9 -0
- package/dist/zag-component.d.mts +25 -3
- package/dist/zag-component.mjs +63 -16
- package/dist/zag-component.mjs.map +1 -1
- package/package.json +4 -3
- package/dist/cn.mjs +0 -10
- package/dist/cn.mjs.map +0 -1
- package/dist/draggable.mjs.map +0 -1
- package/dist/input.mjs.map +0 -1
package/dist/file-upload.mjs
CHANGED
|
@@ -1,33 +1,42 @@
|
|
|
1
1
|
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { o as GEA_CREATE_TEMPLATE, u as GEA_PROXY_RAW } from "./bind.mjs";
|
|
3
|
+
import { n as _DIRTY_PROPS, t as _DIRTY } from "./dirty-symbols.mjs";
|
|
4
|
+
import { n as reactiveTextValue } from "./reactive-text.mjs";
|
|
5
|
+
import { t as reactiveClass } from "./reactive-class.mjs";
|
|
6
|
+
import { t as conditionalTruthy } from "./conditional-truthy.mjs";
|
|
7
|
+
import { t as GEA_DOM_ITEM } from "./keyed-list-symbols.mjs";
|
|
3
8
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
9
|
import * as fileUpload from "@zag-js/file-upload";
|
|
5
10
|
//#region src/components/file-upload.tsx
|
|
11
|
+
let _tpl0_root = null;
|
|
12
|
+
function _tpl0_create() {
|
|
13
|
+
const t = document.createElement("template");
|
|
14
|
+
t.innerHTML = "<div data-part=root><!--1--><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><!--2-->";
|
|
15
|
+
return t.content.firstChild;
|
|
16
|
+
}
|
|
17
|
+
let _tpl1_root = null;
|
|
18
|
+
function _tpl1_create() {
|
|
19
|
+
const t = document.createElement("template");
|
|
20
|
+
t.innerHTML = "<label data-part=label class=\"file-upload-label text-sm font-medium mb-2 block\">0";
|
|
21
|
+
return t.content.firstChild;
|
|
22
|
+
}
|
|
23
|
+
let _tpl2_root = null;
|
|
24
|
+
function _tpl2_create() {
|
|
25
|
+
const t = document.createElement("template");
|
|
26
|
+
t.innerHTML = "<div class=\"file-upload-file-list mt-3 space-y-1\"><!--0--><button data-part=clear-trigger class=\"file-upload-clear text-xs text-muted-foreground hover:text-foreground mt-1\">Clear all";
|
|
27
|
+
return t.content.firstChild;
|
|
28
|
+
}
|
|
29
|
+
let _tpl3_root = null;
|
|
30
|
+
function _tpl3_create() {
|
|
31
|
+
const t = document.createElement("template");
|
|
32
|
+
t.innerHTML = "<div class=\"flex items-center justify-between rounded-md border px-3 py-2 text-sm\"><span>0";
|
|
33
|
+
return t.content.firstChild;
|
|
34
|
+
}
|
|
6
35
|
var FileUpload = class extends ZagComponent {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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);
|
|
36
|
+
constructor(..._args) {
|
|
37
|
+
super(..._args);
|
|
38
|
+
this.acceptedFiles = [];
|
|
39
|
+
this.rejectedFiles = [];
|
|
31
40
|
}
|
|
32
41
|
createMachine(_props) {
|
|
33
42
|
return fileUpload.machine;
|
|
@@ -67,104 +76,310 @@ var FileUpload = class extends ZagComponent {
|
|
|
67
76
|
this.acceptedFiles = api.acceptedFiles;
|
|
68
77
|
this.rejectedFiles = api.rejectedFiles;
|
|
69
78
|
}
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
79
|
+
[GEA_CREATE_TEMPLATE](d) {
|
|
80
|
+
const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
|
|
81
|
+
const el0 = root;
|
|
82
|
+
const anchor1 = root.firstChild;
|
|
83
|
+
const anchor2 = root.childNodes[3];
|
|
84
|
+
reactiveClass(el0, d, this, () => this.props.class || "");
|
|
85
|
+
conditionalTruthy(anchor1.parentNode, anchor1, d, this, () => this.props.label, (d) => {
|
|
86
|
+
const root = (_tpl1_root || (_tpl1_root = _tpl1_create())).cloneNode(true);
|
|
87
|
+
const t0 = root.firstChild;
|
|
88
|
+
reactiveTextValue(t0, d, this, () => this.props.label);
|
|
89
|
+
return root;
|
|
90
|
+
});
|
|
91
|
+
conditionalTruthy(anchor2.parentNode, anchor2, d, this, () => this.acceptedFiles.length > 0, (d) => {
|
|
92
|
+
const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
|
|
93
|
+
const anchor0 = root.firstChild;
|
|
94
|
+
const __ki_L0 = (file, idx, d) => {
|
|
95
|
+
const root = (_tpl3_root || (_tpl3_root = _tpl3_create())).cloneNode(true);
|
|
96
|
+
{
|
|
97
|
+
const __n = root.firstChild.firstChild;
|
|
98
|
+
__n.nodeValue = `${file.name ?? ""}`;
|
|
99
|
+
}
|
|
100
|
+
root[GEA_DOM_ITEM] = file;
|
|
101
|
+
return root;
|
|
102
|
+
};
|
|
103
|
+
const __kp_L0 = (el, item) => {
|
|
104
|
+
if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("name")) {
|
|
105
|
+
const __n = el.__r0 || (el.__r0 = el.firstChild.firstChild);
|
|
106
|
+
__n.nodeValue = `${item.name ?? ""}`;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
{
|
|
110
|
+
const __kl_container = anchor0.parentNode;
|
|
111
|
+
const __kl_anchor = anchor0;
|
|
112
|
+
const __kl_root = this;
|
|
113
|
+
const __kl_key = (file, idx) => file.name;
|
|
114
|
+
const __kl_create = (item, idx) => {
|
|
115
|
+
const __k = item.name;
|
|
116
|
+
const __el = __ki_L0(item, idx);
|
|
117
|
+
return {
|
|
118
|
+
key: __k,
|
|
119
|
+
item: item && item[GEA_PROXY_RAW] || item,
|
|
120
|
+
element: __el
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
const __kl_patch = (e, newItem, newIdx) => {
|
|
124
|
+
e.item = newItem && newItem[GEA_PROXY_RAW] || newItem;
|
|
125
|
+
__kp_L0(e.element, newItem);
|
|
126
|
+
};
|
|
127
|
+
const __kl_unwrap = (v) => v && typeof v === "object" && v[GEA_PROXY_RAW] || v;
|
|
128
|
+
const __kl_resolve = () => {
|
|
129
|
+
const v = __kl_root?.["acceptedFiles"];
|
|
130
|
+
return Array.isArray(v) ? v : [];
|
|
131
|
+
};
|
|
132
|
+
let __kl_entries = [];
|
|
133
|
+
const __kl_byKey = /* @__PURE__ */ new Map();
|
|
134
|
+
const __kl_remove = (entry) => {
|
|
135
|
+
entry.disposer?.dispose();
|
|
136
|
+
__kl_byKey.delete(entry.key);
|
|
137
|
+
if (entry.element.parentNode) entry.element.parentNode.removeChild(entry.element);
|
|
138
|
+
};
|
|
139
|
+
const __kl_first = __kl_resolve();
|
|
140
|
+
if (__kl_first.length > 0) {
|
|
141
|
+
const frag = __kl_container.ownerDocument.createDocumentFragment();
|
|
142
|
+
for (let i = 0; i < __kl_first.length; i++) {
|
|
143
|
+
const item = __kl_first[i];
|
|
144
|
+
const entry = __kl_create(item, i);
|
|
145
|
+
__kl_entries.push(entry);
|
|
146
|
+
__kl_byKey.set(entry.key, entry);
|
|
147
|
+
frag.appendChild(entry.element);
|
|
148
|
+
if (item && typeof item === "object") {
|
|
149
|
+
item[_DIRTY] = false;
|
|
150
|
+
item[_DIRTY_PROPS]?.clear();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
__kl_container.insertBefore(frag, __kl_anchor);
|
|
154
|
+
}
|
|
155
|
+
let __kl_prev = __kl_first;
|
|
156
|
+
const __kl_reconcile = (arr, changes) => {
|
|
157
|
+
if (arr === __kl_prev && __kl_entries.length === arr.length) {
|
|
158
|
+
let structural = false;
|
|
159
|
+
let aipuOnly = changes && changes.length > 0;
|
|
160
|
+
if (changes && changes.length > 0) for (let i = 0; i < changes.length; i++) {
|
|
161
|
+
const change = changes[i];
|
|
162
|
+
if (change.type === "append" || change.type === "remove" || change.type === "delete" || change.type === "reorder") {
|
|
163
|
+
structural = true;
|
|
164
|
+
aipuOnly = false;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
if (!change.aipu) aipuOnly = false;
|
|
168
|
+
else structural = true;
|
|
169
|
+
}
|
|
170
|
+
if (aipuOnly && changes.length === 2) {
|
|
171
|
+
const a = changes[0].arix;
|
|
172
|
+
const b = changes[1].arix;
|
|
173
|
+
if (a >= 0 && b >= 0 && a < __kl_entries.length && b < __kl_entries.length && a !== b) {
|
|
174
|
+
const entryA = __kl_entries[a];
|
|
175
|
+
const entryB = __kl_entries[b];
|
|
176
|
+
const newAKey = __kl_key(arr[a], a);
|
|
177
|
+
const newBKey = __kl_key(arr[b], b);
|
|
178
|
+
if (entryA.key === newBKey && entryB.key === newAKey) {
|
|
179
|
+
const refB = entryB.element.nextSibling;
|
|
180
|
+
__kl_container.insertBefore(entryB.element, entryA.element);
|
|
181
|
+
if (refB) __kl_container.insertBefore(entryA.element, refB);
|
|
182
|
+
else __kl_container.appendChild(entryA.element);
|
|
183
|
+
__kl_entries[a] = entryB;
|
|
184
|
+
__kl_entries[b] = entryA;
|
|
185
|
+
if (__kl_unwrap(arr[a]) !== entryB.item) __kl_patch(entryB, arr[a], a);
|
|
186
|
+
if (__kl_unwrap(arr[b]) !== entryA.item) __kl_patch(entryA, arr[b], b);
|
|
187
|
+
__kl_prev = arr;
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (!structural) {
|
|
193
|
+
const raw = arr[GEA_PROXY_RAW] || arr;
|
|
194
|
+
for (let i = 0; i < raw.length; i++) {
|
|
195
|
+
const item = raw[i];
|
|
196
|
+
if (item && typeof item === "object" && item[_DIRTY]) {
|
|
197
|
+
__kl_patch(__kl_entries[i], item, i);
|
|
198
|
+
item[_DIRTY] = false;
|
|
199
|
+
item[_DIRTY_PROPS]?.clear();
|
|
200
|
+
__kl_entries[i].item = item;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (changes && changes.length > 0 && __kl_entries.length < arr.length) {
|
|
207
|
+
let onlyAppends = true;
|
|
208
|
+
let appendCount = 0;
|
|
209
|
+
for (let i = 0; i < changes.length; i++) {
|
|
210
|
+
if (changes[i].type !== "append") {
|
|
211
|
+
onlyAppends = false;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
appendCount += changes[i].count || 0;
|
|
215
|
+
}
|
|
216
|
+
if (onlyAppends && appendCount === arr.length - __kl_entries.length) {
|
|
217
|
+
const start = __kl_entries.length;
|
|
218
|
+
const frag = __kl_container.ownerDocument.createDocumentFragment();
|
|
219
|
+
for (let i = start; i < arr.length; i++) {
|
|
220
|
+
const entry = __kl_create(arr[i], i);
|
|
221
|
+
__kl_entries.push(entry);
|
|
222
|
+
__kl_byKey.set(entry.key, entry);
|
|
223
|
+
frag.appendChild(entry.element);
|
|
224
|
+
}
|
|
225
|
+
__kl_container.insertBefore(frag, __kl_anchor);
|
|
226
|
+
__kl_prev = arr;
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (changes && changes.length > 0 && __kl_entries.length > arr.length) {
|
|
231
|
+
let onlyRemoves = true;
|
|
232
|
+
let totalRemoved = 0;
|
|
233
|
+
for (let i = 0; i < changes.length; i++) {
|
|
234
|
+
const change = changes[i];
|
|
235
|
+
if (change.type !== "remove") {
|
|
236
|
+
onlyRemoves = false;
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
totalRemoved += change.count || 0;
|
|
240
|
+
}
|
|
241
|
+
if (onlyRemoves && __kl_entries.length - arr.length === totalRemoved) {
|
|
242
|
+
if (changes.length === 1 && changes[0].count === 1) {
|
|
243
|
+
const idx = changes[0].start;
|
|
244
|
+
if (idx >= 0 && idx < __kl_entries.length) {
|
|
245
|
+
__kl_remove(__kl_entries[idx]);
|
|
246
|
+
__kl_entries.splice(idx, 1);
|
|
247
|
+
}
|
|
248
|
+
__kl_prev = arr;
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const removed = [];
|
|
252
|
+
for (let i = 0; i < changes.length; i++) {
|
|
253
|
+
const start = changes[i].start;
|
|
254
|
+
const count = changes[i].count;
|
|
255
|
+
for (let j = 0; j < count; j++) removed.push(start + j);
|
|
256
|
+
}
|
|
257
|
+
removed.sort((a, b) => b - a);
|
|
258
|
+
for (let i = 0; i < removed.length; i++) {
|
|
259
|
+
const idx = removed[i];
|
|
260
|
+
if (idx >= 0 && idx < __kl_entries.length) {
|
|
261
|
+
__kl_remove(__kl_entries[idx]);
|
|
262
|
+
__kl_entries.splice(idx, 1);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
__kl_prev = arr;
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const newLen = arr.length;
|
|
270
|
+
const oldLen = __kl_entries.length;
|
|
271
|
+
if (oldLen === 0 && newLen > 0) {
|
|
272
|
+
const nextEntries = new Array(newLen);
|
|
273
|
+
const frag = __kl_container.ownerDocument.createDocumentFragment();
|
|
274
|
+
for (let i = 0; i < newLen; i++) {
|
|
275
|
+
const entry = __kl_create(arr[i], i);
|
|
276
|
+
nextEntries[i] = entry;
|
|
277
|
+
__kl_byKey.set(entry.key, entry);
|
|
278
|
+
frag.appendChild(entry.element);
|
|
279
|
+
}
|
|
280
|
+
__kl_container.insertBefore(frag, __kl_anchor);
|
|
281
|
+
__kl_entries = nextEntries;
|
|
282
|
+
__kl_prev = arr;
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const newKeys = new Array(newLen);
|
|
286
|
+
for (let i = 0; i < newLen; i++) newKeys[i] = __kl_key(arr[i], i);
|
|
287
|
+
if (newLen === 0) {
|
|
288
|
+
if (__kl_container.childNodes.length === oldLen + (__kl_anchor ? 1 : 0)) {
|
|
289
|
+
for (let i = 0; i < oldLen; i++) __kl_entries[i].disposer?.dispose();
|
|
290
|
+
__kl_container.textContent = "";
|
|
291
|
+
if (__kl_anchor) __kl_container.appendChild(__kl_anchor);
|
|
292
|
+
} else for (let i = oldLen - 1; i >= 0; i--) __kl_remove(__kl_entries[i]);
|
|
293
|
+
__kl_entries = [];
|
|
294
|
+
__kl_byKey.clear();
|
|
295
|
+
__kl_prev = arr;
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
if (newLen === oldLen) {
|
|
299
|
+
let diffA = -1;
|
|
300
|
+
let diffB = -1;
|
|
301
|
+
let diffCount = 0;
|
|
302
|
+
for (let i = 0; i < newLen; i++) if (__kl_entries[i].key !== newKeys[i]) {
|
|
303
|
+
if (diffCount === 0) diffA = i;
|
|
304
|
+
else if (diffCount === 1) diffB = i;
|
|
305
|
+
diffCount++;
|
|
306
|
+
if (diffCount > 2) break;
|
|
307
|
+
}
|
|
308
|
+
if (diffCount === 2 && __kl_entries[diffA].key === newKeys[diffB] && __kl_entries[diffB].key === newKeys[diffA]) {
|
|
309
|
+
const entryA = __kl_entries[diffA];
|
|
310
|
+
const entryB = __kl_entries[diffB];
|
|
311
|
+
const refB = entryB.element.nextSibling;
|
|
312
|
+
__kl_container.insertBefore(entryB.element, entryA.element);
|
|
313
|
+
if (refB) __kl_container.insertBefore(entryA.element, refB);
|
|
314
|
+
else __kl_container.appendChild(entryA.element);
|
|
315
|
+
__kl_entries[diffA] = entryB;
|
|
316
|
+
__kl_entries[diffB] = entryA;
|
|
317
|
+
if (__kl_unwrap(arr[diffA]) !== entryB.item) __kl_patch(entryB, arr[diffA], diffA);
|
|
318
|
+
if (__kl_unwrap(arr[diffB]) !== entryA.item) __kl_patch(entryA, arr[diffB], diffB);
|
|
319
|
+
__kl_prev = arr;
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (oldLen > 0 && newLen > 0 && __kl_container.childNodes.length === oldLen + (__kl_anchor ? 1 : 0)) {
|
|
324
|
+
let disjoint = true;
|
|
325
|
+
for (let i = 0; i < newLen; i++) if (__kl_byKey.has(newKeys[i])) {
|
|
326
|
+
disjoint = false;
|
|
327
|
+
break;
|
|
328
|
+
}
|
|
329
|
+
if (disjoint) {
|
|
330
|
+
for (let i = 0; i < oldLen; i++) __kl_entries[i].disposer?.dispose();
|
|
331
|
+
__kl_byKey.clear();
|
|
332
|
+
const nextEntries = new Array(newLen);
|
|
333
|
+
const nextNodes = new Array(newLen + (__kl_anchor ? 1 : 0));
|
|
334
|
+
for (let i = 0; i < newLen; i++) {
|
|
335
|
+
const entry = __kl_create(arr[i], i);
|
|
336
|
+
nextEntries[i] = entry;
|
|
337
|
+
nextNodes[i] = entry.element;
|
|
338
|
+
__kl_byKey.set(entry.key, entry);
|
|
339
|
+
}
|
|
340
|
+
if (__kl_anchor) nextNodes[newLen] = __kl_anchor;
|
|
341
|
+
__kl_container.replaceChildren(...nextNodes);
|
|
342
|
+
__kl_entries = nextEntries;
|
|
343
|
+
__kl_prev = arr;
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
for (let i = 0; i < oldLen; i++) __kl_entries[i]._i = i;
|
|
348
|
+
const seenOld = new Array(oldLen).fill(false);
|
|
349
|
+
const nextEntries = new Array(newLen);
|
|
350
|
+
for (let i = 0; i < newLen; i++) {
|
|
351
|
+
const entry = __kl_byKey.get(newKeys[i]);
|
|
352
|
+
if (entry) {
|
|
353
|
+
const oldIdx = entry._i;
|
|
354
|
+
seenOld[oldIdx] = true;
|
|
355
|
+
nextEntries[i] = entry;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
for (let i = oldLen - 1; i >= 0; i--) if (!seenOld[i]) __kl_remove(__kl_entries[i]);
|
|
359
|
+
let nextRef = __kl_anchor;
|
|
360
|
+
for (let i = newLen - 1; i >= 0; i--) {
|
|
361
|
+
let entry = nextEntries[i];
|
|
362
|
+
if (!entry) {
|
|
363
|
+
entry = __kl_create(arr[i], i);
|
|
364
|
+
__kl_byKey.set(entry.key, entry);
|
|
365
|
+
} else if (entry.item !== __kl_unwrap(arr[i])) __kl_patch(entry, arr[i], i);
|
|
366
|
+
if (entry.element.parentNode !== __kl_container || entry.element.nextSibling !== nextRef) __kl_container.insertBefore(entry.element, nextRef);
|
|
367
|
+
nextEntries[i] = entry;
|
|
368
|
+
nextRef = entry.element;
|
|
369
|
+
}
|
|
370
|
+
__kl_entries = nextEntries;
|
|
371
|
+
__kl_prev = arr;
|
|
372
|
+
};
|
|
373
|
+
if (__kl_root && typeof __kl_root.observe === "function") {
|
|
374
|
+
const off = __kl_root.observe("acceptedFiles", (_value, changes) => {
|
|
375
|
+
__kl_reconcile(__kl_resolve(), changes);
|
|
376
|
+
});
|
|
377
|
+
d.add(off);
|
|
378
|
+
}
|
|
110
379
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return `<div data-gid="${file?.name ?? file}" class="flex items-center justify-between rounded-md border px-3 py-2 text-sm"><span>${file.name}</span></div>`;
|
|
115
|
-
}
|
|
116
|
-
createAcceptedFilesItem(item) {
|
|
117
|
-
var __c = this.#__dc_acceptedFiles || (this.#__dc_acceptedFiles = this.__acceptedFiles_container);
|
|
118
|
-
if (!__c.__geaTpl) try {
|
|
119
|
-
var __tw = document.createElement("template");
|
|
120
|
-
__tw.innerHTML = this.renderAcceptedFilesItem({ name: 0 });
|
|
121
|
-
__c.__geaTpl = __tw.content.firstElementChild;
|
|
122
|
-
__c.__geaTpl?.removeAttribute("data-gid");
|
|
123
|
-
} catch (__err) {
|
|
124
|
-
console.error(__err);
|
|
125
|
-
}
|
|
126
|
-
if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
|
|
127
|
-
else {
|
|
128
|
-
var __fw = document.createElement("template");
|
|
129
|
-
__fw.innerHTML = this.renderAcceptedFilesItem(item);
|
|
130
|
-
var el = __fw.content.firstElementChild;
|
|
131
|
-
}
|
|
132
|
-
el.__ref_0 = el.firstElementChild;
|
|
133
|
-
if (el.__ref_0.textContent !== `${item.name}`) el.__ref_0.textContent = `${item.name}`;
|
|
134
|
-
el[GEA_DOM_KEY] = String(item?.name ?? item);
|
|
135
|
-
el[GEA_DOM_ITEM] = item;
|
|
136
|
-
return el;
|
|
137
|
-
}
|
|
138
|
-
patchAcceptedFilesItem(row, item, __prevItem) {
|
|
139
|
-
if (!row) return;
|
|
140
|
-
if (!row.__ref_0) row.__ref_0 = row.firstElementChild;
|
|
141
|
-
if (row.__ref_0.textContent !== `${item.name}`) row.__ref_0.textContent = `${item.name}`;
|
|
142
|
-
row[GEA_DOM_KEY] = String(item?.name ?? item);
|
|
143
|
-
(this.#__rowEls_list || (this.#__rowEls_list = {}))[String(item?.name ?? item)] = row;
|
|
144
|
-
row[GEA_DOM_ITEM] = item;
|
|
145
|
-
}
|
|
146
|
-
[GEA_ENSURE_ARRAY_CONFIGS]() {
|
|
147
|
-
if (!this.__acceptedFilesListConfig) this.__acceptedFilesListConfig = {
|
|
148
|
-
arrayPathParts: ["acceptedFiles"],
|
|
149
|
-
render: this.renderAcceptedFilesItem.bind(this),
|
|
150
|
-
create: this.createAcceptedFilesItem.bind(this),
|
|
151
|
-
patchRow: this.patchAcceptedFilesItem && this.patchAcceptedFilesItem.bind(this),
|
|
152
|
-
getKey: (item) => String(item?.name ?? item),
|
|
153
|
-
propPatchers: { "name": [(row, value, item) => {
|
|
154
|
-
const __target = row.__ref_0 || (row.__ref_0 = row.firstElementChild);
|
|
155
|
-
if (!__target) return;
|
|
156
|
-
if (__target.textContent !== `${item.name}`) __target.textContent = `${item.name}`;
|
|
157
|
-
}, (row, value) => {
|
|
158
|
-
row.classList.toggle("name", value);
|
|
159
|
-
}] }
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
[GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
|
|
163
|
-
this[GEA_ENSURE_ARRAY_CONFIGS]();
|
|
164
|
-
if (!this[GEA_STORE_ROOT]) return;
|
|
165
|
-
this[GEA_OBSERVE](this, ["acceptedFiles"], this.__observe_local_acceptedFiles);
|
|
166
|
-
this[GEA_OBSERVE](this, ["acceptedFiles", "join"], this.__observe_local_acceptedFiles__join);
|
|
167
|
-
this[GEA_OBSERVE](this, ["acceptedFiles", "map"], this.__observe_local_acceptedFiles__join);
|
|
380
|
+
return root;
|
|
381
|
+
});
|
|
382
|
+
return root;
|
|
168
383
|
}
|
|
169
384
|
};
|
|
170
385
|
//#endregion
|
package/dist/file-upload.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.mjs","names":["Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_COND","GEA_RENDERED","geaCondPatchedSymbol","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_SETUP_LOCAL_STATE_OBSERVERS","GEA_STORE_ROOT","GEA_OBSERVE","fileUpload","normalizeProps","ZagComponent","FileUpload","__geaTagName","__rowEls_list","__dc_acceptedFiles","constructor","args","props","label","acceptedFiles","length","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","_register","class","trim","key","value","__el","__boundValue","__newClass","replace","className","__observe_local_acceptedFiles","change","queueMicrotask","__acceptedFiles_container","$","Array","isArray","textContent","__acceptedFilesListConfig","__observe_local_acceptedFiles__join","createAcceptedFilesItem","item","__c","__geaTpl","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","el","cloneNode","__fw","__ref_0","patchAcceptedFilesItem","row","__prevItem","arrayPathParts","render","bind","create","patchRow","getKey","propPatchers","__target","classList","toggle"],"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":";;;;;AAIA,IAAqBmB,aAArB,cAAwCD,aAAa;;sBAAA;;CAHrD;CAAA;CAAAK,YAAsB,GAAGC,MAAI;AAA7B,QAAM,GAAGA,KAAK;AAkDO,OAAAC;AAAA,OAAAxB,mBAAA,EAAA,IAAA,CAAA,CAlDrB,KAAKwB,MAqDUC;AAAK,OAAAzB,mBAAA,EAAA,IAAA,CAAA,EAkBX,KAAK0B,cAAcC,SAAS;AAvErC,OAAI1B,mBAAuB,GAAA,YAAA;AAkDN,QAAAuB;AAAA,UAlDrB,KAAKA,MAqDUC;WAAK;AAHC,QAAAD;AAAA,UAAA,qFAlDrBtB,cAAc0B,OAAd,KAAKJ,MAuDcC,MAvDwB,CAAC,CAAA;KAAA,KAAA;AAA5C,OAAIxB,mBAAuB,GAAA,YAAA;AAkDN,QAAAuB;AAAA,UAqBZ,KAAKE,cAAcC,SAAS;WAAC;AArBjB,QAAAH;AAAA,UAAA,qDAuBR,KAAKE,cAAcG,KAAKC,SAzErC,KAAIE,wBAAsBF,KAAuB,CAAA,CAA3BG,KAAK,GAAG,CAAA;KAAA,KAAA;;CAO5BE,cAAcC,QAAkB;AAC9B,SAAOrB,WAAWsB;;CAGpBC,gBAAgBd,OAAY;AAC1B,SAAO;GACLe,IAAI,KAAKA;GACTC,QAAQhB,MAAMgB;GACdC,UAAUjB,MAAMiB;GAChBC,aAAalB,MAAMkB;GACnBC,aAAanB,MAAMmB;GACnBC,UAAUpB,MAAMoB,YAAY;GAC5BC,UAAUrB,MAAMqB;GAChBC,WAAWtB,MAAMsB,aAAa;GAC9BC,MAAMvB,MAAMuB;GACZC,eAAeC,YAA0C;AACvD,SAAKvB,gBAAgBuB,QAAQvB;AAC7B,SAAKQ,gBAAgBe,QAAQf;AAC7BV,UAAMwB,eAAeC,QAAQ;;GAEhC;;CAGHE,WAAWC,SAAc;AACvB,SAAOrC,WAAWsC,QAAQD,SAASpC,eAAe;;CAGpDsC,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,4BAA0B;GAC1B,2BAAyB;GACzB,gCAA8B;GAC9B,iCAA+B;GAChC;;CAGHC,UAAUC,KAAU;AAClB,OAAK9B,gBAAgB8B,IAAI9B;AACzB,OAAKQ,gBAAgBsB,IAAItB;;CAG3BuB,SAASjC,OAAY;EAAA,MAAAkC,OAAA,KAAAnB;AAAAxC,YAAA4D,UAAA1C,cAAA,gBAAA;AACnB,SAAA,YAAAyC,KAAA,qBAC+BlC,MAAMoC,SAAS,OAAE,SAAjBpC,MAAMoC,SAAS,QAAE,QAAA,KAAA,aAAjBpC,MAAMoC,SAAS,OAAE,OAAAhC,OAAjBJ,MAAMoC,SAAS,GAAE,GAAA,IAAAC,MAAA,CAAA,GAAA,OApDpDH,OAAU,MAAK,KAqDNlC,MAAMC,SAAK,qFArDpBvB,cAAc0B,OAuDDJ,MAAMC,MAvDwB,CAAC,CAAA,aAAA,GAAA,MAA5CiC,OAAU,UAAS,wlBAAnBA,OAAU,MAAK,KAuEN,KAAKhC,cAAcC,SAAS,KAAC,qDAEzB,KAAKD,cAAcG,KAAKC,SAzErC,KAAIE,wBAAsBF,KAAuB,CAAA,CAA3BG,KAAK,GAAG,CAAA,kJAAA,GAAA,MAA9ByB,OAAU,UAAS;;CAAnB,CAAAvD,oBAAwB2D,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAA5D;AAkDb,QAAAoB;GAAA,MAAAyC,eAEcF,SAAe;AAAE,OAAAC,MApDpD;IACM,MAAME,aADXtC,OAAOqC,gBAAyB,GAAG,CAAEJ,MAAM,CAACM,QAAQ,QAAQ,IACf;AACxC,QAAIH,KAAsBI,cAAcF,WAAYF,MAAsBI,YAAYF;;;AACvF,MAAAJ,QAAA,QAHL,MAAIzD,gBAAwB,EAAE;AAA9B,OAAIA,gBAAwB,EAAE;;CAA9BgE,8BAAsBN,OAAOO,QAAQ;AAArC,MAAI,KAAIhE;OAA2B,CAAA,KAAAC,qBAAA,EAAA,GAAA;AAAA,SAAAA,qBAAA,EAAA,IAAnC,KAAIF,gBAAwB,EAAE;AAAA,QAAA,KAAAE,qBAAA,EAAA,EAAAgE,sBAAA,KAAAhE,qBAAA,EAAA,IAAA,MAAA;;;AAC1B,MAAI,CAAC,KAAIiE,0BACP,MAAIA,4BAAyB,KAAKC,EAAE,SAAS;AAFnD,MAAI,CAAA,KAAAD,0BAAwB;AAAO,MAAnCE,MAAMC,QAAOZ,MAAuB,IAAIA,MAAsBpC,WAAW,GAAC;AAA1E,SAAA,gBAAwB;AAAxB,QAAA6C,0BAAsBI,cAAc;AAAG;;AAAvC,OAAIpE,2BAAyB;AAA7B,OAAIC,wBAAuB,KAAA+D,2BAAAT,OAA+CO,QAAM,KAAAO,0BAAwB;;CAAxGC,oCAAsBf,OAAOO,QAAQ;AAArC,MAAI,KAAIhE;OAA2B,CAAA,KAAAC,qBAAA,EAAA,GAAA;AAAA,SAAAA,qBAAA,EAAA,IAAnC,KAAIF,gBAAwB,EAAE;AAAA,QAAA,KAAAE,qBAAA,EAAA,EAAAgE,sBAAA,KAAAhE,qBAAA,EAAA,IAAA,MAAA;;;;CAA9ByB,wBAAAF,MAAA;AAAA,SAAA,kBAAAA,MAAAiB,QAAAjB,KAAA,wFA2EuBA,KAAKiB,KAAI;;CA3EegC,wBAAAC,MAAA;EAA/C,IAAIC,MAAwB,MAAA,uBAA0B,MAAA,qBAAtD,KAAIT;AAAJ,MAAI,CAACS,IAAsBC,SAAU,KAAA;GAArC,IAAIC,OAAOC,SAASC,cAAc,WAAW;AAA7CF,QAAKG,YAAL,KAAItD,wBAAsB,EAAAe,MAAA,GAAC,CAAW;AAAtCkC,OAAsBC,WAAWC,KAAKI,QAAQC;AAA9CP,OAAsBC,UAAQO,gBAAA,WAAA;WAAAC,OAAA;AAAAC,WAAAC,MAAAF,MAAA;;AAA4B,MAA1DT,IAAsBC,UAAtB,IAAIW,KAAJZ,IAAsBC,SAASY,UAAU,KAAQ;OAAC;GACxC,IAAIC,OAAOX,SAASC,cAAc,WAAW;AAC7CU,QAAKT,YAFf,KAAItD,wBAAsBgD,KAEsB;GACtC,IAAIa,KAAwBE,KAAKR,QAAQC;;AAHnDK,KAAAG,UAAAH,GAAsBL;AAAtB,MAAAK,GAAAG,QAA0BpB,gBAAW,GA2Ed9C,KAAKiB,OA3E5B8C,IAAAG,QAAsBpB,cAAW,GA2EV9C,KAAKiB;AA3E5B8C,KAAAnF,eAAAkB,OAAMoD,MAAAjC,QAAAiC,KAA8D;AAApEa,KAAAlF,gBAA+CqE;AAA/C,SAAAa;;CAA6BI,uBAAAC,KAAAlB,MAAAmB,YAAA;AAA7B,MAAI,CAAAD,IAAwB;AAA5B,MAAI,CAAJA,IAAAF,QAA4BE,KAAAF,UAA5BE,IAAsBV;AAAtB,MAAAU,IAAAF,QAA0BpB,gBAAW,GA2Ed9C,KAAKiB,OA3E5BmD,KAAAF,QAAsBpB,cAAW,GA2EV9C,KAAKiB;AA3E5BmD,MAAAxF,eAAAkB,OAAMoD,MAAAjC,QAAAiC,KAA8D;AAApE,GAAC,MAAA,kBAA0B,MAAA,gBAAwB,EAAE,GAArDpD,OAAMoD,MAAAjC,QAAAiC,KAAuB,IAAiDkB;AAA9EA,MAAAvF,gBAA+CqE;;CAA/C,CAAAxE,4BAAA;AAAA,MAAI,CAAJ,KAAIqE,0BAAJ,MAAIA,4BAAsB;GAAAuB,gBAAA,CAAA,gBAAA;GAAAC,QAA1B,KAAIrE,wBAAuBsE,KAAK,KAAK;GAAAC,QAArC,KAAIxB,wBAAuBuB,KAAK,KAAK;GAAAE,UAArC,KAAIP,0BAA0B,KAAIA,uBAAuBK,KAAK,KAAK;GAAAG,SAAAzB,SAAnEpD,OAAOoD,MAAAjC,QAAyBiC,KAAK;GAAA0B,cAAA,EAAA,QAAA,EAAAR,KAAAnC,OAAAiB,SAAA;IAArC,MAAM2B,WAANT,IAAAF,YAAAE,IAAAF,UAAAE,IAAsBV;AAAkB,QAAI,CAACmB,SAAU;AAAvD,QAAIA,SAAsB/B,gBAAW,GA2Ed9C,KAAKiB,OA3E5B4D,UAAsB/B,cAAW,GA2EV9C,KAAKiB;OA3E0DmD,KAAAnC,UAAA;AAAtFmC,QAAsBU,UAAUC,OAAO,QAAM9C,MAAwB;KAAC,EAAA;GACnB;;CADnD,CAAAnD,mCAA0B;AAA1B,OAAIJ,2BAAyB;AAA7B,MAAI,CAAC,KAAIK,gBAA2B;AAApC,OAAIC,aAAwB,MAAI,CAAA,gBAAA,EAAyB,KAAIuD,8BAAuB;AAApF,OAAIvD,aAAwB,MAAI,CAAA,iBAAA,OAAA,EAAyB,KAAIgE,oCAAuB;AAApF,OAAIhE,aAAwB,MAAI,CAAA,iBAAA,MAAA,EAAyB,KAAIgE,oCAAuB"}
|
|
1
|
+
{"version":3,"file":"file-upload.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","GEA_DIRTY_PROPS","GEA_DOM_ITEM","GEA_PROXY_RAW","GEA_DIRTY","fileUpload","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","_tpl3_root","_tpl3_create","FileUpload","acceptedFiles","File","rejectedFiles","createMachine","_props","machine","getMachineProps","props","id","accept","maxFiles","maxFileSize","minFileSize","multiple","disabled","allowDrop","name","onFileChange","details","FileChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","d","root","cloneNode","el0","anchor1","anchor2","childNodes","class","parentNode","label","marker0","t0","length","anchor0","__ki_L0","file","idx","__n","nodeValue","__kp_L0","el","item","has","__r0","__kl_container","__kl_anchor","__kl_root","__kl_key","__kl_create","__k","__el","key","element","__kl_patch","e","newItem","newIdx","__raw","__kl_unwrap","v","__kl_resolve","Array","isArray","__kl_entries","__kl_byKey","Map","__kl_remove","entry","disposer","dispose","delete","removeChild","__kl_first","frag","ownerDocument","createDocumentFragment","i","push","set","appendChild","clear","insertBefore","__kl_prev","__kl_reconcile","arr","changes","structural","aipuOnly","change","type","aipu","a","arix","b","entryA","entryB","newAKey","newBKey","refB","nextSibling","raw","onlyAppends","appendCount","count","start","onlyRemoves","totalRemoved","splice","removed","j","sort","newLen","oldLen","nextEntries","newKeys","textContent","diffA","diffB","diffCount","disjoint","nextNodes","replaceChildren","_i","seenOld","fill","get","oldIdx","nextRef","observe","off","_value","add"],"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 acceptedFiles: File[] = []\n 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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"}
|
package/dist/hover-card.d.mts
CHANGED
|
@@ -7,7 +7,7 @@ declare class HoverCard extends ZagComponent {
|
|
|
7
7
|
open: boolean;
|
|
8
8
|
createMachine(_props: any): any;
|
|
9
9
|
getMachineProps(props: any): {
|
|
10
|
-
id:
|
|
10
|
+
id: string;
|
|
11
11
|
open: any;
|
|
12
12
|
defaultOpen: any;
|
|
13
13
|
openDelay: any;
|
|
@@ -26,7 +26,7 @@ declare class HoverCard extends ZagComponent {
|
|
|
26
26
|
'[data-part="arrow-tip"]': string;
|
|
27
27
|
};
|
|
28
28
|
syncState(api: any): void;
|
|
29
|
-
template(props: any):
|
|
29
|
+
template(props: any): any;
|
|
30
30
|
}
|
|
31
31
|
//#endregion
|
|
32
32
|
export { HoverCard as default };
|
package/dist/hover-card.mjs
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { o as GEA_CREATE_TEMPLATE } from "./bind.mjs";
|
|
3
|
+
import { n as reactiveTextValue, t as reactiveText } from "./reactive-text.mjs";
|
|
4
|
+
import { t as reactiveAttr } from "./reactive-attr.mjs";
|
|
5
|
+
import { t as reactiveClass } from "./reactive-class.mjs";
|
|
6
|
+
import { t as reactiveStyle } from "./reactive-style.mjs";
|
|
3
7
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
8
|
import * as hoverCard from "@zag-js/hover-card";
|
|
5
9
|
//#region src/components/hover-card.tsx
|
|
10
|
+
let _tpl0_root = null;
|
|
11
|
+
function _tpl0_create() {
|
|
12
|
+
const t = document.createElement("template");
|
|
13
|
+
t.innerHTML = "<div><a data-part=trigger class=\"hover-card-trigger inline-block\">0</a><div data-part=positioner class=hover-card-positioner><div data-part=content class=\"hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden\">0";
|
|
14
|
+
return t.content.firstChild;
|
|
15
|
+
}
|
|
6
16
|
var HoverCard = class extends ZagComponent {
|
|
7
|
-
static {
|
|
8
|
-
this.__geaTagName = "hover-card";
|
|
9
|
-
}
|
|
10
17
|
createMachine(_props) {
|
|
11
18
|
return hoverCard.machine;
|
|
12
19
|
}
|
|
@@ -39,61 +46,19 @@ var HoverCard = class extends ZagComponent {
|
|
|
39
46
|
syncState(api) {
|
|
40
47
|
this.open = api.open;
|
|
41
48
|
}
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (__el.className !== __newClass) __el.className = __newClass;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (key === "href") {
|
|
59
|
-
const __el = this.__e0 || (this.__e0 = __gid(__id + "-b1"));
|
|
60
|
-
this.props;
|
|
61
|
-
const __boundValue = value || "#";
|
|
62
|
-
if (__el) {
|
|
63
|
-
var __av = __boundValue;
|
|
64
|
-
if (__av == null || __av === void 0) __el.removeAttribute("href");
|
|
65
|
-
else {
|
|
66
|
-
const __newAttr = __sanitizeAttr("href", String(__av));
|
|
67
|
-
if (__el.getAttribute("href") !== __newAttr) __el.setAttribute("href", __newAttr);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if (key === "triggerLabel") {
|
|
72
|
-
const __el = this.__e1 || (this.__e1 = __gid(__id + "-b1"));
|
|
73
|
-
this.props;
|
|
74
|
-
const __boundValue = value || "Hover me";
|
|
75
|
-
if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
|
|
76
|
-
}
|
|
77
|
-
if (key === "children") {
|
|
78
|
-
const __el = this.__e2 || (this.__e2 = __gid(__id + "-b2"));
|
|
79
|
-
if (__el) {
|
|
80
|
-
const __tw = document.createElement("template");
|
|
81
|
-
__tw.innerHTML = value;
|
|
82
|
-
const __newEl = __tw.content.firstElementChild;
|
|
83
|
-
const __existEl = __el.firstElementChild;
|
|
84
|
-
if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
|
|
85
|
-
else if (__el.innerHTML !== value) {
|
|
86
|
-
__el.innerHTML = value;
|
|
87
|
-
this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
|
|
88
|
-
if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
__resetEls() {
|
|
94
|
-
this.__e0 = null;
|
|
95
|
-
this.__e1 = null;
|
|
96
|
-
this.__e2 = null;
|
|
49
|
+
[GEA_CREATE_TEMPLATE](d) {
|
|
50
|
+
const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
|
|
51
|
+
const el0 = root;
|
|
52
|
+
const el1 = el0;
|
|
53
|
+
const el2 = root.firstChild;
|
|
54
|
+
const marker3 = root.firstChild.firstChild;
|
|
55
|
+
const marker4 = root.childNodes[1].firstChild.firstChild;
|
|
56
|
+
reactiveClass(el0, d, this, () => this.props.class || "");
|
|
57
|
+
reactiveStyle(el1, d, this, () => ({ display: "inline-block" }));
|
|
58
|
+
reactiveAttr(el2, d, this, "href", () => this.props.href || "#");
|
|
59
|
+
reactiveTextValue(marker3, d, this, () => this.props.triggerLabel || "Hover me");
|
|
60
|
+
reactiveText(marker4, d, this, () => this.props.children);
|
|
61
|
+
return root;
|
|
97
62
|
}
|
|
98
63
|
};
|
|
99
64
|
//#endregion
|