@geajs/ui 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -19
- package/dist/accordion.d.mts +34 -0
- package/dist/accordion.mjs +167 -0
- package/dist/accordion.mjs.map +1 -0
- package/dist/alert.d.mts +15 -0
- package/dist/alert.mjs +101 -0
- package/dist/alert.mjs.map +1 -0
- package/dist/avatar.d.mts +26 -0
- package/dist/avatar.mjs +97 -0
- package/dist/avatar.mjs.map +1 -0
- package/dist/badge.d.mts +9 -0
- package/dist/badge.mjs +49 -0
- package/dist/badge.mjs.map +1 -0
- package/dist/button.d.mts +21 -0
- package/dist/button.mjs +96 -0
- package/dist/button.mjs.map +1 -0
- package/dist/card.d.mts +24 -0
- package/dist/card.mjs +169 -0
- package/dist/card.mjs.map +1 -0
- package/dist/checkbox.d.mts +37 -0
- package/dist/checkbox.mjs +80 -0
- package/dist/checkbox.mjs.map +1 -0
- package/dist/clipboard.d.mts +33 -0
- package/dist/clipboard.mjs +100 -0
- package/dist/clipboard.mjs.map +1 -0
- package/dist/cn.mjs +10 -0
- package/dist/cn.mjs.map +1 -0
- package/dist/collapsible.d.mts +29 -0
- package/dist/collapsible.mjs +77 -0
- package/dist/collapsible.mjs.map +1 -0
- package/dist/combobox.d.mts +67 -0
- package/dist/combobox.mjs +375 -0
- package/dist/combobox.mjs.map +1 -0
- package/dist/dialog.d.mts +57 -0
- package/dist/dialog.mjs +139 -0
- package/dist/dialog.mjs.map +1 -0
- package/dist/dnd-manager.d.mts +67 -0
- package/dist/dnd-manager.mjs +387 -0
- package/dist/dnd-manager.mjs.map +1 -0
- package/dist/drag-drop-context.d.mts +11 -0
- package/dist/drag-drop-context.mjs +43 -0
- package/dist/drag-drop-context.mjs.map +1 -0
- package/dist/draggable.d.mts +11 -0
- package/dist/draggable.mjs +72 -0
- package/dist/draggable.mjs.map +1 -0
- package/dist/droppable.d.mts +14 -0
- package/dist/droppable.mjs +66 -0
- package/dist/droppable.mjs.map +1 -0
- package/dist/file-upload.d.mts +38 -0
- package/dist/file-upload.mjs +170 -0
- package/dist/file-upload.mjs.map +1 -0
- package/dist/hover-card.d.mts +33 -0
- package/dist/hover-card.mjs +92 -0
- package/dist/hover-card.mjs.map +1 -0
- package/dist/index.d.mts +41 -1068
- package/dist/index.mjs +41 -4332
- package/dist/input.d.mts +9 -0
- package/dist/input.mjs +82 -0
- package/dist/input.mjs.map +1 -0
- package/dist/label.d.mts +9 -0
- package/dist/label.mjs +42 -0
- package/dist/label.mjs.map +1 -0
- package/dist/menu.d.mts +36 -0
- package/dist/menu.mjs +88 -0
- package/dist/menu.mjs.map +1 -0
- package/dist/number-input.d.mts +46 -0
- package/dist/number-input.mjs +89 -0
- package/dist/number-input.mjs.map +1 -0
- package/dist/pagination.d.mts +37 -0
- package/dist/pagination.mjs +97 -0
- package/dist/pagination.mjs.map +1 -0
- package/dist/pin-input.d.mts +45 -0
- package/dist/pin-input.mjs +147 -0
- package/dist/pin-input.mjs.map +1 -0
- package/dist/popover.d.mts +39 -0
- package/dist/popover.mjs +109 -0
- package/dist/popover.mjs.map +1 -0
- package/dist/progress.d.mts +34 -0
- package/dist/progress.mjs +86 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/radio-group.d.mts +37 -0
- package/dist/radio-group.mjs +184 -0
- package/dist/radio-group.mjs.map +1 -0
- package/dist/rating-group.d.mts +38 -0
- package/dist/rating-group.mjs +171 -0
- package/dist/rating-group.mjs.map +1 -0
- package/dist/select.d.mts +54 -0
- package/dist/select.mjs +277 -0
- package/dist/select.mjs.map +1 -0
- package/dist/separator.d.mts +9 -0
- package/dist/separator.mjs +49 -0
- package/dist/separator.mjs.map +1 -0
- package/dist/skeleton.d.mts +9 -0
- package/dist/skeleton.mjs +43 -0
- package/dist/skeleton.mjs.map +1 -0
- package/dist/slider.d.mts +44 -0
- package/dist/slider.mjs +117 -0
- package/dist/slider.mjs.map +1 -0
- package/dist/switch.d.mts +37 -0
- package/dist/switch.mjs +80 -0
- package/dist/switch.mjs.map +1 -0
- package/dist/tabs.d.mts +36 -0
- package/dist/tabs.mjs +197 -0
- package/dist/tabs.mjs.map +1 -0
- package/dist/tags-input.d.mts +48 -0
- package/dist/tags-input.mjs +267 -0
- package/dist/tags-input.mjs.map +1 -0
- package/dist/textarea.d.mts +9 -0
- package/dist/textarea.mjs +73 -0
- package/dist/textarea.mjs.map +1 -0
- package/dist/toast.d.mts +33 -0
- package/dist/toast.mjs +213 -0
- package/dist/toast.mjs.map +1 -0
- package/dist/toggle-group.d.mts +32 -0
- package/dist/toggle-group.mjs +124 -0
- package/dist/toggle-group.mjs.map +1 -0
- package/dist/tooltip.d.mts +39 -0
- package/dist/tooltip.mjs +85 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/tree-view.d.mts +35 -0
- package/dist/tree-view.mjs +94 -0
- package/dist/tree-view.mjs.map +1 -0
- package/dist/zag-component.d.mts +40 -0
- package/dist/zag-component.mjs +135 -0
- package/dist/zag-component.mjs.map +1 -0
- package/package.json +8 -8
- package/dist/index.mjs.map +0 -1
|
@@ -0,0 +1,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 ✕\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,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":";;;AAGA,IAAqBuC,WAArB,cAAsCvC,UAAU;;OAAAqC,qBAAA;;CAC9CG,SAASC,OAAY;AACnB,SAAA,iBADmB,KAAAE,GACnB,GAEWL,GACL,6QACAG,MAAMG,MACP,IAAA,QAHMN,GACL,6QACAG,MAAMG,MACP,KAAA,QAAA,KAAA,YAHMN,GACL,6QACAG,MAAMG,MACP,IAAA,OAAAC,OAHMP,GACL,6QACAG,MAAMG,MACP,CAAA,GAAA,IAAAE,MAAA,CAAA,KACYL,MAAMM,eAAW,QAAjBN,MAAMM,gBAAW,QAAA,KAAA,iBAAjBN,MAAMM,YAAW,KACpBN,MAAMO,YAAQ,QAAdP,MAAMO,aAAQ,QAAA,KAAA,cAAdP,MAAMO,SAAQ,KAClBP,MAAMQ,QAAI,QAAVR,MAAMQ,SAAI,QAAA,KAAA,UAAVR,MAAMQ,KAAI,KACVR,MAAMS,QAAI,QAAVT,MAAMS,SAAI,QAAA,KAAA,UAAVT,MAAMS,KAAI,GAAA,GAAAd,cAAAS,OAGfJ,MAAMU,SAAS,GAAE,CAAA,CAAA;;CAGvB,IAAAC,SAAA;AAAA,MAAA,KAAAC,UAAA,KAAAnD,aAAA,QAAA,KAAAmD;EAAA,MAAAC,kBAAA,EAAAC,OAAA,GAAA,IAAA,KAAAZ,QAAAa,GAAAC,oBAAA,KAAAC,gBAAAF,GAAAC,gBAAA,EAAA,EAAA;AAAA,MAAA,KAAAvD,aAAA,MAAAmD,SAAAC;AAAA,SAAAA;;CAnBHI,gBAAsBF,GAAGC,iBAAiB;AAAA,OAAAhB,MAcnBkB,QAAOH,EAAA;;CAd9BI,eAAsBC,KAAKV,OAAK;AAAA,MAAAU,QAAA,SAAA;GAAA,MAAAC,OAAA,KAAA5D;AAGX,QAAAuC;GAAA,MAAAsB,eAGNzB,GACL,6QAA2Qa,MAAA;AAAA,OAAAW,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAAlB,OAAAkB,aAAA,GAAA,IAAAjB,MAAA;AAAA,QAAAgB,KAAAG,cAAAD,WAAAF,MAAAG,YAAAD;;;AAAA,MAAAH,QAAA,eAAA;GAAA,MAAAC,OAAA,KAAA5D;AAAA,OAAA4D,KAAA,KAAAX,UAAA,QAAAA,UAAAe,KAAAA,EAAAJ,MAAAK,gBAAA,cAAA;QAAA;IAAA,MAAAC,YAAAvB,OAAAM,MAAA;AAAA,QAAAW,KAAAO,aAAA,cAAA,KAAAD,UAAAN,MAAAQ,aAAA,eAAAF,UAAA;;;AAAA,MAAAP,QAAA,YAAA;GAAA,MAAAC,OAAA,KAAA5D;AAAA,OAAA4D,KAAA,KAAA,CAAAX,MAAAW,MAAAK,gBAAA,WAAA;QAAA;IAAA,MAAAC,YAAA;AAAA,QAAAN,KAAAO,aAAA,WAAA,KAAAD,UAAAN,MAAAQ,aAAA,YAAAF,UAAA;;;AAAA,MAAAP,QAAA,QAAA;GAAA,MAAAC,OAAA,KAAA5D;AAAA,OAAA4D,KAAA,KAAAX,UAAA,QAAAA,UAAAe,KAAAA,EAAAJ,MAAAK,gBAAA,OAAA;QAAA;IAAA,MAAAC,YAAAvB,OAAAM,MAAA;AAAA,QAAAW,KAAAO,aAAA,OAAA,KAAAD,UAAAN,MAAAQ,aAAA,QAAAF,UAAA;;;AAAA,MAAAP,QAAA,QAAA;GAAA,MAAAC,OAAA,KAAA5D;AAAA,OAAA4D,KAAA,KAAAX,UAAA,QAAAA,UAAAe,KAAAA,EAAAJ,MAAAK,gBAAA,OAAA;QAAA;IAAA,MAAAC,YAAAvB,OAAAM,MAAA;AAAA,QAAAW,KAAAO,aAAA,OAAA,KAAAD,UAAAN,MAAAQ,aAAA,QAAAF,UAAA;;;AAAA,MAAAP,QAAA,SAAA;GAAA,MAAAC,OAAA,KAAA5D;AAJhQ,QAAAuC;GAAA,MAAAsB,eAAAZ,SAaG;AAAE,OAAAW,QAAAA,KAAAS,gBAAAR,aAAAD,MAAAS,cAAAR"}
|
package/dist/toast.d.mts
ADDED
|
@@ -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\">✕</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
|