@sprawlify/react 0.0.6 → 0.0.8

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 (171) hide show
  1. package/dist/chunk-BYnRvbsk.cjs +53 -0
  2. package/dist/{collapsible-DYgHs1_i.mjs → collapsible-Nbt3Sequ.mjs} +7 -4
  3. package/dist/{collapsible-D_cXuaRy.cjs → collapsible-aFKYmVbP.cjs} +13 -9
  4. package/dist/collection-DGEUORi5.cjs +230 -0
  5. package/dist/collection-DQWWySNV.mjs +187 -0
  6. package/dist/components/accordion/index.cjs +21 -24
  7. package/dist/components/accordion/index.d.cts +11 -9
  8. package/dist/components/accordion/index.d.mts +11 -9
  9. package/dist/components/accordion/index.mjs +10 -14
  10. package/dist/components/angle-slider/index.cjs +14 -9
  11. package/dist/components/angle-slider/index.d.cts +13 -11
  12. package/dist/components/angle-slider/index.d.mts +13 -11
  13. package/dist/components/angle-slider/index.mjs +8 -4
  14. package/dist/components/avatar/index.cjs +14 -9
  15. package/dist/components/avatar/index.d.cts +8 -6
  16. package/dist/components/avatar/index.d.mts +8 -6
  17. package/dist/components/avatar/index.mjs +8 -4
  18. package/dist/components/bottom-sheet/index.cjs +216 -0
  19. package/dist/components/bottom-sheet/index.d.cts +80 -0
  20. package/dist/components/bottom-sheet/index.d.mts +81 -0
  21. package/dist/components/bottom-sheet/index.mjs +192 -0
  22. package/dist/components/carousel/index.cjs +265 -0
  23. package/dist/components/carousel/index.d.cts +95 -0
  24. package/dist/components/carousel/index.d.mts +95 -0
  25. package/dist/components/carousel/index.mjs +243 -0
  26. package/dist/components/checkbox/index.cjs +311 -0
  27. package/dist/components/checkbox/index.d.cts +115 -0
  28. package/dist/components/checkbox/index.d.mts +115 -0
  29. package/dist/components/checkbox/index.mjs +291 -0
  30. package/dist/components/client-only/index.cjs +14 -0
  31. package/dist/components/client-only/index.d.cts +8 -0
  32. package/dist/components/client-only/index.d.mts +8 -0
  33. package/dist/components/client-only/index.mjs +13 -0
  34. package/dist/components/clipboard/index.cjs +186 -0
  35. package/dist/components/clipboard/index.d.cts +71 -0
  36. package/dist/components/clipboard/index.d.mts +71 -0
  37. package/dist/components/clipboard/index.mjs +163 -0
  38. package/dist/components/collapsible/index.cjs +8 -3
  39. package/dist/components/collapsible/index.d.cts +10 -8
  40. package/dist/components/collapsible/index.d.mts +10 -8
  41. package/dist/components/collapsible/index.mjs +7 -3
  42. package/dist/components/collection/index.cjs +11 -0
  43. package/dist/components/collection/index.d.cts +2 -0
  44. package/dist/components/collection/index.d.mts +2 -0
  45. package/dist/components/collection/index.mjs +5 -0
  46. package/dist/components/color-picker/index.cjs +617 -0
  47. package/dist/components/color-picker/index.d.cts +181 -0
  48. package/dist/components/color-picker/index.d.mts +182 -0
  49. package/dist/components/color-picker/index.mjs +573 -0
  50. package/dist/components/combobox/index.cjs +420 -0
  51. package/dist/components/combobox/index.d.cts +132 -0
  52. package/dist/components/combobox/index.d.mts +133 -0
  53. package/dist/components/combobox/index.mjs +390 -0
  54. package/dist/components/date-picker/index.cjs +567 -0
  55. package/dist/components/date-picker/index.d.cts +164 -0
  56. package/dist/components/date-picker/index.d.mts +165 -0
  57. package/dist/components/date-picker/index.mjs +526 -0
  58. package/dist/components/dialog/index.cjs +211 -0
  59. package/dist/components/dialog/index.d.cts +80 -0
  60. package/dist/components/dialog/index.d.mts +81 -0
  61. package/dist/components/dialog/index.mjs +187 -0
  62. package/dist/components/download-trigger/index.cjs +43 -0
  63. package/dist/components/download-trigger/index.d.cts +16 -0
  64. package/dist/components/download-trigger/index.d.mts +16 -0
  65. package/dist/components/download-trigger/index.mjs +42 -0
  66. package/dist/components/editable/index.cjs +246 -0
  67. package/dist/components/editable/index.d.cts +79 -0
  68. package/dist/components/editable/index.d.mts +79 -0
  69. package/dist/components/editable/index.mjs +221 -0
  70. package/dist/components/field/index.cjs +29 -0
  71. package/dist/components/field/index.d.cts +116 -0
  72. package/dist/components/field/index.d.mts +116 -0
  73. package/dist/components/field/index.mjs +11 -0
  74. package/dist/components/fieldset/index.cjs +25 -0
  75. package/dist/components/fieldset/index.d.cts +73 -0
  76. package/dist/components/fieldset/index.d.mts +73 -0
  77. package/dist/components/fieldset/index.mjs +11 -0
  78. package/dist/components/file-upload/index.cjs +351 -0
  79. package/dist/components/file-upload/index.d.cts +102 -0
  80. package/dist/components/file-upload/index.d.mts +102 -0
  81. package/dist/components/file-upload/index.mjs +322 -0
  82. package/dist/components/floating-panel/index.cjs +287 -0
  83. package/dist/components/floating-panel/index.d.cts +100 -0
  84. package/dist/components/floating-panel/index.d.mts +101 -0
  85. package/dist/components/floating-panel/index.mjs +259 -0
  86. package/dist/components/focus-trap/index.cjs +36 -0
  87. package/dist/components/focus-trap/index.d.cts +14 -0
  88. package/dist/components/focus-trap/index.d.mts +14 -0
  89. package/dist/components/focus-trap/index.mjs +35 -0
  90. package/dist/components/format/index.cjs +57 -0
  91. package/dist/components/format/index.d.cts +36 -0
  92. package/dist/components/format/index.d.mts +36 -0
  93. package/dist/components/format/index.mjs +49 -0
  94. package/dist/components/frame/index.cjs +90 -0
  95. package/dist/components/frame/index.d.cts +13 -0
  96. package/dist/components/frame/index.d.mts +13 -0
  97. package/dist/components/frame/index.mjs +89 -0
  98. package/dist/components/highlight/index.cjs +32 -0
  99. package/dist/components/highlight/index.d.cts +14 -0
  100. package/dist/components/highlight/index.d.mts +14 -0
  101. package/dist/components/highlight/index.mjs +30 -0
  102. package/dist/components/portal/index.cjs +33 -0
  103. package/dist/components/portal/index.d.cts +11 -0
  104. package/dist/components/portal/index.d.mts +11 -0
  105. package/dist/components/portal/index.mjs +32 -0
  106. package/dist/components/presence/index.cjs +11 -0
  107. package/dist/components/presence/index.d.cts +2 -0
  108. package/dist/components/presence/index.d.mts +4 -0
  109. package/dist/components/presence/index.mjs +7 -0
  110. package/dist/components/select/index.cjs +423 -0
  111. package/dist/components/select/index.d.cts +132 -0
  112. package/dist/components/select/index.d.mts +133 -0
  113. package/dist/components/select/index.mjs +387 -0
  114. package/dist/compose-refs-BEptPEkE.mjs +16 -0
  115. package/dist/compose-refs-C5QNDywq.cjs +22 -0
  116. package/dist/{factory-DN0EdT7u.mjs → core-Ba4IEjhK.mjs} +4 -154
  117. package/dist/{factory-CfqPG186.cjs → core-DCWyxy9D.cjs} +2 -251
  118. package/dist/{create-context-DCEySQ7J.cjs → create-context-CQ4U0lLj.cjs} +1 -1
  119. package/dist/environment-CvilmfQt.cjs +58 -0
  120. package/dist/environment-Ded7DkGr.mjs +46 -0
  121. package/dist/factory-Bi8oEg8i.mjs +49 -0
  122. package/dist/factory-C-EBNsCW.d.mts +15 -0
  123. package/dist/factory-C166evrS.cjs +61 -0
  124. package/dist/factory-C4cfTHs7.d.cts +15 -0
  125. package/dist/field-B-6qoKdn.mjs +324 -0
  126. package/dist/field-C-57Gj2E.cjs +406 -0
  127. package/dist/fieldset-B-MkM2Ms.cjs +239 -0
  128. package/dist/fieldset-gaVneDYh.mjs +186 -0
  129. package/dist/index-BJvW7OpY.d.mts +25 -0
  130. package/dist/index-BhGgEHWc.d.cts +34 -0
  131. package/dist/index-ByIsf4E7.d.mts +74 -0
  132. package/dist/index-Cp1i1zbg.d.mts +34 -0
  133. package/dist/index-CumJbg8V.d.cts +74 -0
  134. package/dist/index.cjs +17 -12
  135. package/dist/index.d.cts +7 -5
  136. package/dist/index.d.mts +7 -5
  137. package/dist/index.mjs +7 -3
  138. package/dist/locale-BcnWD1Hf.cjs +78 -0
  139. package/dist/locale-Coin-d7R.mjs +54 -0
  140. package/dist/normalize-props-skGwa8Dk.d.cts +13 -0
  141. package/dist/presence-Bc6Bxe5i.mjs +72 -0
  142. package/dist/presence-CPov8wyU.cjs +103 -0
  143. package/dist/providers-BNAArubQ.cjs +0 -0
  144. package/dist/providers-Dm2P3F2_.mjs +1 -0
  145. package/dist/render-strategy-BywM_IvB.cjs +30 -0
  146. package/dist/render-strategy-FiPgAp1U.mjs +13 -0
  147. package/dist/types-B4tvWlDb.d.cts +6 -0
  148. package/dist/types-BmBABPZb.d.mts +6 -0
  149. package/dist/use-event-4J5QFFqK.mjs +19 -0
  150. package/dist/use-event-CLH8zHoJ.cjs +25 -0
  151. package/dist/use-fieldset-context-CCQLmNLL.cjs +23 -0
  152. package/dist/use-fieldset-context-LwveT1OS.mjs +12 -0
  153. package/dist/use-safe-layout-effect-C2GgvNT3.cjs +13 -0
  154. package/dist/use-safe-layout-effect-CLjnuJFb.mjs +7 -0
  155. package/dist/utils/index.cjs +3 -3
  156. package/dist/utils/index.d.cts +1 -1
  157. package/dist/utils/index.d.mts +1 -1
  158. package/dist/utils/index.mjs +2 -2
  159. package/package.json +232 -2
  160. package/dist/factory-BZBSaT-0.d.cts +0 -29
  161. package/dist/factory-DaVMAttY.d.mts +0 -41
  162. /package/dist/{chunk-CYMnug_4.mjs → chunk-BXPHTOwk.mjs} +0 -0
  163. /package/dist/{create-context-DGYD_HQt.mjs → create-context-CCXzjEv8.mjs} +0 -0
  164. /package/dist/{create-split-props-BFscidWy.mjs → create-split-props-CBL0m-GX.mjs} +0 -0
  165. /package/dist/{create-split-props-CSaOnJRj.cjs → create-split-props-Dp4TWOyM.cjs} +0 -0
  166. /package/dist/{index-OOf7QNG5.d.mts → index-CureNJdc.d.mts} +0 -0
  167. /package/dist/{index-DiYk6N_L.d.cts → index-dbTyAXLy.d.cts} +0 -0
  168. /package/dist/{render-strategy--1FNKx5x.d.mts → render-strategy-C8IyLw0O.d.mts} +0 -0
  169. /package/dist/{render-strategy-RT-KvAqO.d.cts → render-strategy-rA4C5NUX.d.cts} +0 -0
  170. /package/dist/{utils-Cb5K29pi.cjs → utils-B_Ojepvp.cjs} +0 -0
  171. /package/dist/{utils-nfWHwVIS.mjs → utils-C-m3mZWI.mjs} +0 -0
