@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
@@ -0,0 +1,404 @@
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_factory = require('./factory-CDX-oCN5.cjs');
5
+ const require_create_split_props = require('./create-split-props-CSkzaUOy.cjs');
6
+ const require_use_safe_layout_effect = require('./use-safe-layout-effect-vuYaDIpT.cjs');
7
+ let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
8
+ let react = require("react");
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ let __sprawlify_primitives_dom_query = require("@sprawlify/primitives/dom-query");
11
+ let __sprawlify_primitives_anatomy = require("@sprawlify/primitives/anatomy");
12
+ let __sprawlify_primitives_auto_resize = require("@sprawlify/primitives/auto-resize");
13
+
14
+ //#region src/components/field/use-field-context.ts
15
+ const [FieldProvider, useFieldContext] = require_create_context.createContext({
16
+ name: "FieldContext",
17
+ hookName: "useFieldContext",
18
+ providerName: "<FieldProvider />",
19
+ strict: false
20
+ });
21
+
22
+ //#endregion
23
+ //#region src/components/field/field-context.tsx
24
+ const FieldContext = (props) => props.children(useFieldContext());
25
+
26
+ //#endregion
27
+ //#region src/components/field/field-error-text.tsx
28
+ const FieldErrorText = (0, react.forwardRef)((props, ref) => {
29
+ const field = useFieldContext();
30
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(field.getErrorTextProps(), props);
31
+ if (field?.invalid) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.span, {
32
+ ...mergedProps,
33
+ ref
34
+ });
35
+ return null;
36
+ });
37
+ FieldErrorText.displayName = "FieldErrorText";
38
+
39
+ //#endregion
40
+ //#region src/components/field/field-helper-text.tsx
41
+ const FieldHelperText = (0, react.forwardRef)((props, ref) => {
42
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useFieldContext()?.getHelperTextProps(), props);
43
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.span, {
44
+ ...mergedProps,
45
+ ref
46
+ });
47
+ });
48
+ FieldHelperText.displayName = "FieldHelperText";
49
+
50
+ //#endregion
51
+ //#region src/components/field/field-input.tsx
52
+ const FieldInput = (0, react.forwardRef)((props, ref) => {
53
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useFieldContext()?.getInputProps(), props);
54
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.input, {
55
+ ...mergedProps,
56
+ ref
57
+ });
58
+ });
59
+ FieldInput.displayName = "FieldInput";
60
+
61
+ //#endregion
62
+ //#region src/components/field/field-label.tsx
63
+ const FieldLabel = (0, react.forwardRef)((props, ref) => {
64
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useFieldContext()?.getLabelProps(), props);
65
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.label, {
66
+ ...mergedProps,
67
+ ref
68
+ });
69
+ });
70
+ FieldLabel.displayName = "FieldLabel";
71
+
72
+ //#endregion
73
+ //#region src/components/field/field-required-indicator.tsx
74
+ const FieldRequiredIndicator = (0, react.forwardRef)(({ fallback, ...props }, ref) => {
75
+ const field = useFieldContext();
76
+ if (!field.required) return fallback;
77
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(field.getRequiredIndicatorProps(), props);
78
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.span, {
79
+ ...mergedProps,
80
+ ref,
81
+ children: props.children ?? "*"
82
+ });
83
+ });
84
+ FieldRequiredIndicator.displayName = "FieldRequiredIndicator";
85
+
86
+ //#endregion
87
+ //#region src/components/field/field-anatomy.ts
88
+ const fieldAnatomy = (0, __sprawlify_primitives_anatomy.createAnatomy)("field").parts("root", "errorText", "helperText", "input", "label", "select", "textarea", "requiredIndicator");
89
+ const parts = fieldAnatomy.build();
90
+
91
+ //#endregion
92
+ //#region src/components/field/use-field.ts
93
+ const useField = (props = {}) => {
94
+ const fieldset = require_use_safe_layout_effect.useFieldsetContext();
95
+ const env = require_environment.useEnvironmentContext();
96
+ const { ids, disabled = Boolean(fieldset?.disabled), invalid = false, readOnly = false, required = false } = props;
97
+ const [hasErrorText, setHasErrorText] = (0, react.useState)(false);
98
+ const [hasHelperText, setHasHelperText] = (0, react.useState)(false);
99
+ const uid = (0, react.useId)();
100
+ const id = props.id ?? uid;
101
+ const rootRef = (0, react.useRef)(null);
102
+ const rootId = ids?.control ?? `field::${id}`;
103
+ const errorTextId = ids?.errorText ?? `field::${id}::error-text`;
104
+ const helperTextId = ids?.helperText ?? `field::${id}::helper-text`;
105
+ const labelId = ids?.label ?? `field::${id}::label`;
106
+ require_use_safe_layout_effect.useSafeLayoutEffect(() => {
107
+ const rootNode = rootRef.current;
108
+ if (!rootNode) return;
109
+ const checkTextElements = () => {
110
+ const docOrShadowRoot = env.getRootNode();
111
+ setHasErrorText(!!docOrShadowRoot.getElementById(errorTextId));
112
+ setHasHelperText(!!docOrShadowRoot.getElementById(helperTextId));
113
+ };
114
+ checkTextElements();
115
+ const observer = new (env.getWindow()).MutationObserver(checkTextElements);
116
+ observer.observe(rootNode, {
117
+ childList: true,
118
+ subtree: true
119
+ });
120
+ return () => observer.disconnect();
121
+ }, [
122
+ env,
123
+ errorTextId,
124
+ helperTextId
125
+ ]);
126
+ const labelIds = (0, react.useMemo)(() => {
127
+ const ids$1 = [];
128
+ if (hasErrorText && invalid) ids$1.push(errorTextId);
129
+ if (hasHelperText) ids$1.push(helperTextId);
130
+ return ids$1.join(" ") || void 0;
131
+ }, [
132
+ invalid,
133
+ errorTextId,
134
+ helperTextId,
135
+ hasErrorText,
136
+ hasHelperText
137
+ ]);
138
+ const getRootProps = (0, react.useMemo)(() => () => ({
139
+ ...parts.root.attrs,
140
+ id: rootId,
141
+ ref: rootRef,
142
+ role: "group",
143
+ "data-disabled": (0, __sprawlify_primitives_dom_query.dataAttr)(disabled),
144
+ "data-invalid": (0, __sprawlify_primitives_dom_query.dataAttr)(invalid),
145
+ "data-readonly": (0, __sprawlify_primitives_dom_query.dataAttr)(readOnly)
146
+ }), [
147
+ disabled,
148
+ invalid,
149
+ readOnly,
150
+ rootId
151
+ ]);
152
+ const getLabelProps = (0, react.useMemo)(() => () => ({
153
+ ...parts.label.attrs,
154
+ id: labelId,
155
+ "data-disabled": (0, __sprawlify_primitives_dom_query.dataAttr)(disabled),
156
+ "data-invalid": (0, __sprawlify_primitives_dom_query.dataAttr)(invalid),
157
+ "data-readonly": (0, __sprawlify_primitives_dom_query.dataAttr)(readOnly),
158
+ "data-required": (0, __sprawlify_primitives_dom_query.dataAttr)(required),
159
+ htmlFor: id
160
+ }), [
161
+ disabled,
162
+ invalid,
163
+ readOnly,
164
+ required,
165
+ id,
166
+ labelId
167
+ ]);
168
+ const getControlProps = (0, react.useMemo)(() => () => ({
169
+ "aria-describedby": labelIds,
170
+ "aria-invalid": (0, __sprawlify_primitives_dom_query.ariaAttr)(invalid),
171
+ "data-invalid": (0, __sprawlify_primitives_dom_query.dataAttr)(invalid),
172
+ "data-required": (0, __sprawlify_primitives_dom_query.dataAttr)(required),
173
+ "data-readonly": (0, __sprawlify_primitives_dom_query.dataAttr)(readOnly),
174
+ id,
175
+ required,
176
+ disabled,
177
+ readOnly
178
+ }), [
179
+ labelIds,
180
+ invalid,
181
+ required,
182
+ readOnly,
183
+ id,
184
+ disabled
185
+ ]);
186
+ const getInputProps = (0, react.useMemo)(() => () => ({
187
+ ...getControlProps(),
188
+ ...parts.input.attrs
189
+ }), [getControlProps]);
190
+ const getTextareaProps = (0, react.useMemo)(() => () => ({
191
+ ...getControlProps(),
192
+ ...parts.textarea.attrs
193
+ }), [getControlProps]);
194
+ const getSelectProps = (0, react.useMemo)(() => () => ({
195
+ ...getControlProps(),
196
+ ...parts.select.attrs
197
+ }), [getControlProps]);
198
+ const getHelperTextProps = (0, react.useMemo)(() => () => ({
199
+ id: helperTextId,
200
+ ...parts.helperText.attrs,
201
+ "data-disabled": (0, __sprawlify_primitives_dom_query.dataAttr)(disabled)
202
+ }), [disabled, helperTextId]);
203
+ const getErrorTextProps = (0, react.useMemo)(() => () => ({
204
+ id: errorTextId,
205
+ ...parts.errorText.attrs,
206
+ "aria-live": "polite"
207
+ }), [errorTextId]);
208
+ const getRequiredIndicatorProps = (0, react.useMemo)(() => () => ({
209
+ "aria-hidden": true,
210
+ ...parts.requiredIndicator.attrs
211
+ }), []);
212
+ return {
213
+ ariaDescribedby: labelIds,
214
+ ids: {
215
+ root: rootId,
216
+ control: id,
217
+ label: labelId,
218
+ errorText: errorTextId,
219
+ helperText: helperTextId
220
+ },
221
+ refs: { rootRef },
222
+ disabled,
223
+ invalid,
224
+ readOnly,
225
+ required,
226
+ getLabelProps,
227
+ getRootProps,
228
+ getInputProps,
229
+ getTextareaProps,
230
+ getSelectProps,
231
+ getHelperTextProps,
232
+ getErrorTextProps,
233
+ getRequiredIndicatorProps
234
+ };
235
+ };
236
+
237
+ //#endregion
238
+ //#region src/components/field/field-root.tsx
239
+ const splitRootProps = require_create_split_props.createSplitProps();
240
+ const FieldRoot = (0, react.forwardRef)((props, ref) => {
241
+ const [useFieldProps, localProps] = splitRootProps(props, [
242
+ "id",
243
+ "ids",
244
+ "disabled",
245
+ "invalid",
246
+ "readOnly",
247
+ "required"
248
+ ]);
249
+ const field = useField(useFieldProps);
250
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(field.getRootProps(), localProps);
251
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FieldProvider, {
252
+ value: field,
253
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
254
+ ...mergedProps,
255
+ ref: require_factory.composeRefs(ref, field.refs.rootRef)
256
+ })
257
+ });
258
+ });
259
+ FieldRoot.displayName = "FieldRoot";
260
+
261
+ //#endregion
262
+ //#region src/components/field/field-root-provider.tsx
263
+ const splitRootProviderProps = require_create_split_props.createSplitProps();
264
+ const FieldRootProvider = (0, react.forwardRef)((props, ref) => {
265
+ const [{ value: field }, localProps] = splitRootProviderProps(props, ["value"]);
266
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(field.getRootProps(), localProps);
267
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FieldProvider, {
268
+ value: field,
269
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
270
+ ...mergedProps,
271
+ ref
272
+ })
273
+ });
274
+ });
275
+ FieldRootProvider.displayName = "FieldRootProvider";
276
+
277
+ //#endregion
278
+ //#region src/components/field/field-select.tsx
279
+ const FieldSelect = (0, react.forwardRef)((props, ref) => {
280
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useFieldContext()?.getSelectProps(), props);
281
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.select, {
282
+ ...mergedProps,
283
+ ref
284
+ });
285
+ });
286
+ FieldSelect.displayName = "FieldSelect";
287
+
288
+ //#endregion
289
+ //#region src/components/field/field-textarea.tsx
290
+ const FieldTextarea = (0, react.forwardRef)((props, ref) => {
291
+ const { autoresize, ...textareaProps } = props;
292
+ const textareaRef = (0, react.useRef)(null);
293
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useFieldContext()?.getTextareaProps(), { style: { resize: autoresize ? "none" : void 0 } }, textareaProps);
294
+ (0, react.useEffect)(() => {
295
+ if (!autoresize) return;
296
+ return (0, __sprawlify_primitives_auto_resize.autoresizeTextarea)(textareaRef.current);
297
+ }, [autoresize]);
298
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.textarea, {
299
+ ...mergedProps,
300
+ ref: require_factory.composeRefs(ref, textareaRef)
301
+ });
302
+ });
303
+ FieldTextarea.displayName = "FieldTextarea";
304
+
305
+ //#endregion
306
+ //#region src/components/field/field.ts
307
+ var field_exports = /* @__PURE__ */ require_core.__export({
308
+ Context: () => FieldContext,
309
+ ErrorText: () => FieldErrorText,
310
+ HelperText: () => FieldHelperText,
311
+ Input: () => FieldInput,
312
+ Label: () => FieldLabel,
313
+ RequiredIndicator: () => FieldRequiredIndicator,
314
+ Root: () => FieldRoot,
315
+ RootProvider: () => FieldRootProvider,
316
+ Select: () => FieldSelect,
317
+ Textarea: () => FieldTextarea
318
+ });
319
+
320
+ //#endregion
321
+ Object.defineProperty(exports, 'FieldContext', {
322
+ enumerable: true,
323
+ get: function () {
324
+ return FieldContext;
325
+ }
326
+ });
327
+ Object.defineProperty(exports, 'FieldErrorText', {
328
+ enumerable: true,
329
+ get: function () {
330
+ return FieldErrorText;
331
+ }
332
+ });
333
+ Object.defineProperty(exports, 'FieldHelperText', {
334
+ enumerable: true,
335
+ get: function () {
336
+ return FieldHelperText;
337
+ }
338
+ });
339
+ Object.defineProperty(exports, 'FieldInput', {
340
+ enumerable: true,
341
+ get: function () {
342
+ return FieldInput;
343
+ }
344
+ });
345
+ Object.defineProperty(exports, 'FieldLabel', {
346
+ enumerable: true,
347
+ get: function () {
348
+ return FieldLabel;
349
+ }
350
+ });
351
+ Object.defineProperty(exports, 'FieldRequiredIndicator', {
352
+ enumerable: true,
353
+ get: function () {
354
+ return FieldRequiredIndicator;
355
+ }
356
+ });
357
+ Object.defineProperty(exports, 'FieldRoot', {
358
+ enumerable: true,
359
+ get: function () {
360
+ return FieldRoot;
361
+ }
362
+ });
363
+ Object.defineProperty(exports, 'FieldRootProvider', {
364
+ enumerable: true,
365
+ get: function () {
366
+ return FieldRootProvider;
367
+ }
368
+ });
369
+ Object.defineProperty(exports, 'FieldSelect', {
370
+ enumerable: true,
371
+ get: function () {
372
+ return FieldSelect;
373
+ }
374
+ });
375
+ Object.defineProperty(exports, 'FieldTextarea', {
376
+ enumerable: true,
377
+ get: function () {
378
+ return FieldTextarea;
379
+ }
380
+ });
381
+ Object.defineProperty(exports, 'fieldAnatomy', {
382
+ enumerable: true,
383
+ get: function () {
384
+ return fieldAnatomy;
385
+ }
386
+ });
387
+ Object.defineProperty(exports, 'field_exports', {
388
+ enumerable: true,
389
+ get: function () {
390
+ return field_exports;
391
+ }
392
+ });
393
+ Object.defineProperty(exports, 'useField', {
394
+ enumerable: true,
395
+ get: function () {
396
+ return useField;
397
+ }
398
+ });
399
+ Object.defineProperty(exports, 'useFieldContext', {
400
+ enumerable: true,
401
+ get: function () {
402
+ return useFieldContext;
403
+ }
404
+ });
@@ -0,0 +1,237 @@
1
+ const require_core = require('./core-CPLjF6nm.cjs');
2
+ const require_environment = require('./environment-DLPiALpf.cjs');
3
+ const require_factory = require('./factory-CDX-oCN5.cjs');
4
+ const require_create_split_props = require('./create-split-props-CSkzaUOy.cjs');
5
+ const require_use_safe_layout_effect = require('./use-safe-layout-effect-vuYaDIpT.cjs');
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let __sprawlify_primitives_dom_query = require("@sprawlify/primitives/dom-query");
9
+ let __sprawlify_primitives_anatomy = require("@sprawlify/primitives/anatomy");
10
+ let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
11
+
12
+ //#region src/components/fieldset/fieldset-context.tsx
13
+ const FieldsetContext = (props) => props.children(require_use_safe_layout_effect.useFieldsetContext());
14
+
15
+ //#endregion
16
+ //#region src/components/fieldset/fieldset-error-text.tsx
17
+ const FieldsetErrorText = (0, react.forwardRef)((props, ref) => {
18
+ const fieldset = require_use_safe_layout_effect.useFieldsetContext();
19
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(fieldset.getErrorTextProps(), props);
20
+ return fieldset.invalid ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.span, {
21
+ ...mergedProps,
22
+ ref
23
+ }) : null;
24
+ });
25
+ FieldsetErrorText.displayName = "FieldsetErrorText";
26
+
27
+ //#endregion
28
+ //#region src/components/fieldset/fieldset-helper-text.tsx
29
+ const FieldsetHelperText = (0, react.forwardRef)((props, ref) => {
30
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(require_use_safe_layout_effect.useFieldsetContext().getHelperTextProps(), props);
31
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.span, {
32
+ ...mergedProps,
33
+ ref
34
+ });
35
+ });
36
+ FieldsetHelperText.displayName = "FieldsetHelperText";
37
+
38
+ //#endregion
39
+ //#region src/components/fieldset/fieldset-legend.tsx
40
+ const FieldsetLegend = (0, react.forwardRef)((props, ref) => {
41
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(require_use_safe_layout_effect.useFieldsetContext().getLegendProps(), props);
42
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.legend, {
43
+ ...mergedProps,
44
+ ref
45
+ });
46
+ });
47
+ FieldsetLegend.displayName = "FieldsetLegend";
48
+
49
+ //#endregion
50
+ //#region src/components/fieldset/fieldset-anatomy.ts
51
+ const fieldsetAnatomy = (0, __sprawlify_primitives_anatomy.createAnatomy)("fieldset").parts("root", "errorText", "helperText", "legend");
52
+ const parts = fieldsetAnatomy.build();
53
+
54
+ //#endregion
55
+ //#region src/components/fieldset/use-fieldset.ts
56
+ const useFieldset = (props = {}) => {
57
+ const { disabled = false, invalid = false } = props;
58
+ const env = require_environment.useEnvironmentContext();
59
+ const [textElements, setTextElements] = (0, react.useState)({
60
+ hasErrorText: false,
61
+ hasHelperText: false
62
+ });
63
+ const uid = (0, react.useId)();
64
+ const id = props.id ?? uid;
65
+ const rootRef = (0, react.useRef)(null);
66
+ const legendId = `fieldset::${id}::legend`;
67
+ const errorTextId = `fieldset::${id}::error-text`;
68
+ const helperTextId = `fieldset::${id}::helper-text`;
69
+ require_use_safe_layout_effect.useSafeLayoutEffect(() => {
70
+ const rootNode = rootRef.current;
71
+ if (!rootNode) return;
72
+ const checkTextElements = () => {
73
+ const docOrShadowRoot = env.getRootNode();
74
+ setTextElements({
75
+ hasErrorText: !!docOrShadowRoot.getElementById(errorTextId),
76
+ hasHelperText: !!docOrShadowRoot.getElementById(helperTextId)
77
+ });
78
+ };
79
+ checkTextElements();
80
+ const observer = new (env.getWindow()).MutationObserver(checkTextElements);
81
+ observer.observe(rootNode, {
82
+ childList: true,
83
+ subtree: true
84
+ });
85
+ return () => observer.disconnect();
86
+ }, [
87
+ env,
88
+ errorTextId,
89
+ helperTextId
90
+ ]);
91
+ const ids = [];
92
+ if (textElements.hasErrorText && invalid) ids.push(errorTextId);
93
+ if (textElements.hasHelperText) ids.push(helperTextId);
94
+ const labelIds = ids.length > 0 ? ids.join(" ") : void 0;
95
+ const getRootProps = () => ({
96
+ ...parts.root.attrs,
97
+ ref: rootRef,
98
+ disabled,
99
+ "data-disabled": (0, __sprawlify_primitives_dom_query.dataAttr)(disabled),
100
+ "data-invalid": (0, __sprawlify_primitives_dom_query.dataAttr)(invalid),
101
+ "aria-labelledby": legendId,
102
+ "aria-describedby": labelIds
103
+ });
104
+ const getLegendProps = () => ({
105
+ id: legendId,
106
+ ...parts.legend.attrs,
107
+ "data-disabled": (0, __sprawlify_primitives_dom_query.dataAttr)(disabled),
108
+ "data-invalid": (0, __sprawlify_primitives_dom_query.dataAttr)(invalid)
109
+ });
110
+ const getHelperTextProps = () => ({
111
+ id: helperTextId,
112
+ ...parts.helperText.attrs
113
+ });
114
+ const getErrorTextProps = () => ({
115
+ id: errorTextId,
116
+ ...parts.errorText.attrs,
117
+ "aria-live": "polite"
118
+ });
119
+ return {
120
+ refs: { rootRef },
121
+ ids: {
122
+ legend: legendId,
123
+ errorText: errorTextId,
124
+ helperText: helperTextId
125
+ },
126
+ disabled,
127
+ invalid,
128
+ getRootProps,
129
+ getLegendProps,
130
+ getHelperTextProps,
131
+ getErrorTextProps
132
+ };
133
+ };
134
+
135
+ //#endregion
136
+ //#region src/components/fieldset/fieldset-root.tsx
137
+ const splitRootProps = require_create_split_props.createSplitProps();
138
+ const FieldsetRoot = (0, react.forwardRef)((props, ref) => {
139
+ const [useFieldsetProps, localProps] = splitRootProps(props, [
140
+ "id",
141
+ "disabled",
142
+ "invalid"
143
+ ]);
144
+ const fieldset = useFieldset(useFieldsetProps);
145
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(fieldset.getRootProps(), localProps);
146
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_safe_layout_effect.FieldsetProvider, {
147
+ value: fieldset,
148
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.fieldset, {
149
+ ...mergedProps,
150
+ ref: require_factory.composeRefs(ref, fieldset.refs.rootRef)
151
+ })
152
+ });
153
+ });
154
+ FieldsetRoot.displayName = "FieldsetRoot";
155
+
156
+ //#endregion
157
+ //#region src/components/fieldset/fieldset-root-provider.tsx
158
+ const splitRootProviderProps = require_create_split_props.createSplitProps();
159
+ const FieldsetRootProvider = (0, react.forwardRef)((props, ref) => {
160
+ const [{ value: fieldset }, localProps] = splitRootProviderProps(props, ["value"]);
161
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(fieldset.getRootProps(), localProps);
162
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_safe_layout_effect.FieldsetProvider, {
163
+ value: fieldset,
164
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.fieldset, {
165
+ ...mergedProps,
166
+ ref
167
+ })
168
+ });
169
+ });
170
+ FieldsetRootProvider.displayName = "FieldsetRootProvider";
171
+
172
+ //#endregion
173
+ //#region src/components/fieldset/fieldset.ts
174
+ var fieldset_exports = /* @__PURE__ */ require_core.__export({
175
+ Context: () => FieldsetContext,
176
+ ErrorText: () => FieldsetErrorText,
177
+ HelperText: () => FieldsetHelperText,
178
+ Legend: () => FieldsetLegend,
179
+ Root: () => FieldsetRoot,
180
+ RootProvider: () => FieldsetRootProvider
181
+ });
182
+
183
+ //#endregion
184
+ Object.defineProperty(exports, 'FieldsetContext', {
185
+ enumerable: true,
186
+ get: function () {
187
+ return FieldsetContext;
188
+ }
189
+ });
190
+ Object.defineProperty(exports, 'FieldsetErrorText', {
191
+ enumerable: true,
192
+ get: function () {
193
+ return FieldsetErrorText;
194
+ }
195
+ });
196
+ Object.defineProperty(exports, 'FieldsetHelperText', {
197
+ enumerable: true,
198
+ get: function () {
199
+ return FieldsetHelperText;
200
+ }
201
+ });
202
+ Object.defineProperty(exports, 'FieldsetLegend', {
203
+ enumerable: true,
204
+ get: function () {
205
+ return FieldsetLegend;
206
+ }
207
+ });
208
+ Object.defineProperty(exports, 'FieldsetRoot', {
209
+ enumerable: true,
210
+ get: function () {
211
+ return FieldsetRoot;
212
+ }
213
+ });
214
+ Object.defineProperty(exports, 'FieldsetRootProvider', {
215
+ enumerable: true,
216
+ get: function () {
217
+ return FieldsetRootProvider;
218
+ }
219
+ });
220
+ Object.defineProperty(exports, 'fieldsetAnatomy', {
221
+ enumerable: true,
222
+ get: function () {
223
+ return fieldsetAnatomy;
224
+ }
225
+ });
226
+ Object.defineProperty(exports, 'fieldset_exports', {
227
+ enumerable: true,
228
+ get: function () {
229
+ return fieldset_exports;
230
+ }
231
+ });
232
+ Object.defineProperty(exports, 'useFieldset', {
233
+ enumerable: true,
234
+ get: function () {
235
+ return useFieldset;
236
+ }
237
+ });