@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.
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 +4 -3
  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
package/dist/combobox.mjs CHANGED
@@ -1,27 +1,32 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_APPLY_LIST_CHANGES, GEA_DOM_ITEM, GEA_DOM_KEY, GEA_ELEMENT, GEA_ENSURE_ARRAY_CONFIGS, GEA_OBSERVE, GEA_ON_PROP_CHANGE, GEA_PATCH_COND, GEA_REGISTER_COND, GEA_SETUP_LOCAL_STATE_OBSERVERS, GEA_STORE_ROOT, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
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 combobox from "@zag-js/combobox";
5
10
  //#region src/components/combobox.tsx
6
- const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
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=control class=\"combobox-control flex\"><input data-part=input class=\"combobox-input flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"><button data-part=trigger class=\"combobox-trigger inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2\">▼</button></div><div data-part=positioner class=combobox-positioner><div data-part=content class=\"combobox-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"><div data-part=list>";
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=\"combobox-label text-sm font-medium mb-1 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 data-part=item class=\"combobox-item relative flex cursor-pointer select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground\"><span data-part=item-text>0</span><span data-part=item-indicator class=\"combobox-item-indicator ml-auto\">✓";
27
+ return t.content.firstChild;
28
+ }
7
29
  var Combobox = class extends ZagComponent {
8
- static {
9
- this.__geaTagName = "gea-combobox";
10
- }
11
- #__rowEls_b1;
12
- #__dc_b1;
13
- constructor(...args) {
14
- super(...args);
15
- this.props;
16
- this[geaCondValueSymbol(0)] = !!this.props.label;
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="combobox-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(this.props.label))}</label>`;
23
- }, null);
24
- }
25
30
  created(props) {
26
31
  this._allItems = props.items || [];
27
32
  this.filteredItems = [...this._allItems];
@@ -129,258 +134,314 @@ var Combobox = class extends ZagComponent {
129
134
  this.value = api.value;
130
135
  this.inputValue = api.inputValue;
131
136
  }
132
- template(props) {
133
- const __id = this.id;
134
- Component._register(ZagComponent, "zag-component");
135
- 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="combobox-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div data-part="control" class="combobox-control flex"><input data-part="input" class="combobox-input flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" /><button data-part="trigger" class="combobox-trigger inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2">▼</button></div><div data-part="positioner" class="combobox-positioner"><div data-part="content" class="combobox-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md"><div id="${__id + "-b1"}" data-part="list">${this.filteredItems.map((item) => this.renderFilteredItemsItem(item)).join("")}</div></div></div></div>`;
136
- }
137
- [GEA_ON_PROP_CHANGE](key, value) {
138
- if (key === "class") {
139
- const __el = this[GEA_ELEMENT];
140
- this.props;
141
- const __boundValue = value || "";
142
- if (__el) {
143
- const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
144
- if (__el.className !== __newClass) __el.className = __newClass;
137
+ [GEA_CREATE_TEMPLATE](d) {
138
+ const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
139
+ const el0 = root;
140
+ const anchor1 = root.firstChild;
141
+ const parent2 = root.childNodes[2].firstChild.firstChild;
142
+ reactiveClass(el0, d, this, () => this.props.class || "");
143
+ conditionalTruthy(anchor1.parentNode, anchor1, d, this, () => this.props.label, (d) => {
144
+ const root = (_tpl1_root || (_tpl1_root = _tpl1_create())).cloneNode(true);
145
+ const t0 = root.firstChild;
146
+ reactiveTextValue(t0, d, this, () => this.props.label);
147
+ return root;
148
+ });
149
+ const __ki_L0 = (item, idx, d) => {
150
+ const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
151
+ root.setAttribute("data-value", String(item.value));
152
+ root.setAttribute("data-label", String(item.label));
153
+ root.firstChild.setAttribute("data-value", String(item.value));
154
+ root.firstChild.setAttribute("data-label", String(item.label));
155
+ {
156
+ const __n = root.firstChild.firstChild;
157
+ __n.nodeValue = `${item.label ?? ""}`;
145
158
  }
146
- }
147
- if (key === "label") this[GEA_PATCH_COND](0);
148
- }
149
- renderFilteredItemsItem(item) {
150
- return `<div data-gid="${item?.value ?? item}" data-part="item"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`}${__v(item.label) == null || __v(item.label) === false ? "" : ` data-label="${item.label}"`} class="combobox-item relative flex cursor-pointer select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground"><span data-part="item-text"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`}${__v(item.label) == null || __v(item.label) === false ? "" : ` data-label="${item.label}"`}>${item.label}</span><span data-part="item-indicator"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`}${__v(item.label) == null || __v(item.label) === false ? "" : ` data-label="${item.label}"`} class="combobox-item-indicator ml-auto">✓</span></div>`;
151
- }
152
- createFilteredItemsItem(item) {
153
- var __c = this.#__dc_b1 || (this.#__dc_b1 = this.__filteredItems_container);
154
- if (!__c.__geaTpl) try {
155
- var __tw = document.createElement("template");
156
- __tw.innerHTML = this.renderFilteredItemsItem({
157
- value: 0,
158
- label: " "
159
- });
160
- __c.__geaTpl = __tw.content.firstElementChild;
161
- __c.__geaTpl?.removeAttribute("data-gid");
162
- } catch (__err) {
163
- console.error(__err);
164
- }
165
- if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
166
- else {
167
- var __fw = document.createElement("template");
168
- __fw.innerHTML = this.renderFilteredItemsItem(item);
169
- var el = __fw.content.firstElementChild;
170
- }
171
- el.__ref_0 = el.firstElementChild;
172
- el.__ref_1 = el.firstElementChild.nextElementSibling;
173
- var __av = item.value;
174
- if (__av == null || __av === false) el.removeAttribute("data-value");
175
- else {
176
- const __newAttr = String(__av);
177
- if (el.getAttribute("data-value") !== __newAttr) el.setAttribute("data-value", __newAttr);
178
- }
179
- var __av = item.label;
180
- if (__av == null || __av === false) el.removeAttribute("data-label");
181
- else {
182
- const __newAttr = String(__av);
183
- if (el.getAttribute("data-label") !== __newAttr) el.setAttribute("data-label", __newAttr);
184
- }
185
- var __av = item.value;
186
- if (__av == null || __av === false) el.__ref_0.removeAttribute("data-value");
187
- else {
188
- const __newAttr = String(__av);
189
- if (el.__ref_0.getAttribute("data-value") !== __newAttr) el.__ref_0.setAttribute("data-value", __newAttr);
190
- }
191
- var __av = item.label;
192
- if (__av == null || __av === false) el.__ref_0.removeAttribute("data-label");
193
- else {
194
- const __newAttr = String(__av);
195
- if (el.__ref_0.getAttribute("data-label") !== __newAttr) el.__ref_0.setAttribute("data-label", __newAttr);
196
- }
197
- if (el.__ref_0.textContent !== `
198
- ${item.label}
199
- `) el.__ref_0.textContent = `
200
- ${item.label}
201
- `;
202
- var __av = item.value;
203
- if (__av == null || __av === false) el.__ref_1.removeAttribute("data-value");
204
- else {
205
- const __newAttr = String(__av);
206
- if (el.__ref_1.getAttribute("data-value") !== __newAttr) el.__ref_1.setAttribute("data-value", __newAttr);
207
- }
208
- var __av = item.label;
209
- if (__av == null || __av === false) el.__ref_1.removeAttribute("data-label");
210
- else {
211
- const __newAttr = String(__av);
212
- if (el.__ref_1.getAttribute("data-label") !== __newAttr) el.__ref_1.setAttribute("data-label", __newAttr);
213
- }
214
- el[GEA_DOM_KEY] = String(item?.value ?? item);
215
- el[GEA_DOM_ITEM] = item;
216
- return el;
217
- }
218
- patchFilteredItemsItem(row, item, __prevItem) {
219
- if (!row) return;
220
- if (!row.__ref_0) row.__ref_0 = row.firstElementChild;
221
- if (!row.__ref_1) row.__ref_1 = row.firstElementChild.nextElementSibling;
222
- var __av = item.value;
223
- if (__av == null || __av === false) row.removeAttribute("data-value");
224
- else {
225
- const __newAttr = String(__av);
226
- if (row.getAttribute("data-value") !== __newAttr) row.setAttribute("data-value", __newAttr);
227
- }
228
- var __av = item.label;
229
- if (__av == null || __av === false) row.removeAttribute("data-label");
230
- else {
231
- const __newAttr = String(__av);
232
- if (row.getAttribute("data-label") !== __newAttr) row.setAttribute("data-label", __newAttr);
233
- }
234
- var __av = item.value;
235
- if (__av == null || __av === false) row.__ref_0.removeAttribute("data-value");
236
- else {
237
- const __newAttr = String(__av);
238
- if (row.__ref_0.getAttribute("data-value") !== __newAttr) row.__ref_0.setAttribute("data-value", __newAttr);
239
- }
240
- var __av = item.label;
241
- if (__av == null || __av === false) row.__ref_0.removeAttribute("data-label");
242
- else {
243
- const __newAttr = String(__av);
244
- if (row.__ref_0.getAttribute("data-label") !== __newAttr) row.__ref_0.setAttribute("data-label", __newAttr);
245
- }
246
- if (row.__ref_0.textContent !== `
247
- ${item.label}
248
- `) row.__ref_0.textContent = `
249
- ${item.label}
250
- `;
251
- var __av = item.value;
252
- if (__av == null || __av === false) row.__ref_1.removeAttribute("data-value");
253
- else {
254
- const __newAttr = String(__av);
255
- if (row.__ref_1.getAttribute("data-value") !== __newAttr) row.__ref_1.setAttribute("data-value", __newAttr);
256
- }
257
- var __av = item.label;
258
- if (__av == null || __av === false) row.__ref_1.removeAttribute("data-label");
259
- else {
260
- const __newAttr = String(__av);
261
- if (row.__ref_1.getAttribute("data-label") !== __newAttr) row.__ref_1.setAttribute("data-label", __newAttr);
262
- }
263
- row[GEA_DOM_KEY] = String(item?.value ?? item);
264
- (this.#__rowEls_b1 || (this.#__rowEls_b1 = {}))[String(item?.value ?? item)] = row;
265
- row[GEA_DOM_ITEM] = item;
266
- }
267
- __observe_local_filteredItems(filteredItems, change) {
268
- const __id = this.id;
269
- if (!this.__filteredItems_container) this.__filteredItems_container = __gid(__id + "-b1");
270
- if (!this.__filteredItems_container) return;
271
- if (Array.isArray(filteredItems) && filteredItems.length === 0) {
272
- this.#__rowEls_b1 = null;
273
- this.__filteredItems_container.textContent = "";
274
- return;
275
- }
276
- this[GEA_ENSURE_ARRAY_CONFIGS]();
277
- this[GEA_APPLY_LIST_CHANGES](this.__filteredItems_container, filteredItems, change, this.__filteredItemsListConfig);
278
- }
279
- [GEA_ENSURE_ARRAY_CONFIGS]() {
280
- if (!this.__filteredItemsListConfig) this.__filteredItemsListConfig = {
281
- arrayPathParts: ["filteredItems"],
282
- render: this.renderFilteredItemsItem.bind(this),
283
- create: this.createFilteredItemsItem.bind(this),
284
- patchRow: this.patchFilteredItemsItem && this.patchFilteredItemsItem.bind(this),
285
- getKey: (item) => String(item?.value ?? item),
286
- propPatchers: {
287
- "value": [
288
- (row, value, item) => {
289
- var __av = item.value;
290
- if (__av == null || __av === false) row.removeAttribute("data-value");
291
- else {
292
- const __newAttr = String(__av);
293
- if (row.getAttribute("data-value") !== __newAttr) row.setAttribute("data-value", __newAttr);
159
+ root.childNodes[1].setAttribute("data-value", String(item.value));
160
+ root.childNodes[1].setAttribute("data-label", String(item.label));
161
+ root[GEA_DOM_ITEM] = item;
162
+ return root;
163
+ };
164
+ const __kp_L0 = (el, item) => {
165
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("value")) el.setAttribute("data-value", String(item.value));
166
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) el.setAttribute("data-label", String(item.label));
167
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("value")) (el.__r0 || (el.__r0 = el.firstChild)).setAttribute("data-value", String(item.value));
168
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) (el.__r0 || (el.__r0 = el.firstChild)).setAttribute("data-label", String(item.label));
169
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) {
170
+ const __n = el.__r1 || (el.__r1 = el.firstChild.firstChild);
171
+ __n.nodeValue = `${item.label ?? ""}`;
172
+ }
173
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("value")) (el.__r2 || (el.__r2 = el.childNodes[1])).setAttribute("data-value", String(item.value));
174
+ if (!item[_DIRTY_PROPS] || item[_DIRTY_PROPS].has("label")) (el.__r2 || (el.__r2 = el.childNodes[1])).setAttribute("data-label", String(item.label));
175
+ };
176
+ {
177
+ const __kl_container = parent2;
178
+ const __kl_root = this;
179
+ const __kl_key = (item, idx) => item.value;
180
+ const __kl_create = (item, idx) => {
181
+ const __k = item.value;
182
+ const __el = __ki_L0(item, idx);
183
+ return {
184
+ key: __k,
185
+ item: item && item[GEA_PROXY_RAW] || item,
186
+ element: __el
187
+ };
188
+ };
189
+ const __kl_patch = (e, newItem, newIdx) => {
190
+ e.item = newItem && newItem[GEA_PROXY_RAW] || newItem;
191
+ __kp_L0(e.element, newItem);
192
+ };
193
+ const __kl_unwrap = (v) => v && typeof v === "object" && v[GEA_PROXY_RAW] || v;
194
+ const __kl_resolve = () => {
195
+ const v = __kl_root?.["filteredItems"];
196
+ return Array.isArray(v) ? v : [];
197
+ };
198
+ let __kl_entries = [];
199
+ const __kl_byKey = /* @__PURE__ */ new Map();
200
+ const __kl_remove = (entry) => {
201
+ entry.disposer?.dispose();
202
+ __kl_byKey.delete(entry.key);
203
+ if (entry.element.parentNode) entry.element.parentNode.removeChild(entry.element);
204
+ };
205
+ const __kl_first = __kl_resolve();
206
+ if (__kl_first.length > 0) {
207
+ const frag = __kl_container.ownerDocument.createDocumentFragment();
208
+ for (let i = 0; i < __kl_first.length; i++) {
209
+ const item = __kl_first[i];
210
+ const entry = __kl_create(item, i);
211
+ __kl_entries.push(entry);
212
+ __kl_byKey.set(entry.key, entry);
213
+ frag.appendChild(entry.element);
214
+ if (item && typeof item === "object") {
215
+ item[_DIRTY] = false;
216
+ item[_DIRTY_PROPS]?.clear();
217
+ }
218
+ }
219
+ __kl_container.appendChild(frag);
220
+ }
221
+ let __kl_prev = __kl_first;
222
+ const __kl_reconcile = (arr, changes) => {
223
+ if (arr === __kl_prev && __kl_entries.length === arr.length) {
224
+ let structural = false;
225
+ let aipuOnly = changes && changes.length > 0;
226
+ if (changes && changes.length > 0) for (let i = 0; i < changes.length; i++) {
227
+ const change = changes[i];
228
+ if (change.type === "append" || change.type === "remove" || change.type === "delete" || change.type === "reorder") {
229
+ structural = true;
230
+ aipuOnly = false;
231
+ break;
232
+ }
233
+ if (!change.aipu) aipuOnly = false;
234
+ else structural = true;
235
+ }
236
+ if (aipuOnly && changes.length === 2) {
237
+ const a = changes[0].arix;
238
+ const b = changes[1].arix;
239
+ if (a >= 0 && b >= 0 && a < __kl_entries.length && b < __kl_entries.length && a !== b) {
240
+ const entryA = __kl_entries[a];
241
+ const entryB = __kl_entries[b];
242
+ const newAKey = __kl_key(arr[a], a);
243
+ const newBKey = __kl_key(arr[b], b);
244
+ if (entryA.key === newBKey && entryB.key === newAKey) {
245
+ const refB = entryB.element.nextSibling;
246
+ __kl_container.insertBefore(entryB.element, entryA.element);
247
+ if (refB) __kl_container.insertBefore(entryA.element, refB);
248
+ else __kl_container.appendChild(entryA.element);
249
+ __kl_entries[a] = entryB;
250
+ __kl_entries[b] = entryA;
251
+ if (__kl_unwrap(arr[a]) !== entryB.item) __kl_patch(entryB, arr[a], a);
252
+ if (__kl_unwrap(arr[b]) !== entryA.item) __kl_patch(entryA, arr[b], b);
253
+ __kl_prev = arr;
254
+ return;
255
+ }
256
+ }
257
+ }
258
+ if (!structural) {
259
+ const raw = arr[GEA_PROXY_RAW] || arr;
260
+ for (let i = 0; i < raw.length; i++) {
261
+ const item = raw[i];
262
+ if (item && typeof item === "object" && item[_DIRTY]) {
263
+ __kl_patch(__kl_entries[i], item, i);
264
+ item[_DIRTY] = false;
265
+ item[_DIRTY_PROPS]?.clear();
266
+ __kl_entries[i].item = item;
267
+ }
268
+ }
269
+ return;
270
+ }
271
+ }
272
+ if (changes && changes.length > 0 && __kl_entries.length < arr.length) {
273
+ let onlyAppends = true;
274
+ let appendCount = 0;
275
+ for (let i = 0; i < changes.length; i++) {
276
+ if (changes[i].type !== "append") {
277
+ onlyAppends = false;
278
+ break;
294
279
  }
295
- },
296
- (row, value, item) => {
297
- const __target = row.__ref_0 || (row.__ref_0 = row.firstElementChild);
298
- if (!__target) return;
299
- var __av = item.value;
300
- if (__av == null || __av === false) __target.removeAttribute("data-value");
301
- else {
302
- const __newAttr = String(__av);
303
- if (__target.getAttribute("data-value") !== __newAttr) __target.setAttribute("data-value", __newAttr);
280
+ appendCount += changes[i].count || 0;
281
+ }
282
+ if (onlyAppends && appendCount === arr.length - __kl_entries.length) {
283
+ const start = __kl_entries.length;
284
+ const frag = __kl_container.ownerDocument.createDocumentFragment();
285
+ for (let i = start; i < arr.length; i++) {
286
+ const entry = __kl_create(arr[i], i);
287
+ __kl_entries.push(entry);
288
+ __kl_byKey.set(entry.key, entry);
289
+ frag.appendChild(entry.element);
304
290
  }
305
- },
306
- (row, value, item) => {
307
- const __target = row.__ref_1 || (row.__ref_1 = row.firstElementChild.nextElementSibling);
308
- if (!__target) return;
309
- var __av = item.value;
310
- if (__av == null || __av === false) __target.removeAttribute("data-value");
311
- else {
312
- const __newAttr = String(__av);
313
- if (__target.getAttribute("data-value") !== __newAttr) __target.setAttribute("data-value", __newAttr);
291
+ __kl_container.appendChild(frag);
292
+ __kl_prev = arr;
293
+ return;
294
+ }
295
+ }
296
+ if (changes && changes.length > 0 && __kl_entries.length > arr.length) {
297
+ let onlyRemoves = true;
298
+ let totalRemoved = 0;
299
+ for (let i = 0; i < changes.length; i++) {
300
+ const change = changes[i];
301
+ if (change.type !== "remove") {
302
+ onlyRemoves = false;
303
+ break;
314
304
  }
315
- },
316
- (row, value) => {
317
- row.classList.toggle("value", value);
318
- },
319
- (row, value) => {
320
- row.classList.toggle("value", value);
321
- },
322
- (row, value) => {
323
- row.classList.toggle("value", value);
324
- },
325
- (row, value) => {
326
- row.classList.toggle("value", value);
305
+ totalRemoved += change.count || 0;
327
306
  }
328
- ],
329
- "label": [
330
- (row, value, item) => {
331
- var __av = item.label;
332
- if (__av == null || __av === false) row.removeAttribute("data-label");
333
- else {
334
- const __newAttr = String(__av);
335
- if (row.getAttribute("data-label") !== __newAttr) row.setAttribute("data-label", __newAttr);
307
+ if (onlyRemoves && __kl_entries.length - arr.length === totalRemoved) {
308
+ if (changes.length === 1 && changes[0].count === 1) {
309
+ const idx = changes[0].start;
310
+ if (idx >= 0 && idx < __kl_entries.length) {
311
+ __kl_remove(__kl_entries[idx]);
312
+ __kl_entries.splice(idx, 1);
313
+ }
314
+ __kl_prev = arr;
315
+ return;
316
+ }
317
+ const removed = [];
318
+ for (let i = 0; i < changes.length; i++) {
319
+ const start = changes[i].start;
320
+ const count = changes[i].count;
321
+ for (let j = 0; j < count; j++) removed.push(start + j);
336
322
  }
337
- },
338
- (row, value, item) => {
339
- const __target = row.__ref_0 || (row.__ref_0 = row.firstElementChild);
340
- if (!__target) return;
341
- var __av = item.label;
342
- if (__av == null || __av === false) __target.removeAttribute("data-label");
343
- else {
344
- const __newAttr = String(__av);
345
- if (__target.getAttribute("data-label") !== __newAttr) __target.setAttribute("data-label", __newAttr);
323
+ removed.sort((a, b) => b - a);
324
+ for (let i = 0; i < removed.length; i++) {
325
+ const idx = removed[i];
326
+ if (idx >= 0 && idx < __kl_entries.length) {
327
+ __kl_remove(__kl_entries[idx]);
328
+ __kl_entries.splice(idx, 1);
329
+ }
346
330
  }
347
- },
348
- (row, value, item) => {
349
- const __target = row.__ref_0 || (row.__ref_0 = row.firstElementChild);
350
- if (!__target) return;
351
- if (__target.textContent !== `
352
- ${item.label}
353
- `) __target.textContent = `
354
- ${item.label}
355
- `;
356
- },
357
- (row, value, item) => {
358
- const __target = row.__ref_1 || (row.__ref_1 = row.firstElementChild.nextElementSibling);
359
- if (!__target) return;
360
- var __av = item.label;
361
- if (__av == null || __av === false) __target.removeAttribute("data-label");
362
- else {
363
- const __newAttr = String(__av);
364
- if (__target.getAttribute("data-label") !== __newAttr) __target.setAttribute("data-label", __newAttr);
331
+ __kl_prev = arr;
332
+ return;
333
+ }
334
+ }
335
+ const newLen = arr.length;
336
+ const oldLen = __kl_entries.length;
337
+ if (oldLen === 0 && newLen > 0) {
338
+ const nextEntries = new Array(newLen);
339
+ const frag = __kl_container.ownerDocument.createDocumentFragment();
340
+ for (let i = 0; i < newLen; i++) {
341
+ const entry = __kl_create(arr[i], i);
342
+ nextEntries[i] = entry;
343
+ __kl_byKey.set(entry.key, entry);
344
+ frag.appendChild(entry.element);
345
+ }
346
+ __kl_container.appendChild(frag);
347
+ __kl_entries = nextEntries;
348
+ __kl_prev = arr;
349
+ return;
350
+ }
351
+ const newKeys = new Array(newLen);
352
+ for (let i = 0; i < newLen; i++) newKeys[i] = __kl_key(arr[i], i);
353
+ if (newLen === 0) {
354
+ if (__kl_container.childNodes.length === oldLen) {
355
+ for (let i = 0; i < oldLen; i++) __kl_entries[i].disposer?.dispose();
356
+ __kl_container.textContent = "";
357
+ } else for (let i = oldLen - 1; i >= 0; i--) __kl_remove(__kl_entries[i]);
358
+ __kl_entries = [];
359
+ __kl_byKey.clear();
360
+ __kl_prev = arr;
361
+ return;
362
+ }
363
+ if (newLen === oldLen) {
364
+ let diffA = -1;
365
+ let diffB = -1;
366
+ let diffCount = 0;
367
+ for (let i = 0; i < newLen; i++) if (__kl_entries[i].key !== newKeys[i]) {
368
+ if (diffCount === 0) diffA = i;
369
+ else if (diffCount === 1) diffB = i;
370
+ diffCount++;
371
+ if (diffCount > 2) break;
372
+ }
373
+ if (diffCount === 2 && __kl_entries[diffA].key === newKeys[diffB] && __kl_entries[diffB].key === newKeys[diffA]) {
374
+ const entryA = __kl_entries[diffA];
375
+ const entryB = __kl_entries[diffB];
376
+ const refB = entryB.element.nextSibling;
377
+ __kl_container.insertBefore(entryB.element, entryA.element);
378
+ if (refB) __kl_container.insertBefore(entryA.element, refB);
379
+ else __kl_container.appendChild(entryA.element);
380
+ __kl_entries[diffA] = entryB;
381
+ __kl_entries[diffB] = entryA;
382
+ if (__kl_unwrap(arr[diffA]) !== entryB.item) __kl_patch(entryB, arr[diffA], diffA);
383
+ if (__kl_unwrap(arr[diffB]) !== entryA.item) __kl_patch(entryA, arr[diffB], diffB);
384
+ __kl_prev = arr;
385
+ return;
386
+ }
387
+ }
388
+ if (oldLen > 0 && newLen > 0 && __kl_container.childNodes.length === oldLen) {
389
+ let disjoint = true;
390
+ for (let i = 0; i < newLen; i++) if (__kl_byKey.has(newKeys[i])) {
391
+ disjoint = false;
392
+ break;
393
+ }
394
+ if (disjoint) {
395
+ for (let i = 0; i < oldLen; i++) __kl_entries[i].disposer?.dispose();
396
+ __kl_byKey.clear();
397
+ const nextEntries = new Array(newLen);
398
+ const nextNodes = new Array(newLen);
399
+ for (let i = 0; i < newLen; i++) {
400
+ const entry = __kl_create(arr[i], i);
401
+ nextEntries[i] = entry;
402
+ nextNodes[i] = entry.element;
403
+ __kl_byKey.set(entry.key, entry);
365
404
  }
366
- },
367
- (row, value) => {
368
- row.classList.toggle("label", value);
369
- },
370
- (row, value) => {
371
- row.classList.toggle("label", value);
372
- },
373
- (row, value) => {
374
- row.classList.toggle("label", value);
405
+ __kl_container.replaceChildren(...nextNodes);
406
+ __kl_entries = nextEntries;
407
+ __kl_prev = arr;
408
+ return;
409
+ }
410
+ }
411
+ for (let i = 0; i < oldLen; i++) __kl_entries[i]._i = i;
412
+ const seenOld = new Array(oldLen).fill(false);
413
+ const nextEntries = new Array(newLen);
414
+ for (let i = 0; i < newLen; i++) {
415
+ const entry = __kl_byKey.get(newKeys[i]);
416
+ if (entry) {
417
+ const oldIdx = entry._i;
418
+ seenOld[oldIdx] = true;
419
+ nextEntries[i] = entry;
375
420
  }
376
- ]
421
+ }
422
+ for (let i = oldLen - 1; i >= 0; i--) if (!seenOld[i]) __kl_remove(__kl_entries[i]);
423
+ let nextRef = null;
424
+ for (let i = newLen - 1; i >= 0; i--) {
425
+ let entry = nextEntries[i];
426
+ if (!entry) {
427
+ entry = __kl_create(arr[i], i);
428
+ __kl_byKey.set(entry.key, entry);
429
+ } else if (entry.item !== __kl_unwrap(arr[i])) __kl_patch(entry, arr[i], i);
430
+ if (entry.element.parentNode !== __kl_container || entry.element.nextSibling !== nextRef) __kl_container.insertBefore(entry.element, nextRef);
431
+ nextEntries[i] = entry;
432
+ nextRef = entry.element;
433
+ }
434
+ __kl_entries = nextEntries;
435
+ __kl_prev = arr;
436
+ };
437
+ if (__kl_root && typeof __kl_root.observe === "function") {
438
+ const off = __kl_root.observe("filteredItems", (_value, changes) => {
439
+ __kl_reconcile(__kl_resolve(), changes);
440
+ });
441
+ d.add(off);
377
442
  }
378
- };
379
- }
380
- [GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
381
- this[GEA_ENSURE_ARRAY_CONFIGS]();
382
- if (!this[GEA_STORE_ROOT]) return;
383
- this[GEA_OBSERVE](this, ["filteredItems"], this.__observe_local_filteredItems);
443
+ }
444
+ return root;
384
445
  }
385
446
  };
386
447
  //#endregion