@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,220 @@
1
+ import { i as useMachine } from "./core-oNB2jGcl.js";
2
+ import { t as runIfFn } from "./run-if-fn-D5794CxE.js";
3
+ import { createEffect, createMemo, createSignal, on, splitProps } from "solid-js";
4
+ import { GridCollection, ListCollection, Selection, TreeCollection, filePathToTree } from "@sprawlify/primitives/collection";
5
+ import * as asyncList from "@sprawlify/primitives/machines/async-list";
6
+
7
+ //#region src/components/collection/grid-collection.ts
8
+ const createGridCollection = (options) => new GridCollection(options);
9
+
10
+ //#endregion
11
+ //#region src/components/collection/list-collection.ts
12
+ const createListCollection = (options) => new ListCollection(options);
13
+
14
+ //#endregion
15
+ //#region src/components/collection/tree-collection.ts
16
+ const createTreeCollection = (options) => new TreeCollection(options);
17
+ const createFileTreeCollection = (paths) => filePathToTree(paths);
18
+
19
+ //#endregion
20
+ //#region src/components/collection/use-async-list.ts
21
+ const useAsyncList = (props) => {
22
+ const machineProps = createMemo(() => runIfFn(props));
23
+ const service = useMachine(asyncList.machine, machineProps);
24
+ return createMemo(() => asyncList.connect(service));
25
+ };
26
+
27
+ //#endregion
28
+ //#region src/components/collection/use-list-collection.ts
29
+ function useListCollection(props) {
30
+ const splittedProps = createMemo(() => {
31
+ return splitProps(typeof props === "function" ? props() : props, [
32
+ "initialItems",
33
+ "filter",
34
+ "limit"
35
+ ]);
36
+ });
37
+ const init = () => {
38
+ const [localProps] = splittedProps();
39
+ return localProps.initialItems;
40
+ };
41
+ const [items, setItemsImpl] = createSignal(init());
42
+ const [filterText, setFilterText] = createSignal("");
43
+ const setItems = (newItems) => {
44
+ setItemsImpl(newItems);
45
+ setFilterText("");
46
+ };
47
+ const create = (itemsToCreate) => {
48
+ const [, collectionOptions] = splittedProps();
49
+ return createListCollection({
50
+ ...collectionOptions,
51
+ items: itemsToCreate
52
+ });
53
+ };
54
+ return {
55
+ collection: createMemo(() => {
56
+ const [localProps, collectionOptions] = splittedProps();
57
+ const filter = localProps.filter;
58
+ let activeItems = items();
59
+ if (filterText() && filter) activeItems = create(items()).filter((itemString, _index, item) => filter(itemString, filterText(), item)).items;
60
+ const limitedItems = localProps.limit == null ? activeItems : activeItems.slice(0, localProps.limit);
61
+ return createListCollection({
62
+ ...collectionOptions,
63
+ items: limitedItems
64
+ });
65
+ }),
66
+ filter: (inputValue = "") => {
67
+ setFilterText(inputValue);
68
+ },
69
+ set: (newItems) => {
70
+ setItems(newItems);
71
+ },
72
+ reset: () => {
73
+ const [localProps] = splittedProps();
74
+ setItems(localProps.initialItems);
75
+ },
76
+ clear: () => {
77
+ setItems([]);
78
+ },
79
+ insert: (index, ...itemsToInsert) => {
80
+ const newItems = create(items()).insert(index, ...itemsToInsert).items;
81
+ setItems(newItems);
82
+ },
83
+ insertBefore: (value, ...itemsToInsert) => {
84
+ const newItems = create(items()).insertBefore(value, ...itemsToInsert).items;
85
+ setItems(newItems);
86
+ },
87
+ insertAfter: (value, ...itemsToInsert) => {
88
+ const newItems = create(items()).insertAfter(value, ...itemsToInsert).items;
89
+ setItems(newItems);
90
+ },
91
+ remove: (...itemOrValues) => {
92
+ const newItems = create(items()).remove(...itemOrValues).items;
93
+ setItems(newItems);
94
+ },
95
+ move: (value, to) => {
96
+ const newItems = create(items()).move(value, to).items;
97
+ setItems(newItems);
98
+ },
99
+ moveBefore: (value, ...values) => {
100
+ const newItems = create(items()).moveBefore(value, ...values).items;
101
+ setItems(newItems);
102
+ },
103
+ moveAfter: (value, ...values) => {
104
+ const newItems = create(items()).moveAfter(value, ...values).items;
105
+ setItems(newItems);
106
+ },
107
+ reorder: (from, to) => {
108
+ const newItems = create(items()).reorder(from, to).items;
109
+ setItems(newItems);
110
+ },
111
+ append: (...itemsToAppend) => {
112
+ const newItems = create(items()).append(...itemsToAppend).items;
113
+ setItems(newItems);
114
+ },
115
+ upsert: (value, item, mode = "append") => {
116
+ const newItems = create(items()).upsert(value, item, mode).items;
117
+ setItems(newItems);
118
+ },
119
+ prepend: (...itemsToPrepend) => {
120
+ const newItems = create(items()).prepend(...itemsToPrepend).items;
121
+ setItems(newItems);
122
+ },
123
+ update: (value, item) => {
124
+ const newItems = create(items()).update(value, item).items;
125
+ setItems(newItems);
126
+ }
127
+ };
128
+ }
129
+
130
+ //#endregion
131
+ //#region src/components/collection/use-list-selection.ts
132
+ function useListSelection(props) {
133
+ const splittedProps = createMemo(() => {
134
+ return splitProps(typeof props === "function" ? props() : props, [
135
+ "collection",
136
+ "selectionMode",
137
+ "deselectable",
138
+ "initialSelectedValues",
139
+ "resetOnCollectionChange"
140
+ ]);
141
+ });
142
+ const createSelection = (values = []) => {
143
+ const [localProps] = splittedProps();
144
+ const selection$1 = new Selection(values);
145
+ selection$1.selectionMode = localProps.selectionMode ?? "single";
146
+ selection$1.deselectable = localProps.deselectable ?? true;
147
+ return selection$1;
148
+ };
149
+ const init = () => {
150
+ const [localProps] = splittedProps();
151
+ return createSelection(localProps.initialSelectedValues ?? []);
152
+ };
153
+ const [selection, setSelection] = createSignal(init());
154
+ const watchDeps = () => {
155
+ const [{ collection, resetOnCollectionChange }] = splittedProps();
156
+ return [collection.getValues(), resetOnCollectionChange];
157
+ };
158
+ createEffect(on(watchDeps, ([, resetOnCollectionChange]) => {
159
+ if (resetOnCollectionChange) setSelection(createSelection());
160
+ }, { defer: true }));
161
+ return {
162
+ selectedValues: createMemo(() => Array.from(selection())),
163
+ isEmpty: createMemo(() => selection().isEmpty()),
164
+ firstSelectedValue: createMemo(() => {
165
+ const [localProps] = splittedProps();
166
+ return selection().firstSelectedValue(localProps.collection);
167
+ }),
168
+ lastSelectedValue: createMemo(() => {
169
+ const [localProps] = splittedProps();
170
+ return selection().lastSelectedValue(localProps.collection);
171
+ }),
172
+ isSelected: (value) => {
173
+ return selection().isSelected(value);
174
+ },
175
+ isAllSelected: () => {
176
+ const [localProps] = splittedProps();
177
+ const allValues = localProps.collection.getValues();
178
+ return allValues.length > 0 && allValues.every((value) => selection().isSelected(value));
179
+ },
180
+ isSomeSelected: () => {
181
+ const [localProps] = splittedProps();
182
+ return localProps.collection.getValues().some((value) => selection().isSelected(value));
183
+ },
184
+ canSelect: (value) => {
185
+ const [localProps] = splittedProps();
186
+ return selection().canSelect(localProps.collection, value);
187
+ },
188
+ select: (value, forceToggle) => {
189
+ const [localProps] = splittedProps();
190
+ setSelection(selection().select(localProps.collection, value, forceToggle));
191
+ },
192
+ deselect: (value) => {
193
+ setSelection(selection().deselect(value));
194
+ },
195
+ toggle: (value) => {
196
+ const [localProps] = splittedProps();
197
+ setSelection(selection().toggleSelection(localProps.collection, value));
198
+ },
199
+ replace: (value) => {
200
+ const [localProps] = splittedProps();
201
+ setSelection(selection().replaceSelection(localProps.collection, value));
202
+ },
203
+ extend: (anchorValue, targetValue) => {
204
+ const [localProps] = splittedProps();
205
+ setSelection(selection().extendSelection(localProps.collection, anchorValue, targetValue));
206
+ },
207
+ setSelectedValues: (values) => {
208
+ setSelection(selection().setSelection(values));
209
+ },
210
+ clear: () => {
211
+ setSelection(selection().clearSelection());
212
+ },
213
+ resetSelection: () => {
214
+ setSelection(createSelection());
215
+ }
216
+ };
217
+ }
218
+
219
+ //#endregion
220
+ 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-C7N791Fc.js";
2
+ import { i as Optional, n as MaybeAccessor } from "../../types-Dbw4va3W.js";
3
+ import { n as PolymorphicProps, t as HTMLProps } from "../../factory-4A25bngy.js";
4
+ import { t as RenderStrategyProps } from "../../render-strategy-BNECKEQk.js";
5
+ import * as solid_js180 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_js180.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_js180.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_js180.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_js180.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_js180.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_js180.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,185 @@
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 { n as splitRenderStrategyProps, r as useRenderStrategyContext, t as RenderStrategyProvider } from "../../render-strategy-DFlz7Uc4.js";
8
+ import { t as sprawlify } from "../../factory-PGDAvOKb.js";
9
+ import { l as CollapsibleContent, o as CollapsibleRoot, u as useCollapsibleContext } from "../../collapsible-CX2tnXKq.js";
10
+ import { createMemo, createUniqueId, splitProps } from "solid-js";
11
+ import { createComponent, mergeProps as mergeProps$1 } from "solid-js/web";
12
+ import * as accordion from "@sprawlify/primitives/machines/accordion";
13
+ import { anatomy as accordionAnatomy } from "@sprawlify/primitives/machines/accordion";
14
+
15
+ //#region src/components/accordion/use-accordion-context.ts
16
+ const [AccordionProvider, useAccordionContext] = createContext$1({
17
+ hookName: "useAccordionContext",
18
+ providerName: "<AccordionProvider />"
19
+ });
20
+
21
+ //#endregion
22
+ //#region src/components/accordion/accordion-context.tsx
23
+ const AccordionContext = (props) => props.children(useAccordionContext());
24
+
25
+ //#endregion
26
+ //#region src/components/accordion/use-accordion-item-context.ts
27
+ const [AccordionItemProvider, useAccordionItemContext] = createContext$1({
28
+ hookName: "useAccordionItemContext",
29
+ providerName: "<AccordionItemProvider />"
30
+ });
31
+
32
+ //#endregion
33
+ //#region src/components/accordion/use-accordion-item-props-context.ts
34
+ const [AccordionItemPropsProvider, useAccordionItemPropsContext] = createContext$1({
35
+ hookName: "useAccordionItemPropsContext",
36
+ providerName: "<AccordionItemPropsProvider />"
37
+ });
38
+
39
+ //#endregion
40
+ //#region src/components/accordion/accordion-item.tsx
41
+ const AccordionItem = (props) => {
42
+ const [itemProps, localProps] = createSplitProps()(props, ["value", "disabled"]);
43
+ const accordion$1 = useAccordionContext();
44
+ const renderStrategyProps = useRenderStrategyContext();
45
+ const mergedProps = mergeProps$2(() => accordion$1().getItemProps(itemProps), localProps);
46
+ const itemState = createMemo(() => accordion$1().getItemState(itemProps));
47
+ const itemContentProps = accordion$1().getItemContentProps(itemProps);
48
+ return createComponent(AccordionItemPropsProvider, {
49
+ value: itemProps,
50
+ get children() {
51
+ return createComponent(AccordionItemProvider, {
52
+ value: itemState,
53
+ get children() {
54
+ return createComponent(CollapsibleRoot, mergeProps$1({
55
+ get open() {
56
+ return itemState().expanded;
57
+ },
58
+ get ids() {
59
+ return { content: itemContentProps.id };
60
+ }
61
+ }, renderStrategyProps, mergedProps));
62
+ }
63
+ });
64
+ }
65
+ });
66
+ };
67
+
68
+ //#endregion
69
+ //#region src/components/accordion/accordion-item-content.tsx
70
+ const splitVisibilityProps = createSplitProps();
71
+ const AccordionItemContent = (props) => {
72
+ const accordion$1 = useAccordionContext();
73
+ const itemProps = useAccordionItemPropsContext();
74
+ const itemContentProps = createMemo(() => {
75
+ const [, ownProps] = splitVisibilityProps(accordion$1().getItemContentProps(itemProps), ["hidden", "data-state"]);
76
+ return ownProps;
77
+ });
78
+ const mergedProps = mergeProps$2(() => itemContentProps(), props);
79
+ return createComponent(CollapsibleContent, mergedProps);
80
+ };
81
+
82
+ //#endregion
83
+ //#region src/components/accordion/accordion-item-context.tsx
84
+ const AccordionItemContext = (props) => props.children(useAccordionItemContext());
85
+
86
+ //#endregion
87
+ //#region src/components/accordion/accordion-item-indicator.tsx
88
+ const AccordionItemIndicator = (props) => {
89
+ const accordion$1 = useAccordionContext();
90
+ const itemProps = useAccordionItemPropsContext();
91
+ const mergedProps = mergeProps$2(() => accordion$1().getItemIndicatorProps(itemProps), props);
92
+ return createComponent(sprawlify.div, mergedProps);
93
+ };
94
+
95
+ //#endregion
96
+ //#region src/components/accordion/accordion-item-trigger.tsx
97
+ const AccordionItemTrigger = (props) => {
98
+ const accordion$1 = useAccordionContext();
99
+ const itemProps = useAccordionItemPropsContext();
100
+ const collapsible = useCollapsibleContext();
101
+ const [ariaControls, buttonProps] = splitProps(mergeProps$2(() => accordion$1().getItemTriggerProps(itemProps), props), ["aria-controls"]);
102
+ return createComponent(sprawlify.button, mergeProps$1(buttonProps, () => !collapsible().unmounted && ariaControls));
103
+ };
104
+
105
+ //#endregion
106
+ //#region src/components/accordion/use-accordion.ts
107
+ const useAccordion = (props) => {
108
+ const id = createUniqueId();
109
+ const locale = useLocaleContext();
110
+ const environment = useEnvironmentContext();
111
+ const machineProps = createMemo(() => ({
112
+ id,
113
+ dir: locale().dir,
114
+ getRootNode: environment().getRootNode,
115
+ ...runIfFn(props)
116
+ }));
117
+ const service = useMachine(accordion.machine, machineProps);
118
+ return createMemo(() => accordion.connect(service, normalizeProps));
119
+ };
120
+
121
+ //#endregion
122
+ //#region src/components/accordion/accordion-root.tsx
123
+ const AccordionRoot = (props) => {
124
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
125
+ const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
126
+ "collapsible",
127
+ "defaultValue",
128
+ "disabled",
129
+ "id",
130
+ "ids",
131
+ "multiple",
132
+ "onFocusChange",
133
+ "onValueChange",
134
+ "orientation",
135
+ "value"
136
+ ]);
137
+ const api = useAccordion(useAccordionProps);
138
+ const mergedProps = mergeProps$2(() => api().getRootProps(), localProps);
139
+ return createComponent(AccordionProvider, {
140
+ value: api,
141
+ get children() {
142
+ return createComponent(RenderStrategyProvider, {
143
+ value: renderStrategyProps,
144
+ get children() {
145
+ return createComponent(sprawlify.div, mergedProps);
146
+ }
147
+ });
148
+ }
149
+ });
150
+ };
151
+
152
+ //#endregion
153
+ //#region src/components/accordion/accordion-root-provider.tsx
154
+ const AccordionRootProvider = (props) => {
155
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
156
+ const [{ value: accordion$1 }, localProps] = createSplitProps()(accordionProps, ["value"]);
157
+ const mergedProps = mergeProps$2(() => accordion$1().getRootProps(), localProps);
158
+ return createComponent(AccordionProvider, {
159
+ value: accordion$1,
160
+ get children() {
161
+ return createComponent(RenderStrategyProvider, {
162
+ value: renderStrategyProps,
163
+ get children() {
164
+ return createComponent(sprawlify.div, mergedProps);
165
+ }
166
+ });
167
+ }
168
+ });
169
+ };
170
+
171
+ //#endregion
172
+ //#region src/components/accordion/accordion.ts
173
+ var accordion_exports = /* @__PURE__ */ __export({
174
+ Context: () => AccordionContext,
175
+ Item: () => AccordionItem,
176
+ ItemContent: () => AccordionItemContent,
177
+ ItemContext: () => AccordionItemContext,
178
+ ItemIndicator: () => AccordionItemIndicator,
179
+ ItemTrigger: () => AccordionItemTrigger,
180
+ Root: () => AccordionRoot,
181
+ RootProvider: () => AccordionRootProvider
182
+ });
183
+
184
+ //#endregion
185
+ export { accordion_exports as Accordion, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContext, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, AccordionRootProvider, accordionAnatomy, useAccordion, useAccordionContext, useAccordionItemContext };
@@ -0,0 +1,159 @@
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 { n as splitRenderStrategyProps, r as useRenderStrategyContext, t as RenderStrategyProvider } from "../../render-strategy-CdJhRv3I.jsx";
8
+ import { t as sprawlify } from "../../factory-Ch5jgk20.jsx";
9
+ import { t as collapsible_exports, u as useCollapsibleContext } from "../../collapsible-sG-Rzvf2.jsx";
10
+ import { createMemo, createUniqueId, splitProps } from "solid-js";
11
+ import * as accordion from "@sprawlify/primitives/machines/accordion";
12
+ import { anatomy as accordionAnatomy } from "@sprawlify/primitives/machines/accordion";
13
+
14
+ //#region src/components/accordion/use-accordion-context.ts
15
+ const [AccordionProvider, useAccordionContext] = createContext$1({
16
+ hookName: "useAccordionContext",
17
+ providerName: "<AccordionProvider />"
18
+ });
19
+
20
+ //#endregion
21
+ //#region src/components/accordion/accordion-context.tsx
22
+ const AccordionContext = (props) => props.children(useAccordionContext());
23
+
24
+ //#endregion
25
+ //#region src/components/accordion/use-accordion-item-context.ts
26
+ const [AccordionItemProvider, useAccordionItemContext] = createContext$1({
27
+ hookName: "useAccordionItemContext",
28
+ providerName: "<AccordionItemProvider />"
29
+ });
30
+
31
+ //#endregion
32
+ //#region src/components/accordion/use-accordion-item-props-context.ts
33
+ const [AccordionItemPropsProvider, useAccordionItemPropsContext] = createContext$1({
34
+ hookName: "useAccordionItemPropsContext",
35
+ providerName: "<AccordionItemPropsProvider />"
36
+ });
37
+
38
+ //#endregion
39
+ //#region src/components/accordion/accordion-item.tsx
40
+ const AccordionItem = (props) => {
41
+ const [itemProps, localProps] = createSplitProps()(props, ["value", "disabled"]);
42
+ const accordion$1 = useAccordionContext();
43
+ const renderStrategyProps = useRenderStrategyContext();
44
+ const mergedProps = mergeProps$1(() => accordion$1().getItemProps(itemProps), localProps);
45
+ const itemState = createMemo(() => accordion$1().getItemState(itemProps));
46
+ const itemContentProps = accordion$1().getItemContentProps(itemProps);
47
+ return <AccordionItemPropsProvider value={itemProps}>
48
+ <AccordionItemProvider value={itemState}>
49
+ <collapsible_exports.Root open={itemState().expanded} ids={{ content: itemContentProps.id }} {...renderStrategyProps} {...mergedProps} />
50
+ </AccordionItemProvider>
51
+ </AccordionItemPropsProvider>;
52
+ };
53
+
54
+ //#endregion
55
+ //#region src/components/accordion/accordion-item-content.tsx
56
+ const splitVisibilityProps = createSplitProps();
57
+ const AccordionItemContent = (props) => {
58
+ const accordion$1 = useAccordionContext();
59
+ const itemProps = useAccordionItemPropsContext();
60
+ const itemContentProps = createMemo(() => {
61
+ const [, ownProps] = splitVisibilityProps(accordion$1().getItemContentProps(itemProps), ["hidden", "data-state"]);
62
+ return ownProps;
63
+ });
64
+ const mergedProps = mergeProps$1(() => itemContentProps(), props);
65
+ return <collapsible_exports.Content {...mergedProps} />;
66
+ };
67
+
68
+ //#endregion
69
+ //#region src/components/accordion/accordion-item-context.tsx
70
+ const AccordionItemContext = (props) => props.children(useAccordionItemContext());
71
+
72
+ //#endregion
73
+ //#region src/components/accordion/accordion-item-indicator.tsx
74
+ const AccordionItemIndicator = (props) => {
75
+ const accordion$1 = useAccordionContext();
76
+ const itemProps = useAccordionItemPropsContext();
77
+ const mergedProps = mergeProps$1(() => accordion$1().getItemIndicatorProps(itemProps), props);
78
+ return <sprawlify.div {...mergedProps} />;
79
+ };
80
+
81
+ //#endregion
82
+ //#region src/components/accordion/accordion-item-trigger.tsx
83
+ const AccordionItemTrigger = (props) => {
84
+ const accordion$1 = useAccordionContext();
85
+ const itemProps = useAccordionItemPropsContext();
86
+ const collapsible = useCollapsibleContext();
87
+ const [ariaControls, buttonProps] = splitProps(mergeProps$1(() => accordion$1().getItemTriggerProps(itemProps), props), ["aria-controls"]);
88
+ return <sprawlify.button {...buttonProps} {...!collapsible().unmounted && ariaControls} />;
89
+ };
90
+
91
+ //#endregion
92
+ //#region src/components/accordion/use-accordion.ts
93
+ const useAccordion = (props) => {
94
+ const id = createUniqueId();
95
+ const locale = useLocaleContext();
96
+ const environment = useEnvironmentContext();
97
+ const machineProps = createMemo(() => ({
98
+ id,
99
+ dir: locale().dir,
100
+ getRootNode: environment().getRootNode,
101
+ ...runIfFn(props)
102
+ }));
103
+ const service = useMachine(accordion.machine, machineProps);
104
+ return createMemo(() => accordion.connect(service, normalizeProps));
105
+ };
106
+
107
+ //#endregion
108
+ //#region src/components/accordion/accordion-root.tsx
109
+ const AccordionRoot = (props) => {
110
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
111
+ const [useAccordionProps, localProps] = createSplitProps()(accordionProps, [
112
+ "collapsible",
113
+ "defaultValue",
114
+ "disabled",
115
+ "id",
116
+ "ids",
117
+ "multiple",
118
+ "onFocusChange",
119
+ "onValueChange",
120
+ "orientation",
121
+ "value"
122
+ ]);
123
+ const api = useAccordion(useAccordionProps);
124
+ const mergedProps = mergeProps$1(() => api().getRootProps(), localProps);
125
+ return <AccordionProvider value={api}>
126
+ <RenderStrategyProvider value={renderStrategyProps}>
127
+ <sprawlify.div {...mergedProps} />
128
+ </RenderStrategyProvider>
129
+ </AccordionProvider>;
130
+ };
131
+
132
+ //#endregion
133
+ //#region src/components/accordion/accordion-root-provider.tsx
134
+ const AccordionRootProvider = (props) => {
135
+ const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
136
+ const [{ value: accordion$1 }, localProps] = createSplitProps()(accordionProps, ["value"]);
137
+ const mergedProps = mergeProps$1(() => accordion$1().getRootProps(), localProps);
138
+ return <AccordionProvider value={accordion$1}>
139
+ <RenderStrategyProvider value={renderStrategyProps}>
140
+ <sprawlify.div {...mergedProps} />
141
+ </RenderStrategyProvider>
142
+ </AccordionProvider>;
143
+ };
144
+
145
+ //#endregion
146
+ //#region src/components/accordion/accordion.ts
147
+ var accordion_exports = /* @__PURE__ */ __export({
148
+ Context: () => AccordionContext,
149
+ Item: () => AccordionItem,
150
+ ItemContent: () => AccordionItemContent,
151
+ ItemContext: () => AccordionItemContext,
152
+ ItemIndicator: () => AccordionItemIndicator,
153
+ ItemTrigger: () => AccordionItemTrigger,
154
+ Root: () => AccordionRoot,
155
+ RootProvider: () => AccordionRootProvider
156
+ });
157
+
158
+ //#endregion
159
+ export { accordion_exports as Accordion, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContext, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, AccordionRootProvider, accordionAnatomy, useAccordion, useAccordionContext, useAccordionItemContext };