@sprawlify/react 0.0.6 → 0.0.7

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 (127) hide show
  1. package/dist/{collapsible-DYgHs1_i.mjs → collapsible-B06GGGE7.mjs} +7 -4
  2. package/dist/{collapsible-D_cXuaRy.cjs → collapsible-D5kle6Bc.cjs} +12 -9
  3. package/dist/collection-BKabYqpE.cjs +229 -0
  4. package/dist/collection-DEsp9z6X.mjs +187 -0
  5. package/dist/components/accordion/index.cjs +19 -24
  6. package/dist/components/accordion/index.d.cts +11 -9
  7. package/dist/components/accordion/index.d.mts +11 -9
  8. package/dist/components/accordion/index.mjs +9 -14
  9. package/dist/components/angle-slider/index.cjs +12 -9
  10. package/dist/components/angle-slider/index.d.cts +13 -11
  11. package/dist/components/angle-slider/index.d.mts +13 -11
  12. package/dist/components/angle-slider/index.mjs +7 -4
  13. package/dist/components/avatar/index.cjs +12 -9
  14. package/dist/components/avatar/index.d.cts +8 -6
  15. package/dist/components/avatar/index.d.mts +8 -6
  16. package/dist/components/avatar/index.mjs +7 -4
  17. package/dist/components/bottom-sheet/index.cjs +213 -0
  18. package/dist/components/bottom-sheet/index.d.cts +80 -0
  19. package/dist/components/bottom-sheet/index.d.mts +81 -0
  20. package/dist/components/bottom-sheet/index.mjs +190 -0
  21. package/dist/components/carousel/index.cjs +263 -0
  22. package/dist/components/carousel/index.d.cts +95 -0
  23. package/dist/components/carousel/index.d.mts +95 -0
  24. package/dist/components/carousel/index.mjs +242 -0
  25. package/dist/components/checkbox/index.cjs +308 -0
  26. package/dist/components/checkbox/index.d.cts +115 -0
  27. package/dist/components/checkbox/index.d.mts +115 -0
  28. package/dist/components/checkbox/index.mjs +289 -0
  29. package/dist/components/client-only/index.cjs +14 -0
  30. package/dist/components/client-only/index.d.cts +8 -0
  31. package/dist/components/client-only/index.d.mts +8 -0
  32. package/dist/components/client-only/index.mjs +13 -0
  33. package/dist/components/clipboard/index.cjs +185 -0
  34. package/dist/components/clipboard/index.d.cts +71 -0
  35. package/dist/components/clipboard/index.d.mts +71 -0
  36. package/dist/components/clipboard/index.mjs +163 -0
  37. package/dist/components/collapsible/index.cjs +6 -3
  38. package/dist/components/collapsible/index.d.cts +10 -8
  39. package/dist/components/collapsible/index.d.mts +10 -8
  40. package/dist/components/collapsible/index.mjs +6 -3
  41. package/dist/components/collection/index.cjs +11 -0
  42. package/dist/components/collection/index.d.cts +2 -0
  43. package/dist/components/collection/index.d.mts +2 -0
  44. package/dist/components/collection/index.mjs +5 -0
  45. package/dist/components/color-picker/index.cjs +613 -0
  46. package/dist/components/color-picker/index.d.cts +181 -0
  47. package/dist/components/color-picker/index.d.mts +182 -0
  48. package/dist/components/color-picker/index.mjs +570 -0
  49. package/dist/components/combobox/index.cjs +416 -0
  50. package/dist/components/combobox/index.d.cts +132 -0
  51. package/dist/components/combobox/index.d.mts +133 -0
  52. package/dist/components/combobox/index.mjs +387 -0
  53. package/dist/components/field/index.cjs +27 -0
  54. package/dist/components/field/index.d.cts +116 -0
  55. package/dist/components/field/index.d.mts +116 -0
  56. package/dist/components/field/index.mjs +9 -0
  57. package/dist/components/fieldset/index.cjs +23 -0
  58. package/dist/components/fieldset/index.d.cts +73 -0
  59. package/dist/components/fieldset/index.d.mts +73 -0
  60. package/dist/components/fieldset/index.mjs +9 -0
  61. package/dist/components/highlight/index.cjs +32 -0
  62. package/dist/components/highlight/index.d.cts +14 -0
  63. package/dist/components/highlight/index.d.mts +14 -0
  64. package/dist/components/highlight/index.mjs +30 -0
  65. package/dist/components/portal/index.cjs +32 -0
  66. package/dist/components/portal/index.d.cts +11 -0
  67. package/dist/components/portal/index.d.mts +11 -0
  68. package/dist/components/portal/index.mjs +31 -0
  69. package/dist/components/presence/index.cjs +11 -0
  70. package/dist/components/presence/index.d.cts +2 -0
  71. package/dist/components/presence/index.d.mts +4 -0
  72. package/dist/components/presence/index.mjs +7 -0
  73. package/dist/components/select/index.cjs +419 -0
  74. package/dist/components/select/index.d.cts +132 -0
  75. package/dist/components/select/index.d.mts +133 -0
  76. package/dist/components/select/index.mjs +384 -0
  77. package/dist/{factory-DN0EdT7u.mjs → core-C0F-4KYH.mjs} +4 -154
  78. package/dist/{factory-CfqPG186.cjs → core-CPLjF6nm.cjs} +0 -198
  79. package/dist/{create-context-DCEySQ7J.cjs → create-context-D6DyFRSf.cjs} +1 -1
  80. package/dist/environment-BXkWNF2O.mjs +46 -0
  81. package/dist/environment-DLPiALpf.cjs +58 -0
  82. package/dist/factory-BbbIuDqa.d.mts +15 -0
  83. package/dist/factory-CDX-oCN5.cjs +81 -0
  84. package/dist/factory-DQlmCPH2.mjs +63 -0
  85. package/dist/factory-DaNWFLLN.d.cts +15 -0
  86. package/dist/field-CGCTFCx2.mjs +322 -0
  87. package/dist/field-CXhpW6zO.cjs +404 -0
  88. package/dist/fieldset-CuSSYZxV.cjs +237 -0
  89. package/dist/fieldset-poJ8RDvB.mjs +184 -0
  90. package/dist/index-BUN9wyVM.d.mts +34 -0
  91. package/dist/index-Dhthtdz_.d.mts +74 -0
  92. package/dist/index-DqRXPiW_.d.cts +34 -0
  93. package/dist/index-DsZldSch.d.cts +74 -0
  94. package/dist/index-DtdZfcpz.d.mts +25 -0
  95. package/dist/index.cjs +14 -11
  96. package/dist/index.d.cts +7 -5
  97. package/dist/index.d.mts +7 -5
  98. package/dist/index.mjs +6 -3
  99. package/dist/normalize-props-sqcs77GC.d.cts +13 -0
  100. package/dist/presence-2A4loEJY.mjs +71 -0
  101. package/dist/presence-BX1tNsGA.cjs +101 -0
  102. package/dist/providers-Bk3ALTxZ.cjs +78 -0
  103. package/dist/providers-CyTYcOU1.mjs +54 -0
  104. package/dist/render-strategy-D3w8btTD.mjs +13 -0
  105. package/dist/render-strategy-k1JmEGnq.cjs +30 -0
  106. package/dist/types-DYWV3uAj.d.cts +5 -0
  107. package/dist/types-FLvjyw__.d.mts +5 -0
  108. package/dist/use-event-BcyNH29h.mjs +19 -0
  109. package/dist/use-event-CGMgV6xB.cjs +25 -0
  110. package/dist/use-safe-layout-effect-BlOhFUAp.mjs +17 -0
  111. package/dist/use-safe-layout-effect-vuYaDIpT.cjs +35 -0
  112. package/dist/utils/index.cjs +2 -2
  113. package/dist/utils/index.d.cts +1 -1
  114. package/dist/utils/index.d.mts +1 -1
  115. package/dist/utils/index.mjs +2 -2
  116. package/package.json +142 -2
  117. package/dist/factory-BZBSaT-0.d.cts +0 -29
  118. package/dist/factory-DaVMAttY.d.mts +0 -41
  119. /package/dist/{chunk-CYMnug_4.mjs → chunk-DLP0tNsH.mjs} +0 -0
  120. /package/dist/{create-context-DGYD_HQt.mjs → create-context-CdjrBhu7.mjs} +0 -0
  121. /package/dist/{create-split-props-BFscidWy.mjs → create-split-props-BJQdOyld.mjs} +0 -0
  122. /package/dist/{create-split-props-CSaOnJRj.cjs → create-split-props-CSkzaUOy.cjs} +0 -0
  123. /package/dist/{index-OOf7QNG5.d.mts → index-BwTxN5vG.d.mts} +0 -0
  124. /package/dist/{index-DiYk6N_L.d.cts → index-zOmANnUL.d.cts} +0 -0
  125. /package/dist/{render-strategy-RT-KvAqO.d.cts → render-strategy-CdpAg9jb.d.cts} +0 -0
  126. /package/dist/{render-strategy--1FNKx5x.d.mts → render-strategy-GetMScNK.d.mts} +0 -0
  127. /package/dist/{utils-nfWHwVIS.mjs → utils-DflO0-3U.mjs} +0 -0
