@geajs/ui 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +14 -19
  2. package/dist/accordion.d.mts +34 -0
  3. package/dist/accordion.mjs +167 -0
  4. package/dist/accordion.mjs.map +1 -0
  5. package/dist/alert.d.mts +15 -0
  6. package/dist/alert.mjs +101 -0
  7. package/dist/alert.mjs.map +1 -0
  8. package/dist/avatar.d.mts +26 -0
  9. package/dist/avatar.mjs +97 -0
  10. package/dist/avatar.mjs.map +1 -0
  11. package/dist/badge.d.mts +9 -0
  12. package/dist/badge.mjs +49 -0
  13. package/dist/badge.mjs.map +1 -0
  14. package/dist/button.d.mts +21 -0
  15. package/dist/button.mjs +96 -0
  16. package/dist/button.mjs.map +1 -0
  17. package/dist/card.d.mts +24 -0
  18. package/dist/card.mjs +169 -0
  19. package/dist/card.mjs.map +1 -0
  20. package/dist/checkbox.d.mts +37 -0
  21. package/dist/checkbox.mjs +80 -0
  22. package/dist/checkbox.mjs.map +1 -0
  23. package/dist/clipboard.d.mts +33 -0
  24. package/dist/clipboard.mjs +100 -0
  25. package/dist/clipboard.mjs.map +1 -0
  26. package/dist/cn.mjs +10 -0
  27. package/dist/cn.mjs.map +1 -0
  28. package/dist/collapsible.d.mts +29 -0
  29. package/dist/collapsible.mjs +77 -0
  30. package/dist/collapsible.mjs.map +1 -0
  31. package/dist/combobox.d.mts +67 -0
  32. package/dist/combobox.mjs +375 -0
  33. package/dist/combobox.mjs.map +1 -0
  34. package/dist/dialog.d.mts +57 -0
  35. package/dist/dialog.mjs +139 -0
  36. package/dist/dialog.mjs.map +1 -0
  37. package/dist/dnd-manager.d.mts +67 -0
  38. package/dist/dnd-manager.mjs +387 -0
  39. package/dist/dnd-manager.mjs.map +1 -0
  40. package/dist/drag-drop-context.d.mts +11 -0
  41. package/dist/drag-drop-context.mjs +43 -0
  42. package/dist/drag-drop-context.mjs.map +1 -0
  43. package/dist/draggable.d.mts +11 -0
  44. package/dist/draggable.mjs +72 -0
  45. package/dist/draggable.mjs.map +1 -0
  46. package/dist/droppable.d.mts +14 -0
  47. package/dist/droppable.mjs +66 -0
  48. package/dist/droppable.mjs.map +1 -0
  49. package/dist/file-upload.d.mts +38 -0
  50. package/dist/file-upload.mjs +170 -0
  51. package/dist/file-upload.mjs.map +1 -0
  52. package/dist/hover-card.d.mts +33 -0
  53. package/dist/hover-card.mjs +92 -0
  54. package/dist/hover-card.mjs.map +1 -0
  55. package/dist/index.d.mts +41 -1068
  56. package/dist/index.mjs +41 -4332
  57. package/dist/input.d.mts +9 -0
  58. package/dist/input.mjs +82 -0
  59. package/dist/input.mjs.map +1 -0
  60. package/dist/label.d.mts +9 -0
  61. package/dist/label.mjs +42 -0
  62. package/dist/label.mjs.map +1 -0
  63. package/dist/menu.d.mts +36 -0
  64. package/dist/menu.mjs +88 -0
  65. package/dist/menu.mjs.map +1 -0
  66. package/dist/number-input.d.mts +46 -0
  67. package/dist/number-input.mjs +89 -0
  68. package/dist/number-input.mjs.map +1 -0
  69. package/dist/pagination.d.mts +37 -0
  70. package/dist/pagination.mjs +97 -0
  71. package/dist/pagination.mjs.map +1 -0
  72. package/dist/pin-input.d.mts +45 -0
  73. package/dist/pin-input.mjs +147 -0
  74. package/dist/pin-input.mjs.map +1 -0
  75. package/dist/popover.d.mts +39 -0
  76. package/dist/popover.mjs +109 -0
  77. package/dist/popover.mjs.map +1 -0
  78. package/dist/progress.d.mts +34 -0
  79. package/dist/progress.mjs +86 -0
  80. package/dist/progress.mjs.map +1 -0
  81. package/dist/radio-group.d.mts +37 -0
  82. package/dist/radio-group.mjs +184 -0
  83. package/dist/radio-group.mjs.map +1 -0
  84. package/dist/rating-group.d.mts +38 -0
  85. package/dist/rating-group.mjs +171 -0
  86. package/dist/rating-group.mjs.map +1 -0
  87. package/dist/select.d.mts +54 -0
  88. package/dist/select.mjs +277 -0
  89. package/dist/select.mjs.map +1 -0
  90. package/dist/separator.d.mts +9 -0
  91. package/dist/separator.mjs +49 -0
  92. package/dist/separator.mjs.map +1 -0
  93. package/dist/skeleton.d.mts +9 -0
  94. package/dist/skeleton.mjs +43 -0
  95. package/dist/skeleton.mjs.map +1 -0
  96. package/dist/slider.d.mts +44 -0
  97. package/dist/slider.mjs +117 -0
  98. package/dist/slider.mjs.map +1 -0
  99. package/dist/switch.d.mts +37 -0
  100. package/dist/switch.mjs +80 -0
  101. package/dist/switch.mjs.map +1 -0
  102. package/dist/tabs.d.mts +36 -0
  103. package/dist/tabs.mjs +197 -0
  104. package/dist/tabs.mjs.map +1 -0
  105. package/dist/tags-input.d.mts +48 -0
  106. package/dist/tags-input.mjs +267 -0
  107. package/dist/tags-input.mjs.map +1 -0
  108. package/dist/textarea.d.mts +9 -0
  109. package/dist/textarea.mjs +73 -0
  110. package/dist/textarea.mjs.map +1 -0
  111. package/dist/toast.d.mts +33 -0
  112. package/dist/toast.mjs +213 -0
  113. package/dist/toast.mjs.map +1 -0
  114. package/dist/toggle-group.d.mts +32 -0
  115. package/dist/toggle-group.mjs +124 -0
  116. package/dist/toggle-group.mjs.map +1 -0
  117. package/dist/tooltip.d.mts +39 -0
  118. package/dist/tooltip.mjs +85 -0
  119. package/dist/tooltip.mjs.map +1 -0
  120. package/dist/tree-view.d.mts +35 -0
  121. package/dist/tree-view.mjs +94 -0
  122. package/dist/tree-view.mjs.map +1 -0
  123. package/dist/zag-component.d.mts +40 -0
  124. package/dist/zag-component.mjs +135 -0
  125. package/dist/zag-component.mjs.map +1 -0
  126. package/package.json +8 -8
  127. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,267 @@
