@geajs/ui 0.2.3 → 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.
Files changed (170) hide show
  1. package/dist/accordion.d.mts +2 -2
  2. package/dist/accordion.mjs +92 -122
  3. package/dist/accordion.mjs.map +1 -1
  4. package/dist/alert.d.mts +3 -3
  5. package/dist/alert.mjs +45 -107
  6. package/dist/alert.mjs.map +1 -1
  7. package/dist/avatar.d.mts +2 -2
  8. package/dist/avatar.mjs +38 -62
  9. package/dist/avatar.mjs.map +1 -1
  10. package/dist/badge.d.mts +1 -1
  11. package/dist/badge.mjs +18 -43
  12. package/dist/badge.mjs.map +1 -1
  13. package/dist/bind.mjs +130 -0
  14. package/dist/bind.mjs.map +1 -0
  15. package/dist/button.d.mts +3 -2
  16. package/dist/button.mjs +30 -85
  17. package/dist/button.mjs.map +1 -1
  18. package/dist/card.d.mts +6 -6
  19. package/dist/card.mjs +82 -194
  20. package/dist/card.mjs.map +1 -1
  21. package/dist/checkbox.d.mts +2 -2
  22. package/dist/checkbox.mjs +30 -31
  23. package/dist/checkbox.mjs.map +1 -1
  24. package/dist/clipboard.d.mts +2 -2
  25. package/dist/clipboard.mjs +49 -55
  26. package/dist/clipboard.mjs.map +1 -1
  27. package/dist/collapsible.d.mts +2 -2
  28. package/dist/collapsible.mjs +18 -45
  29. package/dist/collapsible.mjs.map +1 -1
  30. package/dist/combobox.d.mts +2 -2
  31. package/dist/combobox.mjs +322 -261
  32. package/dist/combobox.mjs.map +1 -1
  33. package/dist/compiled-component.mjs +119 -0
  34. package/dist/compiled-component.mjs.map +1 -0
  35. package/dist/compiled-reactive-component.mjs +337 -0
  36. package/dist/compiled-reactive-component.mjs.map +1 -0
  37. package/dist/component-id.mjs +10 -0
  38. package/dist/component-id.mjs.map +1 -0
  39. package/dist/conditional-truthy.mjs +48 -0
  40. package/dist/conditional-truthy.mjs.map +1 -0
  41. package/dist/conditional.mjs +54 -0
  42. package/dist/conditional.mjs.map +1 -0
  43. package/dist/delegate-event.mjs +53 -0
  44. package/dist/delegate-event.mjs.map +1 -0
  45. package/dist/dialog.d.mts +4 -3
  46. package/dist/dialog.mjs +57 -70
  47. package/dist/dialog.mjs.map +1 -1
  48. package/dist/dirty-symbols.mjs +7 -0
  49. package/dist/dirty-symbols.mjs.map +1 -0
  50. package/dist/disposer.mjs +46 -0
  51. package/dist/disposer.mjs.map +1 -0
  52. package/dist/dnd-manager.d.mts +9 -1
  53. package/dist/dnd-manager.mjs +67 -29
  54. package/dist/dnd-manager.mjs.map +1 -1
  55. package/dist/drag-drop-context.d.mts +1 -1
  56. package/dist/drag-drop-context.mjs +17 -33
  57. package/dist/drag-drop-context.mjs.map +1 -1
  58. package/dist/draggable.d.mts +1 -1
  59. package/dist/draggable.mjs +2 -91
  60. package/dist/draggable2.mjs +321 -0
  61. package/dist/draggable2.mjs.map +1 -0
  62. package/dist/droppable.d.mts +1 -1
  63. package/dist/droppable.mjs +20 -44
  64. package/dist/droppable.mjs.map +1 -1
  65. package/dist/file-upload.d.mts +2 -2
  66. package/dist/file-upload.mjs +337 -122
  67. package/dist/file-upload.mjs.map +1 -1
  68. package/dist/hover-card.d.mts +2 -2
  69. package/dist/hover-card.mjs +24 -59
  70. package/dist/hover-card.mjs.map +1 -1
  71. package/dist/index.mjs +3 -3
  72. package/dist/input.d.mts +1 -1
  73. package/dist/input.mjs +1 -93
  74. package/dist/input2.mjs +56 -0
  75. package/dist/input2.mjs.map +1 -0
  76. package/dist/internal-symbols.mjs +9 -0
  77. package/dist/internal-symbols.mjs.map +1 -0
  78. package/dist/item-obs.mjs +68 -0
  79. package/dist/item-obs.mjs.map +1 -0
  80. package/dist/keyed-list-symbols.mjs +6 -0
  81. package/dist/keyed-list-symbols.mjs.map +1 -0
  82. package/dist/keyed-list.mjs +487 -0
  83. package/dist/keyed-list.mjs.map +1 -0
  84. package/dist/label.d.mts +1 -1
  85. package/dist/label.mjs +20 -45
  86. package/dist/label.mjs.map +1 -1
  87. package/dist/menu.d.mts +2 -2
  88. package/dist/menu.mjs +87 -41
  89. package/dist/menu.mjs.map +1 -1
  90. package/dist/number-input.d.mts +2 -2
  91. package/dist/number-input.mjs +28 -32
  92. package/dist/number-input.mjs.map +1 -1
  93. package/dist/pagination.d.mts +2 -2
  94. package/dist/pagination.mjs +12 -35
  95. package/dist/pagination.mjs.map +1 -1
  96. package/dist/patch.mjs +21 -0
  97. package/dist/patch.mjs.map +1 -0
  98. package/dist/pin-input.d.mts +2 -2
  99. package/dist/pin-input.mjs +88 -87
  100. package/dist/pin-input.mjs.map +1 -1
  101. package/dist/popover.d.mts +2 -2
  102. package/dist/popover.mjs +45 -67
  103. package/dist/popover.mjs.map +1 -1
  104. package/dist/progress.d.mts +2 -2
  105. package/dist/progress.mjs +37 -43
  106. package/dist/progress.mjs.map +1 -1
  107. package/dist/radio-group.d.mts +2 -2
  108. package/dist/radio-group.mjs +99 -140
  109. package/dist/radio-group.mjs.map +1 -1
  110. package/dist/rating-group.d.mts +2 -2
  111. package/dist/rating-group.mjs +91 -99
  112. package/dist/rating-group.mjs.map +1 -1
  113. package/dist/reactive-attr.mjs +13 -0
  114. package/dist/reactive-attr.mjs.map +1 -0
  115. package/dist/reactive-bool.mjs +13 -0
  116. package/dist/reactive-bool.mjs.map +1 -0
  117. package/dist/reactive-class-name.mjs +15 -0
  118. package/dist/reactive-class-name.mjs.map +1 -0
  119. package/dist/reactive-class.mjs +53 -0
  120. package/dist/reactive-class.mjs.map +1 -0
  121. package/dist/reactive-style.mjs +21 -0
  122. package/dist/reactive-style.mjs.map +1 -0
  123. package/dist/reactive-text.mjs +62 -0
  124. package/dist/reactive-text.mjs.map +1 -0
  125. package/dist/select.d.mts +2 -2
  126. package/dist/select.mjs +106 -186
  127. package/dist/select.mjs.map +1 -1
  128. package/dist/separator.d.mts +1 -1
  129. package/dist/separator.mjs +19 -45
  130. package/dist/separator.mjs.map +1 -1
  131. package/dist/skeleton.d.mts +1 -1
  132. package/dist/skeleton.mjs +11 -35
  133. package/dist/skeleton.mjs.map +1 -1
  134. package/dist/slider.d.mts +2 -2
  135. package/dist/slider.mjs +31 -32
  136. package/dist/slider.mjs.map +1 -1
  137. package/dist/switch.d.mts +2 -2
  138. package/dist/switch.mjs +30 -31
  139. package/dist/switch.mjs.map +1 -1
  140. package/dist/tabs.d.mts +7 -2
  141. package/dist/tabs.mjs +180 -147
  142. package/dist/tabs.mjs.map +1 -1
  143. package/dist/tags-input.d.mts +2 -2
  144. package/dist/tags-input.mjs +102 -188
  145. package/dist/tags-input.mjs.map +1 -1
  146. package/dist/textarea.d.mts +1 -1
  147. package/dist/textarea.mjs +32 -75
  148. package/dist/textarea.mjs.map +1 -1
  149. package/dist/theme.css +4 -5
  150. package/dist/toast.d.mts +1 -1
  151. package/dist/toast.mjs +14 -34
  152. package/dist/toast.mjs.map +1 -1
  153. package/dist/toggle-group.d.mts +2 -2
  154. package/dist/toggle-group.mjs +78 -85
  155. package/dist/toggle-group.mjs.map +1 -1
  156. package/dist/tooltip.d.mts +2 -2
  157. package/dist/tooltip.mjs +23 -43
  158. package/dist/tooltip.mjs.map +1 -1
  159. package/dist/tree-view.d.mts +2 -2
  160. package/dist/tree-view.mjs +32 -50
  161. package/dist/tree-view.mjs.map +1 -1
  162. package/dist/types.d.mts +9 -0
  163. package/dist/zag-component.d.mts +25 -3
  164. package/dist/zag-component.mjs +63 -16
  165. package/dist/zag-component.mjs.map +1 -1
  166. package/package.json +5 -5
  167. package/dist/cn.mjs +0 -10
  168. package/dist/cn.mjs.map +0 -1
  169. package/dist/draggable.mjs.map +0 -1
  170. package/dist/input.mjs.map +0 -1
