@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
package/dist/select.mjs
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
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_RENDERED, GEA_SETUP_LOCAL_STATE_OBSERVERS, GEA_SYNC_MAP, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
|
|
3
|
+
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
|
+
import * as select from "@zag-js/select";
|
|
5
|
+
//#region src/components/select.tsx
|
|
6
|
+
const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
|
|
7
|
+
var Select = class extends ZagComponent {
|
|
8
|
+
static {
|
|
9
|
+
this[GEA_CTOR_TAG_NAME] = "gea-select";
|
|
10
|
+
}
|
|
11
|
+
#__rowEls_b2;
|
|
12
|
+
#__dc_b2;
|
|
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="select-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(this.props.label))}</label>`;
|
|
23
|
+
}, null);
|
|
24
|
+
}
|
|
25
|
+
createMachine(_props) {
|
|
26
|
+
return select.machine;
|
|
27
|
+
}
|
|
28
|
+
getMachineProps(props) {
|
|
29
|
+
const items = props.items || [];
|
|
30
|
+
const col = props.collection || select.collection({
|
|
31
|
+
items,
|
|
32
|
+
itemToValue: (item) => item.value,
|
|
33
|
+
itemToString: (item) => item.label || item.value
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
id: this.id,
|
|
37
|
+
collection: col,
|
|
38
|
+
value: props.value,
|
|
39
|
+
defaultValue: props.defaultValue,
|
|
40
|
+
open: props.open,
|
|
41
|
+
defaultOpen: props.defaultOpen,
|
|
42
|
+
multiple: props.multiple,
|
|
43
|
+
disabled: props.disabled,
|
|
44
|
+
invalid: props.invalid,
|
|
45
|
+
readOnly: props.readOnly,
|
|
46
|
+
required: props.required,
|
|
47
|
+
name: props.name,
|
|
48
|
+
form: props.form,
|
|
49
|
+
closeOnSelect: props.closeOnSelect ?? true,
|
|
50
|
+
positioning: props.positioning,
|
|
51
|
+
loopFocus: props.loopFocus ?? false,
|
|
52
|
+
onValueChange: (details) => {
|
|
53
|
+
this.value = details.value;
|
|
54
|
+
this.valueAsString = details.items.map((i) => i.label || i.value).join(", ");
|
|
55
|
+
props.onValueChange?.(details);
|
|
56
|
+
},
|
|
57
|
+
onOpenChange: (details) => {
|
|
58
|
+
this.open = details.open;
|
|
59
|
+
props.onOpenChange?.(details);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
connectApi(service) {
|
|
64
|
+
return select.connect(service, normalizeProps);
|
|
65
|
+
}
|
|
66
|
+
getSpreadMap() {
|
|
67
|
+
return {
|
|
68
|
+
"[data-part=\"root\"]": "getRootProps",
|
|
69
|
+
"[data-part=\"label\"]": "getLabelProps",
|
|
70
|
+
"[data-part=\"control\"]": "getControlProps",
|
|
71
|
+
"[data-part=\"trigger\"]": "getTriggerProps",
|
|
72
|
+
"[data-part=\"indicator\"]": "getIndicatorProps",
|
|
73
|
+
"[data-part=\"clear-trigger\"]": "getClearTriggerProps",
|
|
74
|
+
"[data-part=\"value-text\"]": "getValueTextProps",
|
|
75
|
+
"[data-part=\"positioner\"]": "getPositionerProps",
|
|
76
|
+
"[data-part=\"content\"]": "getContentProps",
|
|
77
|
+
"[data-part=\"list\"]": "getListProps",
|
|
78
|
+
"[data-part=\"item\"]": (api, el) => {
|
|
79
|
+
const value = el.dataset.value;
|
|
80
|
+
const label = el.dataset.label || value;
|
|
81
|
+
return api.getItemProps({ item: {
|
|
82
|
+
value,
|
|
83
|
+
label
|
|
84
|
+
} });
|
|
85
|
+
},
|
|
86
|
+
"[data-part=\"item-text\"]": (api, el) => {
|
|
87
|
+
const value = el.dataset.value;
|
|
88
|
+
const label = el.dataset.label || value;
|
|
89
|
+
return api.getItemTextProps({ item: {
|
|
90
|
+
value,
|
|
91
|
+
label
|
|
92
|
+
} });
|
|
93
|
+
},
|
|
94
|
+
"[data-part=\"item-indicator\"]": (api, el) => {
|
|
95
|
+
const value = el.dataset.value;
|
|
96
|
+
const label = el.dataset.label || value;
|
|
97
|
+
return api.getItemIndicatorProps({ item: {
|
|
98
|
+
value,
|
|
99
|
+
label
|
|
100
|
+
} });
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
syncState(api) {
|
|
105
|
+
this.open = api.open;
|
|
106
|
+
this.value = api.value;
|
|
107
|
+
this.valueAsString = api.valueAsString;
|
|
108
|
+
}
|
|
109
|
+
template(props) {
|
|
110
|
+
const __id = this.id;
|
|
111
|
+
Component._register(ZagComponent, "zag-component");
|
|
112
|
+
const items = props.items || [];
|
|
113
|
+
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="select-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div data-part="control" class="select-control"><button data-part="trigger" class="select-trigger flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50"><span id="${__id + "-b1"}" data-part="value-text" class="select-value-text">${geaEscapeHtml(String(this.valueAsString || props.placeholder || "Select..."))}</span><span data-part="indicator" class="select-indicator">▼</span></button></div><div data-part="positioner" class="select-positioner"><div data-part="content" class="select-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md"><div id="${__id + "-b2"}" data-part="list">${items.map((item) => `<div data-gea-item-id="${item?.value ?? item}" data-part="item"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`}${item.label == null || item.label === false ? "" : ` data-label="${item.label}"`} class="select-item relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50"><span data-part="item-text"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`}${item.label == null || item.label === false ? "" : ` data-label="${item.label}"`}>${item.label}</span><span data-part="item-indicator"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`}${item.label == null || item.label === false ? "" : ` data-label="${item.label}"`} class="select-item-indicator ml-auto">✓</span></div>`).join("") + "<!---->"}</div></div></div></div>`;
|
|
114
|
+
}
|
|
115
|
+
render__unresolved_0Item(item) {
|
|
116
|
+
return `<div data-gea-item-id="${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="select-item relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50"><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="select-item-indicator ml-auto">✓</span></div>`;
|
|
117
|
+
}
|
|
118
|
+
create__unresolved_0Item(item) {
|
|
119
|
+
var __c = this.#__dc_b2 || (this.#__dc_b2 = this.____unresolved_0_container);
|
|
120
|
+
if (!__c[GEA_MAP_CONFIG_TPL]) try {
|
|
121
|
+
var __tw = document.createElement("template");
|
|
122
|
+
__tw.innerHTML = this.render__unresolved_0Item({
|
|
123
|
+
value: 0,
|
|
124
|
+
label: " "
|
|
125
|
+
});
|
|
126
|
+
__c[GEA_MAP_CONFIG_TPL] = __tw.content.firstElementChild;
|
|
127
|
+
__c[GEA_MAP_CONFIG_TPL]?.removeAttribute("data-gea-item-id");
|
|
128
|
+
} catch (__err) {
|
|
129
|
+
console.error(__err);
|
|
130
|
+
}
|
|
131
|
+
if (__c[GEA_MAP_CONFIG_TPL]) var el = __c[GEA_MAP_CONFIG_TPL].cloneNode(true);
|
|
132
|
+
else {
|
|
133
|
+
var __fw = document.createElement("template");
|
|
134
|
+
__fw.innerHTML = this.render__unresolved_0Item(item);
|
|
135
|
+
var el = __fw.content.firstElementChild;
|
|
136
|
+
}
|
|
137
|
+
el.__ref_0 = el.firstElementChild;
|
|
138
|
+
el.__ref_1 = el.firstElementChild.nextElementSibling;
|
|
139
|
+
var __av = item.value;
|
|
140
|
+
if (__av == null || __av === false) el.removeAttribute("data-value");
|
|
141
|
+
else {
|
|
142
|
+
const __newAttr = String(__av);
|
|
143
|
+
if (el.getAttribute("data-value") !== __newAttr) el.setAttribute("data-value", __newAttr);
|
|
144
|
+
}
|
|
145
|
+
var __av = item.label;
|
|
146
|
+
if (__av == null || __av === false) el.removeAttribute("data-label");
|
|
147
|
+
else {
|
|
148
|
+
const __newAttr = String(__av);
|
|
149
|
+
if (el.getAttribute("data-label") !== __newAttr) el.setAttribute("data-label", __newAttr);
|
|
150
|
+
}
|
|
151
|
+
var __av = item.value;
|
|
152
|
+
if (__av == null || __av === false) el.__ref_0.removeAttribute("data-value");
|
|
153
|
+
else {
|
|
154
|
+
const __newAttr = String(__av);
|
|
155
|
+
if (el.__ref_0.getAttribute("data-value") !== __newAttr) el.__ref_0.setAttribute("data-value", __newAttr);
|
|
156
|
+
}
|
|
157
|
+
var __av = item.label;
|
|
158
|
+
if (__av == null || __av === false) el.__ref_0.removeAttribute("data-label");
|
|
159
|
+
else {
|
|
160
|
+
const __newAttr = String(__av);
|
|
161
|
+
if (el.__ref_0.getAttribute("data-label") !== __newAttr) el.__ref_0.setAttribute("data-label", __newAttr);
|
|
162
|
+
}
|
|
163
|
+
el.__ref_0.firstChild.nodeValue = `
|
|
164
|
+
${item.label}
|
|
165
|
+
`;
|
|
166
|
+
var __av = item.value;
|
|
167
|
+
if (__av == null || __av === false) el.__ref_1.removeAttribute("data-value");
|
|
168
|
+
else {
|
|
169
|
+
const __newAttr = String(__av);
|
|
170
|
+
if (el.__ref_1.getAttribute("data-value") !== __newAttr) el.__ref_1.setAttribute("data-value", __newAttr);
|
|
171
|
+
}
|
|
172
|
+
var __av = item.label;
|
|
173
|
+
if (__av == null || __av === false) el.__ref_1.removeAttribute("data-label");
|
|
174
|
+
else {
|
|
175
|
+
const __newAttr = String(__av);
|
|
176
|
+
if (el.__ref_1.getAttribute("data-label") !== __newAttr) el.__ref_1.setAttribute("data-label", __newAttr);
|
|
177
|
+
}
|
|
178
|
+
el[GEA_DOM_KEY] = String(item?.value ?? item);
|
|
179
|
+
el[GEA_DOM_ITEM] = item;
|
|
180
|
+
return el;
|
|
181
|
+
}
|
|
182
|
+
patch__unresolved_0Item(row, item, __prevItem) {
|
|
183
|
+
if (!row) return;
|
|
184
|
+
if (!row.__ref_0) row.__ref_0 = row.firstElementChild;
|
|
185
|
+
if (!row.__ref_1) row.__ref_1 = row.firstElementChild.nextElementSibling;
|
|
186
|
+
var __av = item.value;
|
|
187
|
+
if (__av == null || __av === false) row.removeAttribute("data-value");
|
|
188
|
+
else {
|
|
189
|
+
const __newAttr = String(__av);
|
|
190
|
+
if (row.getAttribute("data-value") !== __newAttr) row.setAttribute("data-value", __newAttr);
|
|
191
|
+
}
|
|
192
|
+
var __av = item.label;
|
|
193
|
+
if (__av == null || __av === false) row.removeAttribute("data-label");
|
|
194
|
+
else {
|
|
195
|
+
const __newAttr = String(__av);
|
|
196
|
+
if (row.getAttribute("data-label") !== __newAttr) row.setAttribute("data-label", __newAttr);
|
|
197
|
+
}
|
|
198
|
+
var __av = item.value;
|
|
199
|
+
if (__av == null || __av === false) row.__ref_0.removeAttribute("data-value");
|
|
200
|
+
else {
|
|
201
|
+
const __newAttr = String(__av);
|
|
202
|
+
if (row.__ref_0.getAttribute("data-value") !== __newAttr) row.__ref_0.setAttribute("data-value", __newAttr);
|
|
203
|
+
}
|
|
204
|
+
var __av = item.label;
|
|
205
|
+
if (__av == null || __av === false) row.__ref_0.removeAttribute("data-label");
|
|
206
|
+
else {
|
|
207
|
+
const __newAttr = String(__av);
|
|
208
|
+
if (row.__ref_0.getAttribute("data-label") !== __newAttr) row.__ref_0.setAttribute("data-label", __newAttr);
|
|
209
|
+
}
|
|
210
|
+
row.__ref_0.firstChild.nodeValue = `
|
|
211
|
+
${item.label}
|
|
212
|
+
`;
|
|
213
|
+
var __av = item.value;
|
|
214
|
+
if (__av == null || __av === false) row.__ref_1.removeAttribute("data-value");
|
|
215
|
+
else {
|
|
216
|
+
const __newAttr = String(__av);
|
|
217
|
+
if (row.__ref_1.getAttribute("data-value") !== __newAttr) row.__ref_1.setAttribute("data-value", __newAttr);
|
|
218
|
+
}
|
|
219
|
+
var __av = item.label;
|
|
220
|
+
if (__av == null || __av === false) row.__ref_1.removeAttribute("data-label");
|
|
221
|
+
else {
|
|
222
|
+
const __newAttr = String(__av);
|
|
223
|
+
if (row.__ref_1.getAttribute("data-label") !== __newAttr) row.__ref_1.setAttribute("data-label", __newAttr);
|
|
224
|
+
}
|
|
225
|
+
row[GEA_DOM_KEY] = String(item?.value ?? item);
|
|
226
|
+
(this.#__rowEls_b2 || (this.#__rowEls_b2 = {}))[String(item?.value ?? item)] = row;
|
|
227
|
+
row[GEA_DOM_ITEM] = item;
|
|
228
|
+
}
|
|
229
|
+
__onPropChange(key, value) {
|
|
230
|
+
const __id = this.id;
|
|
231
|
+
if (key === "class") {
|
|
232
|
+
const __el = this[GEA_ELEMENT];
|
|
233
|
+
this.props;
|
|
234
|
+
const __boundValue = value || "";
|
|
235
|
+
if (__el) {
|
|
236
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
237
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (key === "placeholder") {
|
|
241
|
+
const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
|
|
242
|
+
this.props;
|
|
243
|
+
const __boundValue = this.valueAsString || value || "Select...";
|
|
244
|
+
if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
|
|
245
|
+
}
|
|
246
|
+
if (key === "label") this[GEA_PATCH_COND](0);
|
|
247
|
+
if (key === "items") this[GEA_SYNC_MAP](0);
|
|
248
|
+
}
|
|
249
|
+
*GEA_RESET_ELS() {
|
|
250
|
+
this.__e0 = null;
|
|
251
|
+
}
|
|
252
|
+
__observe_local_valueAsString(value, change) {
|
|
253
|
+
const __id = this.id;
|
|
254
|
+
if (this[GEA_RENDERED]) {
|
|
255
|
+
const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
|
|
256
|
+
this.props;
|
|
257
|
+
const __boundValue = this.valueAsString || value || "Select...";
|
|
258
|
+
if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
__observe_local_props(__v, __c) {
|
|
262
|
+
this[GEA_SYNC_MAP](0);
|
|
263
|
+
}
|
|
264
|
+
createdHooks() {
|
|
265
|
+
this[GEA_REGISTER_MAP](0, "____unresolved_0_container", () => document.getElementById(this.id + "-b2"), () => {
|
|
266
|
+
return this.props.items || [];
|
|
267
|
+
}, (__item) => this.create__unresolved_0Item(__item), "value");
|
|
268
|
+
}
|
|
269
|
+
[GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
|
|
270
|
+
if (!this.__store) return;
|
|
271
|
+
this[GEA_OBSERVE](this, ["valueAsString"], this.__observe_local_valueAsString);
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
//#endregion
|
|
275
|
+
export { Select as default };
|
|
276
|
+
|
|
277
|
+
//# sourceMappingURL=select.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.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","select","normalizeProps","ZagComponent","Select","__rowEls_b2","__dc_b2","constructor","args","props","label","String","open","value","valueAsString","createMachine","_props","machine","getMachineProps","items","col","collection","itemToValue","item","itemToString","id","defaultValue","defaultOpen","multiple","disabled","invalid","readOnly","required","name","form","closeOnSelect","positioning","loopFocus","onValueChange","details","ValueChangeDetails","map","i","join","onOpenChange","OpenChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","HTMLElement","dataset","getItemProps","[data-part=\"item-text\"]","getItemTextProps","[data-part=\"item-indicator\"]","getItemIndicatorProps","syncState","template","__id","_register","class","trim","placeholder","render__unresolved_0Item","create__unresolved_0Item","__c","____unresolved_0_container","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","cloneNode","__fw","__ref_0","__ref_1","nextElementSibling","__av","__newAttr","getAttribute","setAttribute","firstChild","nodeValue","patch__unresolved_0Item","row","__prevItem","__onPropChange","key","__el","__boundValue","__newClass","className","__e0","getElementById","textContent","__observe_local_valueAsString","change","__observe_local_props","createdHooks","__item","__store"],"sources":["../src/components/select.tsx"],"sourcesContent":["import * as select from '@zag-js/select'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Select extends ZagComponent {\n declare open: boolean\n declare value: string[]\n declare valueAsString: string\n\n createMachine(_props: any): any {\n return select.machine\n }\n\n getMachineProps(props: any) {\n const items = props.items || []\n const col =\n props.collection ||\n select.collection({\n items,\n itemToValue: (item: any) => item.value,\n itemToString: (item: any) => item.label || item.value,\n })\n\n return {\n id: this.id,\n collection: col,\n value: props.value,\n defaultValue: props.defaultValue,\n open: props.open,\n defaultOpen: props.defaultOpen,\n multiple: props.multiple,\n disabled: props.disabled,\n invalid: props.invalid,\n readOnly: props.readOnly,\n required: props.required,\n name: props.name,\n form: props.form,\n closeOnSelect: props.closeOnSelect ?? true,\n positioning: props.positioning,\n loopFocus: props.loopFocus ?? false,\n onValueChange: (details: select.ValueChangeDetails) => {\n this.value = details.value\n this.valueAsString = details.items.map((i: any) => i.label || i.value).join(', ')\n props.onValueChange?.(details)\n },\n onOpenChange: (details: select.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return select.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=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"indicator\"]': 'getIndicatorProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n '[data-part=\"value-text\"]': 'getValueTextProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"list\"]': 'getListProps',\n '[data-part=\"item\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemProps({ item: { value, label } })\n },\n '[data-part=\"item-text\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemTextProps({ item: { value, label } })\n },\n '[data-part=\"item-indicator\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemIndicatorProps({ item: { value, label } })\n },\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n this.value = api.value\n this.valueAsString = api.valueAsString\n }\n\n template(props: any) {\n const items = props.items || []\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"select-label text-sm font-medium mb-1 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"select-control\">\n <button\n data-part=\"trigger\"\n class=\"select-trigger flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <span data-part=\"value-text\" class=\"select-value-text\">\n {this.valueAsString || props.placeholder || 'Select...'}\n </span>\n <span data-part=\"indicator\" class=\"select-indicator\">\n ▼\n </span>\n </button>\n </div>\n <div data-part=\"positioner\" class=\"select-positioner\">\n <div\n data-part=\"content\"\n class=\"select-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n <div data-part=\"list\">\n {items.map((item: any) => (\n <div\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n data-label={item.label}\n class=\"select-item relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n >\n <span data-part=\"item-text\" data-value={item.value} data-label={item.label}>\n {item.label}\n </span>\n <span\n data-part=\"item-indicator\"\n data-value={item.value}\n data-label={item.label}\n class=\"select-item-indicator ml-auto\"\n >\n ✓\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { t as cn } from "./cn.mjs";
|
|
2
|
+
import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
|
|
3
|
+
//#region src/components/separator.tsx
|
|
4
|
+
var Separator = class extends Component {
|
|
5
|
+
static {
|
|
6
|
+
this[GEA_CTOR_TAG_NAME] = "separator";
|
|
7
|
+
}
|
|
8
|
+
template(props) {
|
|
9
|
+
const __id = this.id;
|
|
10
|
+
const isVertical = props.orientation === "vertical";
|
|
11
|
+
return `<div id="${__id}"${cn("shrink-0 bg-border", isVertical ? "h-full w-[1px]" : "h-[1px] w-full", props.class) == null || cn("shrink-0 bg-border", isVertical ? "h-full w-[1px]" : "h-[1px] w-full", props.class) === false ? "" : ` class="${(cn("shrink-0 bg-border", isVertical ? "h-full w-[1px]" : "h-[1px] w-full", props.class) != null ? String(cn("shrink-0 bg-border", isVertical ? "h-full w-[1px]" : "h-[1px] w-full", props.class)) : "").trim()}"`} role="separator"${(props.orientation || "horizontal") == null || (props.orientation || "horizontal") === false ? "" : ` aria-orientation="${props.orientation || "horizontal"}"`}></div>`;
|
|
12
|
+
}
|
|
13
|
+
__onPropChange(key, value) {
|
|
14
|
+
if (key === "orientation") {
|
|
15
|
+
{
|
|
16
|
+
const __el = this[GEA_ELEMENT];
|
|
17
|
+
this.props;
|
|
18
|
+
const __boundValue = cn("shrink-0 bg-border", this.props.orientation === "vertical" ? "h-full w-[1px]" : "h-[1px] w-full", this.props.class);
|
|
19
|
+
if (__el) {
|
|
20
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
21
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
{
|
|
25
|
+
const __el = this[GEA_ELEMENT];
|
|
26
|
+
this.props;
|
|
27
|
+
const __boundValue = value || "horizontal";
|
|
28
|
+
if (__el) if (__boundValue === null || __boundValue === void 0) __el.removeAttribute("aria-orientation");
|
|
29
|
+
else {
|
|
30
|
+
const __newAttr = String(__boundValue);
|
|
31
|
+
if (__el.getAttribute("aria-orientation") !== __newAttr) __el.setAttribute("aria-orientation", __newAttr);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (key === "class") {
|
|
36
|
+
const __el = this[GEA_ELEMENT];
|
|
37
|
+
this.props;
|
|
38
|
+
const __boundValue = cn("shrink-0 bg-border", this.props.orientation === "vertical" ? "h-full w-[1px]" : "h-[1px] w-full", value);
|
|
39
|
+
if (__el) {
|
|
40
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
41
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { Separator as default };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=separator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.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","Separator","template","props","__id","id","isVertical","orientation","class","String","trim","__onPropChange","key","value","__el","__boundValue","__newClass","className","undefined","removeAttribute","__newAttr","getAttribute","setAttribute"],"sources":["../src/components/separator.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Separator extends Component {\n template(props: any) {\n const isVertical = props.orientation === 'vertical'\n\n return (\n <div\n class={cn('shrink-0 bg-border', isVertical ? 'h-full w-[1px]' : 'h-[1px] w-full', props.class)}\n role=\"separator\"\n aria-orientation={props.orientation || 'horizontal'}\n ></div>\n )\n }\n}\n"],"mappings":";;;AAGA,IAAqBuC,YAArB,cAAuCvC,UAAU;;OAAAqC,qBAAA;;CAC/CG,SAASC,OAAY;EAAA,MAAAC,OAAA,KAAAC;EACnB,MAAMC,aAAaH,MAAMI,gBAAgB;AAEzC,SAAA,YAAAH,KAAA,GAEWJ,GAAG,sBAAsBM,aAAa,mBAAmB,kBAAkBH,MAAMK,MAAM,IAAA,QAAvFR,GAAG,sBAAsBM,aAAa,mBAAmB,kBAAkBH,MAAMK,MAAM,KAAA,QAAA,KAAA,YAAvFR,GAAG,sBAAsBM,aAAa,mBAAmB,kBAAkBH,MAAMK,MAAM,IAAA,OAAAC,OAAvFT,GAAG,sBAAsBM,aAAa,mBAAmB,kBAAkBH,MAAMK,MAAM,CAAA,GAAA,IAAAE,MAAA,CAAA,GAAA,oBAE5EP,MAAMI,eAAe,iBAAY,SAAjCJ,MAAMI,eAAe,kBAAY,QAAA,KAAA,sBAAjCJ,MAAMI,eAAe,aAAY,GAAA;;CAV3DI,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,eAAA;GAAA;IAAA,MAAAE,OAAA,KAAAlD;AAGX,SAAAuC;IACkC,MAAAY,eAIxCf,GAAG,sBAJE,KAAAG,MAASI,gBAAgB,aAIQ,mBAAmB,kBAAgB,KAAAJ,MAAQK,MAAK;AAAA,QAAAM,MAAA;KAAA,MAAAE,cAAAD,gBAAA,OAAAN,OAAAM,aAAA,GAAA,IAAAL,MAAA;AAAA,SAAAI,KAAAG,cAAAD,WAAAF,MAAAG,YAAAD;;;GAAA;IAAA,MAAAF,OAAA,KAAAlD;AALhF,SAAAuC;IAAA,MAAAY,eAAAF,SAO0B;AAAY,QAAAC,KAAA,KAAAC,iBAAA,QAAAA,iBAAAG,KAAAA,EAAAJ,MAAAK,gBAAA,mBAAA;SAAA;KAAA,MAAAC,YAAAX,OAAAM,aAAA;AAAA,SAAAD,KAAAO,aAAA,mBAAA,KAAAD,UAAAN,MAAAQ,aAAA,oBAAAF,UAAA;;;;AAAA,MAAAR,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAlD;AAPtC,QAAAuC;GACkC,MAAAY,eAIxCf,GAAG,sBAJE,KAAAG,MAASI,gBAAgB,aAIQ,mBAAmB,kBAAgBM,MAAA;AAAA,OAAAC,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAAN,OAAAM,aAAA,GAAA,IAAAL,MAAA;AAAA,QAAAI,KAAAG,cAAAD,WAAAF,MAAAG,YAAAD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { t as cn } from "./cn.mjs";
|
|
2
|
+
import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
|
|
3
|
+
//#region src/components/skeleton.tsx
|
|
4
|
+
var Skeleton = class extends Component {
|
|
5
|
+
static {
|
|
6
|
+
this[GEA_CTOR_TAG_NAME] = "skeleton";
|
|
7
|
+
}
|
|
8
|
+
template(props) {
|
|
9
|
+
return `<div id="${this.id}"${cn("animate-pulse rounded-md bg-primary/10", props.class) == null || cn("animate-pulse rounded-md bg-primary/10", props.class) === false ? "" : ` class="${(cn("animate-pulse rounded-md bg-primary/10", props.class) != null ? String(cn("animate-pulse rounded-md bg-primary/10", props.class)) : "").trim()}"`}></div>`;
|
|
10
|
+
}
|
|
11
|
+
static {
|
|
12
|
+
this.__tpl = (() => {
|
|
13
|
+
if (typeof document === "undefined") return void 0;
|
|
14
|
+
var t = document.createElement("template");
|
|
15
|
+
t.innerHTML = "<div></div>";
|
|
16
|
+
return t;
|
|
17
|
+
})();
|
|
18
|
+
}
|
|
19
|
+
__cloneTemplate() {
|
|
20
|
+
const __id = this.id;
|
|
21
|
+
var __tpl = this.constructor.__tpl;
|
|
22
|
+
if (!__tpl) throw new Error("[gea] __tpl missing for clone template");
|
|
23
|
+
var __root = __tpl.content.firstElementChild.cloneNode(true);
|
|
24
|
+
__root.id = __id;
|
|
25
|
+
__root.className = (cn("animate-pulse rounded-md bg-primary/10", props.class) != null ? String(cn("animate-pulse rounded-md bg-primary/10", props.class)) : "").trim();
|
|
26
|
+
return __root;
|
|
27
|
+
}
|
|
28
|
+
__onPropChange(key, value) {
|
|
29
|
+
if (key === "class") {
|
|
30
|
+
const __el = this[GEA_ELEMENT];
|
|
31
|
+
this.props;
|
|
32
|
+
const __boundValue = cn("animate-pulse rounded-md bg-primary/10", value);
|
|
33
|
+
if (__el) {
|
|
34
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
35
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { Skeleton as default };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=skeleton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.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","Skeleton","template","props","__id","id","class","String","trim","__tpl","document","undefined","t","createElement","innerHTML","__cloneTemplate","constructor","Error","__root","content","firstElementChild","cloneNode","className","__onPropChange","key","value","__el","__boundValue","__newClass"],"sources":["../src/components/skeleton.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Skeleton extends Component {\n template(props: any) {\n return <div class={cn('animate-pulse rounded-md bg-primary/10', props.class)}></div>\n }\n}\n"],"mappings":";;;AAGA,IAAqBuC,WAArB,cAAsCvC,UAAU;;OAAAqC,qBAAA;;CAC9CG,SAASC,OAAY;AACnB,SAAA,YADmB,KAAAE,GACnB,GAAmBL,GAAG,0CAA0CG,MAAMG,MAAM,IAAA,QAAzDN,GAAG,0CAA0CG,MAAMG,MAAM,KAAA,QAAA,KAAA,YAAzDN,GAAG,0CAA0CG,MAAMG,MAAM,IAAA,OAAAC,OAAzDP,GAAG,0CAA0CG,MAAMG,MAAM,CAAA,GAAA,IAAAE,MAAA,CAAA,GAAA;;;sBAC7E;AAAA,OAAA,OAAAE,aAAA,YAAA,QAAAC,KAAAA;GAAA,IAAAC,IAAAF,SAAAG,cAAA,WAAA;AAAAD,KAAAE,YAAA;AAAA,UAAAF;MAAA;;CAAAG,kBAAA;EAAA,MAAAX,OAAA,KAAAC;EAAA,IAAAI,QAAA,KAAAO,YAAAP;AAAA,MAAA,CAAAA,MAAA,OAAA,IAAAQ,MAAA,yCAAA;EAAA,IAAAC,SAAAT,MAAAU,QAAAC,kBAAAC,UAAA,KAAA;AAAAH,SAAAb,KAAAD;AAAAc,SAAAI,aADoBtB,GAAG,0CAA0CG,MAAMG,MAAM,IAAA,OAAAC,OAAzDP,GAAG,0CAA0CG,MAAMG,MAAM,CAAA,GAAA,IAAAE,MAAA;AAAA,SAAAU;;CAJhFK,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAA9D;AAGX,QAAAuC;GAAA,MAAAwB,eACE3B,GAAG,0CAAwCyB,MAAA;AAAA,OAAAC,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAApB,OAAAoB,aAAA,GAAA,IAAAnB,MAAA;AAAA,QAAAkB,KAAAJ,cAAAM,WAAAF,MAAAJ,YAAAM"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { n as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import * as slider from "@zag-js/slider";
|
|
3
|
+
import * as _$_zag_js_types0 from "@zag-js/types";
|
|
4
|
+
|
|
5
|
+
//#region src/components/slider.d.ts
|
|
6
|
+
declare class Slider extends ZagComponent {
|
|
7
|
+
value: number[];
|
|
8
|
+
createMachine(_props: any): any;
|
|
9
|
+
getMachineProps(props: any): {
|
|
10
|
+
id: any;
|
|
11
|
+
value: any;
|
|
12
|
+
defaultValue: any;
|
|
13
|
+
min: any;
|
|
14
|
+
max: any;
|
|
15
|
+
step: any;
|
|
16
|
+
orientation: any;
|
|
17
|
+
thumbAlignment: any;
|
|
18
|
+
disabled: any;
|
|
19
|
+
readOnly: any;
|
|
20
|
+
name: any;
|
|
21
|
+
'aria-label': any;
|
|
22
|
+
onValueChange: (details: slider.ValueChangeDetails) => void;
|
|
23
|
+
onValueChangeEnd: any;
|
|
24
|
+
};
|
|
25
|
+
connectApi(service: any): slider.Api<_$_zag_js_types0.PropTypes<{
|
|
26
|
+
[x: string]: any;
|
|
27
|
+
}>>;
|
|
28
|
+
getSpreadMap(): {
|
|
29
|
+
'[data-part="root"]': string;
|
|
30
|
+
'[data-part="label"]': string;
|
|
31
|
+
'[data-part="control"]': string;
|
|
32
|
+
'[data-part="track"]': string;
|
|
33
|
+
'[data-part="range"]': string;
|
|
34
|
+
'[data-part="thumb"]': (api: any, el: any) => any;
|
|
35
|
+
'[data-part="hidden-input"]': (api: any, el: any) => any;
|
|
36
|
+
};
|
|
37
|
+
_syncThumbs(): void;
|
|
38
|
+
syncState(api: any): void;
|
|
39
|
+
_applyAllSpreads(): void;
|
|
40
|
+
template(props: any): string;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { Slider as default };
|
|
44
|
+
//# sourceMappingURL=slider.d.mts.map
|
package/dist/slider.mjs
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
+
import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT, GEA_PATCH_COND, GEA_REGISTER_COND, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
|
|
3
|
+
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
|
+
import * as slider from "@zag-js/slider";
|
|
5
|
+
//#region src/components/slider.tsx
|
|
6
|
+
const THUMB_CLASS = "slider-thumb block h-5 w-5 rounded-full border-2 border-primary bg-background shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2";
|
|
7
|
+
var Slider = class extends ZagComponent {
|
|
8
|
+
static {
|
|
9
|
+
this[GEA_CTOR_TAG_NAME] = "slider";
|
|
10
|
+
}
|
|
11
|
+
constructor(...args) {
|
|
12
|
+
super(...args);
|
|
13
|
+
this.props;
|
|
14
|
+
this[geaCondValueSymbol(0)] = !!this.props.label;
|
|
15
|
+
this[GEA_REGISTER_COND](0, "c0", () => {
|
|
16
|
+
this.props;
|
|
17
|
+
return this.props.label;
|
|
18
|
+
}, () => {
|
|
19
|
+
this.props;
|
|
20
|
+
return `<div class="flex justify-between mb-2"><label data-part="label" class="slider-label text-sm font-medium">${geaEscapeHtml(String(this.props.label))}</label></div>`;
|
|
21
|
+
}, null);
|
|
22
|
+
}
|
|
23
|
+
createMachine(_props) {
|
|
24
|
+
return slider.machine;
|
|
25
|
+
}
|
|
26
|
+
getMachineProps(props) {
|
|
27
|
+
return {
|
|
28
|
+
id: this.id,
|
|
29
|
+
value: props.value,
|
|
30
|
+
defaultValue: props.defaultValue ?? [50],
|
|
31
|
+
min: props.min ?? 0,
|
|
32
|
+
max: props.max ?? 100,
|
|
33
|
+
step: props.step ?? 1,
|
|
34
|
+
orientation: props.orientation ?? "horizontal",
|
|
35
|
+
thumbAlignment: props.thumbAlignment ?? "center",
|
|
36
|
+
disabled: props.disabled,
|
|
37
|
+
readOnly: props.readOnly,
|
|
38
|
+
name: props.name,
|
|
39
|
+
"aria-label": props["aria-label"],
|
|
40
|
+
onValueChange: (details) => {
|
|
41
|
+
this.value = details.value;
|
|
42
|
+
props.onValueChange?.(details);
|
|
43
|
+
},
|
|
44
|
+
onValueChangeEnd: props.onValueChangeEnd
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
connectApi(service) {
|
|
48
|
+
return slider.connect(service, normalizeProps);
|
|
49
|
+
}
|
|
50
|
+
getSpreadMap() {
|
|
51
|
+
return {
|
|
52
|
+
"[data-part=\"root\"]": "getRootProps",
|
|
53
|
+
"[data-part=\"label\"]": "getLabelProps",
|
|
54
|
+
"[data-part=\"control\"]": "getControlProps",
|
|
55
|
+
"[data-part=\"track\"]": "getTrackProps",
|
|
56
|
+
"[data-part=\"range\"]": "getRangeProps",
|
|
57
|
+
"[data-part=\"thumb\"]": (api, el) => {
|
|
58
|
+
const index = parseInt(el.dataset.index || "0", 10);
|
|
59
|
+
return api.getThumbProps({ index });
|
|
60
|
+
},
|
|
61
|
+
"[data-part=\"hidden-input\"]": (api, el) => {
|
|
62
|
+
const index = parseInt(el.dataset.index || "0", 10);
|
|
63
|
+
return api.getHiddenInputProps({ index });
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
_syncThumbs() {
|
|
68
|
+
if (!this._api || !this.el) return;
|
|
69
|
+
const control = this.el.querySelector("[data-part=\"control\"]");
|
|
70
|
+
if (!control) return;
|
|
71
|
+
const thumbCount = this._api.value.length;
|
|
72
|
+
const existing = control.querySelectorAll(":scope > [data-part=\"thumb\"]");
|
|
73
|
+
if (existing.length === thumbCount) return;
|
|
74
|
+
if (existing.length < thumbCount) for (let i = existing.length; i < thumbCount; i++) {
|
|
75
|
+
const thumb = document.createElement("div");
|
|
76
|
+
thumb.setAttribute("data-part", "thumb");
|
|
77
|
+
thumb.setAttribute("data-index", String(i));
|
|
78
|
+
thumb.className = THUMB_CLASS;
|
|
79
|
+
const input = document.createElement("input");
|
|
80
|
+
input.setAttribute("data-part", "hidden-input");
|
|
81
|
+
input.setAttribute("data-index", String(i));
|
|
82
|
+
input.type = "hidden";
|
|
83
|
+
thumb.appendChild(input);
|
|
84
|
+
control.appendChild(thumb);
|
|
85
|
+
}
|
|
86
|
+
else for (let i = existing.length - 1; i >= thumbCount; i--) existing[i].remove();
|
|
87
|
+
}
|
|
88
|
+
syncState(api) {
|
|
89
|
+
this.value = api.value;
|
|
90
|
+
}
|
|
91
|
+
_applyAllSpreads() {
|
|
92
|
+
this._syncThumbs();
|
|
93
|
+
this._elementCache?.clear();
|
|
94
|
+
super._applyAllSpreads();
|
|
95
|
+
}
|
|
96
|
+
template(props) {
|
|
97
|
+
const __id = this.id;
|
|
98
|
+
Component._register(ZagComponent, "zag-component");
|
|
99
|
+
return `<div id="${__id}" data-part="root"${"w-full " + (props.class || "") == null || "w-full " + (props.class || "") === false ? "" : ` class="${("w-full " + (props.class || "") != null ? String("w-full " + (props.class || "")) : "").trim()}"`}><!--${__id + "-c0"}-->${props.label && `<div class="flex justify-between mb-2"><label data-part="label" class="slider-label text-sm font-medium">${geaEscapeHtml(String(props.label))}</label></div>` || ""}<!--${__id + "-c0-end"}--><div data-part="control" class="slider-control relative flex items-center"><div data-part="track" class="slider-track relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20"><div data-part="range" class="slider-range absolute h-full bg-primary"></div></div><div data-part="thumb" data-index="0"${THUMB_CLASS == null || THUMB_CLASS === false ? "" : ` class="${(THUMB_CLASS != null ? String(THUMB_CLASS) : "").trim()}"`}><input data-part="hidden-input" data-index="0" type="hidden" /></div></div></div>`;
|
|
100
|
+
}
|
|
101
|
+
__onPropChange(key, value) {
|
|
102
|
+
if (key === "class") {
|
|
103
|
+
const __el = this[GEA_ELEMENT];
|
|
104
|
+
this.props;
|
|
105
|
+
const __boundValue = "w-full " + (value || "");
|
|
106
|
+
if (__el) {
|
|
107
|
+
const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
|
|
108
|
+
if (__el.className !== __newClass) __el.className = __newClass;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (key === "label") this[GEA_PATCH_COND](0);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
//#endregion
|
|
115
|
+
export { Slider as default };
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=slider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.mjs","names":["slider","normalizeProps","ZagComponent","THUMB_CLASS","Slider","GEA_CTOR_TAG_NAME","constructor","args","props","geaCondValueSymbol","label","GEA_REGISTER_COND","geaEscapeHtml","String","value","createMachine","_props","machine","getMachineProps","id","defaultValue","min","max","step","orientation","thumbAlignment","disabled","readOnly","name","onValueChange","details","ValueChangeDetails","onValueChangeEnd","connectApi","service","connect","getSpreadMap","[data-part=\"thumb\"]","api","el","index","parseInt","HTMLElement","dataset","getThumbProps","[data-part=\"hidden-input\"]","getHiddenInputProps","_syncThumbs","_api","control","querySelector","thumbCount","length","existing","querySelectorAll","i","thumb","document","createElement","setAttribute","className","input","type","appendChild","remove","syncState","_applyAllSpreads","_elementCache","clear","template","__id","Component","_register","class","trim","__onPropChange","key","__el","GEA_ELEMENT","__boundValue","__newClass","GEA_PATCH_COND"],"sources":["../src/components/slider.tsx"],"sourcesContent":["import * as slider from '@zag-js/slider'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nconst THUMB_CLASS =\n 'slider-thumb block h-5 w-5 rounded-full border-2 border-primary bg-background shadow ' +\n 'ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 ' +\n 'focus-visible:ring-ring focus-visible:ring-offset-2'\n\nexport default class Slider extends ZagComponent {\n declare value: number[]\n\n createMachine(_props: any): any {\n return slider.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue ?? [50],\n min: props.min ?? 0,\n max: props.max ?? 100,\n step: props.step ?? 1,\n orientation: props.orientation ?? 'horizontal',\n thumbAlignment: props.thumbAlignment ?? 'center',\n disabled: props.disabled,\n readOnly: props.readOnly,\n name: props.name,\n 'aria-label': props['aria-label'],\n onValueChange: (details: slider.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n onValueChangeEnd: props.onValueChangeEnd,\n }\n }\n\n connectApi(service: any) {\n return slider.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=\"track\"]': 'getTrackProps',\n '[data-part=\"range\"]': 'getRangeProps',\n '[data-part=\"thumb\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getThumbProps({ index })\n },\n '[data-part=\"hidden-input\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getHiddenInputProps({ index })\n },\n }\n }\n\n _syncThumbs() {\n if (!this._api || !this.el) return\n const control = this.el.querySelector('[data-part=\"control\"]')\n if (!control) return\n\n const thumbCount = this._api.value.length\n const existing = control.querySelectorAll(':scope > [data-part=\"thumb\"]')\n\n if (existing.length === thumbCount) return\n\n if (existing.length < thumbCount) {\n for (let i = existing.length; i < thumbCount; i++) {\n const thumb = document.createElement('div')\n thumb.setAttribute('data-part', 'thumb')\n thumb.setAttribute('data-index', String(i))\n thumb.className = THUMB_CLASS\n\n const input = document.createElement('input')\n input.setAttribute('data-part', 'hidden-input')\n input.setAttribute('data-index', String(i))\n input.type = 'hidden'\n thumb.appendChild(input)\n\n control.appendChild(thumb)\n }\n } else {\n for (let i = existing.length - 1; i >= thumbCount; i--) {\n existing[i].remove()\n }\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n }\n\n _applyAllSpreads() {\n this._syncThumbs()\n this._elementCache?.clear()\n super._applyAllSpreads()\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={'w-full ' + (props.class || '')}>\n {props.label && (\n <div class=\"flex justify-between mb-2\">\n <label data-part=\"label\" class=\"slider-label text-sm font-medium\">\n {props.label}\n </label>\n </div>\n )}\n <div data-part=\"control\" class=\"slider-control relative flex items-center\">\n <div\n data-part=\"track\"\n class=\"slider-track relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\"\n >\n <div data-part=\"range\" class=\"slider-range absolute h-full bg-primary\"></div>\n </div>\n <div data-part=\"thumb\" data-index=\"0\" class={THUMB_CLASS}>\n <input data-part=\"hidden-input\" data-index=\"0\" type=\"hidden\" />\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
|