@@ -1,7 +1,10 @@
1
- import { t as __export } from "./chunk-CYMnug_4.mjs";
2
- import { c as useEnvironmentContext, d as normalizeProps, f as useMachine, l as mergeProps, n as sprawlify, o as useLocaleContext } from "./factory-DN0EdT7u.mjs";
3
- import { t as createContext$1 } from "./create-context-DGYD_HQt.mjs";
4
- import { t as createSplitProps } from "./create-split-props-BFscidWy.mjs";
1
+ import { t as __export } from "./chunk-DLP0tNsH.mjs";
2
+ import { i as useMachine, r as normalizeProps, t as mergeProps } from "./core-C0F-4KYH.mjs";
3
+ import { t as createContext$1 } from "./create-context-CdjrBhu7.mjs";
4
+ import { n as useEnvironmentContext } from "./environment-BXkWNF2O.mjs";
5
+ import { i as useLocaleContext } from "./providers-CyTYcOU1.mjs";
6
+ import { n as sprawlify } from "./factory-DQlmCPH2.mjs";
7
+ import { t as createSplitProps } from "./create-split-props-BJQdOyld.mjs";
5
8
  import { forwardRef, useId, useRef } from "react";
6
9
  import { jsx } from "react/jsx-runtime";
7
10
  import * as collapsible from "@sprawlify/primitives/machines/collapsible";