@@ -0,0 +1,321 @@
1
+ import { n as createDisposer } from "./disposer.mjs";
2
+ import { c as GEA_ELEMENT, n as trackRead, o as GEA_CREATE_TEMPLATE, s as GEA_DOM_COMPONENT, u as GEA_PROXY_RAW } from "./bind.mjs";
3
+ import { i as GEA_SET_PROPS, n as GEA_DISPOSER, r as GEA_OBSERVE_DIRECT } from "./internal-symbols.mjs";
4
+ import { n as _DIRTY_PROPS, t as _DIRTY } from "./dirty-symbols.mjs";
5
+ import { t as reactiveText } from "./reactive-text.mjs";
6
+ import { t as reactiveAttr } from "./reactive-attr.mjs";
7
+ import { t as reactiveClassName } from "./reactive-class-name.mjs";
8
+ import { t as delegateEvent } from "./delegate-event.mjs";
9
+ import { dndManager } from "./dnd-manager.mjs";
10
+ //#region ../gea/src/runtime/compiled-lean-store.ts
11
+ const _priv = /* @__PURE__ */ new WeakMap();
12
+ const _nested = /* @__PURE__ */ new WeakMap();
13
+ const _isArr = Array.isArray;
14
+ function _plain(v) {
15
+ if (!v || typeof v !== "object") return false;
16
+ const p = Object.getPrototypeOf(v);
17
+ return p === Object.prototype || p === null || _isArr(v);
18
+ }
19
+ function _raw(v) {
20
+ return v && v[GEA_PROXY_RAW] || v;
21
+ }
22
+ function _flush(state) {
23
+ state.scheduled = false;
24
+ const pending = state.pending;
25
+ if (!pending || pending.size === 0) return;
26
+ state.pending = void 0;
27
+ let all = null;
28
+ for (const [prop, changes] of pending) {
29
+ if (state.derived) {
30
+ all ??= [];
31
+ for (let i = 0; i < changes.length; i++) all.push(changes[i]);
32
+ }
33
+ const bucket = state.observers?.get(prop);
34
+ if (bucket) for (const h of bucket) h(state.proxy[prop], changes);
35
+ }
36
+ if (all && state.derived) for (const [prop, bucket] of state.derived) {
37
+ let value;
38
+ try {
39
+ value = state.proxy[prop];
40
+ } catch {
41
+ continue;
42
+ }
43
+ for (const h of bucket) h(value, all);
44
+ }
45
+ }
46
+ function _queue(state, prop, change = {}) {
47
+ if (!state.ready) return;
48
+ if (!state.observers?.has(prop) && !state.derived) return;
49
+ const rec = {
50
+ prop,
51
+ pathParts: [prop],
52
+ type: "update",
53
+ target: state.proxy,
54
+ ...change
55
+ };
56
+ const pending = state.pending ?? (state.pending = /* @__PURE__ */ new Map());
57
+ const arr = pending.get(prop);
58
+ if (arr) arr.push(rec);
59
+ else pending.set(prop, [rec]);
60
+ if (!state.scheduled) {
61
+ state.scheduled = true;
62
+ queueMicrotask(() => _flush(state));
63
+ }
64
+ }
65
+ function _wrap(state, target, rootProp) {
66
+ if (!_plain(target)) return target;
67
+ const cached = _nested.get(target);
68
+ if (cached) return cached;
69
+ const proxy = new Proxy(target, {
70
+ get(obj, prop) {
71
+ if (prop === GEA_PROXY_RAW) return obj;
72
+ if (typeof prop === "symbol") return obj[prop];
73
+ const value = obj[prop];
74
+ if (_isArr(obj) && typeof value === "function") {
75
+ if (prop === "push") return (...items) => {
76
+ const start = obj.length;
77
+ const result = Array.prototype.push.apply(obj, items.map(_raw));
78
+ if (obj.length > start) _queue(state, rootProp, {
79
+ type: "append",
80
+ start,
81
+ count: obj.length - start
82
+ });
83
+ return result;
84
+ };
85
+ }
86
+ return _plain(value) ? _wrap(state, value, rootProp) : value;
87
+ },
88
+ set(obj, prop, value) {
89
+ if (typeof prop === "symbol") {
90
+ obj[prop] = value;
91
+ return true;
92
+ }
93
+ value = _raw(value);
94
+ const old = obj[prop];
95
+ if (old === value) return true;
96
+ obj[prop] = value;
97
+ if (_isArr(obj)) {
98
+ if (value && typeof value === "object") value[_DIRTY] = true;
99
+ const idx = +prop;
100
+ if (Number.isInteger(idx)) {
101
+ _queue(state, rootProp, {
102
+ aipu: true,
103
+ arix: idx,
104
+ previousValue: old,
105
+ newValue: value
106
+ });
107
+ return true;
108
+ }
109
+ } else {
110
+ obj[_DIRTY] = true;
111
+ (obj[_DIRTY_PROPS] ??= /* @__PURE__ */ new Set()).add(prop);
112
+ }
113
+ _queue(state, rootProp, {
114
+ previousValue: old,
115
+ newValue: value
116
+ });
117
+ return true;
118
+ }
119
+ });
120
+ _nested.set(target, proxy);
121
+ return proxy;
122
+ }
123
+ function createLeanProxy(raw) {
124
+ const state = {};
125
+ _priv.set(raw, state);
126
+ const proxy = new Proxy(raw, {
127
+ get(target, prop, receiver) {
128
+ if (prop === GEA_PROXY_RAW) return target;
129
+ if (typeof prop === "symbol") return target[prop];
130
+ trackRead(receiver ?? target, prop);
131
+ const value = target[prop];
132
+ if (typeof value === "function") return value.bind(receiver);
133
+ return _plain(value) ? _wrap(state, value, prop) : value;
134
+ },
135
+ set(target, prop, value) {
136
+ if (typeof prop === "symbol") {
137
+ target[prop] = value;
138
+ return true;
139
+ }
140
+ value = _raw(value);
141
+ if (_isArr(value)) value = value.map(_raw);
142
+ const old = target[prop];
143
+ if (old === value && prop in target) return true;
144
+ if (old && typeof old === "object") _nested.delete(old);
145
+ target[prop] = value;
146
+ const direct = state.direct?.get(prop);
147
+ if (direct) for (const h of direct) h(value);
148
+ _queue(state, prop, {
149
+ previousValue: old,
150
+ newValue: value
151
+ });
152
+ return true;
153
+ }
154
+ });
155
+ state.proxy = proxy;
156
+ _priv.set(proxy, state);
157
+ return proxy;
158
+ }
159
+ function leanObserve(self, pathOrProp, handler) {
160
+ const state = _priv.get(self);
161
+ if (!state) return () => {};
162
+ state.ready = true;
163
+ const isArr = Array.isArray(pathOrProp);
164
+ const prop = isArr ? pathOrProp[0] : pathOrProp;
165
+ if (!prop) return () => {};
166
+ const tail = isArr && pathOrProp.length > 1 ? pathOrProp.slice(1) : null;
167
+ const finalHandler = tail ? (value, changes) => {
168
+ let next = value;
169
+ for (let i = 0; i < tail.length; i++) {
170
+ if (next == null) return;
171
+ next = next[tail[i]];
172
+ }
173
+ handler(next, changes);
174
+ } : handler;
175
+ const target = Object.prototype.hasOwnProperty.call(_raw(self), prop) ? state.observers ?? (state.observers = /* @__PURE__ */ new Map()) : state.derived ?? (state.derived = /* @__PURE__ */ new Map());
176
+ let bucket = target.get(prop);
177
+ if (!bucket) target.set(prop, bucket = /* @__PURE__ */ new Set());
178
+ bucket.add(finalHandler);
179
+ return () => bucket.delete(finalHandler);
180
+ }
181
+ function leanObserveDirect(self, prop, handler) {
182
+ const state = _priv.get(self);
183
+ if (!state) return () => {};
184
+ state.ready = true;
185
+ const direct = state.direct ?? (state.direct = /* @__PURE__ */ new Map());
186
+ let bucket = direct.get(prop);
187
+ if (!bucket) direct.set(prop, bucket = /* @__PURE__ */ new Set());
188
+ bucket.add(handler);
189
+ return () => bucket.delete(handler);
190
+ }
191
+ //#endregion
192
+ //#region ../gea/src/runtime/compiled-tiny-reactive-component.ts
193
+ const GEA_COMPONENT_ID = Symbol();
194
+ let nextComponentId = 0;
195
+ var CompiledTinyReactiveComponent = class {
196
+ constructor() {
197
+ this.rendered = false;
198
+ this.props = {};
199
+ this[GEA_ELEMENT] = null;
200
+ this[GEA_DISPOSER] = createDisposer();
201
+ return createLeanProxy(this);
202
+ }
203
+ get id() {
204
+ return this[GEA_COMPONENT_ID] ??= "_" + nextComponentId++;
205
+ }
206
+ set id(value) {
207
+ this[GEA_COMPONENT_ID] = value;
208
+ }
209
+ get el() {
210
+ return this[GEA_ELEMENT] ?? null;
211
+ }
212
+ [GEA_SET_PROPS](thunks) {
213
+ const out = {};
214
+ for (const k in thunks) Object.defineProperty(out, k, {
215
+ enumerable: true,
216
+ get: () => thunks[k]()
217
+ });
218
+ this.props = out;
219
+ }
220
+ render(parent, _index) {
221
+ const node = this[GEA_CREATE_TEMPLATE](this[GEA_DISPOSER]);
222
+ parent.appendChild(node);
223
+ if (node.nodeType === 11) this[GEA_ELEMENT] = parent.lastElementChild ?? null;
224
+ else if (node.nodeType === 1) this[GEA_ELEMENT] = node;
225
+ if (this[GEA_ELEMENT]) this[GEA_ELEMENT][GEA_DOM_COMPONENT] = this;
226
+ this.rendered = true;
227
+ }
228
+ observe(pathOrProp, handler) {
229
+ return leanObserve(this, pathOrProp, handler);
230
+ }
231
+ [GEA_OBSERVE_DIRECT](prop, handler) {
232
+ return leanObserveDirect(this, prop, handler);
233
+ }
234
+ dispose() {
235
+ this[GEA_DISPOSER].dispose();
236
+ this[GEA_ELEMENT]?.remove();
237
+ this[GEA_ELEMENT] = null;
238
+ }
239
+ $(sel) {
240
+ return this[GEA_ELEMENT]?.querySelector(sel) ?? null;
241
+ }
242
+ $$(sel) {
243
+ return Array.from(this[GEA_ELEMENT]?.querySelectorAll(sel) ?? []);
244
+ }
245
+ created(_props) {}
246
+ onAfterRender() {}
247
+ };
248
+ //#endregion
249
+ //#region ../gea/src/runtime/delegate-click.ts
250
+ function ensureClickDelegate(root) {
251
+ const rt = typeof document !== "undefined" ? document : root.ownerDocument;
252
+ if (!rt.__gdc) {
253
+ rt.__gdc = 1;
254
+ rt.addEventListener("click", (e) => {
255
+ for (let n = e.target; n && n !== rt; n = n.parentNode) {
256
+ const h = n.__gc;
257
+ if (h !== void 0) {
258
+ h(e);
259
+ return;
260
+ }
261
+ }
262
+ });
263
+ }
264
+ }
265
+ function delegateClick(root, pairs, _disposer) {
266
+ ensureClickDelegate(root);
267
+ for (let i = 0; i < pairs.length; i++) {
268
+ const el = pairs[i][0];
269
+ if (el) el.__gc = pairs[i][1];
270
+ }
271
+ }
272
+ //#endregion
273
+ //#region src/components/draggable.tsx
274
+ function _tpl0_create() {
275
+ const e = document.createElement("div");
276
+ e.textContent = "0";
277
+ return e;
278
+ }
279
+ var Draggable = class extends CompiledTinyReactiveComponent {
280
+ constructor(..._args) {
281
+ super(..._args);
282
+ this._didDrag = false;
283
+ }
284
+ _onPointerDown(e) {
285
+ const el = e.target.closest(".gea-draggable");
286
+ if (!el) return;
287
+ this._didDrag = false;
288
+ dndManager.startTracking(e, this.props.draggableId, el);
289
+ }
290
+ [GEA_CREATE_TEMPLATE](d) {
291
+ const root = _tpl0_create();
292
+ const el0 = root;
293
+ const el1 = el0;
294
+ const el2 = el0;
295
+ const evt3 = el0;
296
+ const evt4 = el0;
297
+ const marker5 = root.firstChild;
298
+ reactiveClassName(el0, d, this, () => `gea-draggable ${this.props.class || ""}`);
299
+ reactiveAttr(el1, d, this, "data-draggable-id", () => this.props.draggableId);
300
+ reactiveAttr(el2, d, this, "data-index", () => this.props.index);
301
+ const h3 = (e) => this._onPointerDown(e);
302
+ const h4 = (e) => {
303
+ if (dndManager.isDragging) {
304
+ e.preventDefault();
305
+ e.stopPropagation();
306
+ }
307
+ };
308
+ reactiveText(marker5, d, this, () => this.props.children);
309
+ delegateEvent(root, "pointerdown", [[evt3, h3]], d);
310
+ delegateClick(root, [[
311
+ evt4,
312
+ h4,
313
+ false
314
+ ]]);
315
+ return root;
316
+ }
317
+ };
318
+ //#endregion
319
+ export { Draggable as t };
320
+
321
+ //# sourceMappingURL=draggable2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draggable2.mjs","names":["GEA_DIRTY","GEA_DIRTY_PROPS","GEA_CREATE_TEMPLATE","reactiveClassName","reactiveAttr","reactiveText","delegateEvent","delegateClick","CompiledTinyReactiveComponent","Component","dndManager","_tpl0_create","e","document","createElement","textContent","Draggable","_didDrag","_onPointerDown","PointerEvent","el","target","HTMLElement","closest","startTracking","props","draggableId","d","root","el0","el1","el2","evt3","evt4","marker5","firstChild","class","index","h3","h4","MouseEvent","isDragging","preventDefault","stopPropagation","t5","children"],"sources":["../../gea/src/runtime/compiled-lean-store.ts","../../gea/src/runtime/compiled-tiny-reactive-component.ts","../../gea/src/runtime/delegate-click.ts","../src/components/draggable.tsx"],"sourcesContent":["import { GEA_PROXY_RAW } from './symbols'\nimport { GEA_OBSERVE_DIRECT } from './internal-symbols'\nimport { GEA_DIRTY, GEA_DIRTY_PROPS } from './dirty-symbols'\nimport { trackRead } from './with-tracking'\n\ntype Handler = (value: any, changes?: any[]) => void\n\ninterface LeanState {\n observers?: Map<string, Set<Handler>>\n derived?: Map<string, Set<Handler>>\n direct?: Map<string, Set<(value: any) => void>>\n pending?: Map<string, any[]>\n scheduled?: boolean\n ready?: boolean\n proxy?: any\n}\n\nconst _priv = new WeakMap<any, LeanState>()\nconst _nested = new WeakMap<object, any>()\nconst _isArr = Array.isArray\n\nfunction _plain(v: any): boolean {\n if (!v || typeof v !== 'object') return false\n const p = Object.getPrototypeOf(v)\n return p === Object.prototype || p === null || _isArr(v)\n}\n\nfunction _raw(v: any): any {\n return (v && v[GEA_PROXY_RAW]) || v\n}\n\nfunction _flush(state: LeanState): void {\n state.scheduled = false\n const pending = state.pending\n if (!pending || pending.size === 0) return\n state.pending = undefined\n let all: any[] | null = null\n for (const [prop, changes] of pending) {\n if (state.derived) {\n all ??= []\n for (let i = 0; i < changes.length; i++) all.push(changes[i])\n }\n const bucket = state.observers?.get(prop)\n if (bucket) for (const h of bucket) h(state.proxy[prop], changes)\n }\n if (all && state.derived) {\n for (const [prop, bucket] of state.derived) {\n let value\n try {\n value = state.proxy[prop]\n } catch {\n continue\n }\n for (const h of bucket) h(value, all)\n }\n }\n}\n\nfunction _queue(state: LeanState, prop: string, change: any = {}): void {\n if (!state.ready) return\n if (!state.observers?.has(prop) && !state.derived) return\n const rec = { prop, pathParts: [prop], type: 'update', target: state.proxy, ...change }\n const pending = state.pending ?? (state.pending = new Map())\n const arr = pending.get(prop)\n if (arr) arr.push(rec)\n else pending.set(prop, [rec])\n if (!state.scheduled) {\n state.scheduled = true\n queueMicrotask(() => _flush(state))\n }\n}\n\nfunction _wrap(state: LeanState, target: any, rootProp: string): any {\n if (!_plain(target)) return target\n const cached = _nested.get(target)\n if (cached) return cached\n const proxy = new Proxy(target, {\n get(obj, prop) {\n if (prop === GEA_PROXY_RAW) return obj\n if (typeof prop === 'symbol') return obj[prop as any]\n const value = obj[prop as any]\n if (_isArr(obj) && typeof value === 'function') {\n if (prop === 'push') {\n return (...items: any[]) => {\n const start = obj.length\n const result = Array.prototype.push.apply(obj, items.map(_raw))\n if (obj.length > start) _queue(state, rootProp, { type: 'append', start, count: obj.length - start })\n return result\n }\n }\n }\n return _plain(value) ? _wrap(state, value, rootProp) : value\n },\n set(obj, prop, value) {\n if (typeof prop === 'symbol') {\n obj[prop as any] = value\n return true\n }\n value = _raw(value)\n const old = obj[prop as any]\n if (old === value) return true\n obj[prop as any] = value\n if (_isArr(obj)) {\n if (value && typeof value === 'object') value[GEA_DIRTY] = true\n const idx = +prop\n if (Number.isInteger(idx)) {\n _queue(state, rootProp, { aipu: true, arix: idx, previousValue: old, newValue: value })\n return true\n }\n } else {\n obj[GEA_DIRTY] = true\n ;(obj[GEA_DIRTY_PROPS] ??= new Set()).add(prop)\n }\n _queue(state, rootProp, { previousValue: old, newValue: value })\n return true\n },\n })\n _nested.set(target, proxy)\n return proxy\n}\n\nexport function createLeanProxy<T extends object>(raw: T): T {\n const state: LeanState = {}\n _priv.set(raw, state)\n const proxy = new Proxy(raw, {\n get(target, prop, receiver) {\n if (prop === GEA_PROXY_RAW) return target\n if (typeof prop === 'symbol') return (target as any)[prop]\n trackRead(receiver ?? target, prop)\n const value = (target as any)[prop]\n if (typeof value === 'function') return value.bind(receiver)\n return _plain(value) ? _wrap(state, value, prop) : value\n },\n set(target, prop, value) {\n if (typeof prop === 'symbol') {\n ;(target as any)[prop] = value\n return true\n }\n value = _raw(value)\n if (_isArr(value)) value = value.map(_raw)\n const old = (target as any)[prop]\n if (old === value && prop in target) return true\n if (old && typeof old === 'object') _nested.delete(old)\n ;(target as any)[prop] = value\n const direct = state.direct?.get(prop)\n if (direct) for (const h of direct) h(value)\n _queue(state, prop, { previousValue: old, newValue: value })\n return true\n },\n })\n state.proxy = proxy\n _priv.set(proxy, state)\n return proxy as T\n}\n\nexport function leanObserve(self: any, pathOrProp: string | readonly string[], handler: Handler): () => void {\n const state = _priv.get(self)\n if (!state) return () => {}\n state.ready = true\n const isArr = Array.isArray(pathOrProp)\n const prop = isArr ? pathOrProp[0] : pathOrProp\n if (!prop) return () => {}\n const tail = isArr && pathOrProp.length > 1 ? pathOrProp.slice(1) : null\n const finalHandler: Handler = tail\n ? (value, changes) => {\n let next = value\n for (let i = 0; i < tail.length; i++) {\n if (next == null) return\n next = next[tail[i]]\n }\n handler(next, changes)\n }\n : handler\n const target = Object.prototype.hasOwnProperty.call(_raw(self), prop)\n ? (state.observers ?? (state.observers = new Map()))\n : (state.derived ?? (state.derived = new Map()))\n let bucket = target.get(prop)\n if (!bucket) target.set(prop, (bucket = new Set()))\n bucket.add(finalHandler)\n return () => bucket!.delete(finalHandler)\n}\n\nexport function leanObserveDirect(self: any, prop: string, handler: (value: any) => void): () => void {\n const state = _priv.get(self)\n if (!state) return () => {}\n state.ready = true\n const direct = state.direct ?? (state.direct = new Map())\n let bucket = direct.get(prop)\n if (!bucket) direct.set(prop, (bucket = new Set()))\n bucket.add(handler)\n return () => bucket!.delete(handler)\n}\n\nexport class CompiledLeanStore {\n constructor() {\n return createLeanProxy(this)\n }\n\n observe(pathOrProp: string | readonly string[], handler: Handler): () => void {\n return leanObserve(this, pathOrProp, handler)\n }\n\n [GEA_OBSERVE_DIRECT](prop: string, handler: (value: any) => void): () => void {\n return leanObserveDirect(this, prop, handler)\n }\n}\n\nexport default CompiledLeanStore\n","import { GEA_CREATE_TEMPLATE, GEA_DOM_COMPONENT, GEA_ELEMENT } from './symbols'\nimport { GEA_DISPOSER, GEA_OBSERVE_DIRECT, GEA_SET_PROPS } from './internal-symbols'\nimport { createDisposer, type Disposer } from './disposer'\nimport { createLeanProxy, leanObserve, leanObserveDirect } from './compiled-lean-store'\n\ntype Handler = (value: any, changes?: any[]) => void\ntype PropThunks = Record<string, () => any>\nconst GEA_COMPONENT_ID = Symbol()\nlet nextComponentId = 0\n\nexport class CompiledTinyReactiveComponent<P extends Record<string, any> = Record<string, any>> {\n rendered = false\n props: P = {} as P;\n [GEA_ELEMENT] = null as HTMLElement | null;\n [GEA_DISPOSER] = createDisposer() as Disposer\n\n constructor() {\n return createLeanProxy(this)\n }\n\n get id(): string {\n return ((this as any)[GEA_COMPONENT_ID] ??= '_' + nextComponentId++)\n }\n\n set id(value: string) {\n ;(this as any)[GEA_COMPONENT_ID] = value\n }\n\n get el(): HTMLElement | null {\n return this[GEA_ELEMENT] ?? null\n }\n\n [GEA_SET_PROPS](thunks: PropThunks): void {\n const out: Record<string, any> = {}\n for (const k in thunks) {\n Object.defineProperty(out, k, {\n enumerable: true,\n get: () => thunks[k](),\n })\n }\n this.props = out as P\n }\n\n render(parent: Node, _index?: number): void {\n const node = this[GEA_CREATE_TEMPLATE](this[GEA_DISPOSER])\n parent.appendChild(node)\n if (node.nodeType === 11) this[GEA_ELEMENT] = ((parent as Element).lastElementChild as HTMLElement | null) ?? null\n else if (node.nodeType === 1) this[GEA_ELEMENT] = node as HTMLElement\n if (this[GEA_ELEMENT]) (this[GEA_ELEMENT] as any)[GEA_DOM_COMPONENT] = this\n this.rendered = true\n }\n\n observe(pathOrProp: string | readonly string[], handler: Handler): () => void {\n return leanObserve(this, pathOrProp, handler)\n }\n\n [GEA_OBSERVE_DIRECT](prop: string, handler: (value: any) => void): () => void {\n return leanObserveDirect(this, prop, handler)\n }\n\n dispose(): void {\n this[GEA_DISPOSER].dispose()\n this[GEA_ELEMENT]?.remove()\n this[GEA_ELEMENT] = null\n }\n\n $(sel: string): Element | null {\n return this[GEA_ELEMENT]?.querySelector(sel) ?? null\n }\n\n $$(sel: string): Element[] {\n return Array.from(this[GEA_ELEMENT]?.querySelectorAll(sel) ?? [])\n }\n\n created(_props?: P): void {\n /* no-op */\n }\n\n onAfterRender(): void {\n /* no-op */\n }\n}\n\nexport default CompiledTinyReactiveComponent\n","import type { Disposer } from './disposer'\n\ntype Handler = (e: Event) => void\ntype HandlerPair = [Element, Handler]\n\nexport function ensureClickDelegate(root: Element): void {\n const rt: any = typeof document !== 'undefined' ? document : root.ownerDocument\n if (!rt.__gdc) {\n rt.__gdc = 1\n rt.addEventListener('click', (e: Event) => {\n for (let n: Node | null = e.target as Node | null; n && n !== rt; n = n.parentNode) {\n const h = (n as any).__gc as Handler | undefined\n if (h !== undefined) {\n h(e)\n return\n }\n }\n })\n }\n}\n\nexport function delegateClick(root: Element, pairs: HandlerPair[], _disposer?: Disposer): void {\n ensureClickDelegate(root)\n for (let i = 0; i < pairs.length; i++) {\n const el = pairs[i][0]\n if (el) (el as any).__gc = pairs[i][1]\n }\n}\n","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.target 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":"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"}
@@ -7,7 +7,7 @@ declare class Droppable extends Component {
7
7
  created(): void;
8
8
  onAfterRender(): void;
9
9
  dispose(): void;
10
- template(props: any): string;
10
+ template(props: any): any;
11
11
  }
