@sprawlify/solid 0.0.14 → 0.0.16
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/dist/chunk-B5so6B0y.jsx +18 -0
- package/dist/chunk-B93cd-Dz.js +18 -0
- package/dist/collapsible-CX2tnXKq.js +131 -0
- package/dist/collapsible-sG-Rzvf2.jsx +119 -0
- package/dist/collection-BRr4O2_i.jsx +220 -0
- package/dist/collection-zj3lxnwW.js +220 -0
- package/dist/components/accordion/index.d.ts +69 -0
- package/dist/components/accordion/index.js +185 -0
- package/dist/components/accordion/index.jsx +159 -0
- package/dist/components/angle-slider/index.d.ts +74 -0
- package/dist/components/angle-slider/index.js +157 -0
- package/dist/components/angle-slider/index.jsx +146 -0
- package/dist/components/avatar/index.d.ts +49 -0
- package/dist/components/avatar/index.js +97 -0
- package/dist/components/avatar/index.jsx +90 -0
- package/dist/components/bottom-sheet/index.d.ts +80 -0
- package/dist/components/bottom-sheet/index.js +220 -0
- package/dist/components/bottom-sheet/index.jsx +179 -0
- package/dist/components/carousel/index.d.ts +98 -0
- package/dist/components/carousel/index.js +209 -0
- package/dist/components/carousel/index.jsx +194 -0
- package/dist/components/checkbox/index.d.ts +138 -0
- package/dist/components/checkbox/index.js +267 -0
- package/dist/components/checkbox/index.jsx +249 -0
- package/dist/components/client-only/index.d.ts +10 -0
- package/dist/components/client-only/index.js +24 -0
- package/dist/components/client-only/index.jsx +15 -0
- package/dist/components/clipboard/index.d.ts +72 -0
- package/dist/components/clipboard/index.js +151 -0
- package/dist/components/clipboard/index.jsx +134 -0
- package/dist/components/collapsible/index.d.ts +60 -0
- package/dist/components/collapsible/index.js +9 -0
- package/dist/components/collapsible/index.jsx +9 -0
- package/dist/components/collection/index.d.ts +3 -0
- package/dist/components/collection/index.js +4 -0
- package/dist/components/collection/index.jsx +4 -0
- package/dist/components/color-picker/index.d.ts +183 -0
- package/dist/components/color-picker/index.js +500 -0
- package/dist/components/color-picker/index.jsx +436 -0
- package/dist/components/combobox/index.d.ts +134 -0
- package/dist/components/combobox/index.js +357 -0
- package/dist/components/combobox/index.jsx +315 -0
- package/dist/components/date-picker/index.d.ts +165 -0
- package/dist/components/date-picker/index.js +476 -0
- package/dist/components/date-picker/index.jsx +415 -0
- package/dist/components/dialog/index.d.ts +80 -0
- package/dist/components/dialog/index.js +219 -0
- package/dist/components/dialog/index.jsx +173 -0
- package/dist/components/download-trigger/index.d.ts +25 -0
- package/dist/components/download-trigger/index.js +42 -0
- package/dist/components/download-trigger/index.jsx +38 -0
- package/dist/components/editable/index.d.ts +79 -0
- package/dist/components/editable/index.js +190 -0
- package/dist/components/editable/index.jsx +181 -0
- package/dist/components/field/index.d.ts +201 -0
- package/dist/components/field/index.js +10 -0
- package/dist/components/field/index.jsx +10 -0
- package/dist/components/fieldset/index.d.ts +109 -0
- package/dist/components/fieldset/index.js +9 -0
- package/dist/components/fieldset/index.jsx +9 -0
- package/dist/components/highlight/index.d.ts +15 -0
- package/dist/components/highlight/index.js +47 -0
- package/dist/components/highlight/index.jsx +31 -0
- package/dist/components/presence/index.d.ts +5 -0
- package/dist/components/presence/index.js +9 -0
- package/dist/components/presence/index.jsx +9 -0
- package/dist/components/select/index.d.ts +134 -0
- package/dist/components/select/index.js +363 -0
- package/dist/components/select/index.jsx +312 -0
- package/dist/compose-refs-BVVIB7xn.js +20 -0
- package/dist/compose-refs-icUeuyHm.jsx +20 -0
- package/dist/core-DbInRfhI.jsx +416 -0
- package/dist/core-oNB2jGcl.js +416 -0
- package/dist/create-split-props-B8A7_AF7.jsx +7 -0
- package/dist/create-split-props-pQu7jijw.js +7 -0
- package/dist/factory-4A25bngy.d.ts +14 -0
- package/dist/factory-Ch5jgk20.jsx +37 -0
- package/dist/factory-PGDAvOKb.js +43 -0
- package/dist/field-BRr9Zdes.jsx +260 -0
- package/dist/field-CoYiA2ek.js +288 -0
- package/dist/fieldset-B_LyllEa.jsx +169 -0
- package/dist/fieldset-BrJqMLEd.js +184 -0
- package/dist/index-C7N791Fc.d.ts +23 -0
- package/dist/index-GEfvAmRc.d.ts +76 -0
- package/dist/index-j2avJy7D.d.ts +38 -0
- package/dist/index-oc8gLl07.d.ts +38 -0
- package/dist/index.d.ts +5 -29
- package/dist/index.js +4 -511
- package/dist/index.jsx +4 -497
- package/dist/presence-Bmn43U_q.jsx +68 -0
- package/dist/presence-BpwBRlZW.js +81 -0
- package/dist/providers-Bo0OFe08.js +96 -0
- package/dist/providers-DFaRRd80.jsx +82 -0
- package/dist/render-strategy-BNECKEQk.d.ts +9 -0
- package/dist/render-strategy-CdJhRv3I.jsx +12 -0
- package/dist/render-strategy-DFlz7Uc4.js +12 -0
- package/dist/run-if-fn-A3VwXy-o.jsx +6 -0
- package/dist/run-if-fn-D5794CxE.js +6 -0
- package/dist/types-Dbw4va3W.d.ts +9 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.jsx +2 -1
- package/dist/utils-DQi-Cen5.js +0 -0
- package/dist/utils-vSjszv0W.jsx +0 -0
- package/package.json +102 -2
- /package/dist/{utils-DSKoW7eB.jsx → create-context-C3rvZvkc.jsx} +0 -0
- /package/dist/{utils-GEMuT7an.js → create-context-GfQ_MylE.js} +0 -0
- /package/dist/{index-C_ThrXdH.d.ts → index-B6dBCfnB.d.ts} +0 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import { t as __export } from "../../chunk-B93cd-Dz.js";
|
|
2
|
+
import { i as useMachine, n as normalizeProps, r as mergeProps$2 } from "../../core-oNB2jGcl.js";
|
|
3
|
+
import { t as runIfFn } from "../../run-if-fn-D5794CxE.js";
|
|
4
|
+
import { t as createContext$1 } from "../../create-context-GfQ_MylE.js";
|
|
5
|
+
import { i as useLocaleContext, o as useEnvironmentContext } from "../../providers-Bo0OFe08.js";
|
|
6
|
+
import { t as createSplitProps } from "../../create-split-props-pQu7jijw.js";
|
|
7
|
+
import "../../render-strategy-DFlz7Uc4.js";
|
|
8
|
+
import { t as sprawlify } from "../../factory-PGDAvOKb.js";
|
|
9
|
+
import { t as composeRefs } from "../../compose-refs-BVVIB7xn.js";
|
|
10
|
+
import { a as splitPresenceProps, i as usePresence, n as usePresenceContext, t as PresenceProvider } from "../../presence-BpwBRlZW.js";
|
|
11
|
+
import "../../fieldset-BrJqMLEd.js";
|
|
12
|
+
import { m as useFieldContext } from "../../field-CoYiA2ek.js";
|
|
13
|
+
import { n as useListCollection, o as createListCollection } from "../../collection-zj3lxnwW.js";
|
|
14
|
+
import { Index, Show, createMemo, createUniqueId } from "solid-js";
|
|
15
|
+
import { createComponent, effect, insert, mergeProps as mergeProps$1, template } from "solid-js/web";
|
|
16
|
+
import * as select from "@sprawlify/primitives/machines/select";
|
|
17
|
+
import { anatomy as selectAnatomy } from "@sprawlify/primitives/machines/select";
|
|
18
|
+
|
|
19
|
+
//#region src/components/select/use-select-context.ts
|
|
20
|
+
const [SelectProvider, useSelectContext] = createContext$1({
|
|
21
|
+
hookName: "useSelectContext",
|
|
22
|
+
providerName: "<SelectProvider />"
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/components/select/select-clear-trigger.tsx
|
|
27
|
+
const SelectClearTrigger = (props) => {
|
|
28
|
+
const select$1 = useSelectContext();
|
|
29
|
+
const mergedProps = mergeProps$2(() => select$1().getClearTriggerProps(), props);
|
|
30
|
+
return createComponent(sprawlify.button, mergedProps);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/components/select/select-content.tsx
|
|
35
|
+
const SelectContent = (props) => {
|
|
36
|
+
const select$1 = useSelectContext();
|
|
37
|
+
const presenceApi = usePresenceContext();
|
|
38
|
+
const mergedProps = mergeProps$2(() => select$1().getContentProps(), () => presenceApi().presenceProps, props);
|
|
39
|
+
return createComponent(Show, {
|
|
40
|
+
get when() {
|
|
41
|
+
return !presenceApi().unmounted;
|
|
42
|
+
},
|
|
43
|
+
get children() {
|
|
44
|
+
return createComponent(sprawlify.div, mergeProps$1(mergedProps, { ref(r$) {
|
|
45
|
+
var _ref$ = composeRefs(presenceApi().ref, props.ref);
|
|
46
|
+
typeof _ref$ === "function" && _ref$(r$);
|
|
47
|
+
} }));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/components/select/select-context.tsx
|
|
54
|
+
const SelectContext = (props) => props.children(useSelectContext());
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/components/select/select-control.tsx
|
|
58
|
+
const SelectControl = (props) => {
|
|
59
|
+
const select$1 = useSelectContext();
|
|
60
|
+
const mergedProps = mergeProps$2(() => select$1().getControlProps(), props);
|
|
61
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/components/select/select-hidden-select.tsx
|
|
66
|
+
var _tmpl$ = /* @__PURE__ */ template(`<option value>`), _tmpl$2 = /* @__PURE__ */ template(`<option>`);
|
|
67
|
+
const SelectHiddenSelect = (props) => {
|
|
68
|
+
const select$1 = useSelectContext();
|
|
69
|
+
const mergedProps = mergeProps$2(() => select$1().getHiddenSelectProps(), props);
|
|
70
|
+
const isValueEmpty = createMemo(() => select$1().value.length === 0);
|
|
71
|
+
const field = useFieldContext();
|
|
72
|
+
return createComponent(sprawlify.select, mergeProps$1({ get ["aria-describedby"]() {
|
|
73
|
+
return field?.().ariaDescribedby;
|
|
74
|
+
} }, mergedProps, { get children() {
|
|
75
|
+
return [createComponent(Show, {
|
|
76
|
+
get when() {
|
|
77
|
+
return isValueEmpty();
|
|
78
|
+
},
|
|
79
|
+
get children() {
|
|
80
|
+
return _tmpl$();
|
|
81
|
+
}
|
|
82
|
+
}), createComponent(Index, {
|
|
83
|
+
get each() {
|
|
84
|
+
return select$1().collection.items;
|
|
85
|
+
},
|
|
86
|
+
children: (item) => (() => {
|
|
87
|
+
var _el$2 = _tmpl$2();
|
|
88
|
+
insert(_el$2, () => select$1().collection.stringifyItem(item()));
|
|
89
|
+
effect(() => _el$2.disabled = select$1().collection.getItemDisabled(item()));
|
|
90
|
+
effect(() => _el$2.value = select$1().collection.getItemValue(item()) ?? "");
|
|
91
|
+
return _el$2;
|
|
92
|
+
})()
|
|
93
|
+
})];
|
|
94
|
+
} }));
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/components/select/select-indicator.tsx
|
|
99
|
+
const SelectIndicator = (props) => {
|
|
100
|
+
const select$1 = useSelectContext();
|
|
101
|
+
const mergedProps = mergeProps$2(() => select$1().getIndicatorProps(), props);
|
|
102
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/components/select/use-select-item-context.ts
|
|
107
|
+
const [SelectItemProvider, useSelectItemContext] = createContext$1({
|
|
108
|
+
hookName: "useSelectItemContext",
|
|
109
|
+
providerName: "<SelectItemProvider />"
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/components/select/use-select-item-props-context.ts
|
|
114
|
+
const [SelectItemPropsProvider, useSelectItemPropsContext] = createContext$1({
|
|
115
|
+
hookName: "useSelectItemPropsContext",
|
|
116
|
+
providerName: "<SelectItemPropsProvider />"
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region src/components/select/select-item.tsx
|
|
121
|
+
const SelectItem = (props) => {
|
|
122
|
+
const [itemProps, localProps] = createSplitProps()(props, ["item", "persistFocus"]);
|
|
123
|
+
const select$1 = useSelectContext();
|
|
124
|
+
const mergedProps = mergeProps$2(() => select$1().getItemProps(itemProps), localProps);
|
|
125
|
+
const itemState = createMemo(() => select$1().getItemState(itemProps));
|
|
126
|
+
return createComponent(SelectItemPropsProvider, {
|
|
127
|
+
value: itemProps,
|
|
128
|
+
get children() {
|
|
129
|
+
return createComponent(SelectItemProvider, {
|
|
130
|
+
value: itemState,
|
|
131
|
+
get children() {
|
|
132
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/components/select/select-item-context.tsx
|
|
141
|
+
const SelectItemContext = (props) => props.children(useSelectItemContext());
|
|
142
|
+
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/components/select/use-select-item-group-props-context.ts
|
|
145
|
+
const [SelectItemGroupPropsProvider, useSelectItemGroupPropsContext] = createContext$1({
|
|
146
|
+
hookName: "useSelectItemGroupPropsContext",
|
|
147
|
+
providerName: "<SelectItemGroupPropsProvider />"
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
//#endregion
|
|
151
|
+
//#region src/components/select/select-item-group.tsx
|
|
152
|
+
const SelectItemGroup = (props) => {
|
|
153
|
+
const [_itemGroupProps, localProps] = createSplitProps()(props, ["id"]);
|
|
154
|
+
const select$1 = useSelectContext();
|
|
155
|
+
const itemGroupProps = mergeProps$2({ id: createUniqueId() }, _itemGroupProps);
|
|
156
|
+
const mergedProps = mergeProps$2(() => select$1().getItemGroupProps(itemGroupProps), localProps);
|
|
157
|
+
return createComponent(SelectItemGroupPropsProvider, {
|
|
158
|
+
value: itemGroupProps,
|
|
159
|
+
get children() {
|
|
160
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
//#endregion
|
|
166
|
+
//#region src/components/select/select-item-group-label.tsx
|
|
167
|
+
const SelectItemGroupLabel = (props) => {
|
|
168
|
+
const select$1 = useSelectContext();
|
|
169
|
+
const itemGroupProps = useSelectItemGroupPropsContext();
|
|
170
|
+
const mergedProps = mergeProps$2(() => select$1().getItemGroupLabelProps({ htmlFor: itemGroupProps.id }), props);
|
|
171
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
//#endregion
|
|
175
|
+
//#region src/components/select/select-item-indicator.tsx
|
|
176
|
+
const SelectItemIndicator = (props) => {
|
|
177
|
+
const select$1 = useSelectContext();
|
|
178
|
+
const itemProps = useSelectItemPropsContext();
|
|
179
|
+
const mergedProps = mergeProps$2(() => select$1().getItemIndicatorProps(itemProps), props);
|
|
180
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/components/select/select-item-text.tsx
|
|
185
|
+
const SelectItemText = (props) => {
|
|
186
|
+
const select$1 = useSelectContext();
|
|
187
|
+
const itemProps = useSelectItemPropsContext();
|
|
188
|
+
const mergedProps = mergeProps$2(() => select$1().getItemTextProps(itemProps), props);
|
|
189
|
+
return createComponent(sprawlify.span, mergedProps);
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region src/components/select/select-label.tsx
|
|
194
|
+
const SelectLabel = (props) => {
|
|
195
|
+
const select$1 = useSelectContext();
|
|
196
|
+
const mergedProps = mergeProps$2(() => select$1().getLabelProps(), props);
|
|
197
|
+
return createComponent(sprawlify.label, mergedProps);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
//#endregion
|
|
201
|
+
//#region src/components/select/select-list.tsx
|
|
202
|
+
const SelectList = (props) => {
|
|
203
|
+
const select$1 = useSelectContext();
|
|
204
|
+
const mergedProps = mergeProps$2(() => select$1().getListProps(), props);
|
|
205
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
//#endregion
|
|
209
|
+
//#region src/components/select/select-positioner.tsx
|
|
210
|
+
const SelectPositioner = (props) => {
|
|
211
|
+
const select$1 = useSelectContext();
|
|
212
|
+
const presenceApi = usePresenceContext();
|
|
213
|
+
const mergedProps = mergeProps$2(() => select$1().getPositionerProps(), props);
|
|
214
|
+
return createComponent(Show, {
|
|
215
|
+
get when() {
|
|
216
|
+
return !presenceApi().unmounted;
|
|
217
|
+
},
|
|
218
|
+
get children() {
|
|
219
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
//#endregion
|
|
225
|
+
//#region src/components/select/use-select.ts
|
|
226
|
+
const useSelect = (props) => {
|
|
227
|
+
const id = createUniqueId();
|
|
228
|
+
const locale = useLocaleContext();
|
|
229
|
+
const environment = useEnvironmentContext();
|
|
230
|
+
const field = useFieldContext();
|
|
231
|
+
const machineProps = createMemo(() => ({
|
|
232
|
+
id,
|
|
233
|
+
ids: {
|
|
234
|
+
label: field?.().ids.label,
|
|
235
|
+
hiddenSelect: field?.().ids.control
|
|
236
|
+
},
|
|
237
|
+
disabled: field?.().disabled,
|
|
238
|
+
readOnly: field?.().readOnly,
|
|
239
|
+
invalid: field?.().invalid,
|
|
240
|
+
required: field?.().required,
|
|
241
|
+
dir: locale().dir,
|
|
242
|
+
getRootNode: environment().getRootNode,
|
|
243
|
+
...runIfFn(props)
|
|
244
|
+
}));
|
|
245
|
+
const service = useMachine(select.machine, machineProps);
|
|
246
|
+
return createMemo(() => select.connect(service, normalizeProps));
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
//#endregion
|
|
250
|
+
//#region src/components/select/select-root.tsx
|
|
251
|
+
const SelectRoot = (props) => {
|
|
252
|
+
const [presenceProps, selectProps] = splitPresenceProps(props);
|
|
253
|
+
const [useSelectProps, localProps] = createSplitProps()(selectProps, [
|
|
254
|
+
"closeOnSelect",
|
|
255
|
+
"collection",
|
|
256
|
+
"composite",
|
|
257
|
+
"defaultHighlightedValue",
|
|
258
|
+
"defaultOpen",
|
|
259
|
+
"defaultValue",
|
|
260
|
+
"deselectable",
|
|
261
|
+
"disabled",
|
|
262
|
+
"form",
|
|
263
|
+
"highlightedValue",
|
|
264
|
+
"id",
|
|
265
|
+
"ids",
|
|
266
|
+
"invalid",
|
|
267
|
+
"loopFocus",
|
|
268
|
+
"multiple",
|
|
269
|
+
"name",
|
|
270
|
+
"onFocusOutside",
|
|
271
|
+
"onHighlightChange",
|
|
272
|
+
"onInteractOutside",
|
|
273
|
+
"onOpenChange",
|
|
274
|
+
"onPointerDownOutside",
|
|
275
|
+
"onSelect",
|
|
276
|
+
"onValueChange",
|
|
277
|
+
"open",
|
|
278
|
+
"positioning",
|
|
279
|
+
"readOnly",
|
|
280
|
+
"required",
|
|
281
|
+
"scrollToIndexFn",
|
|
282
|
+
"value"
|
|
283
|
+
]);
|
|
284
|
+
const select$1 = useSelect(useSelectProps);
|
|
285
|
+
const presenceApi = usePresence(mergeProps$2(() => ({ present: select$1().open }), presenceProps));
|
|
286
|
+
const mergedProps = mergeProps$2(() => select$1().getRootProps(), localProps);
|
|
287
|
+
return createComponent(SelectProvider, {
|
|
288
|
+
value: select$1,
|
|
289
|
+
get children() {
|
|
290
|
+
return createComponent(PresenceProvider, {
|
|
291
|
+
value: presenceApi,
|
|
292
|
+
get children() {
|
|
293
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
//#endregion
|
|
301
|
+
//#region src/components/select/select-root-provider.tsx
|
|
302
|
+
const SelectRootProvider = (props) => {
|
|
303
|
+
const [presenceProps, selectProps] = splitPresenceProps(props);
|
|
304
|
+
const [{ value: select$1 }, localProps] = createSplitProps()(selectProps, ["value"]);
|
|
305
|
+
const presence = usePresence(mergeProps$2(() => ({ present: select$1().open }), presenceProps));
|
|
306
|
+
const mergedProps = mergeProps$2(() => select$1().getRootProps(), localProps);
|
|
307
|
+
return createComponent(SelectProvider, {
|
|
308
|
+
value: select$1,
|
|
309
|
+
get children() {
|
|
310
|
+
return createComponent(PresenceProvider, {
|
|
311
|
+
value: presence,
|
|
312
|
+
get children() {
|
|
313
|
+
return createComponent(sprawlify.div, mergedProps);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
//#endregion
|
|
321
|
+
//#region src/components/select/select-trigger.tsx
|
|
322
|
+
const SelectTrigger = (props) => {
|
|
323
|
+
const select$1 = useSelectContext();
|
|
324
|
+
const mergedProps = mergeProps$2(() => select$1().getTriggerProps(), props);
|
|
325
|
+
return createComponent(sprawlify.button, mergedProps);
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
//#endregion
|
|
329
|
+
//#region src/components/select/select-value-text.tsx
|
|
330
|
+
const SelectValueText = (props) => {
|
|
331
|
+
const select$1 = useSelectContext();
|
|
332
|
+
const mergedProps = mergeProps$2(() => select$1().getValueTextProps(), props);
|
|
333
|
+
return createComponent(sprawlify.span, mergeProps$1(mergedProps, { get children() {
|
|
334
|
+
return select$1().valueAsString || props.placeholder;
|
|
335
|
+
} }));
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
//#endregion
|
|
339
|
+
//#region src/components/select/select.ts
|
|
340
|
+
var select_exports = /* @__PURE__ */ __export({
|
|
341
|
+
ClearTrigger: () => SelectClearTrigger,
|
|
342
|
+
Content: () => SelectContent,
|
|
343
|
+
Context: () => SelectContext,
|
|
344
|
+
Control: () => SelectControl,
|
|
345
|
+
HiddenSelect: () => SelectHiddenSelect,
|
|
346
|
+
Indicator: () => SelectIndicator,
|
|
347
|
+
Item: () => SelectItem,
|
|
348
|
+
ItemContext: () => SelectItemContext,
|
|
349
|
+
ItemGroup: () => SelectItemGroup,
|
|
350
|
+
ItemGroupLabel: () => SelectItemGroupLabel,
|
|
351
|
+
ItemIndicator: () => SelectItemIndicator,
|
|
352
|
+
ItemText: () => SelectItemText,
|
|
353
|
+
Label: () => SelectLabel,
|
|
354
|
+
List: () => SelectList,
|
|
355
|
+
Positioner: () => SelectPositioner,
|
|
356
|
+
Root: () => SelectRoot,
|
|
357
|
+
RootProvider: () => SelectRootProvider,
|
|
358
|
+
Trigger: () => SelectTrigger,
|
|
359
|
+
ValueText: () => SelectValueText
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
//#endregion
|
|
363
|
+
export { select_exports as Select, SelectClearTrigger, SelectContent, SelectContext, SelectControl, SelectHiddenSelect, SelectIndicator, SelectItem, SelectItemContext, SelectItemGroup, SelectItemGroupLabel, SelectItemIndicator, SelectItemText, SelectLabel, SelectList, SelectPositioner, SelectRoot, SelectRootProvider, SelectTrigger, SelectValueText, createListCollection, selectAnatomy, useListCollection, useSelect, useSelectContext, useSelectItemContext };
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { t as __export } from "../../chunk-B5so6B0y.jsx";
|
|
2
|
+
import { i as useMachine, n as normalizeProps, r as mergeProps$1 } from "../../core-DbInRfhI.jsx";
|
|
3
|
+
import { t as runIfFn } from "../../run-if-fn-A3VwXy-o.jsx";
|
|
4
|
+
import { t as createContext$1 } from "../../create-context-C3rvZvkc.jsx";
|
|
5
|
+
import { i as useLocaleContext, o as useEnvironmentContext } from "../../providers-DFaRRd80.jsx";
|
|
6
|
+
import { t as createSplitProps } from "../../create-split-props-B8A7_AF7.jsx";
|
|
7
|
+
import "../../render-strategy-CdJhRv3I.jsx";
|
|
8
|
+
import { t as sprawlify } from "../../factory-Ch5jgk20.jsx";
|
|
9
|
+
import { t as composeRefs } from "../../compose-refs-icUeuyHm.jsx";
|
|
10
|
+
import { a as splitPresenceProps, i as usePresence, n as usePresenceContext, t as PresenceProvider } from "../../presence-Bmn43U_q.jsx";
|
|
11
|
+
import "../../fieldset-B_LyllEa.jsx";
|
|
12
|
+
import { m as useFieldContext } from "../../field-BRr9Zdes.jsx";
|
|
13
|
+
import { n as useListCollection, o as createListCollection } from "../../collection-BRr4O2_i.jsx";
|
|
14
|
+
import { Index, Show, createMemo, createUniqueId } from "solid-js";
|
|
15
|
+
import * as select from "@sprawlify/primitives/machines/select";
|
|
16
|
+
import { anatomy as selectAnatomy } from "@sprawlify/primitives/machines/select";
|
|
17
|
+
|
|
18
|
+
//#region src/components/select/use-select-context.ts
|
|
19
|
+
const [SelectProvider, useSelectContext] = createContext$1({
|
|
20
|
+
hookName: "useSelectContext",
|
|
21
|
+
providerName: "<SelectProvider />"
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/components/select/select-clear-trigger.tsx
|
|
26
|
+
const SelectClearTrigger = (props) => {
|
|
27
|
+
const select$1 = useSelectContext();
|
|
28
|
+
const mergedProps = mergeProps$1(() => select$1().getClearTriggerProps(), props);
|
|
29
|
+
return <sprawlify.button {...mergedProps} />;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/components/select/select-content.tsx
|
|
34
|
+
const SelectContent = (props) => {
|
|
35
|
+
const select$1 = useSelectContext();
|
|
36
|
+
const presenceApi = usePresenceContext();
|
|
37
|
+
const mergedProps = mergeProps$1(() => select$1().getContentProps(), () => presenceApi().presenceProps, props);
|
|
38
|
+
return <Show when={!presenceApi().unmounted}>
|
|
39
|
+
<sprawlify.div {...mergedProps} ref={composeRefs(presenceApi().ref, props.ref)} />
|
|
40
|
+
</Show>;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/components/select/select-context.tsx
|
|
45
|
+
const SelectContext = (props) => props.children(useSelectContext());
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/components/select/select-control.tsx
|
|
49
|
+
const SelectControl = (props) => {
|
|
50
|
+
const select$1 = useSelectContext();
|
|
51
|
+
const mergedProps = mergeProps$1(() => select$1().getControlProps(), props);
|
|
52
|
+
return <sprawlify.div {...mergedProps} />;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src/components/select/select-hidden-select.tsx
|
|
57
|
+
const SelectHiddenSelect = (props) => {
|
|
58
|
+
const select$1 = useSelectContext();
|
|
59
|
+
const mergedProps = mergeProps$1(() => select$1().getHiddenSelectProps(), props);
|
|
60
|
+
const isValueEmpty = createMemo(() => select$1().value.length === 0);
|
|
61
|
+
const field = useFieldContext();
|
|
62
|
+
return <sprawlify.select aria-describedby={field?.().ariaDescribedby} {...mergedProps}>
|
|
63
|
+
<Show when={isValueEmpty()}>
|
|
64
|
+
<option value="" />
|
|
65
|
+
</Show>
|
|
66
|
+
<Index each={select$1().collection.items}>
|
|
67
|
+
{(item) => <option value={select$1().collection.getItemValue(item()) ?? ""} disabled={select$1().collection.getItemDisabled(item())}>
|
|
68
|
+
{select$1().collection.stringifyItem(item())}
|
|
69
|
+
</option>}
|
|
70
|
+
</Index>
|
|
71
|
+
</sprawlify.select>;
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/components/select/select-indicator.tsx
|
|
76
|
+
const SelectIndicator = (props) => {
|
|
77
|
+
const select$1 = useSelectContext();
|
|
78
|
+
const mergedProps = mergeProps$1(() => select$1().getIndicatorProps(), props);
|
|
79
|
+
return <sprawlify.div {...mergedProps} />;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
//#region src/components/select/use-select-item-context.ts
|
|
84
|
+
const [SelectItemProvider, useSelectItemContext] = createContext$1({
|
|
85
|
+
hookName: "useSelectItemContext",
|
|
86
|
+
providerName: "<SelectItemProvider />"
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region src/components/select/use-select-item-props-context.ts
|
|
91
|
+
const [SelectItemPropsProvider, useSelectItemPropsContext] = createContext$1({
|
|
92
|
+
hookName: "useSelectItemPropsContext",
|
|
93
|
+
providerName: "<SelectItemPropsProvider />"
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/components/select/select-item.tsx
|
|
98
|
+
const SelectItem = (props) => {
|
|
99
|
+
const [itemProps, localProps] = createSplitProps()(props, ["item", "persistFocus"]);
|
|
100
|
+
const select$1 = useSelectContext();
|
|
101
|
+
const mergedProps = mergeProps$1(() => select$1().getItemProps(itemProps), localProps);
|
|
102
|
+
const itemState = createMemo(() => select$1().getItemState(itemProps));
|
|
103
|
+
return <SelectItemPropsProvider value={itemProps}>
|
|
104
|
+
<SelectItemProvider value={itemState}>
|
|
105
|
+
<sprawlify.div {...mergedProps} />
|
|
106
|
+
</SelectItemProvider>
|
|
107
|
+
</SelectItemPropsProvider>;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/components/select/select-item-context.tsx
|
|
112
|
+
const SelectItemContext = (props) => props.children(useSelectItemContext());
|
|
113
|
+
|
|
114
|
+
//#endregion
|
|
115
|
+
//#region src/components/select/use-select-item-group-props-context.ts
|
|
116
|
+
const [SelectItemGroupPropsProvider, useSelectItemGroupPropsContext] = createContext$1({
|
|
117
|
+
hookName: "useSelectItemGroupPropsContext",
|
|
118
|
+
providerName: "<SelectItemGroupPropsProvider />"
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/components/select/select-item-group.tsx
|
|
123
|
+
const SelectItemGroup = (props) => {
|
|
124
|
+
const [_itemGroupProps, localProps] = createSplitProps()(props, ["id"]);
|
|
125
|
+
const select$1 = useSelectContext();
|
|
126
|
+
const itemGroupProps = mergeProps$1({ id: createUniqueId() }, _itemGroupProps);
|
|
127
|
+
const mergedProps = mergeProps$1(() => select$1().getItemGroupProps(itemGroupProps), localProps);
|
|
128
|
+
return <SelectItemGroupPropsProvider value={itemGroupProps}>
|
|
129
|
+
<sprawlify.div {...mergedProps} />
|
|
130
|
+
</SelectItemGroupPropsProvider>;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/components/select/select-item-group-label.tsx
|
|
135
|
+
const SelectItemGroupLabel = (props) => {
|
|
136
|
+
const select$1 = useSelectContext();
|
|
137
|
+
const itemGroupProps = useSelectItemGroupPropsContext();
|
|
138
|
+
const mergedProps = mergeProps$1(() => select$1().getItemGroupLabelProps({ htmlFor: itemGroupProps.id }), props);
|
|
139
|
+
return <sprawlify.div {...mergedProps} />;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
//#endregion
|
|
143
|
+
//#region src/components/select/select-item-indicator.tsx
|
|
144
|
+
const SelectItemIndicator = (props) => {
|
|
145
|
+
const select$1 = useSelectContext();
|
|
146
|
+
const itemProps = useSelectItemPropsContext();
|
|
147
|
+
const mergedProps = mergeProps$1(() => select$1().getItemIndicatorProps(itemProps), props);
|
|
148
|
+
return <sprawlify.div {...mergedProps} />;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/components/select/select-item-text.tsx
|
|
153
|
+
const SelectItemText = (props) => {
|
|
154
|
+
const select$1 = useSelectContext();
|
|
155
|
+
const itemProps = useSelectItemPropsContext();
|
|
156
|
+
const mergedProps = mergeProps$1(() => select$1().getItemTextProps(itemProps), props);
|
|
157
|
+
return <sprawlify.span {...mergedProps} />;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/components/select/select-label.tsx
|
|
162
|
+
const SelectLabel = (props) => {
|
|
163
|
+
const select$1 = useSelectContext();
|
|
164
|
+
const mergedProps = mergeProps$1(() => select$1().getLabelProps(), props);
|
|
165
|
+
return <sprawlify.label {...mergedProps} />;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/components/select/select-list.tsx
|
|
170
|
+
const SelectList = (props) => {
|
|
171
|
+
const select$1 = useSelectContext();
|
|
172
|
+
const mergedProps = mergeProps$1(() => select$1().getListProps(), props);
|
|
173
|
+
return <sprawlify.div {...mergedProps} />;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
//#endregion
|
|
177
|
+
//#region src/components/select/select-positioner.tsx
|
|
178
|
+
const SelectPositioner = (props) => {
|
|
179
|
+
const select$1 = useSelectContext();
|
|
180
|
+
const presenceApi = usePresenceContext();
|
|
181
|
+
const mergedProps = mergeProps$1(() => select$1().getPositionerProps(), props);
|
|
182
|
+
return <Show when={!presenceApi().unmounted}>
|
|
183
|
+
<sprawlify.div {...mergedProps} />
|
|
184
|
+
</Show>;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region src/components/select/use-select.ts
|
|
189
|
+
const useSelect = (props) => {
|
|
190
|
+
const id = createUniqueId();
|
|
191
|
+
const locale = useLocaleContext();
|
|
192
|
+
const environment = useEnvironmentContext();
|
|
193
|
+
const field = useFieldContext();
|
|
194
|
+
const machineProps = createMemo(() => ({
|
|
195
|
+
id,
|
|
196
|
+
ids: {
|
|
197
|
+
label: field?.().ids.label,
|
|
198
|
+
hiddenSelect: field?.().ids.control
|
|
199
|
+
},
|
|
200
|
+
disabled: field?.().disabled,
|
|
201
|
+
readOnly: field?.().readOnly,
|
|
202
|
+
invalid: field?.().invalid,
|
|
203
|
+
required: field?.().required,
|
|
204
|
+
dir: locale().dir,
|
|
205
|
+
getRootNode: environment().getRootNode,
|
|
206
|
+
...runIfFn(props)
|
|
207
|
+
}));
|
|
208
|
+
const service = useMachine(select.machine, machineProps);
|
|
209
|
+
return createMemo(() => select.connect(service, normalizeProps));
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
//#endregion
|
|
213
|
+
//#region src/components/select/select-root.tsx
|
|
214
|
+
const SelectRoot = (props) => {
|
|
215
|
+
const [presenceProps, selectProps] = splitPresenceProps(props);
|
|
216
|
+
const [useSelectProps, localProps] = createSplitProps()(selectProps, [
|
|
217
|
+
"closeOnSelect",
|
|
218
|
+
"collection",
|
|
219
|
+
"composite",
|
|
220
|
+
"defaultHighlightedValue",
|
|
221
|
+
"defaultOpen",
|
|
222
|
+
"defaultValue",
|
|
223
|
+
"deselectable",
|
|
224
|
+
"disabled",
|
|
225
|
+
"form",
|
|
226
|
+
"highlightedValue",
|
|
227
|
+
"id",
|
|
228
|
+
"ids",
|
|
229
|
+
"invalid",
|
|
230
|
+
"loopFocus",
|
|
231
|
+
"multiple",
|
|
232
|
+
"name",
|
|
233
|
+
"onFocusOutside",
|
|
234
|
+
"onHighlightChange",
|
|
235
|
+
"onInteractOutside",
|
|
236
|
+
"onOpenChange",
|
|
237
|
+
"onPointerDownOutside",
|
|
238
|
+
"onSelect",
|
|
239
|
+
"onValueChange",
|
|
240
|
+
"open",
|
|
241
|
+
"positioning",
|
|
242
|
+
"readOnly",
|
|
243
|
+
"required",
|
|
244
|
+
"scrollToIndexFn",
|
|
245
|
+
"value"
|
|
246
|
+
]);
|
|
247
|
+
const select$1 = useSelect(useSelectProps);
|
|
248
|
+
const presenceApi = usePresence(mergeProps$1(() => ({ present: select$1().open }), presenceProps));
|
|
249
|
+
const mergedProps = mergeProps$1(() => select$1().getRootProps(), localProps);
|
|
250
|
+
return <SelectProvider value={select$1}>
|
|
251
|
+
<PresenceProvider value={presenceApi}>
|
|
252
|
+
<sprawlify.div {...mergedProps} />
|
|
253
|
+
</PresenceProvider>
|
|
254
|
+
</SelectProvider>;
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
//#endregion
|
|
258
|
+
//#region src/components/select/select-root-provider.tsx
|
|
259
|
+
const SelectRootProvider = (props) => {
|
|
260
|
+
const [presenceProps, selectProps] = splitPresenceProps(props);
|
|
261
|
+
const [{ value: select$1 }, localProps] = createSplitProps()(selectProps, ["value"]);
|
|
262
|
+
const presence = usePresence(mergeProps$1(() => ({ present: select$1().open }), presenceProps));
|
|
263
|
+
const mergedProps = mergeProps$1(() => select$1().getRootProps(), localProps);
|
|
264
|
+
return <SelectProvider value={select$1}>
|
|
265
|
+
<PresenceProvider value={presence}>
|
|
266
|
+
<sprawlify.div {...mergedProps} />
|
|
267
|
+
</PresenceProvider>
|
|
268
|
+
</SelectProvider>;
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
//#endregion
|
|
272
|
+
//#region src/components/select/select-trigger.tsx
|
|
273
|
+
const SelectTrigger = (props) => {
|
|
274
|
+
const select$1 = useSelectContext();
|
|
275
|
+
const mergedProps = mergeProps$1(() => select$1().getTriggerProps(), props);
|
|
276
|
+
return <sprawlify.button {...mergedProps} />;
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
//#endregion
|
|
280
|
+
//#region src/components/select/select-value-text.tsx
|
|
281
|
+
const SelectValueText = (props) => {
|
|
282
|
+
const select$1 = useSelectContext();
|
|
283
|
+
const mergedProps = mergeProps$1(() => select$1().getValueTextProps(), props);
|
|
284
|
+
return <sprawlify.span {...mergedProps}>{select$1().valueAsString || props.placeholder}</sprawlify.span>;
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
//#endregion
|
|
288
|
+
//#region src/components/select/select.ts
|
|
289
|
+
var select_exports = /* @__PURE__ */ __export({
|
|
290
|
+
ClearTrigger: () => SelectClearTrigger,
|
|
291
|
+
Content: () => SelectContent,
|
|
292
|
+
Context: () => SelectContext,
|
|
293
|
+
Control: () => SelectControl,
|
|
294
|
+
HiddenSelect: () => SelectHiddenSelect,
|
|
295
|
+
Indicator: () => SelectIndicator,
|
|
296
|
+
Item: () => SelectItem,
|
|
297
|
+
ItemContext: () => SelectItemContext,
|
|
298
|
+
ItemGroup: () => SelectItemGroup,
|
|
299
|
+
ItemGroupLabel: () => SelectItemGroupLabel,
|
|
300
|
+
ItemIndicator: () => SelectItemIndicator,
|
|
301
|
+
ItemText: () => SelectItemText,
|
|
302
|
+
Label: () => SelectLabel,
|
|
303
|
+
List: () => SelectList,
|
|
304
|
+
Positioner: () => SelectPositioner,
|
|
305
|
+
Root: () => SelectRoot,
|
|
306
|
+
RootProvider: () => SelectRootProvider,
|
|
307
|
+
Trigger: () => SelectTrigger,
|
|
308
|
+
ValueText: () => SelectValueText
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
//#endregion
|
|
312
|
+
export { select_exports as Select, SelectClearTrigger, SelectContent, SelectContext, SelectControl, SelectHiddenSelect, SelectIndicator, SelectItem, SelectItemContext, SelectItemGroup, SelectItemGroupLabel, SelectItemIndicator, SelectItemText, SelectLabel, SelectList, SelectPositioner, SelectRoot, SelectRootProvider, SelectTrigger, SelectValueText, createListCollection, selectAnatomy, useListCollection, useSelect, useSelectContext, useSelectItemContext };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createEffect } from "solid-js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/compose-refs.ts
|
|
4
|
+
const isRefFn = (ref) => typeof ref === "function";
|
|
5
|
+
const setRefs = (refs, node) => {
|
|
6
|
+
for (const ref of refs) if (isRefFn(ref)) ref(node);
|
|
7
|
+
};
|
|
8
|
+
function composeRefs(...refs) {
|
|
9
|
+
let node = null;
|
|
10
|
+
createEffect(() => {
|
|
11
|
+
setRefs(refs, node);
|
|
12
|
+
});
|
|
13
|
+
return (el) => {
|
|
14
|
+
node = el;
|
|
15
|
+
setRefs(refs, el);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { composeRefs as t };
|