@@ -1,10 +1,13 @@
1
- const require_factory = require('./factory-CfqPG186.cjs');
2
- const require_create_context = require('./create-context-DCEySQ7J.cjs');
3
- const require_create_split_props = require('./create-split-props-CSaOnJRj.cjs');
1
+ const require_core = require('./core-CPLjF6nm.cjs');
2
+ const require_create_context = require('./create-context-D6DyFRSf.cjs');
3
+ const require_environment = require('./environment-DLPiALpf.cjs');
4
+ const require_providers = require('./providers-Bk3ALTxZ.cjs');
5
+ const require_factory = require('./factory-CDX-oCN5.cjs');
6
+ const require_create_split_props = require('./create-split-props-CSkzaUOy.cjs');
4
7
  let react = require("react");
5
8
  let react_jsx_runtime = require("react/jsx-runtime");
6
9
  let __sprawlify_primitives_machines_collapsible = require("@sprawlify/primitives/machines/collapsible");
7
- __sprawlify_primitives_machines_collapsible = require_factory.__toESM(__sprawlify_primitives_machines_collapsible);
10
+ __sprawlify_primitives_machines_collapsible = require_core.__toESM(__sprawlify_primitives_machines_collapsible);
8
11
  let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
9
12
 
10
13
  //#region src/components/collapsible/use-collapsible-context.ts
