@sprawlify/solid 0.0.14 → 0.0.15

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 (83) hide show
  1. package/dist/chunk-C4aQI7lE.jsx +18 -0
  2. package/dist/chunk-CKcAJnC7.js +18 -0
  3. package/dist/collapsible-Cg7zPadX.js +129 -0
  4. package/dist/collapsible-CjuC6xYl.jsx +117 -0
  5. package/dist/collection-BiyRTWsX.js +219 -0
  6. package/dist/collection-BlnS2UQy.jsx +219 -0
  7. package/dist/components/accordion/index.d.ts +69 -0
  8. package/dist/components/accordion/index.js +183 -0
  9. package/dist/components/accordion/index.jsx +157 -0
  10. package/dist/components/angle-slider/index.d.ts +74 -0
  11. package/dist/components/angle-slider/index.js +155 -0
  12. package/dist/components/angle-slider/index.jsx +144 -0
  13. package/dist/components/avatar/index.d.ts +49 -0
  14. package/dist/components/avatar/index.js +95 -0
  15. package/dist/components/avatar/index.jsx +88 -0
  16. package/dist/components/bottom-sheet/index.d.ts +80 -0
  17. package/dist/components/bottom-sheet/index.js +218 -0
  18. package/dist/components/bottom-sheet/index.jsx +177 -0
  19. package/dist/components/carousel/index.d.ts +98 -0
  20. package/dist/components/carousel/index.js +207 -0
  21. package/dist/components/carousel/index.jsx +192 -0
  22. package/dist/components/checkbox/index.d.ts +138 -0
  23. package/dist/components/checkbox/index.js +265 -0
  24. package/dist/components/checkbox/index.jsx +247 -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 +149 -0
  30. package/dist/components/clipboard/index.jsx +132 -0
  31. package/dist/components/collapsible/index.d.ts +60 -0
  32. package/dist/components/collapsible/index.js +8 -0
  33. package/dist/components/collapsible/index.jsx +8 -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/field/index.d.ts +201 -0
  38. package/dist/components/field/index.js +9 -0
  39. package/dist/components/field/index.jsx +9 -0
  40. package/dist/components/fieldset/index.d.ts +109 -0
  41. package/dist/components/fieldset/index.js +8 -0
  42. package/dist/components/fieldset/index.jsx +8 -0
  43. package/dist/components/presence/index.d.ts +5 -0
  44. package/dist/components/presence/index.js +8 -0
  45. package/dist/components/presence/index.jsx +8 -0
  46. package/dist/components/select/index.d.ts +134 -0
  47. package/dist/components/select/index.js +361 -0
  48. package/dist/components/select/index.jsx +310 -0
  49. package/dist/compose-refs-CzyOb8yH.jsx +20 -0
  50. package/dist/compose-refs-vsrTrt13.js +20 -0
  51. package/dist/create-split-props-CQVsvhvg.jsx +41 -0
  52. package/dist/factory-B6RK6SH4.d.ts +14 -0
  53. package/dist/factory-CEdj72aS.js +47 -0
  54. package/dist/field-C_WuoXOj.js +287 -0
  55. package/dist/field-CphvciGc.jsx +259 -0
  56. package/dist/fieldset-BG-0ZqWT.jsx +167 -0
  57. package/dist/fieldset-D1BO0LmU.js +182 -0
  58. package/dist/index-C3ATynHc.d.ts +23 -0
  59. package/dist/index-DXheKbqg.d.ts +76 -0
  60. package/dist/index-NWiNyxpL.d.ts +38 -0
  61. package/dist/index-vSwYtc2L.d.ts +38 -0
  62. package/dist/index.d.ts +5 -29
  63. package/dist/index.js +4 -511
  64. package/dist/index.jsx +4 -497
  65. package/dist/presence-Bfjusgm3.js +79 -0
  66. package/dist/presence-arWh1hVd.jsx +66 -0
  67. package/dist/providers-CHqGPEsc.jsx +82 -0
  68. package/dist/providers-CQkAUunr.js +96 -0
  69. package/dist/render-strategy-COrlrUuR.js +12 -0
  70. package/dist/render-strategy-CZDG_yDi.jsx +12 -0
  71. package/dist/render-strategy-CtRkdWei.d.ts +9 -0
  72. package/dist/run-if-fn-DRWB51JE.jsx +421 -0
  73. package/dist/run-if-fn-eYlaegHy.js +421 -0
  74. package/dist/types-bQRbEioA.d.ts +9 -0
  75. package/dist/utils/index.d.ts +1 -1
  76. package/dist/utils/index.js +2 -1
  77. package/dist/utils/index.jsx +2 -1
  78. package/dist/utils-DYer-9SY.js +0 -0
  79. package/dist/utils-DrvO4Hk3.jsx +0 -0
  80. package/package.json +62 -2
  81. /package/dist/{utils-DSKoW7eB.jsx → create-context-PS2j4mEo.js} +0 -0
  82. /package/dist/{utils-GEMuT7an.js → create-context-h3cXiEld.jsx} +0 -0
  83. /package/dist/{index-C_ThrXdH.d.ts → index-B0YoIRC4.d.ts} +0 -0
