@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.
Files changed (108) hide show
  1. package/dist/chunk-B5so6B0y.jsx +18 -0
  2. package/dist/chunk-B93cd-Dz.js +18 -0
  3. package/dist/collapsible-CX2tnXKq.js +131 -0
  4. package/dist/collapsible-sG-Rzvf2.jsx +119 -0
  5. package/dist/collection-BRr4O2_i.jsx +220 -0
  6. package/dist/collection-zj3lxnwW.js +220 -0
  7. package/dist/components/accordion/index.d.ts +69 -0
  8. package/dist/components/accordion/index.js +185 -0
  9. package/dist/components/accordion/index.jsx +159 -0
  10. package/dist/components/angle-slider/index.d.ts +74 -0
  11. package/dist/components/angle-slider/index.js +157 -0
  12. package/dist/components/angle-slider/index.jsx +146 -0
  13. package/dist/components/avatar/index.d.ts +49 -0
  14. package/dist/components/avatar/index.js +97 -0
  15. package/dist/components/avatar/index.jsx +90 -0
  16. package/dist/components/bottom-sheet/index.d.ts +80 -0
  17. package/dist/components/bottom-sheet/index.js +220 -0
  18. package/dist/components/bottom-sheet/index.jsx +179 -0
  19. package/dist/components/carousel/index.d.ts +98 -0
  20. package/dist/components/carousel/index.js +209 -0
  21. package/dist/components/carousel/index.jsx +194 -0
  22. package/dist/components/checkbox/index.d.ts +138 -0
  23. package/dist/components/checkbox/index.js +267 -0
  24. package/dist/components/checkbox/index.jsx +249 -0
  25. package/dist/components/client-only/index.d.ts +10 -0
  26. package/dist/components/client-only/index.js +24 -0
  27. package/dist/components/client-only/index.jsx +15 -0
  28. package/dist/components/clipboard/index.d.ts +72 -0
  29. package/dist/components/clipboard/index.js +151 -0
  30. package/dist/components/clipboard/index.jsx +134 -0
  31. package/dist/components/collapsible/index.d.ts +60 -0
  32. package/dist/components/collapsible/index.js +9 -0
  33. package/dist/components/collapsible/index.jsx +9 -0
  34. package/dist/components/collection/index.d.ts +3 -0
  35. package/dist/components/collection/index.js +4 -0
  36. package/dist/components/collection/index.jsx +4 -0
  37. package/dist/components/color-picker/index.d.ts +183 -0
  38. package/dist/components/color-picker/index.js +500 -0
  39. package/dist/components/color-picker/index.jsx +436 -0
  40. package/dist/components/combobox/index.d.ts +134 -0
  41. package/dist/components/combobox/index.js +357 -0
  42. package/dist/components/combobox/index.jsx +315 -0
  43. package/dist/components/date-picker/index.d.ts +165 -0
  44. package/dist/components/date-picker/index.js +476 -0
  45. package/dist/components/date-picker/index.jsx +415 -0
  46. package/dist/components/dialog/index.d.ts +80 -0
  47. package/dist/components/dialog/index.js +219 -0
  48. package/dist/components/dialog/index.jsx +173 -0
  49. package/dist/components/download-trigger/index.d.ts +25 -0
  50. package/dist/components/download-trigger/index.js +42 -0
  51. package/dist/components/download-trigger/index.jsx +38 -0
  52. package/dist/components/editable/index.d.ts +79 -0
  53. package/dist/components/editable/index.js +190 -0
  54. package/dist/components/editable/index.jsx +181 -0
  55. package/dist/components/field/index.d.ts +201 -0
  56. package/dist/components/field/index.js +10 -0
  57. package/dist/components/field/index.jsx +10 -0
  58. package/dist/components/fieldset/index.d.ts +109 -0
  59. package/dist/components/fieldset/index.js +9 -0
  60. package/dist/components/fieldset/index.jsx +9 -0
  61. package/dist/components/highlight/index.d.ts +15 -0
  62. package/dist/components/highlight/index.js +47 -0
  63. package/dist/components/highlight/index.jsx +31 -0
  64. package/dist/components/presence/index.d.ts +5 -0
  65. package/dist/components/presence/index.js +9 -0
  66. package/dist/components/presence/index.jsx +9 -0
  67. package/dist/components/select/index.d.ts +134 -0
  68. package/dist/components/select/index.js +363 -0
  69. package/dist/components/select/index.jsx +312 -0
  70. package/dist/compose-refs-BVVIB7xn.js +20 -0
  71. package/dist/compose-refs-icUeuyHm.jsx +20 -0
  72. package/dist/core-DbInRfhI.jsx +416 -0
  73. package/dist/core-oNB2jGcl.js +416 -0
  74. package/dist/create-split-props-B8A7_AF7.jsx +7 -0
  75. package/dist/create-split-props-pQu7jijw.js +7 -0
  76. package/dist/factory-4A25bngy.d.ts +14 -0
  77. package/dist/factory-Ch5jgk20.jsx +37 -0
  78. package/dist/factory-PGDAvOKb.js +43 -0
  79. package/dist/field-BRr9Zdes.jsx +260 -0
  80. package/dist/field-CoYiA2ek.js +288 -0
  81. package/dist/fieldset-B_LyllEa.jsx +169 -0
  82. package/dist/fieldset-BrJqMLEd.js +184 -0
  83. package/dist/index-C7N791Fc.d.ts +23 -0
  84. package/dist/index-GEfvAmRc.d.ts +76 -0
  85. package/dist/index-j2avJy7D.d.ts +38 -0
  86. package/dist/index-oc8gLl07.d.ts +38 -0
  87. package/dist/index.d.ts +5 -29
  88. package/dist/index.js +4 -511
  89. package/dist/index.jsx +4 -497
  90. package/dist/presence-Bmn43U_q.jsx +68 -0
  91. package/dist/presence-BpwBRlZW.js +81 -0
  92. package/dist/providers-Bo0OFe08.js +96 -0
  93. package/dist/providers-DFaRRd80.jsx +82 -0
  94. package/dist/render-strategy-BNECKEQk.d.ts +9 -0
  95. package/dist/render-strategy-CdJhRv3I.jsx +12 -0
  96. package/dist/render-strategy-DFlz7Uc4.js +12 -0
  97. package/dist/run-if-fn-A3VwXy-o.jsx +6 -0
  98. package/dist/run-if-fn-D5794CxE.js +6 -0
  99. package/dist/types-Dbw4va3W.d.ts +9 -0
  100. package/dist/utils/index.d.ts +1 -1
  101. package/dist/utils/index.js +2 -1
  102. package/dist/utils/index.jsx +2 -1
  103. package/dist/utils-DQi-Cen5.js +0 -0
  104. package/dist/utils-vSjszv0W.jsx +0 -0
  105. package/package.json +102 -2
  106. /package/dist/{utils-DSKoW7eB.jsx → create-context-C3rvZvkc.jsx} +0 -0
  107. /package/dist/{utils-GEMuT7an.js → create-context-GfQ_MylE.js} +0 -0
  108. /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 };