@@ -64,16 +67,16 @@ const useCollapsible = (props = {}) => {
64
67
  const { lazyMount, unmountOnExit, ...collapsibleProps } = props;
65
68
  const id = (0, react.useId)();
66
69
  const wasVisible = (0, react.useRef)(false);
67
- const { dir } = require_factory.useLocaleContext();
68
- const { getRootNode } = require_factory.useEnvironmentContext();
70
+ const { dir } = require_providers.useLocaleContext();
71
+ const { getRootNode } = require_environment.useEnvironmentContext();
69
72
  const machineProps = {
70
73
  id,
71
74
  dir,
72
75
  getRootNode,
73
76
  ...collapsibleProps
74
77
  };
75
- const service = require_factory.useMachine(__sprawlify_primitives_machines_collapsible.machine, machineProps);
76
- const api = __sprawlify_primitives_machines_collapsible.connect(service, require_factory.normalizeProps);
78
+ const service = require_core.useMachine(__sprawlify_primitives_machines_collapsible.machine, machineProps);
79
+ const api = __sprawlify_primitives_machines_collapsible.connect(service, require_core.normalizeProps);
77
80
  if (api.visible) wasVisible.current = true;
78
81
  const isUnmounted = !api.visible && !wasVisible.current && lazyMount || unmountOnExit && !api.visible && wasVisible.current;
79
82
  return {
@@ -127,7 +130,7 @@ CollapsibleTrigger.displayName = "CollapsibleTrigger";
127
130
 
128
131
  //#endregion
129
132
  //#region src/components/collapsible/collapsible.ts
130
- var collapsible_exports = /* @__PURE__ */ require_factory.__export({
133
+ var collapsible_exports = /* @__PURE__ */ require_core.__export({
131
134
  Content: () => CollapsibleContent,
132
135
  Context: () => CollapsibleContext,
133
136
  Indicator: () => CollapsibleIndicator,
@@ -0,0 +1,229 @@
1
+ const require_core = require('./core-CPLjF6nm.cjs');
2
+ const require_use_event = require('./use-event-CGMgV6xB.cjs');
3
+ let react = require("react");
4
+ let __sprawlify_primitives_collection = require("@sprawlify/primitives/collection");
5
+ let __sprawlify_primitives_machines_async_list = require("@sprawlify/primitives/machines/async-list");
6
+ __sprawlify_primitives_machines_async_list = require_core.__toESM(__sprawlify_primitives_machines_async_list);
7
+
8
+ //#region src/components/collection/grid-collection.ts
9
+ const createGridCollection = (options) => new __sprawlify_primitives_collection.GridCollection(options);
10
+
11
+ //#endregion
12
+ //#region src/components/collection/list-collection.ts
13
+ const createListCollection = (options) => new __sprawlify_primitives_collection.ListCollection(options);
14
+
15
+ //#endregion
16
+ //#region src/components/collection/tree-collection.ts
17
+ const createTreeCollection = (options) => new __sprawlify_primitives_collection.TreeCollection(options);
18
+ const createFileTreeCollection = (paths) => (0, __sprawlify_primitives_collection.filePathToTree)(paths);
19
+
20
+ //#endregion
21
+ //#region src/components/collection/use-async-list.ts
22
+ function useAsyncList(props) {
23
+ const service = require_core.useMachine(__sprawlify_primitives_machines_async_list.machine, props);
24
+ return __sprawlify_primitives_machines_async_list.connect(service);
25
+ }
26
+
27
+ //#endregion
28
+ //#region src/components/collection/use-list-collection.ts
29
+ function useListCollection(props) {
30
+ const { initialItems = [], filter, limit, ...collectionOptions } = props;
31
+ const [items, setItemsImpl] = (0, react.useState)(initialItems);
32
+ const [filterText, setFilterText] = (0, react.useState)("");
33
+ const setItems = require_use_event.useEvent((items$1) => {
34
+ setItemsImpl(items$1);
35
+ setFilterText("");
36
+ });
37
+ const collectionOptionsRef = (0, react.useRef)(collectionOptions);
38
+ collectionOptionsRef.current = collectionOptions;
39
+ const create = (0, react.useCallback)((items$1) => {
40
+ return createListCollection({
41
+ ...collectionOptionsRef.current,
42
+ items: items$1
43
+ });
44
+ }, []);
45
+ return {
46
+ collection: (0, react.useMemo)(() => {
47
+ let activeItems = items;
48
+ if (filterText && filter) activeItems = create(items).filter((itemString, _index, item) => filter(itemString, filterText, item)).items;
49
+ const limitedItems = limit == null ? activeItems : activeItems.slice(0, limit);
50
+ return createListCollection({
51
+ ...collectionOptionsRef.current,
52
+ items: limitedItems
53
+ });
54
+ }, [
55
+ items,
56
+ filterText,
57
+ filter,
58
+ limit,
59
+ create
60
+ ]),
61
+ filter: require_use_event.useEvent((inputValue) => {
62
+ setFilterText(inputValue || "");
63
+ }),
64
+ set: require_use_event.useEvent((newItems) => {
65
+ setItems(newItems);
66
+ }),
67
+ reset: require_use_event.useEvent(() => {
68
+ setItems(initialItems);
69
+ }),
70
+ clear: require_use_event.useEvent(() => {
71
+ setItems([]);
72
+ }),
73
+ insert: require_use_event.useEvent((index, ...itemsToInsert) => {
74
+ const newItems = create(items).insert(index, ...itemsToInsert).items;
75
+ setItems(newItems);
76
+ }),
77
+ insertBefore: require_use_event.useEvent((value, ...itemsToInsert) => {
78
+ const newItems = create(items).insertBefore(value, ...itemsToInsert).items;
79
+ setItems(newItems);
80
+ }),
81
+ insertAfter: require_use_event.useEvent((value, ...itemsToInsert) => {
82
+ const newItems = create(items).insertAfter(value, ...itemsToInsert).items;
83
+ setItems(newItems);
84
+ }),
85
+ remove: require_use_event.useEvent((...itemOrValues) => {
86
+ const newItems = create(items).remove(...itemOrValues).items;
87
+ setItems(newItems);
88
+ }),
89
+ move: require_use_event.useEvent((value, to) => {
90
+ const newItems = create(items).move(value, to).items;
91
+ setItems(newItems);
92
+ }),
93
+ moveBefore: require_use_event.useEvent((value, ...values) => {
94
+ const newItems = create(items).moveBefore(value, ...values).items;
95
+ setItems(newItems);
96
+ }),
97
+ moveAfter: require_use_event.useEvent((value, ...values) => {
98
+ const newItems = create(items).moveAfter(value, ...values).items;
99
+ setItems(newItems);
100
+ }),
101
+ reorder: require_use_event.useEvent((from, to) => {
102
+ const newItems = create(items).reorder(from, to).items;
103
+ setItems(newItems);
104
+ }),
105
+ append: require_use_event.useEvent((...itemsToAppend) => {
106
+ const newItems = create(items).append(...itemsToAppend).items;
107
+ setItems(newItems);
108
+ }),
109
+ upsert: require_use_event.useEvent((value, item, mode = "append") => {
110
+ const newItems = create(items).upsert(value, item, mode).items;
111
+ setItems(newItems);
112
+ }),
113
+ prepend: require_use_event.useEvent((...itemsToPrepend) => {
114
+ const newItems = create(items).prepend(...itemsToPrepend).items;
115
+ setItems(newItems);
116
+ }),
117
+ update: require_use_event.useEvent((value, item) => {
118
+ const newItems = create(items).update(value, item).items;
119
+ setItems(newItems);
120
+ })
121
+ };
122
+ }
123
+
124
+ //#endregion
125
+ //#region src/components/collection/use-list-selection.ts
126
+ function useListSelection(props) {
127
+ const { collection, selectionMode = "single", deselectable = true, initialSelectedValues = [], resetOnCollectionChange = false } = props;
128
+ const createSelection = (0, react.useCallback)((values = []) => {
129
+ const selection$1 = new __sprawlify_primitives_collection.Selection(values);
130
+ selection$1.selectionMode = selectionMode;
131
+ selection$1.deselectable = deselectable;
132
+ return selection$1;
133
+ }, [selectionMode, deselectable]);
134
+ const [selection, setSelectionState] = (0, react.useState)(() => createSelection(initialSelectedValues));
135
+ (0, react.useEffect)(() => {
136
+ if (resetOnCollectionChange) setSelectionState(createSelection());
137
+ }, [
138
+ collection.toString(),
139
+ resetOnCollectionChange,
140
+ createSelection
141
+ ]);
142
+ return {
143
+ selectedValues: (0, react.useMemo)(() => Array.from(selection), [selection]),
144
+ isEmpty: (0, react.useMemo)(() => selection.isEmpty(), [selection]),
145
+ firstSelectedValue: (0, react.useMemo)(() => selection.firstSelectedValue(collection), [selection, collection]),
146
+ lastSelectedValue: (0, react.useMemo)(() => selection.lastSelectedValue(collection), [selection, collection]),
147
+ isSelected: require_use_event.useEvent((value) => {
148
+ return selection.isSelected(value);
149
+ }),
150
+ isAllSelected: require_use_event.useEvent(() => {
151
+ const allValues = collection.getValues();
152
+ return allValues.length > 0 && allValues.every((value) => selection.isSelected(value));
153
+ }),
154
+ isSomeSelected: require_use_event.useEvent(() => {
155
+ return collection.getValues().some((value) => selection.isSelected(value));
156
+ }),
157
+ canSelect: require_use_event.useEvent((value) => {
158
+ return selection.canSelect(collection, value);
159
+ }),
160
+ select: require_use_event.useEvent((value, forceToggle) => {
161
+ setSelectionState(selection.select(collection, value, forceToggle));
162
+ }),
163
+ deselect: require_use_event.useEvent((value) => {
164
+ setSelectionState(selection.deselect(value));
165
+ }),
166
+ toggle: require_use_event.useEvent((value) => {
167
+ setSelectionState(selection.toggleSelection(collection, value));
168
+ }),
169
+ replace: require_use_event.useEvent((value) => {
170
+ setSelectionState(selection.replaceSelection(collection, value));
171
+ }),
172
+ extend: require_use_event.useEvent((anchorValue, targetValue) => {
173
+ setSelectionState(selection.extendSelection(collection, anchorValue, targetValue));
174
+ }),
175
+ setSelectedValues: require_use_event.useEvent((values) => {
176
+ setSelectionState(selection.setSelection(values));
177
+ }),
178
+ clear: require_use_event.useEvent(() => {
179
+ setSelectionState(selection.clearSelection());
180
+ }),
181
+ resetSelection: require_use_event.useEvent(() => {
182
+ setSelectionState(createSelection());
183
+ })
184
+ };
185
+ }
186
+
187
+ //#endregion
188
+ Object.defineProperty(exports, 'createFileTreeCollection', {
189
+ enumerable: true,
190
+ get: function () {
191
+ return createFileTreeCollection;
192
+ }
193
+ });
194
+ Object.defineProperty(exports, 'createGridCollection', {
195
+ enumerable: true,
196
+ get: function () {
197
+ return createGridCollection;
198
+ }
199
+ });
200
+ Object.defineProperty(exports, 'createListCollection', {
201
+ enumerable: true,
202
+ get: function () {
203
+ return createListCollection;
204
+ }
205
+ });
206
+ Object.defineProperty(exports, 'createTreeCollection', {
207
+ enumerable: true,
208
+ get: function () {
209
+ return createTreeCollection;
210
+ }
211
+ });
212
+ Object.defineProperty(exports, 'useAsyncList', {
213
+ enumerable: true,
214
+ get: function () {
215
+ return useAsyncList;
216
+ }
217
+ });
218
+ Object.defineProperty(exports, 'useListCollection', {
219
+ enumerable: true,
220
+ get: function () {
221
+ return useListCollection;
222
+ }
223
+ });
224
+ Object.defineProperty(exports, 'useListSelection', {
225
+ enumerable: true,
226
+ get: function () {
227
+ return useListSelection;
228
+ }
229
+ });
@@ -0,0 +1,187 @@
1
+ import { i as useMachine } from "./core-C0F-4KYH.mjs";
2
+ import { t as useEvent } from "./use-event-BcyNH29h.mjs";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
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
+ function useAsyncList(props) {
22
+ const service = useMachine(asyncList.machine, props);
23
+ return asyncList.connect(service);
24
+ }
25
+
26
+ //#endregion
27
+ //#region src/components/collection/use-list-collection.ts
28
+ function useListCollection(props) {
29
+ const { initialItems = [], filter, limit, ...collectionOptions } = props;
30
+ const [items, setItemsImpl] = useState(initialItems);
31
+ const [filterText, setFilterText] = useState("");
32
+ const setItems = useEvent((items$1) => {
33
+ setItemsImpl(items$1);
34
+ setFilterText("");
35
+ });
36
+ const collectionOptionsRef = useRef(collectionOptions);
37
+ collectionOptionsRef.current = collectionOptions;
38
+ const create = useCallback((items$1) => {
39
+ return createListCollection({
40
+ ...collectionOptionsRef.current,
41
+ items: items$1
42
+ });
43
+ }, []);
44
+ return {
45
+ collection: useMemo(() => {
46
+ let activeItems = items;
47
+ if (filterText && filter) activeItems = create(items).filter((itemString, _index, item) => filter(itemString, filterText, item)).items;
48
+ const limitedItems = limit == null ? activeItems : activeItems.slice(0, limit);
49
+ return createListCollection({
50
+ ...collectionOptionsRef.current,
51
+ items: limitedItems
52
+ });
53
+ }, [
54
+ items,
55
+ filterText,
56
+ filter,
57
+ limit,
58
+ create
59
+ ]),
60
+ filter: useEvent((inputValue) => {
61
+ setFilterText(inputValue || "");
62
+ }),
63
+ set: useEvent((newItems) => {
64
+ setItems(newItems);
65
+ }),
66
+ reset: useEvent(() => {
67
+ setItems(initialItems);
68
+ }),
69
+ clear: useEvent(() => {
70
+ setItems([]);
71
+ }),
72
+ insert: useEvent((index, ...itemsToInsert) => {
73
+ const newItems = create(items).insert(index, ...itemsToInsert).items;
74
+ setItems(newItems);
75
+ }),
76
+ insertBefore: useEvent((value, ...itemsToInsert) => {
77
+ const newItems = create(items).insertBefore(value, ...itemsToInsert).items;
78
+ setItems(newItems);
79
+ }),
80
+ insertAfter: useEvent((value, ...itemsToInsert) => {
81
+ const newItems = create(items).insertAfter(value, ...itemsToInsert).items;
82
+ setItems(newItems);
83
+ }),
84
+ remove: useEvent((...itemOrValues) => {
85
+ const newItems = create(items).remove(...itemOrValues).items;
86
+ setItems(newItems);
87
+ }),
88
+ move: useEvent((value, to) => {
89
+ const newItems = create(items).move(value, to).items;
90
+ setItems(newItems);
91
+ }),
92
+ moveBefore: useEvent((value, ...values) => {
93
+ const newItems = create(items).moveBefore(value, ...values).items;
94
+ setItems(newItems);
95
+ }),
96
+ moveAfter: useEvent((value, ...values) => {
97
+ const newItems = create(items).moveAfter(value, ...values).items;
98
+ setItems(newItems);
99
+ }),
100
+ reorder: useEvent((from, to) => {
101
+ const newItems = create(items).reorder(from, to).items;
102
+ setItems(newItems);
103
+ }),
104
+ append: useEvent((...itemsToAppend) => {
105
+ const newItems = create(items).append(...itemsToAppend).items;
106
+ setItems(newItems);
107
+ }),
108
+ upsert: useEvent((value, item, mode = "append") => {
109
+ const newItems = create(items).upsert(value, item, mode).items;
110
+ setItems(newItems);
111
+ }),
112
+ prepend: useEvent((...itemsToPrepend) => {
113
+ const newItems = create(items).prepend(...itemsToPrepend).items;
114
+ setItems(newItems);
115
+ }),
116
+ update: useEvent((value, item) => {
117
+ const newItems = create(items).update(value, item).items;
118
+ setItems(newItems);
119
+ })
120
+ };
121
+ }
122
+
123
+ //#endregion
124
+ //#region src/components/collection/use-list-selection.ts
125
+ function useListSelection(props) {
126
+ const { collection, selectionMode = "single", deselectable = true, initialSelectedValues = [], resetOnCollectionChange = false } = props;
127
+ const createSelection = useCallback((values = []) => {
128
+ const selection$1 = new Selection(values);
129
+ selection$1.selectionMode = selectionMode;
130
+ selection$1.deselectable = deselectable;
131
+ return selection$1;
132
+ }, [selectionMode, deselectable]);
133
+ const [selection, setSelectionState] = useState(() => createSelection(initialSelectedValues));
134
+ useEffect(() => {
135
+ if (resetOnCollectionChange) setSelectionState(createSelection());
136
+ }, [
137
+ collection.toString(),
138
+ resetOnCollectionChange,
139
+ createSelection
140
+ ]);
141
+ return {
142
+ selectedValues: useMemo(() => Array.from(selection), [selection]),
143
+ isEmpty: useMemo(() => selection.isEmpty(), [selection]),
144
+ firstSelectedValue: useMemo(() => selection.firstSelectedValue(collection), [selection, collection]),
145
+ lastSelectedValue: useMemo(() => selection.lastSelectedValue(collection), [selection, collection]),
146
+ isSelected: useEvent((value) => {
147
+ return selection.isSelected(value);
148
+ }),
149
+ isAllSelected: useEvent(() => {
150
+ const allValues = collection.getValues();
151
+ return allValues.length > 0 && allValues.every((value) => selection.isSelected(value));
152
+ }),
153
+ isSomeSelected: useEvent(() => {
154
+ return collection.getValues().some((value) => selection.isSelected(value));
155
+ }),
156
+ canSelect: useEvent((value) => {
157
+ return selection.canSelect(collection, value);
158
+ }),
159
+ select: useEvent((value, forceToggle) => {
160
+ setSelectionState(selection.select(collection, value, forceToggle));
161
+ }),
162
+ deselect: useEvent((value) => {
163
+ setSelectionState(selection.deselect(value));
164
+ }),
165
+ toggle: useEvent((value) => {
166
+ setSelectionState(selection.toggleSelection(collection, value));
167
+ }),
168
+ replace: useEvent((value) => {
169
+ setSelectionState(selection.replaceSelection(collection, value));
170
+ }),
171
+ extend: useEvent((anchorValue, targetValue) => {
172
+ setSelectionState(selection.extendSelection(collection, anchorValue, targetValue));
173
+ }),
174
+ setSelectedValues: useEvent((values) => {
175
+ setSelectionState(selection.setSelection(values));
176
+ }),
177
+ clear: useEvent(() => {
178
+ setSelectionState(selection.clearSelection());
179
+ }),
180
+ resetSelection: useEvent(() => {
181
+ setSelectionState(createSelection());
182
+ })
183
+ };
184
+ }
185
+
186
+ //#endregion
187
+ export { createTreeCollection as a, createFileTreeCollection as i, useListCollection as n, createListCollection as o, useAsyncList as r, createGridCollection as s, useListSelection as t };
@@ -1,11 +1,15 @@
1
- const require_factory = require('../../factory-CfqPG186.cjs');
2
- const require_create_context = require('../../create-context-DCEySQ7J.cjs');
3
- const require_collapsible = require('../../collapsible-D_cXuaRy.cjs');
4
- const require_create_split_props = require('../../create-split-props-CSaOnJRj.cjs');
1
+ const require_core = require('../../core-CPLjF6nm.cjs');
2
+ const require_create_context = require('../../create-context-D6DyFRSf.cjs');
3
+ const require_environment = require('../../environment-DLPiALpf.cjs');
4
+ const require_providers = require('../../providers-Bk3ALTxZ.cjs');
5
+ const require_factory = require('../../factory-CDX-oCN5.cjs');
6
+ const require_collapsible = require('../../collapsible-D5kle6Bc.cjs');
7
+ const require_create_split_props = require('../../create-split-props-CSkzaUOy.cjs');
8
+ const require_render_strategy = require('../../render-strategy-k1JmEGnq.cjs');
5
9
  let react = require("react");
6
10
  let react_jsx_runtime = require("react/jsx-runtime");
7
11
  let __sprawlify_primitives_machines_accordion = require("@sprawlify/primitives/machines/accordion");
8
- __sprawlify_primitives_machines_accordion = require_factory.__toESM(__sprawlify_primitives_machines_accordion);
12
+ __sprawlify_primitives_machines_accordion = require_core.__toESM(__sprawlify_primitives_machines_accordion);
9
13
  let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
10
14
 
11
15
  //#region src/components/accordion/use-accordion-context.ts
@@ -19,15 +23,6 @@ const [AccordionProvider, useAccordionContext] = require_create_context.createCo
19
23
  //#region src/components/accordion/accordion-context.tsx
20
24
  const AccordionContext = (props) => props.children(useAccordionContext());
21
25
 
22
- //#endregion
23
- //#region src/utils/render-strategy.ts
24
- const [RenderStrategyPropsProvider, useRenderStrategyPropsContext] = require_create_context.createContext({
25
- name: "RenderStrategyContext",
26
- hookName: "useRenderStrategyContext",
27
- providerName: "<RenderStrategyPropsProvider />"
28
- });
29
- const splitRenderStrategyProps = (props) => require_create_split_props.createSplitProps()(props, ["lazyMount", "unmountOnExit"]);
30
-
31
26
  //#endregion
32
27
  //#region src/components/accordion/use-accordion-item-context.ts
33
28
  const [AccordionItemProvider, useAccordionItemContext] = require_create_context.createContext({
@@ -50,7 +45,7 @@ const splitItemProps = require_create_split_props.createSplitProps();
50
45
  const AccordionItem = (0, react.forwardRef)((props, ref) => {
51
46
  const [itemProps, localProps] = splitItemProps(props, ["value", "disabled"]);
52
47
  const accordion = useAccordionContext();
53
- const renderStrategy = useRenderStrategyPropsContext();
48
+ const renderStrategy = require_render_strategy.useRenderStrategyPropsContext();
54
49
  const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(accordion.getItemProps(itemProps), localProps);
55
50
  const item = accordion.getItemState(itemProps);
56
51
  const itemContentProps = accordion.getItemContentProps(itemProps);
@@ -124,23 +119,23 @@ AccordionItemTrigger.displayName = "AccordionItemTrigger";
124
119
  //#region src/components/accordion/use-accordion.ts
125
120
  const useAccordion = (props) => {
126
121
  const id = (0, react.useId)();
127
- const { getRootNode } = require_factory.useEnvironmentContext();
128
- const { dir } = require_factory.useLocaleContext();
122
+ const { getRootNode } = require_environment.useEnvironmentContext();
123
+ const { dir } = require_providers.useLocaleContext();
129
124
  const machineProps = {
130
125
  id,
131
126
  dir,
132
127
  getRootNode,
133
128
  ...props
134
129
  };
135
- const service = require_factory.useMachine(__sprawlify_primitives_machines_accordion.machine, machineProps);
136
- return __sprawlify_primitives_machines_accordion.connect(service, require_factory.normalizeProps);
130
+ const service = require_core.useMachine(__sprawlify_primitives_machines_accordion.machine, machineProps);
131
+ return __sprawlify_primitives_machines_accordion.connect(service, require_core.normalizeProps);
137
132
  };
138
133
 
139
134
  //#endregion
140
135
  //#region src/components/accordion/accordion-root.tsx
141
136
  const splitRootProps = require_create_split_props.createSplitProps();
142
137
  const AccordionRoot = (0, react.forwardRef)((props, ref) => {
143
- const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
138
+ const [renderStrategyProps, accordionProps] = require_render_strategy.splitRenderStrategyProps(props);
144
139
  const [useAccordionProps, localProps] = splitRootProps(accordionProps, [
145
140
  "collapsible",
146
141
  "defaultValue",
@@ -157,7 +152,7 @@ const AccordionRoot = (0, react.forwardRef)((props, ref) => {
157
152
  const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(accordion.getRootProps(), localProps);
158
153
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AccordionProvider, {
159
154
  value: accordion,
160
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderStrategyPropsProvider, {
155
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_render_strategy.RenderStrategyPropsProvider, {
161
156
  value: renderStrategyProps,
162
157
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
163
158
  ...mergedProps,
@@ -172,12 +167,12 @@ AccordionRoot.displayName = "AccordionRoot";
172
167
  //#region src/components/accordion/accordion-root-provider.tsx
173
168
  const splitRootProviderProps = require_create_split_props.createSplitProps();
174
169
  const AccordionRootProvider = (0, react.forwardRef)((props, ref) => {
175
- const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
170
+ const [renderStrategyProps, accordionProps] = require_render_strategy.splitRenderStrategyProps(props);
176
171
  const [{ value: accordion }, localProps] = splitRootProviderProps(accordionProps, ["value"]);
177
172
  const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(accordion.getRootProps(), localProps);
178
173
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AccordionProvider, {
179
174
  value: accordion,
180
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderStrategyPropsProvider, {
175
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_render_strategy.RenderStrategyPropsProvider, {
181
176
  value: renderStrategyProps,
182
177
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
183
178
  ...mergedProps,
@@ -190,7 +185,7 @@ AccordionRootProvider.displayName = "AccordionRootProvider";
190
185
 
191
186
  //#endregion
192
187
  //#region src/components/accordion/accordion.ts
193
- var accordion_exports = /* @__PURE__ */ require_factory.__export({
188
+ var accordion_exports = /* @__PURE__ */ require_core.__export({
194
189
  Context: () => AccordionContext,
195
190
  Item: () => AccordionItem,
196
191
  ItemContent: () => AccordionItemContent,
@@ -1,8 +1,10 @@
1
- import { c as PropTypes, o as Assign, r as PolymorphicProps, s as Optional, t as HTMLProps } from "../../factory-BZBSaT-0.cjs";
2
- import { t as RenderStrategyProps } from "../../render-strategy-RT-KvAqO.cjs";
1
+ import { t as PropTypes } from "../../normalize-props-sqcs77GC.cjs";
2
+ import { n as Optional, t as Assign } from "../../types-DYWV3uAj.cjs";
3
+ import { r as PolymorphicProps, t as HTMLProps } from "../../factory-DaNWFLLN.cjs";
4
+ import { t as RenderStrategyProps } from "../../render-strategy-CdpAg9jb.cjs";
3
5
  import * as accordion from "@sprawlify/primitives/machines/accordion";
4
6
  import { FocusChangeDetails, FocusChangeDetails as AccordionFocusChangeDetails, ItemProps, ItemState, ValueChangeDetails, ValueChangeDetails as AccordionValueChangeDetails, anatomy as accordionAnatomy } from "@sprawlify/primitives/machines/accordion";
5
- import * as react21 from "react";
7
+ import * as react213 from "react";
6
8
  import { ReactNode } from "react";
7
9
 
8
10
  //#region src/components/accordion/use-accordion.d.ts
@@ -22,12 +24,12 @@ declare const AccordionContext: (props: AccordionContextProps) => ReactNode;
22
24
  //#region src/components/accordion/accordion-item.d.ts
23
25
  interface AccordionItemBaseProps extends ItemProps, PolymorphicProps {}
24
26
  interface AccordionItemProps extends HTMLProps<"div">, AccordionItemBaseProps {}
25
- declare const AccordionItem: react21.ForwardRefExoticComponent<AccordionItemProps & react21.RefAttributes<HTMLDivElement>>;
27
+ declare const AccordionItem: react213.ForwardRefExoticComponent<AccordionItemProps & react213.RefAttributes<HTMLDivElement>>;
26
28
  //#endregion
27
29
  //#region src/components/accordion/accordion-item-content.d.ts
28
30
  interface AccordionItemContentBaseProps extends PolymorphicProps {}
29
31
  interface AccordionItemContentProps extends HTMLProps<"div">, AccordionItemContentBaseProps {}
30
- declare const AccordionItemContent: react21.ForwardRefExoticComponent<AccordionItemContentProps & react21.RefAttributes<HTMLDivElement>>;
32
+ declare const AccordionItemContent: react213.ForwardRefExoticComponent<AccordionItemContentProps & react213.RefAttributes<HTMLDivElement>>;
31
33
  //#endregion
32
34
  //#region src/components/accordion/use-accordion-item-context.d.ts
33
35
  interface UseAccordionItemContext extends ItemState {}
@@ -41,17 +43,17 @@ declare const AccordionItemContext: (props: AccordionItemContextProps) => ReactN
41
43
  //#region src/components/accordion/accordion-item-indicator.d.ts
42
44
  interface AccordionItemIndicatorBaseProps extends PolymorphicProps {}
43
45
  interface AccordionItemIndicatorProps extends HTMLProps<"div">, AccordionItemIndicatorBaseProps {}
44
- declare const AccordionItemIndicator: react21.ForwardRefExoticComponent<AccordionItemIndicatorProps & react21.RefAttributes<HTMLDivElement>>;
46
+ declare const AccordionItemIndicator: react213.ForwardRefExoticComponent<AccordionItemIndicatorProps & react213.RefAttributes<HTMLDivElement>>;
45
47
  //#endregion
46
48
  //#region src/components/accordion/accordion-item-trigger.d.ts
47
49
  interface AccordionItemTriggerBaseProps extends PolymorphicProps {}
48
50
  interface AccordionItemTriggerProps extends HTMLProps<"button">, AccordionItemTriggerBaseProps {}
49
- declare const AccordionItemTrigger: react21.ForwardRefExoticComponent<AccordionItemTriggerProps & react21.RefAttributes<HTMLButtonElement>>;
51
+ declare const AccordionItemTrigger: react213.ForwardRefExoticComponent<AccordionItemTriggerProps & react213.RefAttributes<HTMLButtonElement>>;
50
52
  //#endregion
51
53
  //#region src/components/accordion/accordion-root.d.ts
52
54
  interface AccordionRootBaseProps extends UseAccordionProps, RenderStrategyProps, PolymorphicProps {}
53
55
  interface AccordionRootProps extends Assign<HTMLProps<"div">, AccordionRootBaseProps> {}
54
- declare const AccordionRoot: react21.ForwardRefExoticComponent<AccordionRootProps & react21.RefAttributes<HTMLDivElement>>;
56
+ declare const AccordionRoot: react213.ForwardRefExoticComponent<AccordionRootProps & react213.RefAttributes<HTMLDivElement>>;
55
57
  //#endregion
56
58
  //#region src/components/accordion/accordion-root-provider.d.ts
57
59
  interface RootProviderProps {
@@ -59,7 +61,7 @@ interface RootProviderProps {
59
61
  }
60
62
  interface AccordionRootProviderBaseProps extends RootProviderProps, RenderStrategyProps, PolymorphicProps {}
61
63
  interface AccordionRootProviderProps extends HTMLProps<"div">, AccordionRootProviderBaseProps {}
62
- declare const AccordionRootProvider: react21.ForwardRefExoticComponent<AccordionRootProviderProps & react21.RefAttributes<HTMLDivElement>>;
64
+ declare const AccordionRootProvider: react213.ForwardRefExoticComponent<AccordionRootProviderProps & react213.RefAttributes<HTMLDivElement>>;
63
65
  declare namespace accordion_d_exports {
64
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 };
65
67
  }