@@ -0,0 +1,53 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (all, symbols) => {
9
+ let target = {};
10
+ for (var name in all) {
11
+ __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ }
16
+ if (symbols) {
17
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
18
+ }
19
+ return target;
20
+ };
21
+ var __copyProps = (to, from, except, desc) => {
22
+ if (from && typeof from === "object" || typeof from === "function") {
23
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
24
+ key = keys[i];
25
+ if (!__hasOwnProp.call(to, key) && key !== except) {
26
+ __defProp(to, key, {
27
+ get: ((k) => from[k]).bind(null, key),
28
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
29
+ });
30
+ }
31
+ }
32
+ }
33
+ return to;
34
+ };
35
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
36
+ value: mod,
37
+ enumerable: true
38
+ }) : target, mod));
39
+
40
+ //#endregion
41
+
42
+ Object.defineProperty(exports, '__export', {
43
+ enumerable: true,
44
+ get: function () {
45
+ return __export;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, '__toESM', {
49
+ enumerable: true,
50
+ get: function () {
51
+ return __toESM;
52
+ }
53
+ });
@@ -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-BXPHTOwk.mjs";
2
+ import { i as useMachine, r as normalizeProps, t as mergeProps } from "./core-Ba4IEjhK.mjs";
3
+ import { t as createContext$1 } from "./create-context-CCXzjEv8.mjs";
4
+ import { n as useEnvironmentContext } from "./environment-Ded7DkGr.mjs";
5
+ import { i as useLocaleContext } from "./locale-Coin-d7R.mjs";
6
+ import { n as sprawlify } from "./factory-Bi8oEg8i.mjs";
7
+ import { t as createSplitProps } from "./create-split-props-CBL0m-GX.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,14 @@
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_chunk = require('./chunk-BYnRvbsk.cjs');
2
+ const require_core = require('./core-DCWyxy9D.cjs');
3
+ const require_create_context = require('./create-context-CQ4U0lLj.cjs');
4
+ const require_environment = require('./environment-CvilmfQt.cjs');
5
+ const require_locale = require('./locale-BcnWD1Hf.cjs');
6
+ const require_factory = require('./factory-C166evrS.cjs');
7
+ const require_create_split_props = require('./create-split-props-Dp4TWOyM.cjs');
4
8
  let react = require("react");
5
9
  let react_jsx_runtime = require("react/jsx-runtime");
6
10
  let __sprawlify_primitives_machines_collapsible = require("@sprawlify/primitives/machines/collapsible");
7
- __sprawlify_primitives_machines_collapsible = require_factory.__toESM(__sprawlify_primitives_machines_collapsible);
11
+ __sprawlify_primitives_machines_collapsible = require_chunk.__toESM(__sprawlify_primitives_machines_collapsible);
8
12
  let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
9
13
 
10
14
  //#region src/components/collapsible/use-collapsible-context.ts
@@ -64,16 +68,16 @@ const useCollapsible = (props = {}) => {
64
68
  const { lazyMount, unmountOnExit, ...collapsibleProps } = props;
65
69
  const id = (0, react.useId)();
66
70
  const wasVisible = (0, react.useRef)(false);
67
- const { dir } = require_factory.useLocaleContext();
68
- const { getRootNode } = require_factory.useEnvironmentContext();
71
+ const { dir } = require_locale.useLocaleContext();
72
+ const { getRootNode } = require_environment.useEnvironmentContext();
69
73
  const machineProps = {
70
74
  id,
71
75
  dir,
72
76
  getRootNode,
73
77
  ...collapsibleProps
74
78
  };
75
- const service = require_factory.useMachine(__sprawlify_primitives_machines_collapsible.machine, machineProps);
76
- const api = __sprawlify_primitives_machines_collapsible.connect(service, require_factory.normalizeProps);
79
+ const service = require_core.useMachine(__sprawlify_primitives_machines_collapsible.machine, machineProps);
80
+ const api = __sprawlify_primitives_machines_collapsible.connect(service, require_core.normalizeProps);
77
81
  if (api.visible) wasVisible.current = true;
78
82
  const isUnmounted = !api.visible && !wasVisible.current && lazyMount || unmountOnExit && !api.visible && wasVisible.current;
79
83
  return {
@@ -127,7 +131,7 @@ CollapsibleTrigger.displayName = "CollapsibleTrigger";
127
131
 
128
132
  //#endregion
129
133
  //#region src/components/collapsible/collapsible.ts
130
- var collapsible_exports = /* @__PURE__ */ require_factory.__export({
134
+ var collapsible_exports = /* @__PURE__ */ require_chunk.__export({
131
135
  Content: () => CollapsibleContent,
132
136
  Context: () => CollapsibleContext,
133
137
  Indicator: () => CollapsibleIndicator,
@@ -0,0 +1,230 @@
1
+ const require_chunk = require('./chunk-BYnRvbsk.cjs');
2
+ const require_core = require('./core-DCWyxy9D.cjs');
3
+ const require_use_event = require('./use-event-CLH8zHoJ.cjs');
4
+ let react = require("react");
5
+ let __sprawlify_primitives_collection = require("@sprawlify/primitives/collection");
6
+ let __sprawlify_primitives_machines_async_list = require("@sprawlify/primitives/machines/async-list");
7
+ __sprawlify_primitives_machines_async_list = require_chunk.__toESM(__sprawlify_primitives_machines_async_list);
8
+
9
+ //#region src/components/collection/grid-collection.ts
10
+ const createGridCollection = (options) => new __sprawlify_primitives_collection.GridCollection(options);
11
+
12
+ //#endregion
13
+ //#region src/components/collection/list-collection.ts
14
+ const createListCollection = (options) => new __sprawlify_primitives_collection.ListCollection(options);
15
+
16
+ //#endregion
17
+ //#region src/components/collection/tree-collection.ts
18
+ const createTreeCollection = (options) => new __sprawlify_primitives_collection.TreeCollection(options);
19
+ const createFileTreeCollection = (paths) => (0, __sprawlify_primitives_collection.filePathToTree)(paths);
20
+
21
+ //#endregion
22
+ //#region src/components/collection/use-async-list.ts
23
+ function useAsyncList(props) {
24
+ const service = require_core.useMachine(__sprawlify_primitives_machines_async_list.machine, props);
25
+ return __sprawlify_primitives_machines_async_list.connect(service);
26
+ }
27
+
28
+ //#endregion
29
+ //#region src/components/collection/use-list-collection.ts
30
+ function useListCollection(props) {
31
+ const { initialItems = [], filter, limit, ...collectionOptions } = props;
32
+ const [items, setItemsImpl] = (0, react.useState)(initialItems);
33
+ const [filterText, setFilterText] = (0, react.useState)("");
34
+ const setItems = require_use_event.useEvent((items$1) => {
35
+ setItemsImpl(items$1);
36
+ setFilterText("");
37
+ });
38
+ const collectionOptionsRef = (0, react.useRef)(collectionOptions);
39
+ collectionOptionsRef.current = collectionOptions;
40
+ const create = (0, react.useCallback)((items$1) => {
41
+ return createListCollection({
42
+ ...collectionOptionsRef.current,
43
+ items: items$1
44
+ });
45
+ }, []);
46
+ return {
47
+ collection: (0, react.useMemo)(() => {
48
+ let activeItems = items;
49
+ if (filterText && filter) activeItems = create(items).filter((itemString, _index, item) => filter(itemString, filterText, item)).items;
50
+ const limitedItems = limit == null ? activeItems : activeItems.slice(0, limit);
51
+ return createListCollection({
52
+ ...collectionOptionsRef.current,
53
+ items: limitedItems
54
+ });
55
+ }, [
56
+ items,
57
+ filterText,
58
+ filter,
59
+ limit,
60
+ create
61
+ ]),
62
+ filter: require_use_event.useEvent((inputValue) => {
63
+ setFilterText(inputValue || "");
64
+ }),
65
+ set: require_use_event.useEvent((newItems) => {
66
+ setItems(newItems);
67
+ }),
68
+ reset: require_use_event.useEvent(() => {
69
+ setItems(initialItems);
70
+ }),
71
+ clear: require_use_event.useEvent(() => {
72
+ setItems([]);
73
+ }),
74
+ insert: require_use_event.useEvent((index, ...itemsToInsert) => {
75
+ const newItems = create(items).insert(index, ...itemsToInsert).items;
76
+ setItems(newItems);
77
+ }),
78
+ insertBefore: require_use_event.useEvent((value, ...itemsToInsert) => {
79
+ const newItems = create(items).insertBefore(value, ...itemsToInsert).items;
80
+ setItems(newItems);
81
+ }),
82
+ insertAfter: require_use_event.useEvent((value, ...itemsToInsert) => {
83
+ const newItems = create(items).insertAfter(value, ...itemsToInsert).items;
84
+ setItems(newItems);
85
+ }),
86
+ remove: require_use_event.useEvent((...itemOrValues) => {
87
+ const newItems = create(items).remove(...itemOrValues).items;
88
+ setItems(newItems);
89
+ }),
90
+ move: require_use_event.useEvent((value, to) => {
91
+ const newItems = create(items).move(value, to).items;
92
+ setItems(newItems);
93
+ }),
94
+ moveBefore: require_use_event.useEvent((value, ...values) => {
95
+ const newItems = create(items).moveBefore(value, ...values).items;
96
+ setItems(newItems);
97
+ }),
98
+ moveAfter: require_use_event.useEvent((value, ...values) => {
99
+ const newItems = create(items).moveAfter(value, ...values).items;
100
+ setItems(newItems);
101
+ }),
102
+ reorder: require_use_event.useEvent((from, to) => {
103
+ const newItems = create(items).reorder(from, to).items;
104
+ setItems(newItems);
105
+ }),
106
+ append: require_use_event.useEvent((...itemsToAppend) => {
107
+ const newItems = create(items).append(...itemsToAppend).items;
108
+ setItems(newItems);
109
+ }),
110
+ upsert: require_use_event.useEvent((value, item, mode = "append") => {
111
+ const newItems = create(items).upsert(value, item, mode).items;
112
+ setItems(newItems);
113
+ }),
114
+ prepend: require_use_event.useEvent((...itemsToPrepend) => {
115
+ const newItems = create(items).prepend(...itemsToPrepend).items;
116
+ setItems(newItems);
117
+ }),
118
+ update: require_use_event.useEvent((value, item) => {
119
+ const newItems = create(items).update(value, item).items;
120
+ setItems(newItems);
121
+ })
122
+ };
123
+ }
124
+
125
+ //#endregion
126
+ //#region src/components/collection/use-list-selection.ts
127
+ function useListSelection(props) {
128
+ const { collection, selectionMode = "single", deselectable = true, initialSelectedValues = [], resetOnCollectionChange = false } = props;
129
+ const createSelection = (0, react.useCallback)((values = []) => {
130
+ const selection$1 = new __sprawlify_primitives_collection.Selection(values);
131
+ selection$1.selectionMode = selectionMode;
132
+ selection$1.deselectable = deselectable;
133
+ return selection$1;
134
+ }, [selectionMode, deselectable]);
135
+ const [selection, setSelectionState] = (0, react.useState)(() => createSelection(initialSelectedValues));
136
+ (0, react.useEffect)(() => {
137
+ if (resetOnCollectionChange) setSelectionState(createSelection());
138
+ }, [
139
+ collection.toString(),
140
+ resetOnCollectionChange,
141
+ createSelection
142
+ ]);
143
+ return {
144
+ selectedValues: (0, react.useMemo)(() => Array.from(selection), [selection]),
145
+ isEmpty: (0, react.useMemo)(() => selection.isEmpty(), [selection]),
146
+ firstSelectedValue: (0, react.useMemo)(() => selection.firstSelectedValue(collection), [selection, collection]),
147
+ lastSelectedValue: (0, react.useMemo)(() => selection.lastSelectedValue(collection), [selection, collection]),
148
+ isSelected: require_use_event.useEvent((value) => {
149
+ return selection.isSelected(value);
150
+ }),
151
+ isAllSelected: require_use_event.useEvent(() => {
152
+ const allValues = collection.getValues();
153
+ return allValues.length > 0 && allValues.every((value) => selection.isSelected(value));
154
+ }),
155
+ isSomeSelected: require_use_event.useEvent(() => {
156
+ return collection.getValues().some((value) => selection.isSelected(value));
157
+ }),
158
+ canSelect: require_use_event.useEvent((value) => {
159
+ return selection.canSelect(collection, value);
160
+ }),
161
+ select: require_use_event.useEvent((value, forceToggle) => {
162
+ setSelectionState(selection.select(collection, value, forceToggle));
163
+ }),
164
+ deselect: require_use_event.useEvent((value) => {
165
+ setSelectionState(selection.deselect(value));
166
+ }),
167
+ toggle: require_use_event.useEvent((value) => {
168
+ setSelectionState(selection.toggleSelection(collection, value));
169
+ }),
170
+ replace: require_use_event.useEvent((value) => {
171
+ setSelectionState(selection.replaceSelection(collection, value));
172
+ }),
173
+ extend: require_use_event.useEvent((anchorValue, targetValue) => {
174
+ setSelectionState(selection.extendSelection(collection, anchorValue, targetValue));
175
+ }),
176
+ setSelectedValues: require_use_event.useEvent((values) => {
177
+ setSelectionState(selection.setSelection(values));
178
+ }),
179
+ clear: require_use_event.useEvent(() => {
180
+ setSelectionState(selection.clearSelection());
181
+ }),
182
+ resetSelection: require_use_event.useEvent(() => {
183
+ setSelectionState(createSelection());
184
+ })
185
+ };
186
+ }
187
+
188
+ //#endregion
189
+ Object.defineProperty(exports, 'createFileTreeCollection', {
190
+ enumerable: true,
191
+ get: function () {
192
+ return createFileTreeCollection;
193
+ }
194
+ });
195
+ Object.defineProperty(exports, 'createGridCollection', {
196
+ enumerable: true,
197
+ get: function () {
198
+ return createGridCollection;
199
+ }
200
+ });
201
+ Object.defineProperty(exports, 'createListCollection', {
202
+ enumerable: true,
203
+ get: function () {
204
+ return createListCollection;
205
+ }
206
+ });
207
+ Object.defineProperty(exports, 'createTreeCollection', {
208
+ enumerable: true,
209
+ get: function () {
210
+ return createTreeCollection;
211
+ }
212
+ });
213
+ Object.defineProperty(exports, 'useAsyncList', {
214
+ enumerable: true,
215
+ get: function () {
216
+ return useAsyncList;
217
+ }
218
+ });
219
+ Object.defineProperty(exports, 'useListCollection', {
220
+ enumerable: true,
221
+ get: function () {
222
+ return useListCollection;
223
+ }
224
+ });
225
+ Object.defineProperty(exports, 'useListSelection', {
226
+ enumerable: true,
227
+ get: function () {
228
+ return useListSelection;
229
+ }
230
+ });
@@ -0,0 +1,187 @@
1
+ import { i as useMachine } from "./core-Ba4IEjhK.mjs";
2
+ import { t as useEvent } from "./use-event-4J5QFFqK.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,17 @@
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_chunk = require('../../chunk-BYnRvbsk.cjs');
2
+ const require_core = require('../../core-DCWyxy9D.cjs');
3
+ const require_create_context = require('../../create-context-CQ4U0lLj.cjs');
4
+ const require_environment = require('../../environment-CvilmfQt.cjs');
5
+ const require_locale = require('../../locale-BcnWD1Hf.cjs');
6
+ require('../../providers-BNAArubQ.cjs');
7
+ const require_factory = require('../../factory-C166evrS.cjs');
8
+ const require_collapsible = require('../../collapsible-aFKYmVbP.cjs');
9
+ const require_create_split_props = require('../../create-split-props-Dp4TWOyM.cjs');
10
+ const require_render_strategy = require('../../render-strategy-BywM_IvB.cjs');
5
11
  let react = require("react");
6
12
  let react_jsx_runtime = require("react/jsx-runtime");
7
13
  let __sprawlify_primitives_machines_accordion = require("@sprawlify/primitives/machines/accordion");
8
- __sprawlify_primitives_machines_accordion = require_factory.__toESM(__sprawlify_primitives_machines_accordion);
14
+ __sprawlify_primitives_machines_accordion = require_chunk.__toESM(__sprawlify_primitives_machines_accordion);
9
15
  let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
10
16
 
11
17
  //#region src/components/accordion/use-accordion-context.ts
@@ -19,15 +25,6 @@ const [AccordionProvider, useAccordionContext] = require_create_context.createCo
19
25
  //#region src/components/accordion/accordion-context.tsx
20
26
  const AccordionContext = (props) => props.children(useAccordionContext());
21
27
 
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
28
  //#endregion
32
29
  //#region src/components/accordion/use-accordion-item-context.ts
33
30
  const [AccordionItemProvider, useAccordionItemContext] = require_create_context.createContext({
@@ -50,7 +47,7 @@ const splitItemProps = require_create_split_props.createSplitProps();
50
47
  const AccordionItem = (0, react.forwardRef)((props, ref) => {
51
48
  const [itemProps, localProps] = splitItemProps(props, ["value", "disabled"]);
52
49
  const accordion = useAccordionContext();
53
- const renderStrategy = useRenderStrategyPropsContext();
50
+ const renderStrategy = require_render_strategy.useRenderStrategyPropsContext();
54
51
  const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(accordion.getItemProps(itemProps), localProps);
55
52
  const item = accordion.getItemState(itemProps);
56
53
  const itemContentProps = accordion.getItemContentProps(itemProps);
@@ -124,23 +121,23 @@ AccordionItemTrigger.displayName = "AccordionItemTrigger";
124
121
  //#region src/components/accordion/use-accordion.ts
125
122
  const useAccordion = (props) => {
126
123
  const id = (0, react.useId)();
127
- const { getRootNode } = require_factory.useEnvironmentContext();
128
- const { dir } = require_factory.useLocaleContext();
124
+ const { getRootNode } = require_environment.useEnvironmentContext();
125
+ const { dir } = require_locale.useLocaleContext();
129
126
  const machineProps = {
130
127
  id,
131
128
  dir,
132
129
  getRootNode,
133
130
  ...props
134
131
  };
135
- const service = require_factory.useMachine(__sprawlify_primitives_machines_accordion.machine, machineProps);
136
- return __sprawlify_primitives_machines_accordion.connect(service, require_factory.normalizeProps);
132
+ const service = require_core.useMachine(__sprawlify_primitives_machines_accordion.machine, machineProps);
133
+ return __sprawlify_primitives_machines_accordion.connect(service, require_core.normalizeProps);
137
134
  };
138
135
 
139
136
  //#endregion
140
137
  //#region src/components/accordion/accordion-root.tsx
141
138
  const splitRootProps = require_create_split_props.createSplitProps();
142
139
  const AccordionRoot = (0, react.forwardRef)((props, ref) => {
143
- const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
140
+ const [renderStrategyProps, accordionProps] = require_render_strategy.splitRenderStrategyProps(props);
144
141
  const [useAccordionProps, localProps] = splitRootProps(accordionProps, [
145
142
  "collapsible",
146
143
  "defaultValue",
@@ -157,7 +154,7 @@ const AccordionRoot = (0, react.forwardRef)((props, ref) => {
157
154
  const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(accordion.getRootProps(), localProps);
158
155
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AccordionProvider, {
159
156
  value: accordion,
160
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderStrategyPropsProvider, {
157
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_render_strategy.RenderStrategyPropsProvider, {
161
158
  value: renderStrategyProps,
162
159
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
163
160
  ...mergedProps,
@@ -172,12 +169,12 @@ AccordionRoot.displayName = "AccordionRoot";
172
169
  //#region src/components/accordion/accordion-root-provider.tsx
173
170
  const splitRootProviderProps = require_create_split_props.createSplitProps();
174
171
  const AccordionRootProvider = (0, react.forwardRef)((props, ref) => {
175
- const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
172
+ const [renderStrategyProps, accordionProps] = require_render_strategy.splitRenderStrategyProps(props);
176
173
  const [{ value: accordion }, localProps] = splitRootProviderProps(accordionProps, ["value"]);
177
174
  const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(accordion.getRootProps(), localProps);
178
175
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AccordionProvider, {
179
176
  value: accordion,
180
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RenderStrategyPropsProvider, {
177
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_render_strategy.RenderStrategyPropsProvider, {
181
178
  value: renderStrategyProps,
182
179
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
183
180
  ...mergedProps,
@@ -190,7 +187,7 @@ AccordionRootProvider.displayName = "AccordionRootProvider";
190
187
 
191
188
  //#endregion
192
189
  //#region src/components/accordion/accordion.ts
193
- var accordion_exports = /* @__PURE__ */ require_factory.__export({
190
+ var accordion_exports = /* @__PURE__ */ require_chunk.__export({
194
191
  Context: () => AccordionContext,
195
192
  Item: () => AccordionItem,
196
193
  ItemContent: () => AccordionItemContent,