1
+ import { t as ZagComponent } from "./zag-component.mjs";
2
+ import { Component, GEA_CTOR_TAG_NAME, GEA_DOM_ITEM, GEA_DOM_KEY, GEA_ELEMENT, GEA_MAP_CONFIG_TPL, GEA_OBSERVE, GEA_PATCH_COND, GEA_REGISTER_COND, GEA_REGISTER_MAP, GEA_SETUP_LOCAL_STATE_OBSERVERS, GEA_SYNC_MAP, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
3
+ import { normalizeProps } from "@zag-js/vanilla";
4
+ import * as tagsInput from "@zag-js/tags-input";
5
+ //#region src/components/tags-input.tsx
6
+ const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
7
+ var TagsInput = class extends ZagComponent {
8
+ static {
9
+ this[GEA_CTOR_TAG_NAME] = "tags-input";
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="tags-input-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(this.props.label))}</label>`;
23
+ }, null);
24
+ }
25
+ createMachine(_props) {
26
+ return tagsInput.machine;
27
+ }
28
+ getMachineProps(props) {
29
+ return {
30
+ id: this.id,
31
+ value: props.value,
32
+ defaultValue: props.defaultValue,
33
+ max: props.max,
34
+ maxLength: props.maxLength,
35
+ disabled: props.disabled,
36
+ readOnly: props.readOnly,
37
+ invalid: props.invalid,
38
+ addOnPaste: props.addOnPaste ?? false,
39
+ editable: props.editable ?? true,
40
+ allowDuplicates: props.allowDuplicates ?? false,
41
+ name: props.name,
42
+ form: props.form,
43
+ placeholder: props.placeholder,
44
+ blurBehavior: props.blurBehavior,
45
+ delimiter: props.delimiter,
46
+ onValueChange: (details) => {
47
+ this.value = details.value;
48
+ props.onValueChange?.(details);
49
+ }
50
+ };
51
+ }
52
+ connectApi(service) {
53
+ return tagsInput.connect(service, normalizeProps);
54
+ }
55
+ getSpreadMap() {
56
+ return {
57
+ "[data-part=\"root\"]": "getRootProps",
58
+ "[data-part=\"label\"]": "getLabelProps",
59
+ "[data-part=\"control\"]": "getControlProps",
60
+ "[data-part=\"input\"]": "getInputProps",
61
+ "[data-part=\"hidden-input\"]": "getHiddenInputProps",
62
+ "[data-part=\"clear-trigger\"]": "getClearTriggerProps",
63
+ "[data-part=\"item\"]": (api, el) => {
64
+ const ds = el.dataset;
65
+ return api.getItemProps({
66
+ index: ds.index,
67
+ value: ds.value
68
+ });
69
+ },
70
+ "[data-part=\"item-preview\"]": (api, el) => {
71
+ const ds = el.dataset;
72
+ return api.getItemPreviewProps({
73
+ index: ds.index,
74
+ value: ds.value
75
+ });
76
+ },
77
+ "[data-part=\"item-text\"]": (api, el) => {
78
+ const ds = el.dataset;
79
+ return api.getItemTextProps({
80
+ index: ds.index,
81
+ value: ds.value
82
+ });
83
+ },
84
+ "[data-part=\"item-delete-trigger\"]": (api, el) => {
85
+ const ds = el.dataset;
86
+ return api.getItemDeleteTriggerProps({
87
+ index: ds.index,
88
+ value: ds.value
89
+ });
90
+ }
91
+ };
92
+ }
93
+ syncState(api) {
94
+ this.value = api.value;
95
+ }
96
+ template(props) {
97
+ const __id = this.id;
98
+ Component._register(ZagComponent, "zag-component");
99
+ 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="tags-input-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div id="${__id + "-b1"}" data-part="control" class="tags-input-control flex flex-wrap gap-1.5 rounded-md border border-input bg-transparent px-3 py-2 shadow-sm focus-within:ring-1 focus-within:ring-ring">${(this.value || []).map((tag, i) => `<span data-gea-item-id="${String(`${tag}-${i}`)}" data-part="item"${String(i) == null || String(i) === false ? "" : ` data-index="${String(i)}"`}${tag == null || tag === false ? "" : ` data-value="${tag}"`} class="tags-input-item inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-0.5 text-xs font-medium"><span data-part="item-preview"${String(i) == null || String(i) === false ? "" : ` data-index="${String(i)}"`}${tag == null || tag === false ? "" : ` data-value="${tag}"`} class="inline-flex items-center gap-1 data-[highlighted]:ring-2 data-[highlighted]:ring-ring data-[highlighted]:rounded-sm"><span data-part="item-text"${String(i) == null || String(i) === false ? "" : ` data-index="${String(i)}"`}${tag == null || tag === false ? "" : ` data-value="${tag}"`}>${tag}</span></span><button data-part="item-delete-trigger"${String(i) == null || String(i) === false ? "" : ` data-index="${String(i)}"`}${tag == null || tag === false ? "" : ` data-value="${tag}"`} class="tags-input-item-delete text-muted-foreground hover:text-foreground">✕</button></span>`).join("") + "<!---->"}<input data-part="input" class="tags-input-input flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground min-w-[60px]" /></div><input data-part="hidden-input" type="hidden" /></div>`;
100
+ }
101
+ render__unresolved_0Item(tag, i) {
102
+ return `<span data-gea-item-id="${String(`${tag}-${i}`)}" data-part="item"${__v(String(i)) == null || __v(String(i)) === false ? "" : ` data-index="${String(i)}"`}${__v(tag) == null || __v(tag) === false ? "" : ` data-value="${tag}"`} class="tags-input-item inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-0.5 text-xs font-medium"><span data-part="item-preview"${__v(String(i)) == null || __v(String(i)) === false ? "" : ` data-index="${String(i)}"`}${__v(tag) == null || __v(tag) === false ? "" : ` data-value="${tag}"`} class="inline-flex items-center gap-1 data-[highlighted]:ring-2 data-[highlighted]:ring-ring data-[highlighted]:rounded-sm"><span data-part="item-text"${__v(String(i)) == null || __v(String(i)) === false ? "" : ` data-index="${String(i)}"`}${__v(tag) == null || __v(tag) === false ? "" : ` data-value="${tag}"`}>${tag}</span></span><button data-part="item-delete-trigger"${__v(String(i)) == null || __v(String(i)) === false ? "" : ` data-index="${String(i)}"`}${__v(tag) == null || __v(tag) === false ? "" : ` data-value="${tag}"`} class="tags-input-item-delete text-muted-foreground hover:text-foreground">✕</button></span>`;
103
+ }
104
+ create__unresolved_0Item(item, __idx) {
105
+ var __c = this.#__dc_b1 || (this.#__dc_b1 = this.____unresolved_0_container);
106
+ if (!__c[GEA_MAP_CONFIG_TPL]) try {
107
+ var __tw = document.createElement("template");
108
+ __tw.innerHTML = this.render__unresolved_0Item({}, 0);
109
+ __c[GEA_MAP_CONFIG_TPL] = __tw.content.firstElementChild;
110
+ __c[GEA_MAP_CONFIG_TPL]?.removeAttribute("data-gea-item-id");
111
+ } catch (__err) {
112
+ console.error(__err);
113
+ }
114
+ if (__c[GEA_MAP_CONFIG_TPL]) var el = __c[GEA_MAP_CONFIG_TPL].cloneNode(true);
115
+ else {
116
+ var __fw = document.createElement("template");
117
+ __fw.innerHTML = this.render__unresolved_0Item(item, __idx);
118
+ var el = __fw.content.firstElementChild;
119
+ }
120
+ el.__ref_0 = el.firstElementChild;
121
+ el.__ref_0_0 = el.firstElementChild.firstElementChild;
122
+ el.__ref_1 = el.firstElementChild.nextElementSibling;
123
+ var __av = String(__idx);
124
+ if (__av == null || __av === false) el.removeAttribute("data-index");
125
+ else {
126
+ const __newAttr = String(__av);
127
+ if (el.getAttribute("data-index") !== __newAttr) el.setAttribute("data-index", __newAttr);
128
+ }
129
+ var __av = item;
130
+ if (__av == null || __av === false) el.removeAttribute("data-value");
131
+ else {
132
+ const __newAttr = String(__av);
133
+ if (el.getAttribute("data-value") !== __newAttr) el.setAttribute("data-value", __newAttr);
134
+ }
135
+ var __av = String(__idx);
136
+ if (__av == null || __av === false) el.__ref_0.removeAttribute("data-index");
137
+ else {
138
+ const __newAttr = String(__av);
139
+ if (el.__ref_0.getAttribute("data-index") !== __newAttr) el.__ref_0.setAttribute("data-index", __newAttr);
140
+ }
141
+ var __av = item;
142
+ if (__av == null || __av === false) el.__ref_0.removeAttribute("data-value");
143
+ else {
144
+ const __newAttr = String(__av);
145
+ if (el.__ref_0.getAttribute("data-value") !== __newAttr) el.__ref_0.setAttribute("data-value", __newAttr);
146
+ }
147
+ var __av = String(__idx);
148
+ if (__av == null || __av === false) el.__ref_0_0.removeAttribute("data-index");
149
+ else {
150
+ const __newAttr = String(__av);
151
+ if (el.__ref_0_0.getAttribute("data-index") !== __newAttr) el.__ref_0_0.setAttribute("data-index", __newAttr);
152
+ }
153
+ var __av = item;
154
+ if (__av == null || __av === false) el.__ref_0_0.removeAttribute("data-value");
155
+ else {
156
+ const __newAttr = String(__av);
157
+ if (el.__ref_0_0.getAttribute("data-value") !== __newAttr) el.__ref_0_0.setAttribute("data-value", __newAttr);
158
+ }
159
+ el.__ref_0_0.firstChild.nodeValue = `
160
+ ${item}
161
+ `;
162
+ var __av = String(__idx);
163
+ if (__av == null || __av === false) el.__ref_1.removeAttribute("data-index");
164
+ else {
165
+ const __newAttr = String(__av);
166
+ if (el.__ref_1.getAttribute("data-index") !== __newAttr) el.__ref_1.setAttribute("data-index", __newAttr);
167
+ }
168
+ var __av = item;
169
+ if (__av == null || __av === false) el.__ref_1.removeAttribute("data-value");
170
+ else {
171
+ const __newAttr = String(__av);
172
+ if (el.__ref_1.getAttribute("data-value") !== __newAttr) el.__ref_1.setAttribute("data-value", __newAttr);
173
+ }
174
+ el[GEA_DOM_KEY] = String(`${item}-${__idx}`);
175
+ el[GEA_DOM_ITEM] = item;
176
+ return el;
177
+ }
178
+ patch__unresolved_0Item(row, item, __prevItem, __idx) {
179
+ if (!row) return;
180
+ if (!row.__ref_0) row.__ref_0 = row.firstElementChild;
181
+ if (!row.__ref_0_0) row.__ref_0_0 = row.firstElementChild.firstElementChild;
182
+ if (!row.__ref_1) row.__ref_1 = row.firstElementChild.nextElementSibling;
183
+ var __av = String(__idx);
184
+ if (__av == null || __av === false) row.removeAttribute("data-index");
185
+ else {
186
+ const __newAttr = String(__av);
187
+ if (row.getAttribute("data-index") !== __newAttr) row.setAttribute("data-index", __newAttr);
188
+ }
189
+ var __av = item;
190
+ if (__av == null || __av === false) row.removeAttribute("data-value");
191
+ else {
192
+ const __newAttr = String(__av);
193
+ if (row.getAttribute("data-value") !== __newAttr) row.setAttribute("data-value", __newAttr);
194
+ }
195
+ var __av = String(__idx);
196
+ if (__av == null || __av === false) row.__ref_0.removeAttribute("data-index");
197
+ else {
198
+ const __newAttr = String(__av);
199
+ if (row.__ref_0.getAttribute("data-index") !== __newAttr) row.__ref_0.setAttribute("data-index", __newAttr);
200
+ }
201
+ var __av = item;
202
+ if (__av == null || __av === false) row.__ref_0.removeAttribute("data-value");
203
+ else {
204
+ const __newAttr = String(__av);
205
+ if (row.__ref_0.getAttribute("data-value") !== __newAttr) row.__ref_0.setAttribute("data-value", __newAttr);
206
+ }
207
+ var __av = String(__idx);
208
+ if (__av == null || __av === false) row.__ref_0_0.removeAttribute("data-index");
209
+ else {
210
+ const __newAttr = String(__av);
211
+ if (row.__ref_0_0.getAttribute("data-index") !== __newAttr) row.__ref_0_0.setAttribute("data-index", __newAttr);
212
+ }
213
+ var __av = item;
214
+ if (__av == null || __av === false) row.__ref_0_0.removeAttribute("data-value");
215
+ else {
216
+ const __newAttr = String(__av);
217
+ if (row.__ref_0_0.getAttribute("data-value") !== __newAttr) row.__ref_0_0.setAttribute("data-value", __newAttr);
218
+ }
219
+ row.__ref_0_0.firstChild.nodeValue = `
220
+ ${item}
221
+ `;
222
+ var __av = String(__idx);
223
+ if (__av == null || __av === false) row.__ref_1.removeAttribute("data-index");
224
+ else {
225
+ const __newAttr = String(__av);
226
+ if (row.__ref_1.getAttribute("data-index") !== __newAttr) row.__ref_1.setAttribute("data-index", __newAttr);
227
+ }
228
+ var __av = item;
229
+ if (__av == null || __av === false) row.__ref_1.removeAttribute("data-value");
230
+ else {
231
+ const __newAttr = String(__av);
232
+ if (row.__ref_1.getAttribute("data-value") !== __newAttr) row.__ref_1.setAttribute("data-value", __newAttr);
233
+ }
234
+ row[GEA_DOM_KEY] = String(`${item}-${__idx}`);
235
+ (this.#__rowEls_b1 || (this.#__rowEls_b1 = {}))[String(`${item}-${__idx}`)] = row;
236
+ row[GEA_DOM_ITEM] = item;
237
+ }
238
+ __observe_local_value(value, change) {
239
+ this[GEA_SYNC_MAP](0);
240
+ this[GEA_SYNC_MAP](0);
241
+ }
242
+ __onPropChange(key, value) {
243
+ if (key === "class") {
244
+ const __el = this[GEA_ELEMENT];
245
+ this.props;
246
+ const __boundValue = value || "";
247
+ if (__el) {
248
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
249
+ if (__el.className !== __newClass) __el.className = __newClass;
250
+ }
251
+ }
252
+ if (key === "label") this[GEA_PATCH_COND](0);
253
+ }
254
+ createdHooks() {
255
+ this[GEA_REGISTER_MAP](0, "____unresolved_0_container", () => document.getElementById(this.id + "-b1"), () => {
256
+ return this.value || [];
257
+ }, (__item, __idx) => this.create__unresolved_0Item(__item, __idx), (__k, __ki) => String(`${__k}-${__ki}`));
258
+ }
259
+ [GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
260
+ if (!this.__store) return;
261
+ this[GEA_OBSERVE](this, ["value"], this.__observe_local_value);
262
+ }
263
+ };
264
+ //#endregion
265
+ export { TagsInput as default };
266
+
267
+ //# sourceMappingURL=tags-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags-input.mjs","names":["__v","v","valueOf","Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","tagsInput","normalizeProps","ZagComponent","TagsInput","__rowEls_b1","__dc_b1","constructor","args","props","label","String","value","createMachine","_props","machine","getMachineProps","id","defaultValue","max","maxLength","disabled","readOnly","invalid","addOnPaste","editable","allowDuplicates","name","form","placeholder","blurBehavior","delimiter","onValueChange","details","ValueChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","ds","HTMLElement","dataset","getItemProps","index","[data-part=\"item-preview\"]","getItemPreviewProps","[data-part=\"item-text\"]","getItemTextProps","[data-part=\"item-delete-trigger\"]","getItemDeleteTriggerProps","syncState","template","__id","_register","class","trim","map","tag","i","join","render__unresolved_0Item","create__unresolved_0Item","item","__idx","__c","____unresolved_0_container","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","cloneNode","__fw","__ref_0","__ref_0_0","__ref_1","nextElementSibling","__av","__newAttr","getAttribute","setAttribute","firstChild","nodeValue","patch__unresolved_0Item","row","__prevItem","__observe_local_value","change","__onPropChange","key","__el","__boundValue","__newClass","className","createdHooks","getElementById","__item","__k","__ki","__store"],"sources":["../src/components/tags-input.tsx"],"sourcesContent":["import * as tagsInput from '@zag-js/tags-input'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class TagsInput extends ZagComponent {\n declare value: string[]\n\n createMachine(_props: any): any {\n return tagsInput.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n max: props.max,\n maxLength: props.maxLength,\n disabled: props.disabled,\n readOnly: props.readOnly,\n invalid: props.invalid,\n addOnPaste: props.addOnPaste ?? false,\n editable: props.editable ?? true,\n allowDuplicates: props.allowDuplicates ?? false,\n name: props.name,\n form: props.form,\n placeholder: props.placeholder,\n blurBehavior: props.blurBehavior,\n delimiter: props.delimiter,\n onValueChange: (details: tagsInput.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return tagsInput.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"control\"]': 'getControlProps',\n '[data-part=\"input\"]': 'getInputProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n '[data-part=\"item\"]': (api, el) => {\n const ds = (el as HTMLElement).dataset\n return api.getItemProps({ index: ds.index!, value: ds.value! })\n },\n '[data-part=\"item-preview\"]': (api, el) => {\n const ds = (el as HTMLElement).dataset\n return api.getItemPreviewProps({ index: ds.index!, value: ds.value! })\n },\n '[data-part=\"item-text\"]': (api, el) => {\n const ds = (el as HTMLElement).dataset\n return api.getItemTextProps({ index: ds.index!, value: ds.value! })\n },\n '[data-part=\"item-delete-trigger\"]': (api, el) => {\n const ds = (el as HTMLElement).dataset\n return api.getItemDeleteTriggerProps({ index: ds.index!, value: ds.value! })\n },\n }\n }\n\n syncState(api: any) {\n this.value = api.value\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=\"tags-input-label text-sm font-medium mb-1 block\">\n {props.label}\n </label>\n )}\n <div\n data-part=\"control\"\n class=\"tags-input-control flex flex-wrap gap-1.5 rounded-md border border-input bg-transparent px-3 py-2 shadow-sm focus-within:ring-1 focus-within:ring-ring\"\n >\n {(this.value || []).map((tag: string, i: number) => (\n <span\n key={`${tag}-${i}`}\n data-part=\"item\"\n data-index={String(i)}\n data-value={tag}\n class=\"tags-input-item inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-0.5 text-xs font-medium\"\n >\n <span\n data-part=\"item-preview\"\n data-index={String(i)}\n data-value={tag}\n class=\"inline-flex items-center gap-1 data-[highlighted]:ring-2 data-[highlighted]:ring-ring data-[highlighted]:rounded-sm\"\n >\n <span data-part=\"item-text\" data-index={String(i)} data-value={tag}>\n {tag}\n </span>\n </span>\n <button\n data-part=\"item-delete-trigger\"\n data-index={String(i)}\n data-value={tag}\n class=\"tags-input-item-delete text-muted-foreground hover:text-foreground\"\n >\n &#x2715;\n </button>\n </span>\n ))}\n <input\n data-part=\"input\"\n class=\"tags-input-input flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground min-w-[60px]\"\n />\n </div>\n <input data-part=\"hidden-input\" type=\"hidden\" />\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Component } from "@geajs/core";
2
+
3
+ //#region src/components/textarea.d.ts
4
+ declare class Textarea extends Component {
5
+ template(props: any): string;
6
+ }
7
+ //#endregion
8
+ export { Textarea as default };
9
+ //# sourceMappingURL=textarea.d.mts.map
@@ -0,0 +1,73 @@
1
+ import { t as cn } from "./cn.mjs";
2
+ import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT, geaEscapeHtml } from "@geajs/core";
3
+ //#region src/components/textarea.tsx
4
+ var Textarea = class extends Component {
5
+ static {
6
+ this[GEA_CTOR_TAG_NAME] = "gea-textarea";
7
+ }
8
+ template(props) {
9
+ return `<textarea id="${this.id}"${cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) == null || cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) === false ? "" : ` class="${(cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) != null ? String(cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class)) : "").trim()}"`}${props.placeholder == null || props.placeholder === false ? "" : ` placeholder="${props.placeholder}"`}${props.disabled == null || props.disabled === false ? "" : ` disabled="${props.disabled}"`}${props.name == null || props.name === false ? "" : ` name="${props.name}"`}${props.rows == null || props.rows === false ? "" : ` rows="${props.rows}"`}>${geaEscapeHtml(String(props.value || ""))}</textarea>`;
10
+ }
11
+ get events() {
12
+ if (this.__evts && this[GEA_ELEMENT]) return this.__evts;
13
+ const __geaEvtsResult = { input: { [`#${this.id}`]: (e, targetComponent) => this.__event_input_0(e, targetComponent) } };
14
+ if (this[GEA_ELEMENT]) this.__evts = __geaEvtsResult;
15
+ return __geaEvtsResult;
16
+ }
17
+ __event_input_0(e, targetComponent) {
18
+ this.props.onInput(e);
19
+ }
20
+ __onPropChange(key, value) {
21
+ if (key === "class") {
22
+ const __el = this[GEA_ELEMENT];
23
+ this.props;
24
+ const __boundValue = cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", value);
25
+ if (__el) {
26
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
27
+ if (__el.className !== __newClass) __el.className = __newClass;
28
+ }
29
+ }
30
+ if (key === "placeholder") {
31
+ const __el = this[GEA_ELEMENT];
32
+ if (__el) if (value === null || value === void 0) __el.removeAttribute("placeholder");
33
+ else {
34
+ const __newAttr = String(value);
35
+ if (__el.getAttribute("placeholder") !== __newAttr) __el.setAttribute("placeholder", __newAttr);
36
+ }
37
+ }
38
+ if (key === "disabled") {
39
+ const __el = this[GEA_ELEMENT];
40
+ if (__el) if (!value) __el.removeAttribute("disabled");
41
+ else {
42
+ const __newAttr = "";
43
+ if (__el.getAttribute("disabled") !== __newAttr) __el.setAttribute("disabled", __newAttr);
44
+ }
45
+ }
46
+ if (key === "name") {
47
+ const __el = this[GEA_ELEMENT];
48
+ if (__el) if (value === null || value === void 0) __el.removeAttribute("name");
49
+ else {
50
+ const __newAttr = String(value);
51
+ if (__el.getAttribute("name") !== __newAttr) __el.setAttribute("name", __newAttr);
52
+ }
53
+ }
54
+ if (key === "rows") {
55
+ const __el = this[GEA_ELEMENT];
56
+ if (__el) if (value === null || value === void 0) __el.removeAttribute("rows");
57
+ else {
58
+ const __newAttr = String(value);
59
+ if (__el.getAttribute("rows") !== __newAttr) __el.setAttribute("rows", __newAttr);
60
+ }
61
+ }
62
+ if (key === "value") {
63
+ const __el = this[GEA_ELEMENT];
64
+ this.props;
65
+ const __boundValue = value || "";
66
+ if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
67
+ }
68
+ }
69
+ };
70
+ //#endregion
71
+ export { Textarea as default };
72
+
73
+ //# sourceMappingURL=textarea.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.mjs","names":["Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","cn","Textarea","template","props","__id","id","class","String","trim","placeholder","disabled","name","rows","value","events","__evts","__geaEvtsResult","input","e","targetComponent","__event_input_0","onInput","__onPropChange","key","__el","__boundValue","__newClass","className","undefined","removeAttribute","__newAttr","getAttribute","setAttribute","textContent"],"sources":["../src/components/textarea.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Textarea extends Component {\n template(props: any) {\n return (\n <textarea\n class={cn(\n 'flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n props.class,\n )}\n placeholder={props.placeholder}\n disabled={props.disabled}\n name={props.name}\n rows={props.rows}\n onInput={props.onInput}\n >\n {props.value || ''}\n </textarea>\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Component } from "@geajs/core";
2
+ import { VanillaMachine } from "@zag-js/vanilla";
3
+ import * as toast from "@zag-js/toast";
4
+
5
+ //#region src/components/toast.d.ts
6
+ declare function getStore(props?: toast.StoreProps): toast.Store<any>;
7
+ declare class ToastStore {
8
+ static getStore: typeof getStore;
9
+ static create(options: toast.Options): string;
10
+ static success(options: Omit<toast.Options, 'type'>): string;
11
+ static error(options: Omit<toast.Options, 'type'>): string;
12
+ static info(options: Omit<toast.Options, 'type'>): string;
13
+ static loading(options: Omit<toast.Options, 'type'>): string;
14
+ static dismiss(id?: string): void;
15
+ }
16
+ declare class Toaster extends Component {
17
+ _machine: VanillaMachine<any> | null;
18
+ _api: any;
19
+ _toastMachines: Map<string, VanillaMachine<any>>;
20
+ _spreadCleanups: Map<string, Array<() => void>>;
21
+ _currentToasts: toast.Options[];
22
+ created(props: any): void;
23
+ _createToastElement(t: any): HTMLElement;
24
+ _syncToastDOM(nextToasts: any[]): void;
25
+ _syncToastMachines(): void;
26
+ _applyGroupSpreads(): void;
27
+ onAfterRender(): void;
28
+ dispose(): void;
29
+ template(props: any): string;
30
+ }
31
+ //#endregion
32
+ export { ToastStore, Toaster };
33
+ //# sourceMappingURL=toast.d.mts.map
package/dist/toast.mjs ADDED
@@ -0,0 +1,213 @@
1
+ import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
2
+ import { VanillaMachine, normalizeProps, spreadProps } from "@zag-js/vanilla";
3
+ import * as toast from "@zag-js/toast";
4
+ //#region src/components/toast.tsx
5
+ function stripStyle(props) {
6
+ const { style: _style, ...rest } = props;
7
+ return rest;
8
+ }
9
+ let _store = null;
10
+ function getStore(props) {
11
+ if (!_store) _store = toast.createStore({
12
+ placement: "bottom-end",
13
+ duration: 5e3,
14
+ removeDelay: 200,
15
+ max: 5,
16
+ ...props
17
+ });
18
+ return _store;
19
+ }
20
+ var ToastStore = class {
21
+ static {
22
+ this.getStore = getStore;
23
+ }
24
+ static create(options) {
25
+ return getStore().create(options);
26
+ }
27
+ static success(options) {
28
+ return getStore().create({
29
+ ...options,
30
+ type: "success"
31
+ });
32
+ }
33
+ static error(options) {
34
+ return getStore().create({
35
+ ...options,
36
+ type: "error"
37
+ });
38
+ }
39
+ static info(options) {
40
+ return getStore().create({
41
+ ...options,
42
+ type: "info"
43
+ });
44
+ }
45
+ static loading(options) {
46
+ return getStore().create({
47
+ ...options,
48
+ type: "loading"
49
+ });
50
+ }
51
+ static dismiss(id) {
52
+ if (id) getStore().dismiss(id);
53
+ else getStore().dismiss();
54
+ }
55
+ };
56
+ var Toaster = class extends Component {
57
+ static {
58
+ this[GEA_CTOR_TAG_NAME] = "toaster";
59
+ }
60
+ created(props) {
61
+ this._toastMachines = /* @__PURE__ */ new Map();
62
+ this._spreadCleanups = /* @__PURE__ */ new Map();
63
+ this._currentToasts = [];
64
+ const store = getStore(props.storeProps);
65
+ this._machine = new VanillaMachine(toast.group.machine, { store });
66
+ this._machine.start();
67
+ this._api = toast.group.connect(this._machine.service, normalizeProps);
68
+ this._machine.subscribe(() => {
69
+ if (!this._machine) return;
70
+ this._api = toast.group.connect(this._machine.service, normalizeProps);
71
+ const nextToasts = this._api.getToasts();
72
+ this._syncToastDOM(nextToasts);
73
+ this._currentToasts = nextToasts;
74
+ this._syncToastMachines();
75
+ queueMicrotask(() => this._applyGroupSpreads());
76
+ });
77
+ }
78
+ _createToastElement(t) {
79
+ const div = document.createElement("div");
80
+ div.setAttribute("data-part", "toast-root");
81
+ div.setAttribute("data-toast-id", t.id);
82
+ div.className = "toast-root group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 shadow-lg transition-all bg-background text-foreground";
83
+ let inner = "<div class=\"grid gap-1\">";
84
+ if (t.title) inner += `<div data-part="title" class="toast-title text-sm font-semibold">${t.title}</div>`;
85
+ if (t.description) inner += `<div data-part="description" class="toast-description text-sm opacity-90">${t.description}</div>`;
86
+ inner += "</div>";
87
+ inner += "<button data-part=\"close-trigger\" class=\"toast-close-trigger text-foreground/50 hover:text-foreground\">&#x2715;</button>";
88
+ div.innerHTML = inner;
89
+ return div;
90
+ }
91
+ _syncToastDOM(nextToasts) {
92
+ const container = this.el;
93
+ if (!container) return;
94
+ const currentIds = new Set(this._currentToasts.map((t) => t.id));
95
+ const nextIds = new Set(nextToasts.map((t) => t.id));
96
+ for (const id of currentIds) if (!nextIds.has(id)) {
97
+ const el = container.querySelector(`[data-toast-id="${id}"]`);
98
+ if (el) {
99
+ const cleanups = this._spreadCleanups.get(id);
100
+ if (cleanups) cleanups.forEach((fn) => fn());
101
+ this._spreadCleanups.delete(id);
102
+ el.remove();
103
+ }
104
+ }
105
+ for (const t of nextToasts) if (!currentIds.has(t.id)) {
106
+ const el = this._createToastElement(t);
107
+ container.appendChild(el);
108
+ }
109
+ }
110
+ _syncToastMachines() {
111
+ if (!this._machine) return;
112
+ const currentIds = new Set(this._currentToasts.map((t) => t.id));
113
+ for (const [id, machine] of this._toastMachines) if (!currentIds.has(id)) {
114
+ machine.stop();
115
+ this._toastMachines.delete(id);
116
+ }
117
+ for (let i = 0; i < this._currentToasts.length; i++) {
118
+ const t = this._currentToasts[i];
119
+ if (!this._toastMachines.has(t.id)) {
120
+ const toastMachine = new VanillaMachine(toast.machine, {
121
+ ...t,
122
+ parent: this._machine.service,
123
+ index: i,
124
+ stacked: true,
125
+ removeDelay: t.removeDelay ?? 200
126
+ });
127
+ toastMachine.start();
128
+ this._toastMachines.set(t.id, toastMachine);
129
+ toastMachine.subscribe(() => {
130
+ queueMicrotask(() => this._applyGroupSpreads());
131
+ });
132
+ }
133
+ }
134
+ }
135
+ _applyGroupSpreads() {
136
+ if (!this.rendered || !this._api) return;
137
+ const groupEl = this.el;
138
+ if (groupEl) spreadProps(groupEl, stripStyle(this._api.getGroupProps()));
139
+ const toastEls = this.$$("[data-toast-id]");
140
+ for (const el of toastEls) {
141
+ const toastId = el.dataset.toastId;
142
+ if (!toastId) continue;
143
+ const toastMachine = this._toastMachines.get(toastId);
144
+ if (!toastMachine) continue;
145
+ const api = toast.connect(toastMachine.service, normalizeProps);
146
+ const prevCleanups = this._spreadCleanups.get(toastId);
147
+ if (prevCleanups) prevCleanups.forEach((fn) => fn());
148
+ const cleanups = [];
149
+ const rootProps = stripStyle(api.getRootProps());
150
+ delete rootProps["data-part"];
151
+ cleanups.push(spreadProps(el, rootProps));
152
+ const title = el.querySelector("[data-part=\"title\"]");
153
+ if (title) cleanups.push(spreadProps(title, api.getTitleProps()));
154
+ const desc = el.querySelector("[data-part=\"description\"]");
155
+ if (desc) cleanups.push(spreadProps(desc, api.getDescriptionProps()));
156
+ const close = el.querySelector("[data-part=\"close-trigger\"]");
157
+ if (close) cleanups.push(spreadProps(close, api.getCloseTriggerProps()));
158
+ const action = el.querySelector("[data-part=\"action-trigger\"]");
159
+ if (action) cleanups.push(spreadProps(action, api.getActionTriggerProps()));
160
+ this._spreadCleanups.set(toastId, cleanups);
161
+ }
162
+ }
163
+ onAfterRender() {
164
+ this._applyGroupSpreads();
165
+ }
166
+ dispose() {
167
+ for (const cleanups of this._spreadCleanups.values()) cleanups.forEach((fn) => fn());
168
+ this._spreadCleanups.clear();
169
+ for (const machine of this._toastMachines.values()) machine.stop();
170
+ this._toastMachines.clear();
171
+ if (this._machine) {
172
+ this._machine.stop();
173
+ this._machine = null;
174
+ }
175
+ this._api = null;
176
+ super.dispose();
177
+ }
178
+ template(props) {
179
+ return `<div id="${this.id}" data-part="group" class="${`toaster fixed z-[100] flex max-h-screen flex-col-reverse gap-2 p-4 ${props.class || "bottom-0 right-0"}`.trim()}"></div>`;
180
+ }
181
+ static {
182
+ this.__tpl = (() => {
183
+ if (typeof document === "undefined") return void 0;
184
+ var t = document.createElement("template");
185
+ t.innerHTML = "<div data-part=\"group\"></div>";
186
+ return t;
187
+ })();
188
+ }
189
+ __cloneTemplate() {
190
+ const __id = this.id;
191
+ var __tpl = this.constructor.__tpl;
192
+ if (!__tpl) throw new Error("[gea] __tpl missing for clone template");
193
+ var __root = __tpl.content.firstElementChild.cloneNode(true);
194
+ __root.id = __id;
195
+ __root.className = `toaster fixed z-[100] flex max-h-screen flex-col-reverse gap-2 p-4 ${props.class || "bottom-0 right-0"}`.trim();
196
+ return __root;
197
+ }
198
+ __onPropChange(key, value) {
199
+ if (key === "class") {
200
+ const __el = this[GEA_ELEMENT];
201
+ this.props;
202
+ const __boundValue = `toaster fixed z-[100] flex max-h-screen flex-col-reverse gap-2 p-4 ${value || "bottom-0 right-0"}`;
203
+ if (__el) {
204
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
205
+ if (__el.className !== __newClass) __el.className = __newClass;
206
+ }
207
+ }
208
+ }
209
+ };
210
+ //#endregion
211
+ export { ToastStore, Toaster };
212
+
213
+ //# sourceMappingURL=toast.mjs.map