@@ -0,0 +1,219 @@
1
+ import { a as useMachine, t as runIfFn } from "./run-if-fn-DRWB51JE.jsx";
2
+ import { createEffect, createMemo, createSignal, on, splitProps } from "solid-js";
3
+ import { GridCollection, ListCollection, Selection, TreeCollection, filePathToTree } from "@sprawlify/primitives/collection";
4
+ import * as asyncList from "@sprawlify/primitives/machines/async-list";
5
+
6
+ //#region src/components/collection/grid-collection.ts
7
+ const createGridCollection = (options) => new GridCollection(options);
8
+
9
+ //#endregion
10
+ //#region src/components/collection/list-collection.ts
11
+ const createListCollection = (options) => new ListCollection(options);
12
+
13
+ //#endregion
14
+ //#region src/components/collection/tree-collection.ts
15
+ const createTreeCollection = (options) => new TreeCollection(options);
16
+ const createFileTreeCollection = (paths) => filePathToTree(paths);
17
+
18
+ //#endregion
19
+ //#region src/components/collection/use-async-list.ts
20
+ const useAsyncList = (props) => {
21
+ const machineProps = createMemo(() => runIfFn(props));
22
+ const service = useMachine(asyncList.machine, machineProps);
23
+ return createMemo(() => asyncList.connect(service));
24
+ };
25
+
26
+ //#endregion
27
+ //#region src/components/collection/use-list-collection.ts
28
+ function useListCollection(props) {
29
+ const splittedProps = createMemo(() => {
30
+ return splitProps(typeof props === "function" ? props() : props, [
31
+ "initialItems",
32
+ "filter",
33
+ "limit"
34
+ ]);
35
+ });
36
+ const init = () => {
37
+ const [localProps] = splittedProps();
38
+ return localProps.initialItems;
39
+ };
40
+ const [items, setItemsImpl] = createSignal(init());
41
+ const [filterText, setFilterText] = createSignal("");
42
+ const setItems = (newItems) => {
43
+ setItemsImpl(newItems);
44
+ setFilterText("");
45
+ };
46
+ const create = (itemsToCreate) => {
47
+ const [, collectionOptions] = splittedProps();
48
+ return createListCollection({
49
+ ...collectionOptions,
50
+ items: itemsToCreate
51
+ });
52
+ };
53
+ return {
54
+ collection: createMemo(() => {
55
+ const [localProps, collectionOptions] = splittedProps();
56
+ const filter = localProps.filter;
57
+ let activeItems = items();
58
+ if (filterText() && filter) activeItems = create(items()).filter((itemString, _index, item) => filter(itemString, filterText(), item)).items;
59
+ const limitedItems = localProps.limit == null ? activeItems : activeItems.slice(0, localProps.limit);
60
+ return createListCollection({
61
+ ...collectionOptions,
62
+ items: limitedItems
63
+ });
64
+ }),
65
+ filter: (inputValue = "") => {
66
+ setFilterText(inputValue);
67
+ },
68
+ set: (newItems) => {
69
+ setItems(newItems);
70
+ },
71
+ reset: () => {
72
+ const [localProps] = splittedProps();
73
+ setItems(localProps.initialItems);
74
+ },
75
+ clear: () => {
76
+ setItems([]);
77
+ },
78
+ insert: (index, ...itemsToInsert) => {
79
+ const newItems = create(items()).insert(index, ...itemsToInsert).items;
80
+ setItems(newItems);
81
+ },
82
+ insertBefore: (value, ...itemsToInsert) => {
83
+ const newItems = create(items()).insertBefore(value, ...itemsToInsert).items;
84
+ setItems(newItems);
85
+ },
86
+ insertAfter: (value, ...itemsToInsert) => {
87
+ const newItems = create(items()).insertAfter(value, ...itemsToInsert).items;
88
+ setItems(newItems);
89
+ },
90
+ remove: (...itemOrValues) => {
91
+ const newItems = create(items()).remove(...itemOrValues).items;
92
+ setItems(newItems);
93
+ },
94
+ move: (value, to) => {
95
+ const newItems = create(items()).move(value, to).items;
96
+ setItems(newItems);
97
+ },
98
+ moveBefore: (value, ...values) => {
99
+ const newItems = create(items()).moveBefore(value, ...values).items;
100
+ setItems(newItems);
101
+ },
102
+ moveAfter: (value, ...values) => {
103
+ const newItems = create(items()).moveAfter(value, ...values).items;
104
+ setItems(newItems);
105
+ },
106
+ reorder: (from, to) => {
107
+ const newItems = create(items()).reorder(from, to).items;
108
+ setItems(newItems);
109
+ },
110
+ append: (...itemsToAppend) => {
111
+ const newItems = create(items()).append(...itemsToAppend).items;
112
+ setItems(newItems);
113
+ },
114
+ upsert: (value, item, mode = "append") => {
115
+ const newItems = create(items()).upsert(value, item, mode).items;
116
+ setItems(newItems);
117
+ },
118
+ prepend: (...itemsToPrepend) => {
119
+ const newItems = create(items()).prepend(...itemsToPrepend).items;
120
+ setItems(newItems);
121
+ },
122
+ update: (value, item) => {
123
+ const newItems = create(items()).update(value, item).items;
124
+ setItems(newItems);
125
+ }
126
+ };
127
+ }
128
+
129
+ //#endregion
130
+ //#region src/components/collection/use-list-selection.ts
131
+ function useListSelection(props) {
132
+ const splittedProps = createMemo(() => {
133
+ return splitProps(typeof props === "function" ? props() : props, [
134
+ "collection",
135
+ "selectionMode",
136
+ "deselectable",
137
+ "initialSelectedValues",
138
+ "resetOnCollectionChange"
139
+ ]);
140
+ });
141
+ const createSelection = (values = []) => {
142
+ const [localProps] = splittedProps();
143
+ const selection$1 = new Selection(values);
144
+ selection$1.selectionMode = localProps.selectionMode ?? "single";
145
+ selection$1.deselectable = localProps.deselectable ?? true;
146
+ return selection$1;
147
+ };
148
+ const init = () => {
149
+ const [localProps] = splittedProps();
150
+ return createSelection(localProps.initialSelectedValues ?? []);
151
+ };
152
+ const [selection, setSelection] = createSignal(init());
153
+ const watchDeps = () => {
154
+ const [{ collection, resetOnCollectionChange }] = splittedProps();
155
+ return [collection.getValues(), resetOnCollectionChange];
156
+ };
157
+ createEffect(on(watchDeps, ([, resetOnCollectionChange]) => {
158
+ if (resetOnCollectionChange) setSelection(createSelection());
159
+ }, { defer: true }));
160
+ return {
161
+ selectedValues: createMemo(() => Array.from(selection())),
162
+ isEmpty: createMemo(() => selection().isEmpty()),
163
+ firstSelectedValue: createMemo(() => {
164
+ const [localProps] = splittedProps();
165
+ return selection().firstSelectedValue(localProps.collection);
166
+ }),
167
+ lastSelectedValue: createMemo(() => {
168
+ const [localProps] = splittedProps();
169
+ return selection().lastSelectedValue(localProps.collection);
170
+ }),
171
+ isSelected: (value) => {
172
+ return selection().isSelected(value);
173
+ },
174
+ isAllSelected: () => {
175
+ const [localProps] = splittedProps();
176
+ const allValues = localProps.collection.getValues();
177
+ return allValues.length > 0 && allValues.every((value) => selection().isSelected(value));
178
+ },
179
+ isSomeSelected: () => {
180
+ const [localProps] = splittedProps();
181
+ return localProps.collection.getValues().some((value) => selection().isSelected(value));
182
+ },
183
+ canSelect: (value) => {
184
+ const [localProps] = splittedProps();
185
+ return selection().canSelect(localProps.collection, value);
186
+ },
187
+ select: (value, forceToggle) => {
188
+ const [localProps] = splittedProps();
189
+ setSelection(selection().select(localProps.collection, value, forceToggle));
190
+ },
191
+ deselect: (value) => {
192
+ setSelection(selection().deselect(value));
193
+ },
194
+ toggle: (value) => {
195
+ const [localProps] = splittedProps();
196
+ setSelection(selection().toggleSelection(localProps.collection, value));
197
+ },
198
+ replace: (value) => {
199
+ const [localProps] = splittedProps();
200
+ setSelection(selection().replaceSelection(localProps.collection, value));
201
+ },
202
+ extend: (anchorValue, targetValue) => {
203
+ const [localProps] = splittedProps();
204
+ setSelection(selection().extendSelection(localProps.collection, anchorValue, targetValue));
205
+ },
206
+ setSelectedValues: (values) => {
207
+ setSelection(selection().setSelection(values));
208
+ },
209
+ clear: () => {
210
+ setSelection(selection().clearSelection());
211
+ },
212
+ resetSelection: () => {
213
+ setSelection(createSelection());
214
+ }
215
+ };
216
+ }
217
+
218
+ //#endregion
219
+ export { createTreeCollection as a, createFileTreeCollection as i, useListCollection as n, createListCollection as o, useAsyncList as r, createGridCollection as s, useListSelection as t };
@@ -0,0 +1,69 @@
1
+ import { n as PropTypes } from "../../index-C3ATynHc.js";
2
+ import { i as Optional, n as MaybeAccessor } from "../../types-bQRbEioA.js";
3
+ import { n as PolymorphicProps, t as HTMLProps } from "../../factory-B6RK6SH4.js";
4
+ import { t as RenderStrategyProps } from "../../render-strategy-CtRkdWei.js";
5
+ import * as solid_js71 from "solid-js";
6
+ import { Accessor, JSX } from "solid-js";
7
+ import * as accordion from "@sprawlify/primitives/machines/accordion";
8
+ import { FocusChangeDetails, FocusChangeDetails as AccordionFocusChangeDetails, ItemProps, ItemState, ValueChangeDetails, ValueChangeDetails as AccordionValueChangeDetails, anatomy as accordionAnatomy } from "@sprawlify/primitives/machines/accordion";
9
+
10
+ //#region src/components/accordion/use-accordion.d.ts
11
+ interface UseAccordionProps extends Optional<Omit<accordion.Props, 'dir' | 'getRootNode'>, 'id'> {}
12
+ interface UseAccordionReturn extends Accessor<accordion.Api<PropTypes>> {}
13
+ declare const useAccordion: (props?: MaybeAccessor<UseAccordionProps>) => UseAccordionReturn;
14
+ //#endregion
15
+ //#region src/components/accordion/use-accordion-context.d.ts
16
+ interface UseAccordionContext extends UseAccordionReturn {}
17
+ //#endregion
18
+ //#region src/components/accordion/accordion-context.d.ts
19
+ interface AccordionContextProps {
20
+ children: (context: UseAccordionContext) => JSX.Element;
21
+ }
22
+ declare const AccordionContext: (props: AccordionContextProps) => JSX.Element;
23
+ //#endregion
24
+ //#region src/components/accordion/accordion-item.d.ts
25
+ interface AccordionItemBaseProps extends ItemProps, PolymorphicProps<'div'> {}
26
+ interface AccordionItemProps extends HTMLProps<'div'>, AccordionItemBaseProps {}
27
+ declare const AccordionItem: (props: AccordionItemProps) => solid_js71.JSX.Element;
28
+ //#endregion
29
+ //#region src/components/accordion/accordion-item-content.d.ts
30
+ interface AccordionItemContentBaseProps extends PolymorphicProps<'div'> {}
31
+ interface AccordionItemContentProps extends HTMLProps<'div'>, AccordionItemContentBaseProps {}
32
+ declare const AccordionItemContent: (props: AccordionItemContentProps) => solid_js71.JSX.Element;
33
+ //#endregion
34
+ //#region src/components/accordion/use-accordion-item-context.d.ts
35
+ interface UseAccordionItemContext extends Accessor<ItemState> {}
36
+ //#endregion
37
+ //#region src/components/accordion/accordion-item-context.d.ts
38
+ interface AccordionItemContextProps {
39
+ children: (context: UseAccordionItemContext) => JSX.Element;
40
+ }
41
+ declare const AccordionItemContext: (props: AccordionItemContextProps) => JSX.Element;
42
+ //#endregion
43
+ //#region src/components/accordion/accordion-item-indicator.d.ts
44
+ interface AccordionItemIndicatorBaseProps extends PolymorphicProps<'div'> {}
45
+ interface AccordionItemIndicatorProps extends HTMLProps<'div'>, AccordionItemIndicatorBaseProps {}
46
+ declare const AccordionItemIndicator: (props: AccordionItemIndicatorProps) => solid_js71.JSX.Element;
47
+ //#endregion
48
+ //#region src/components/accordion/accordion-item-trigger.d.ts
49
+ interface AccordionItemTriggerBaseProps extends PolymorphicProps<'button'> {}
50
+ interface AccordionItemTriggerProps extends HTMLProps<'button'>, AccordionItemTriggerBaseProps {}
51
+ declare const AccordionItemTrigger: (props: AccordionItemTriggerProps) => solid_js71.JSX.Element;
52
+ //#endregion
53
+ //#region src/components/accordion/accordion-root.d.ts
54
+ interface AccordionRootBaseProps extends UseAccordionProps, RenderStrategyProps, PolymorphicProps<'div'> {}
55
+ interface AccordionRootProps extends HTMLProps<'div'>, AccordionRootBaseProps {}
56
+ declare const AccordionRoot: (props: AccordionRootProps) => solid_js71.JSX.Element;
57
+ //#endregion
58
+ //#region src/components/accordion/accordion-root-provider.d.ts
59
+ interface RootProviderProps {
60
+ value: UseAccordionReturn;
61
+ }
62
+ interface AccordionRootProviderBaseProps extends RootProviderProps, RenderStrategyProps, PolymorphicProps<'div'> {}
63
+ interface AccordionRootProviderProps extends HTMLProps<'div'>, AccordionRootProviderBaseProps {}
64
+ declare const AccordionRootProvider: (props: AccordionRootProviderProps) => solid_js71.JSX.Element;
65
+ declare namespace accordion_d_exports {
66
+ export { AccordionContext as Context, AccordionContextProps as ContextProps, FocusChangeDetails, AccordionItem as Item, AccordionItemBaseProps as ItemBaseProps, AccordionItemContent as ItemContent, AccordionItemContentBaseProps as ItemContentBaseProps, AccordionItemContentProps as ItemContentProps, AccordionItemContext as ItemContext, AccordionItemContextProps as ItemContextProps, AccordionItemIndicator as ItemIndicator, AccordionItemIndicatorBaseProps as ItemIndicatorBaseProps, AccordionItemIndicatorProps as ItemIndicatorProps, AccordionItemProps as ItemProps, AccordionItemTrigger as ItemTrigger, AccordionItemTriggerBaseProps as ItemTriggerBaseProps, AccordionItemTriggerProps as ItemTriggerProps, AccordionRoot as Root, AccordionRootBaseProps as RootBaseProps, AccordionRootProps as RootProps, AccordionRootProvider as RootProvider, AccordionRootProviderBaseProps as RootProviderBaseProps, AccordionRootProviderProps as RootProviderProps, ValueChangeDetails };
67
+ }
68
+ //#endregion
69
+ export { accordion_d_exports as Accordion, AccordionContext, type AccordionContextProps, type AccordionFocusChangeDetails, AccordionItem, type AccordionItemBaseProps, AccordionItemContent, type AccordionItemContentBaseProps, type AccordionItemContentProps, AccordionItemContext, type AccordionItemContextProps, AccordionItemIndicator, type AccordionItemIndicatorBaseProps, type AccordionItemIndicatorProps, type AccordionItemProps, AccordionItemTrigger, type AccordionItemTriggerBaseProps, type AccordionItemTriggerProps, AccordionRoot, type AccordionRootBaseProps, type AccordionRootProps, AccordionRootProvider, type AccordionRootProviderBaseProps, type AccordionRootProviderProps, type AccordionValueChangeDetails, type UseAccordionContext, type UseAccordionItemContext, type UseAccordionProps, type UseAccordionReturn, accordionAnatomy, useAccordion, useAccordionContext, useAccordionItemContext };
@@ -0,0 +1,183 @@
1
+ import { t as __export } from "../../chunk-CKcAJnC7.js";
2
+ import { a as useMachine, i as mergeProps$2, r as normalizeProps, t as runIfFn } from "../../run-if-fn-eYlaegHy.js";
3
+ import { t as createContext$1 } from "../../create-context-PS2j4mEo.js";
4
+ import { i as useLocaleContext, o as useEnvironmentContext } from "../../providers-CQkAUunr.js";
5
+ import { n as createSplitProps, t as sprawlify } from "../../factory-CEdj72aS.js";
6
+ import { n as splitRenderStrategyProps, r as useRenderStrategyContext, t as RenderStrategyProvider } from "../../render-strategy-COrlrUuR.js";
7
+ import { l as CollapsibleContent, o as CollapsibleRoot, u as useCollapsibleContext } from "../../collapsible-Cg7zPadX.js";
8
+ import { createMemo, createUniqueId, splitProps } from "solid-js";
9
+ import { createComponent, mergeProps as mergeProps$1 } from "solid-js/web";
10
+ import * as accordion from "@sprawlify/primitives/machines/accordion";
11
+ import { anatomy as accordionAnatomy } from "@sprawlify/primitives/machines/accordion";
12
+
13
+ //#region src/components/accordion/use-accordion-context.ts
14
+ const [AccordionProvider, useAccordionContext] = createContext$1({
15
+ hookName: "useAccordionContext",
16
+ providerName: "<AccordionProvider />"
17
+ });
18
+
19
+ //#endregion
20
+ //#region src/components/accordion/accordion-context.tsx
21
+ const AccordionContext = (props) => props.children(useAccordionContext());
22
+
23
+ //#endregion
24
+ //#region src/components/accordion/use-accordion-item-context.ts
25
+ const [AccordionItemProvider, useAccordionItemContext] = createContext$1({
26
+ hookName: "useAccordionItemContext",
27
+ providerName: "<AccordionItemProvider />"
28
+ });
29
+
30
+ //#endregion
31
+ //#region src/components/accordion/use-accordion-item-props-context.ts
32
+ const [AccordionItemPropsProvider, useAccordionItemPropsContext] = createContext$1({
33
+ hookName: "useAccordionItemPropsContext",
34
+ providerName: "<AccordionItemPropsProvider />"
35
+ });
36
+
37
+ //#endregion
38
+ //#region src/components/accordion/accordion-item.tsx
39
+ const AccordionItem = (props) => {
40
+ const [itemProps, localProps] = createSplitProps()(props, ["value", "disabled"]);
41
+ const accordion$1 = useAccordionContext();
42
+ const renderStrategyProps = useRenderStrategyContext();
43
+ const mergedProps = mergeProps$2(() => accordion$1().getItemProps(itemProps), localProps);
44
+ const itemState = createMemo(() => accordion$1().getItemState(itemProps));
45
+ const itemContentProps = accordion$1().getItemContentProps(itemProps);
46
+ return createComponent(AccordionItemPropsProvider, {
47
+ value: itemProps,
48
+ get children() {
49
+ return createComponent(AccordionItemProvider, {
50
+ value: itemState,
51
+ get children() {
52
+ return createComponent(CollapsibleRoot, mergeProps$1({
53
+ get open() {
54
+ return itemState().expanded;
55
+ },
56
+ get ids() {
57
+ return { content: itemContentProps.id };
58
+ }
59
+ }, renderStrategyProps, mergedProps));
60
+ }
61
+ });
62
+ }
63
+ });
64
+ };
65
+
66
+ //#endregion
67
+ //#region src/components/accordion/accordion-item-content.tsx
68
+ const splitVisibilityProps = createSplitProps();
69
+ const AccordionItemContent = (props) => {
70
+ const accordion$1 = useAccordionContext();
71
+ const itemProps = useAccordionItemPropsContext();
72
+ const itemContentProps = createMemo(() => {
73
+ const [, ownProps] = splitVisibilityProps(accordion$1().getItemContentProps(itemProps), ["hidden", "data-state"]);
74
+ return ownProps;
75
+ });
76
+ const mergedProps = mergeProps$2(() => itemContentProps(), props);
77
+ return createComponent(CollapsibleContent, mergedProps);
78
+ };
79
+
80
+ //#endregion
81
+ //#region src/components/accordion/accordion-item-context.tsx
82
+ const AccordionItemContext = (props) => props.children(useAccordionItemContext());
83
+
84
+ //#endregion
85
+ //#region src/components/accordion/accordion-item-indicator.tsx
86
+ const AccordionItemIndicator = (props) => {
87
+ const accordion$1 = useAccordionContext();
88
+ const itemProps = useAccordionItemPropsContext();
89
+ const mergedProps = mergeProps$2(() => accordion$1().getItemIndicatorProps(itemProps), props);
90
+ return createComponent(sprawlify.div, mergedProps);
91
+ };
92
+
93
+ //#endregion
94
+ //#region src/components/accordion/accordion-item-trigger.tsx
95
+ const AccordionItemTrigger = (props) => {
96
+ const accordion$1 = useAccordionContext();
97
+ const itemProps = useAccordionItemPropsContext();
98
+ const collapsible = useCollapsibleContext();
99
+ const [ariaControls, buttonProps] = splitProps(mergeProps$2(() => accordion$1().getItemTriggerProps(itemProps), props), ["aria-controls"]);
100
+ return createComponent(sprawlify.button, mergeProps$1(buttonProps, () => !collapsible().unmounted && ariaControls));
101
+ };
102
+
103
+ //#endregion
104
+ //#region src/components/accordion/use-accordion.ts
105
+ const useAccordion = (props) => {
106
+ const id = createUniqueId();
107
+ const locale = useLocaleContext();
108
+ const environment = useEnvironmentContext();
109
+ const machineProps = createMemo(() => ({
110
+ id,
111
+ dir: locale().dir,
112
+ getRootNode: environment().getRootNode,
113
+ ...runIfFn(props)
114
+ }));
115
+ const service = useMachine(accordion.machine, machineProps);
116
+ return createMemo(() => accordion.connect(service, normalizeProps));
117
+ };
118
+
119
+ //#endregion
120
+ //#region src/components/accordion/accordion-root.tsx
121
+ const AccordionRoot = (props) => {
122
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
123
+ const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
124
+ "collapsible",
125
+ "defaultValue",
126
+ "disabled",
127
+ "id",
128
+ "ids",
129
+ "multiple",
130
+ "onFocusChange",
131
+ "onValueChange",
132
+ "orientation",
133
+ "value"
134
+ ]);
135
+ const api = useAccordion(useAccordionProps);
136
+ const mergedProps = mergeProps$2(() => api().getRootProps(), localProps);
137
+ return createComponent(AccordionProvider, {
138
+ value: api,
139
+ get children() {
140
+ return createComponent(RenderStrategyProvider, {
141
+ value: renderStrategyProps,
142
+ get children() {
143
+ return createComponent(sprawlify.div, mergedProps);
144
+ }
145
+ });
146
+ }
147
+ });
148
+ };
149
+
150
+ //#endregion
151
+ //#region src/components/accordion/accordion-root-provider.tsx
152
+ const AccordionRootProvider = (props) => {
153
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
154
+ const [{ value: accordion$1 }, localProps] = createSplitProps()(accordionProps, ["value"]);
155
+ const mergedProps = mergeProps$2(() => accordion$1().getRootProps(), localProps);
156
+ return createComponent(AccordionProvider, {
157
+ value: accordion$1,
158
+ get children() {
159
+ return createComponent(RenderStrategyProvider, {
160
+ value: renderStrategyProps,
161
+ get children() {
162
+ return createComponent(sprawlify.div, mergedProps);
163
+ }
164
+ });
165
+ }
166
+ });
167
+ };
168
+
169
+ //#endregion
170
+ //#region src/components/accordion/accordion.ts
171
+ var accordion_exports = /* @__PURE__ */ __export({
172
+ Context: () => AccordionContext,
173
+ Item: () => AccordionItem,
174
+ ItemContent: () => AccordionItemContent,
175
+ ItemContext: () => AccordionItemContext,
176
+ ItemIndicator: () => AccordionItemIndicator,
177
+ ItemTrigger: () => AccordionItemTrigger,
178
+ Root: () => AccordionRoot,
179
+ RootProvider: () => AccordionRootProvider
180
+ });
181
+
182
+ //#endregion
183
+ export { accordion_exports as Accordion, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContext, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, AccordionRootProvider, accordionAnatomy, useAccordion, useAccordionContext, useAccordionItemContext };
@@ -0,0 +1,157 @@
1
+ import { t as __export } from "../../chunk-C4aQI7lE.jsx";
2
+ import { a as useMachine, i as mergeProps$1, r as normalizeProps, t as runIfFn } from "../../run-if-fn-DRWB51JE.jsx";
3
+ import { t as createContext$1 } from "../../create-context-h3cXiEld.jsx";
4
+ import { i as useLocaleContext, o as useEnvironmentContext } from "../../providers-CHqGPEsc.jsx";
5
+ import { n as sprawlify, t as createSplitProps } from "../../create-split-props-CQVsvhvg.jsx";
6
+ import { n as splitRenderStrategyProps, r as useRenderStrategyContext, t as RenderStrategyProvider } from "../../render-strategy-CZDG_yDi.jsx";
7
+ import { t as collapsible_exports, u as useCollapsibleContext } from "../../collapsible-CjuC6xYl.jsx";
8
+ import { createMemo, createUniqueId, splitProps } from "solid-js";
9
+ import * as accordion from "@sprawlify/primitives/machines/accordion";
10
+ import { anatomy as accordionAnatomy } from "@sprawlify/primitives/machines/accordion";
11
+
12
+ //#region src/components/accordion/use-accordion-context.ts
13
+ const [AccordionProvider, useAccordionContext] = createContext$1({
14
+ hookName: "useAccordionContext",
15
+ providerName: "<AccordionProvider />"
16
+ });
17
+
18
+ //#endregion
19
+ //#region src/components/accordion/accordion-context.tsx
20
+ const AccordionContext = (props) => props.children(useAccordionContext());
21
+
22
+ //#endregion
23
+ //#region src/components/accordion/use-accordion-item-context.ts
24
+ const [AccordionItemProvider, useAccordionItemContext] = createContext$1({
25
+ hookName: "useAccordionItemContext",
26
+ providerName: "<AccordionItemProvider />"
27
+ });
28
+
29
+ //#endregion
30
+ //#region src/components/accordion/use-accordion-item-props-context.ts
31
+ const [AccordionItemPropsProvider, useAccordionItemPropsContext] = createContext$1({
32
+ hookName: "useAccordionItemPropsContext",
33
+ providerName: "<AccordionItemPropsProvider />"
34
+ });
35
+
36
+ //#endregion
37
+ //#region src/components/accordion/accordion-item.tsx
38
+ const AccordionItem = (props) => {
39
+ const [itemProps, localProps] = createSplitProps()(props, ["value", "disabled"]);
40
+ const accordion$1 = useAccordionContext();
41
+ const renderStrategyProps = useRenderStrategyContext();
42
+ const mergedProps = mergeProps$1(() => accordion$1().getItemProps(itemProps), localProps);
43
+ const itemState = createMemo(() => accordion$1().getItemState(itemProps));
44
+ const itemContentProps = accordion$1().getItemContentProps(itemProps);
45
+ return <AccordionItemPropsProvider value={itemProps}>
46
+ <AccordionItemProvider value={itemState}>
47
+ <collapsible_exports.Root open={itemState().expanded} ids={{ content: itemContentProps.id }} {...renderStrategyProps} {...mergedProps} />
48
+ </AccordionItemProvider>
49
+ </AccordionItemPropsProvider>;
50
+ };
51
+
52
+ //#endregion
53
+ //#region src/components/accordion/accordion-item-content.tsx
54
+ const splitVisibilityProps = createSplitProps();
55
+ const AccordionItemContent = (props) => {
56
+ const accordion$1 = useAccordionContext();
57
+ const itemProps = useAccordionItemPropsContext();
58
+ const itemContentProps = createMemo(() => {
59
+ const [, ownProps] = splitVisibilityProps(accordion$1().getItemContentProps(itemProps), ["hidden", "data-state"]);
60
+ return ownProps;
61
+ });
62
+ const mergedProps = mergeProps$1(() => itemContentProps(), props);
63
+ return <collapsible_exports.Content {...mergedProps} />;
64
+ };
65
+
66
+ //#endregion
67
+ //#region src/components/accordion/accordion-item-context.tsx
68
+ const AccordionItemContext = (props) => props.children(useAccordionItemContext());
69
+
70
+ //#endregion
71
+ //#region src/components/accordion/accordion-item-indicator.tsx
72
+ const AccordionItemIndicator = (props) => {
73
+ const accordion$1 = useAccordionContext();
74
+ const itemProps = useAccordionItemPropsContext();
75
+ const mergedProps = mergeProps$1(() => accordion$1().getItemIndicatorProps(itemProps), props);
76
+ return <sprawlify.div {...mergedProps} />;
77
+ };
78
+
79
+ //#endregion
80
+ //#region src/components/accordion/accordion-item-trigger.tsx
81
+ const AccordionItemTrigger = (props) => {
82
+ const accordion$1 = useAccordionContext();
83
+ const itemProps = useAccordionItemPropsContext();
84
+ const collapsible = useCollapsibleContext();
85
+ const [ariaControls, buttonProps] = splitProps(mergeProps$1(() => accordion$1().getItemTriggerProps(itemProps), props), ["aria-controls"]);
86
+ return <sprawlify.button {...buttonProps} {...!collapsible().unmounted && ariaControls} />;
87
+ };
88
+
89
+ //#endregion
90
+ //#region src/components/accordion/use-accordion.ts
91
+ const useAccordion = (props) => {
92
+ const id = createUniqueId();
93
+ const locale = useLocaleContext();
94
+ const environment = useEnvironmentContext();
95
+ const machineProps = createMemo(() => ({
96
+ id,
97
+ dir: locale().dir,
98
+ getRootNode: environment().getRootNode,
99
+ ...runIfFn(props)
100
+ }));
101
+ const service = useMachine(accordion.machine, machineProps);
102
+ return createMemo(() => accordion.connect(service, normalizeProps));
103
+ };
104
+
105
+ //#endregion
106
+ //#region src/components/accordion/accordion-root.tsx
107
+ const AccordionRoot = (props) => {
108
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
109
+ const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
110
+ "collapsible",
111
+ "defaultValue",
112
+ "disabled",
113
+ "id",
114
+ "ids",
115
+ "multiple",
116
+ "onFocusChange",
117
+ "onValueChange",
118
+ "orientation",
119
+ "value"
120
+ ]);
121
+ const api = useAccordion(useAccordionProps);
122
+ const mergedProps = mergeProps$1(() => api().getRootProps(), localProps);
123
+ return <AccordionProvider value={api}>
124
+ <RenderStrategyProvider value={renderStrategyProps}>
125
+ <sprawlify.div {...mergedProps} />
126
+ </RenderStrategyProvider>
127
+ </AccordionProvider>;
128
+ };
129
+
130
+ //#endregion
131
+ //#region src/components/accordion/accordion-root-provider.tsx
132
+ const AccordionRootProvider = (props) => {
133
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
134
+ const [{ value: accordion$1 }, localProps] = createSplitProps()(accordionProps, ["value"]);
135
+ const mergedProps = mergeProps$1(() => accordion$1().getRootProps(), localProps);
136
+ return <AccordionProvider value={accordion$1}>
137
+ <RenderStrategyProvider value={renderStrategyProps}>
138
+ <sprawlify.div {...mergedProps} />
139
+ </RenderStrategyProvider>
140
+ </AccordionProvider>;
141
+ };
142
+
143
+ //#endregion
144
+ //#region src/components/accordion/accordion.ts
145
+ var accordion_exports = /* @__PURE__ */ __export({
146
+ Context: () => AccordionContext,
147
+ Item: () => AccordionItem,
148
+ ItemContent: () => AccordionItemContent,
149
+ ItemContext: () => AccordionItemContext,
150
+ ItemIndicator: () => AccordionItemIndicator,
151
+ ItemTrigger: () => AccordionItemTrigger,
152
+ Root: () => AccordionRoot,
153
+ RootProvider: () => AccordionRootProvider
154
+ });
155
+
156
+ //#endregion
157
+ export { accordion_exports as Accordion, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContext, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, AccordionRootProvider, accordionAnatomy, useAccordion, useAccordionContext, useAccordionItemContext };