12
12
  //#endregion
13
13
  export { Droppable as default };
@@ -1,14 +1,20 @@
1
+ import { o as GEA_CREATE_TEMPLATE } from "./bind.mjs";
2
+ import { t as CompiledReactiveComponent } from "./compiled-reactive-component.mjs";
3
+ import { t as reactiveText } from "./reactive-text.mjs";
4
+ import { t as reactiveAttr } from "./reactive-attr.mjs";
5
+ import { t as reactiveClassName } from "./reactive-class-name.mjs";
1
6
  import { dndManager } from "./dnd-manager.mjs";
2
- import { Component, GEA_ELEMENT, GEA_INSTANTIATE_CHILD_COMPONENTS, GEA_MOUNT_COMPILED_CHILD_COMPONENTS, GEA_ON_PROP_CHANGE, GEA_PATCH_NODE } from "@geajs/core";
3
7
  //#region src/components/droppable.tsx
4
- var Droppable = class extends Component {
8
+ function _tpl0_create() {
9
+ const e = document.createElement("div");
10
+ e.textContent = "0";
11
+ return e;
12
+ }
13
+ var Droppable = class extends CompiledReactiveComponent {
5
14
  constructor(..._args) {
6
15
  super(..._args);
7
16
  this._registered = false;
8
17
  }
9
- static {
10
- this.__geaTagName = "gea-droppable";
11
- }
12
18
  _registerWithManager() {
13
19
  const el = this.el?.querySelector("[data-droppable-id]");
14
20
  if (el && !this._registered) {
@@ -29,45 +35,15 @@ var Droppable = class extends Component {
29
35
  }
30
36
  super.dispose();
31
37
  }
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
- [GEA_ON_PROP_CHANGE](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 = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
42
- if (__el.className !== __newClass) __el.className = __newClass;
43
- }
44
- }
45
- if (key === "droppableId") {
46
- const __el = this[GEA_ELEMENT];
47
- if (__el) {
48
- var __av = value;
49
- if (__av == null || __av === false) __el.removeAttribute("data-droppable-id");
50
- else {
51
- const __newAttr = String(__av);
52
- if (__el.getAttribute("data-droppable-id") !== __newAttr) __el.setAttribute("data-droppable-id", __newAttr);
53
- }
54
- }
55
- }
56
- if (key === "children") {
57
- const __el = this[GEA_ELEMENT];
58
- if (__el) {
59
- const __tw = document.createElement("template");
60
- __tw.innerHTML = value;
61
- const __newEl = __tw.content.firstElementChild;
62
- const __existEl = __el.firstElementChild;
63
- if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
64
- else if (__el.innerHTML !== value) {
65
- __el.innerHTML = value;
66
- this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
67
- if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
68
- }
69
- }
70
- }
38
+ [GEA_CREATE_TEMPLATE](d) {
39
+ const root = _tpl0_create();
40
+ const el0 = root;
41
+ const el1 = el0;
42
+ const marker2 = root.firstChild;
43
+ reactiveClassName(el0, d, this, () => `gea-droppable ${this.props.class || ""}`);
44
+ reactiveAttr(el1, d, this, "data-droppable-id", () => this.props.droppableId);
45
+ reactiveText(marker2, d, this, () => this.props.children);
46
+ return root;
71
47
  }
72
48
  };
73
49
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"droppable.mjs","names":["Component","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_NODE","GEA_INSTANTIATE_CHILD_COMPONENTS","GEA_MOUNT_COMPILED_CHILD_COMPONENTS","dndManager","Droppable","__geaTagName","_registered","_registerWithManager","el","querySelector","HTMLElement","registerDroppable","props","droppableId","created","queueMicrotask","onAfterRender","dispose","unregisterDroppable","template","__id","id","class","trim","children","key","value","__el","__boundValue","__newClass","String","replace","className","__av","removeAttribute","__newAttr","getAttribute","setAttribute","__tw","document","createElement","innerHTML","__newEl","content","firstElementChild","__existEl","childNodes","length","constructor","parentComponent"],"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,IAAqBO,YAArB,cAAuCP,UAAU;;;qBACzB;;;sBADyB;;CAG/CU,uBAAuB;EACrB,MAAMC,KAAK,KAAKA,IAAIC,cAAc,sBAAsB;AACxD,MAAID,MAAM,CAAC,KAAKF,aAAa;AAC3BH,cAAWQ,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;AACpBH,cAAWe,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;;CAhCvB,CAAA1B,oBAAwB2B,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAA5B;AA6Bb,QAAAa;GAAA,MAAAgB,eAEH,iBAAiBF,SAAe;AAAI,OAAAC,MA/BtD;IACM,MAAME,aADXC,OAAOF,gBAAyB,GAAG,CAAEL,MAAM,CAACQ,QAAQ,QAAQ,IACf;AACxC,QAAIJ,KAAsBK,cAAcH,WAAYF,MAAsBK,YAAYH;;;AACvF,MAAAJ,QAAA,eAAA;GAAA,MAAAE,OAAA,KAAA5B;AAAA,OAAA4B,MAAA;IAFC,IAAIM,OAAIP;AACR,QAAIO,QAAQ,QAAQA,SAAS,MAC3BN,MAAsBO,gBAAgB,oBAAoB;SACrD;KACL,MAAMC,YAAYL,OAAOG,KAAK;AAC9B,SAAIN,KAAsBS,aAAa,oBAAoB,KAAKD,UAC9DR,MAAsBU,aAAa,qBAAqBF,UAAU;;;;AACrE,MAAAV,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAA5B;AAAA,OAAA4B,MARP;IACI,MAAMW,OAAOC,SAASC,cAAc,WAAW;AAC/CF,SAAKG,YAASf;IACd,MAAMgB,UAAUJ,KAAKK,QAAQC;IAC7B,MAAMC,YAAYlB,KAAsBiB;AACxC,QAAIF,WAAWG,aAAaP,KAAKK,QAAQG,WAAWC,WAAW,EAC7D,MAAKC,YAAWhD,gBAAwB6C,WAAWH,SAAS,KAAK;aACxDf,KAAsBc,cAASf,OAA4B;AACpEC,UAAsBc,YAASf;AAC/B,UAAIzB,mCAAyB;AAC7B,SAAI,KAAKgD,gBAAiB,MAAKA,gBAAe/C,sCAAyB"}
1
+ {"version":3,"file":"droppable.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClassName","reactiveAttr","reactiveText","CompiledReactiveComponent","Component","dndManager","_tpl0_create","e","document","createElement","textContent","Droppable","_registered","_registerWithManager","el","querySelector","HTMLElement","registerDroppable","props","droppableId","created","queueMicrotask","onAfterRender","dispose","unregisterDroppable","d","root","el0","el1","marker2","firstChild","class","t2","children"],"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,SAASO,eAAe;CACtB,MAAMC,IAAIC,SAASC,cAAc,MAAM;AACvCF,GAAEG,cAAc;AAChB,QAAOH;;AAET,IAAqBI,YAArB,cAAuCR,0BAA0B;;;qBACzC;;CACtBU,uBAAuB;EACrB,MAAMC,KAAK,KAAKA,IAAIC,cAAc,sBAAsB;AACxD,MAAID,MAAM,CAAC,KAAKF,aAAa;AAC3BP,cAAWY,kBAAkB,KAAKC,MAAMC,aAAuBL,GAAG;AAClE,QAAKF,cAAc;;;CAGvBQ,UAAU;AACRC,uBAAqB,KAAKR,sBAAsB,CAAC;;CAEnDS,gBAAgB;AACd,OAAKT,sBAAsB;;CAE7BU,UAAU;AACR,MAAI,KAAKX,aAAa;AACpBP,cAAWmB,oBAAoB,KAAKN,MAAMC,YAAsB;AAChE,QAAKP,cAAc;;AAErB,QAAMW,SAAS;;CAEjB,CAACxB,qBAAqB0B,GAAG;EACvB,MAAMC,OAAOpB,cAAc;EAC3B,MAAMqB,MAAMD;EACZ,MAAME,MAAMD;EACZ,MAAME,UAAUH,KAAKI;AACrB9B,oBAAkB2B,KAAKF,GAAG,YAAY,iBAAiB,KAAKP,MAAMa,SAAS,KAAK;AAChF9B,eAAa2B,KAAKH,GAAG,MAAM,2BAA2B,KAAKP,MAAMC,YAAY;AAE7EjB,eAAa8B,SAAIP,GAAG,YAAY,KAAKP,MAAMe,SAAS;AACpD,SAAOP"}
@@ -8,7 +8,7 @@ declare class FileUpload extends ZagComponent {
8
8
  rejectedFiles: any[];
9
9
  createMachine(_props: any): any;
10
10
  getMachineProps(props: any): {
11
- id: any;
11
+ id: string;
12
12
  accept: any;
13
13
  maxFiles: any;
14
14
  maxFileSize: any;
@@ -31,7 +31,7 @@ declare class FileUpload extends ZagComponent {
31
31
  '[data-part="clear-trigger"]': string;
32
32
  };
33
33
  syncState(api: any): void;
34
- template(props: any): string;
34
+ template(props: any): any;
35
35
  }
36
36
  //#endregion
37
37
  export { FileUpload as default };