@ark-ui/react 3.5.0 → 3.6.1

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 (158) hide show
  1. package/README.md +3 -0
  2. package/dist/components/dialog/dialog-root.d.cts +1 -1
  3. package/dist/components/dialog/dialog-root.d.ts +1 -1
  4. package/dist/components/field/use-field.cjs +91 -56
  5. package/dist/components/field/use-field.d.cts +7 -61
  6. package/dist/components/field/use-field.d.ts +7 -61
  7. package/dist/components/field/use-field.js +92 -57
  8. package/dist/components/fieldset/fieldset-context.cjs +10 -0
  9. package/dist/components/fieldset/fieldset-context.d.cts +7 -0
  10. package/dist/components/fieldset/fieldset-context.d.ts +7 -0
  11. package/dist/components/fieldset/fieldset-context.js +6 -0
  12. package/dist/components/fieldset/fieldset-error-text.cjs +21 -0
  13. package/dist/components/fieldset/fieldset-error-text.d.cts +8 -0
  14. package/dist/components/fieldset/fieldset-error-text.d.ts +8 -0
  15. package/dist/components/fieldset/fieldset-error-text.js +17 -0
  16. package/dist/components/fieldset/fieldset-helper-text.cjs +21 -0
  17. package/dist/components/fieldset/fieldset-helper-text.d.cts +8 -0
  18. package/dist/components/fieldset/fieldset-helper-text.d.ts +8 -0
  19. package/dist/components/fieldset/fieldset-helper-text.js +17 -0
  20. package/dist/components/fieldset/fieldset-legend.cjs +19 -0
  21. package/dist/components/fieldset/fieldset-legend.d.cts +8 -0
  22. package/dist/components/fieldset/fieldset-legend.d.ts +8 -0
  23. package/dist/components/fieldset/fieldset-legend.js +15 -0
  24. package/dist/components/fieldset/fieldset-root-provider.cjs +24 -0
  25. package/dist/components/fieldset/fieldset-root-provider.d.cts +13 -0
  26. package/dist/components/fieldset/fieldset-root-provider.d.ts +13 -0
  27. package/dist/components/fieldset/fieldset-root-provider.js +20 -0
  28. package/dist/components/fieldset/fieldset-root.cjs +27 -0
  29. package/dist/components/fieldset/fieldset-root.d.cts +9 -0
  30. package/dist/components/fieldset/fieldset-root.d.ts +9 -0
  31. package/dist/components/fieldset/fieldset-root.js +23 -0
  32. package/dist/components/fieldset/fieldset.anatomy.cjs +17 -0
  33. package/dist/components/fieldset/fieldset.anatomy.d.cts +3 -0
  34. package/dist/components/fieldset/fieldset.anatomy.d.ts +3 -0
  35. package/dist/components/fieldset/fieldset.anatomy.js +12 -0
  36. package/dist/components/fieldset/fieldset.cjs +19 -0
  37. package/dist/components/fieldset/fieldset.d.cts +6 -0
  38. package/dist/components/fieldset/fieldset.d.ts +6 -0
  39. package/dist/components/fieldset/fieldset.js +6 -0
  40. package/dist/components/fieldset/index.cjs +25 -0
  41. package/dist/components/fieldset/index.d.cts +9 -0
  42. package/dist/components/fieldset/index.d.ts +9 -0
  43. package/dist/components/fieldset/index.js +10 -0
  44. package/dist/components/fieldset/use-fieldset-context.cjs +16 -0
  45. package/dist/components/fieldset/use-fieldset-context.d.cts +6 -0
  46. package/dist/components/fieldset/use-fieldset-context.d.ts +6 -0
  47. package/dist/components/fieldset/use-fieldset-context.js +11 -0
  48. package/dist/components/fieldset/use-fieldset.cjs +85 -0
  49. package/dist/components/fieldset/use-fieldset.d.cts +29 -0
  50. package/dist/components/fieldset/use-fieldset.d.ts +29 -0
  51. package/dist/components/fieldset/use-fieldset.js +81 -0
  52. package/dist/components/highlight/highlight.cjs +26 -0
  53. package/dist/components/highlight/highlight.d.cts +8 -0
  54. package/dist/components/highlight/highlight.d.ts +8 -0
  55. package/dist/components/highlight/highlight.js +22 -0
  56. package/dist/components/highlight/index.cjs +11 -0
  57. package/dist/components/highlight/index.d.cts +2 -0
  58. package/dist/components/highlight/index.d.ts +2 -0
  59. package/dist/components/highlight/index.js +2 -0
  60. package/dist/components/highlight/use-highlight.cjs +49 -0
  61. package/dist/components/highlight/use-highlight.d.cts +30 -0
  62. package/dist/components/highlight/use-highlight.d.ts +30 -0
  63. package/dist/components/highlight/use-highlight.js +45 -0
  64. package/dist/components/index.cjs +54 -0
  65. package/dist/components/index.d.cts +3 -0
  66. package/dist/components/index.d.ts +3 -0
  67. package/dist/components/index.js +29 -0
  68. package/dist/components/select/select-hidden-select.cjs +8 -1
  69. package/dist/components/select/select-hidden-select.js +8 -1
  70. package/dist/components/time-picker/index.cjs +39 -0
  71. package/dist/components/time-picker/index.d.cts +17 -0
  72. package/dist/components/time-picker/index.d.ts +17 -0
  73. package/dist/components/time-picker/index.js +17 -0
  74. package/dist/components/time-picker/time-picker-cell.cjs +29 -0
  75. package/dist/components/time-picker/time-picker-cell.d.cts +14 -0
  76. package/dist/components/time-picker/time-picker-cell.d.ts +14 -0
  77. package/dist/components/time-picker/time-picker-cell.js +25 -0
  78. package/dist/components/time-picker/time-picker-clear-trigger.cjs +21 -0
  79. package/dist/components/time-picker/time-picker-clear-trigger.d.cts +8 -0
  80. package/dist/components/time-picker/time-picker-clear-trigger.d.ts +8 -0
  81. package/dist/components/time-picker/time-picker-clear-trigger.js +17 -0
  82. package/dist/components/time-picker/time-picker-column.cjs +22 -0
  83. package/dist/components/time-picker/time-picker-column.d.cts +9 -0
  84. package/dist/components/time-picker/time-picker-column.d.ts +9 -0
  85. package/dist/components/time-picker/time-picker-column.js +18 -0
  86. package/dist/components/time-picker/time-picker-content.cjs +30 -0
  87. package/dist/components/time-picker/time-picker-content.d.cts +8 -0
  88. package/dist/components/time-picker/time-picker-content.d.ts +8 -0
  89. package/dist/components/time-picker/time-picker-content.js +26 -0
  90. package/dist/components/time-picker/time-picker-context.cjs +10 -0
  91. package/dist/components/time-picker/time-picker-context.d.cts +7 -0
  92. package/dist/components/time-picker/time-picker-context.d.ts +7 -0
  93. package/dist/components/time-picker/time-picker-context.js +6 -0
  94. package/dist/components/time-picker/time-picker-control.cjs +21 -0
  95. package/dist/components/time-picker/time-picker-control.d.cts +8 -0
  96. package/dist/components/time-picker/time-picker-control.d.ts +8 -0
  97. package/dist/components/time-picker/time-picker-control.js +17 -0
  98. package/dist/components/time-picker/time-picker-input.cjs +19 -0
  99. package/dist/components/time-picker/time-picker-input.d.cts +8 -0
  100. package/dist/components/time-picker/time-picker-input.d.ts +8 -0
  101. package/dist/components/time-picker/time-picker-input.js +15 -0
  102. package/dist/components/time-picker/time-picker-label.cjs +19 -0
  103. package/dist/components/time-picker/time-picker-label.d.cts +8 -0
  104. package/dist/components/time-picker/time-picker-label.d.ts +8 -0
  105. package/dist/components/time-picker/time-picker-label.js +15 -0
  106. package/dist/components/time-picker/time-picker-positioner.cjs +26 -0
  107. package/dist/components/time-picker/time-picker-positioner.d.cts +8 -0
  108. package/dist/components/time-picker/time-picker-positioner.d.ts +8 -0
  109. package/dist/components/time-picker/time-picker-positioner.js +22 -0
  110. package/dist/components/time-picker/time-picker-root-provider.cjs +30 -0
  111. package/dist/components/time-picker/time-picker-root-provider.d.cts +14 -0
  112. package/dist/components/time-picker/time-picker-root-provider.d.ts +14 -0
  113. package/dist/components/time-picker/time-picker-root-provider.js +26 -0
  114. package/dist/components/time-picker/time-picker-root.cjs +48 -0
  115. package/dist/components/time-picker/time-picker-root.d.cts +11 -0
  116. package/dist/components/time-picker/time-picker-root.d.ts +11 -0
  117. package/dist/components/time-picker/time-picker-root.js +44 -0
  118. package/dist/components/time-picker/time-picker-spacer.cjs +19 -0
  119. package/dist/components/time-picker/time-picker-spacer.d.cts +8 -0
  120. package/dist/components/time-picker/time-picker-spacer.d.ts +8 -0
  121. package/dist/components/time-picker/time-picker-spacer.js +15 -0
  122. package/dist/components/time-picker/time-picker-trigger.cjs +21 -0
  123. package/dist/components/time-picker/time-picker-trigger.d.cts +8 -0
  124. package/dist/components/time-picker/time-picker-trigger.d.ts +8 -0
  125. package/dist/components/time-picker/time-picker-trigger.js +17 -0
  126. package/dist/components/time-picker/time-picker.cjs +33 -0
  127. package/dist/components/time-picker/time-picker.d.cts +14 -0
  128. package/dist/components/time-picker/time-picker.d.ts +14 -0
  129. package/dist/components/time-picker/time-picker.js +13 -0
  130. package/dist/components/time-picker/use-time-picker-column-props-context.cjs +15 -0
  131. package/dist/components/time-picker/use-time-picker-column-props-context.d.cts +7 -0
  132. package/dist/components/time-picker/use-time-picker-column-props-context.d.ts +7 -0
  133. package/dist/components/time-picker/use-time-picker-column-props-context.js +10 -0
  134. package/dist/components/time-picker/use-time-picker-context.cjs +15 -0
  135. package/dist/components/time-picker/use-time-picker-context.d.cts +6 -0
  136. package/dist/components/time-picker/use-time-picker-context.d.ts +6 -0
  137. package/dist/components/time-picker/use-time-picker-context.js +10 -0
  138. package/dist/components/time-picker/use-time-picker.cjs +60 -0
  139. package/dist/components/time-picker/use-time-picker.d.cts +31 -0
  140. package/dist/components/time-picker/use-time-picker.d.ts +31 -0
  141. package/dist/components/time-picker/use-time-picker.js +37 -0
  142. package/dist/components/toast/index.d.cts +1 -1
  143. package/dist/components/toast/index.d.ts +1 -1
  144. package/dist/index.cjs +54 -0
  145. package/dist/index.js +29 -0
  146. package/dist/node_modules/@internationalized/date/dist/CalendarDate.cjs +52 -0
  147. package/dist/node_modules/@internationalized/date/dist/CalendarDate.js +48 -0
  148. package/dist/node_modules/@internationalized/date/dist/manipulation.cjs +108 -0
  149. package/dist/node_modules/@internationalized/date/dist/manipulation.js +99 -0
  150. package/dist/node_modules/@internationalized/date/dist/queries.cjs +13 -0
  151. package/dist/node_modules/@internationalized/date/dist/queries.js +9 -0
  152. package/dist/node_modules/@internationalized/date/dist/string.cjs +38 -0
  153. package/dist/node_modules/@internationalized/date/dist/string.js +33 -0
  154. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs +13 -0
  155. package/dist/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +8 -0
  156. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.cjs +14 -0
  157. package/dist/node_modules/@swc/helpers/esm/_class_private_field_init.js +9 -0
  158. package/package.json +97 -60
@@ -0,0 +1,81 @@
1
+ 'use client';
2
+ import { getWindow } from '@zag-js/dom-query';
3
+ import { useRef, useId, useLayoutEffect, useMemo } from 'react';
4
+ import { parts } from './fieldset.anatomy.js';
5
+
6
+ const useFieldset = (props) => {
7
+ const { disabled = false, invalid = false } = props;
8
+ const hasErrorText = useRef(false);
9
+ const hasHelperText = useRef(false);
10
+ const id = props.id ?? useId();
11
+ const rootRef = useRef(null);
12
+ const errorTextId = `fieldset::${id}::error-text`;
13
+ const helperTextId = `fieldset::${id}::helper-text`;
14
+ useLayoutEffect(() => {
15
+ const rootNode = rootRef.current;
16
+ if (!rootNode) return;
17
+ const win = getWindow(rootNode);
18
+ const doc = win.document;
19
+ const checkTextElements = () => {
20
+ hasErrorText.current = !!doc.getElementById(errorTextId);
21
+ hasHelperText.current = !!doc.getElementById(helperTextId);
22
+ };
23
+ checkTextElements();
24
+ const observer = new win.MutationObserver(checkTextElements);
25
+ observer.observe(rootNode, { childList: true, subtree: true });
26
+ return () => observer.disconnect();
27
+ }, [errorTextId, helperTextId]);
28
+ const labelIds = useMemo(() => {
29
+ const ids = [];
30
+ if (hasErrorText.current && invalid) ids.push(errorTextId);
31
+ if (hasHelperText.current) ids.push(helperTextId);
32
+ return ids.join(" ") || void 0;
33
+ }, [invalid, errorTextId, helperTextId]);
34
+ const getRootProps = useMemo(
35
+ () => () => ({
36
+ ...parts.root.attrs,
37
+ ref: rootRef,
38
+ disabled,
39
+ "data-disabled": disabled ? "true" : void 0,
40
+ "data-invalid": invalid ? "true" : void 0,
41
+ "aria-describedby": labelIds
42
+ }),
43
+ [disabled, invalid, labelIds]
44
+ );
45
+ const getLegendProps = useMemo(
46
+ () => () => ({
47
+ ...parts.legend.attrs,
48
+ "data-disabled": disabled ? "true" : void 0,
49
+ "data-invalid": invalid ? "true" : void 0
50
+ }),
51
+ [disabled, invalid]
52
+ );
53
+ const getHelperTextProps = useMemo(
54
+ () => () => ({
55
+ id: helperTextId,
56
+ ...parts.helperText.attrs
57
+ }),
58
+ [helperTextId]
59
+ );
60
+ const getErrorTextProps = useMemo(
61
+ () => () => ({
62
+ id: errorTextId,
63
+ ...parts.errorText.attrs,
64
+ "aria-live": "polite"
65
+ }),
66
+ [errorTextId]
67
+ );
68
+ return {
69
+ refs: {
70
+ rootRef
71
+ },
72
+ disabled,
73
+ invalid,
74
+ getRootProps,
75
+ getLegendProps,
76
+ getHelperTextProps,
77
+ getErrorTextProps
78
+ };
79
+ };
80
+
81
+ export { useFieldset };
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const jsxRuntime = require('react/jsx-runtime');
6
+ const react = require('react');
7
+ const createSplitProps = require('../../utils/create-split-props.cjs');
8
+ const useHighlight = require('./use-highlight.cjs');
9
+
10
+ const Highlight = (props) => {
11
+ if (typeof props.text !== "string") {
12
+ throw new Error("[ark-ui/highlight] text must be a string");
13
+ }
14
+ const [highlightProps, localProps] = createSplitProps.createSplitProps()(props, [
15
+ "query",
16
+ "text",
17
+ "ignoreCase",
18
+ "matchAll"
19
+ ]);
20
+ const chunks = useHighlight.useHighlight(highlightProps);
21
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: chunks.map(
22
+ ({ text, match }, i) => match ? /* @__PURE__ */ jsxRuntime.jsx("mark", { ...localProps, children: text }, i) : /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: text }, i)
23
+ ) });
24
+ };
25
+
26
+ exports.Highlight = Highlight;
@@ -0,0 +1,8 @@
1
+ import { Assign } from '../../types';
2
+ import { UseHighlightProps } from './use-highlight';
3
+
4
+ export interface HighlightBaseProps extends UseHighlightProps {
5
+ }
6
+ export interface HighlightProps extends Assign<React.ComponentProps<'mark'>, HighlightBaseProps> {
7
+ }
8
+ export declare const Highlight: (props: HighlightProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Assign } from '../../types';
2
+ import { UseHighlightProps } from './use-highlight';
3
+
4
+ export interface HighlightBaseProps extends UseHighlightProps {
5
+ }
6
+ export interface HighlightProps extends Assign<React.ComponentProps<'mark'>, HighlightBaseProps> {
7
+ }
8
+ export declare const Highlight: (props: HighlightProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Fragment } from 'react';
3
+ import { createSplitProps } from '../../utils/create-split-props.js';
4
+ import { useHighlight } from './use-highlight.js';
5
+
6
+ const Highlight = (props) => {
7
+ if (typeof props.text !== "string") {
8
+ throw new Error("[ark-ui/highlight] text must be a string");
9
+ }
10
+ const [highlightProps, localProps] = createSplitProps()(props, [
11
+ "query",
12
+ "text",
13
+ "ignoreCase",
14
+ "matchAll"
15
+ ]);
16
+ const chunks = useHighlight(highlightProps);
17
+ return /* @__PURE__ */ jsx(Fragment, { children: chunks.map(
18
+ ({ text, match }, i) => match ? /* @__PURE__ */ jsx("mark", { ...localProps, children: text }, i) : /* @__PURE__ */ jsx(Fragment, { children: text }, i)
19
+ ) });
20
+ };
21
+
22
+ export { Highlight };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const highlight = require('./highlight.cjs');
6
+ const useHighlight = require('./use-highlight.cjs');
7
+
8
+
9
+
10
+ exports.Highlight = highlight.Highlight;
11
+ exports.useHighlight = useHighlight.useHighlight;
@@ -0,0 +1,2 @@
1
+ export { Highlight, type HighlightProps } from './highlight';
2
+ export { useHighlight, type UseHighlightProps, type HighlightChunk } from './use-highlight';
@@ -0,0 +1,2 @@
1
+ export { Highlight, type HighlightProps } from './highlight';
2
+ export { useHighlight, type UseHighlightProps, type HighlightChunk } from './use-highlight';
@@ -0,0 +1,2 @@
1
+ export { Highlight } from './highlight.js';
2
+ export { useHighlight } from './use-highlight.js';
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const react = require('react');
7
+
8
+ const escapeRegexp = (term) => term.replace(/[|\\{}()[\]^$+*?.-]/g, (char) => `\\${char}`);
9
+ const buildRegex = (queryProp, flags) => {
10
+ const query = queryProp.filter(Boolean).map((text) => escapeRegexp(text));
11
+ return new RegExp(`(${query.join("|")})`, flags);
12
+ };
13
+ const getRegexFlags = (ignoreCase = true, matchAll = true) => `${ignoreCase ? "i" : ""}${matchAll ? "g" : ""}`;
14
+ const normalizeSpan = (spans, len) => {
15
+ const result = [];
16
+ const append = (start, end, match) => {
17
+ if (end - start > 0) result.push({ start, end, match });
18
+ };
19
+ if (spans.length === 0) {
20
+ append(0, len, false);
21
+ } else {
22
+ let lastIndex = 0;
23
+ for (const chunk of spans) {
24
+ append(lastIndex, chunk.start, false);
25
+ append(chunk.start, chunk.end, true);
26
+ lastIndex = chunk.end;
27
+ }
28
+ append(lastIndex, len, false);
29
+ }
30
+ return result;
31
+ };
32
+ const highlightWords = (props) => {
33
+ const flags = getRegexFlags(props.ignoreCase, props.matchAll);
34
+ const regex = buildRegex(Array.isArray(props.query) ? props.query : [props.query], flags);
35
+ const spans = [...props.text.matchAll(regex)].map((match) => ({
36
+ start: match.index || 0,
37
+ end: (match.index || 0) + match[0].length
38
+ }));
39
+ return normalizeSpan(spans, props.text.length).map((chunk) => ({
40
+ text: props.text.slice(chunk.start, chunk.end),
41
+ match: !!chunk.match
42
+ }));
43
+ };
44
+ const useHighlight = (props) => {
45
+ const { text, query } = props;
46
+ return react.useMemo(() => highlightWords({ text, query }), [text, query]);
47
+ };
48
+
49
+ exports.useHighlight = useHighlight;
@@ -0,0 +1,30 @@
1
+ export interface RegexOptions {
2
+ /**
3
+ * Whether to ignore case while matching
4
+ */
5
+ ignoreCase?: boolean;
6
+ /**
7
+ * Whether to match multiple instances of the query
8
+ */
9
+ matchAll?: boolean;
10
+ }
11
+ export interface UseHighlightProps extends RegexOptions {
12
+ /**
13
+ * The text to highlight
14
+ */
15
+ text: string;
16
+ /**
17
+ * The query to highlight in the text
18
+ */
19
+ query: string | string[];
20
+ }
21
+ export interface HighlightChunk {
22
+ text: string;
23
+ match: boolean;
24
+ }
25
+ export interface HighlightSpan {
26
+ start: number;
27
+ end: number;
28
+ match?: boolean;
29
+ }
30
+ export declare const useHighlight: (props: UseHighlightProps) => HighlightChunk[];
@@ -0,0 +1,30 @@
1
+ export interface RegexOptions {
2
+ /**
3
+ * Whether to ignore case while matching
4
+ */
5
+ ignoreCase?: boolean;
6
+ /**
7
+ * Whether to match multiple instances of the query
8
+ */
9
+ matchAll?: boolean;
10
+ }
11
+ export interface UseHighlightProps extends RegexOptions {
12
+ /**
13
+ * The text to highlight
14
+ */
15
+ text: string;
16
+ /**
17
+ * The query to highlight in the text
18
+ */
19
+ query: string | string[];
20
+ }
21
+ export interface HighlightChunk {
22
+ text: string;
23
+ match: boolean;
24
+ }
25
+ export interface HighlightSpan {
26
+ start: number;
27
+ end: number;
28
+ match?: boolean;
29
+ }
30
+ export declare const useHighlight: (props: UseHighlightProps) => HighlightChunk[];
@@ -0,0 +1,45 @@
1
+ 'use client';
2
+ import { useMemo } from 'react';
3
+
4
+ const escapeRegexp = (term) => term.replace(/[|\\{}()[\]^$+*?.-]/g, (char) => `\\${char}`);
5
+ const buildRegex = (queryProp, flags) => {
6
+ const query = queryProp.filter(Boolean).map((text) => escapeRegexp(text));
7
+ return new RegExp(`(${query.join("|")})`, flags);
8
+ };
9
+ const getRegexFlags = (ignoreCase = true, matchAll = true) => `${ignoreCase ? "i" : ""}${matchAll ? "g" : ""}`;
10
+ const normalizeSpan = (spans, len) => {
11
+ const result = [];
12
+ const append = (start, end, match) => {
13
+ if (end - start > 0) result.push({ start, end, match });
14
+ };
15
+ if (spans.length === 0) {
16
+ append(0, len, false);
17
+ } else {
18
+ let lastIndex = 0;
19
+ for (const chunk of spans) {
20
+ append(lastIndex, chunk.start, false);
21
+ append(chunk.start, chunk.end, true);
22
+ lastIndex = chunk.end;
23
+ }
24
+ append(lastIndex, len, false);
25
+ }
26
+ return result;
27
+ };
28
+ const highlightWords = (props) => {
29
+ const flags = getRegexFlags(props.ignoreCase, props.matchAll);
30
+ const regex = buildRegex(Array.isArray(props.query) ? props.query : [props.query], flags);
31
+ const spans = [...props.text.matchAll(regex)].map((match) => ({
32
+ start: match.index || 0,
33
+ end: (match.index || 0) + match[0].length
34
+ }));
35
+ return normalizeSpan(spans, props.text.length).map((chunk) => ({
36
+ text: props.text.slice(chunk.start, chunk.end),
37
+ match: !!chunk.match
38
+ }));
39
+ };
40
+ const useHighlight = (props) => {
41
+ const { text, query } = props;
42
+ return useMemo(() => highlightWords({ text, query }), [text, query]);
43
+ };
44
+
45
+ export { useHighlight };
@@ -194,6 +194,15 @@ const fieldTextarea = require('./field/field-textarea.cjs');
194
194
  const useFieldContext = require('./field/use-field-context.cjs');
195
195
  const field_anatomy = require('./field/field.anatomy.cjs');
196
196
  const field = require('./field/field.cjs');
197
+ const fieldsetContext = require('./fieldset/fieldset-context.cjs');
198
+ const fieldsetErrorText = require('./fieldset/fieldset-error-text.cjs');
199
+ const fieldsetHelperText = require('./fieldset/fieldset-helper-text.cjs');
200
+ const fieldsetRoot = require('./fieldset/fieldset-root.cjs');
201
+ const fieldsetRootProvider = require('./fieldset/fieldset-root-provider.cjs');
202
+ const fieldsetLegend = require('./fieldset/fieldset-legend.cjs');
203
+ const fieldset_anatomy = require('./fieldset/fieldset.anatomy.cjs');
204
+ const useFieldsetContext = require('./fieldset/use-fieldset-context.cjs');
205
+ const fieldset = require('./fieldset/fieldset.cjs');
197
206
  const fileUploadContext = require('./file-upload/file-upload-context.cjs');
198
207
  const fileUploadDropzone = require('./file-upload/file-upload-dropzone.cjs');
199
208
  const fileUploadHiddenInput = require('./file-upload/file-upload-hidden-input.cjs');
@@ -214,6 +223,8 @@ const fileUpload$1 = require('./file-upload/file-upload.cjs');
214
223
  const formatByte = require('./format/format-byte.cjs');
215
224
  const formatNumber = require('./format/format-number.cjs');
216
225
  const format = require('./format/format.cjs');
226
+ const highlight = require('./highlight/highlight.cjs');
227
+ const useHighlight = require('./highlight/use-highlight.cjs');
217
228
  const hoverCardArrow = require('./hover-card/hover-card-arrow.cjs');
218
229
  const hoverCardArrowTip = require('./hover-card/hover-card-arrow-tip.cjs');
219
230
  const hoverCardContent = require('./hover-card/hover-card-content.cjs');
@@ -464,6 +475,22 @@ const useTagsInput = require('./tags-input/use-tags-input.cjs');
464
475
  const useTagsInputContext = require('./tags-input/use-tags-input-context.cjs');
465
476
  const useTagsInputItemContext = require('./tags-input/use-tags-input-item-context.cjs');
466
477
  const tagsInput$1 = require('./tags-input/tags-input.cjs');
478
+ const timePickerCell = require('./time-picker/time-picker-cell.cjs');
479
+ const timePickerClearTrigger = require('./time-picker/time-picker-clear-trigger.cjs');
480
+ const timePickerColumn = require('./time-picker/time-picker-column.cjs');
481
+ const timePickerContent = require('./time-picker/time-picker-content.cjs');
482
+ const timePickerContext = require('./time-picker/time-picker-context.cjs');
483
+ const timePickerControl = require('./time-picker/time-picker-control.cjs');
484
+ const timePickerInput = require('./time-picker/time-picker-input.cjs');
485
+ const timePickerLabel = require('./time-picker/time-picker-label.cjs');
486
+ const timePickerPositioner = require('./time-picker/time-picker-positioner.cjs');
487
+ const timePickerRoot = require('./time-picker/time-picker-root.cjs');
488
+ const timePickerRootProvider = require('./time-picker/time-picker-root-provider.cjs');
489
+ const timePickerSpacer = require('./time-picker/time-picker-spacer.cjs');
490
+ const timePickerTrigger = require('./time-picker/time-picker-trigger.cjs');
491
+ const useTimePicker = require('./time-picker/use-time-picker.cjs');
492
+ const useTimePickerContext = require('./time-picker/use-time-picker-context.cjs');
493
+ const timePicker = require('./time-picker/time-picker.cjs');
467
494
  const createToaster = require('./toast/create-toaster.cjs');
468
495
  const toastActionTrigger = require('./toast/toast-action-trigger.cjs');
469
496
  const toastCloseTrigger = require('./toast/toast-close-trigger.cjs');
@@ -736,6 +763,15 @@ exports.FieldTextarea = fieldTextarea.FieldTextarea;
736
763
  exports.useFieldContext = useFieldContext.useFieldContext;
737
764
  exports.fieldAnatomy = field_anatomy.fieldAnatomy;
738
765
  exports.Field = field;
766
+ exports.FieldsetContext = fieldsetContext.FieldsetContext;
767
+ exports.FieldsetErrorText = fieldsetErrorText.FieldsetErrorText;
768
+ exports.FieldsetHelperText = fieldsetHelperText.FieldsetHelperText;
769
+ exports.FieldsetRoot = fieldsetRoot.FieldsetRoot;
770
+ exports.FieldsetRootProvider = fieldsetRootProvider.FieldsetRootProvider;
771
+ exports.FieldsetLegend = fieldsetLegend.FieldsetLegend;
772
+ exports.fieldsetAnatomy = fieldset_anatomy.fieldsetAnatomy;
773
+ exports.useFieldsetContext = useFieldsetContext.useFieldsetContext;
774
+ exports.Fieldset = fieldset;
739
775
  exports.FileUploadContext = fileUploadContext.FileUploadContext;
740
776
  exports.FileUploadDropzone = fileUploadDropzone.FileUploadDropzone;
741
777
  exports.FileUploadHiddenInput = fileUploadHiddenInput.FileUploadHiddenInput;
@@ -756,6 +792,8 @@ exports.FileUpload = fileUpload$1;
756
792
  exports.FormatByte = formatByte.FormatByte;
757
793
  exports.FormatNumber = formatNumber.FormatNumber;
758
794
  exports.Format = format;
795
+ exports.Highlight = highlight.Highlight;
796
+ exports.useHighlight = useHighlight.useHighlight;
759
797
  exports.HoverCardArrow = hoverCardArrow.HoverCardArrow;
760
798
  exports.HoverCardArrowTip = hoverCardArrowTip.HoverCardArrowTip;
761
799
  exports.HoverCardContent = hoverCardContent.HoverCardContent;
@@ -1007,6 +1045,22 @@ exports.useTagsInput = useTagsInput.useTagsInput;
1007
1045
  exports.useTagsInputContext = useTagsInputContext.useTagsInputContext;
1008
1046
  exports.useTagsInputItemContext = useTagsInputItemContext.useTagsInputItemContext;
1009
1047
  exports.TagsInput = tagsInput$1;
1048
+ exports.TimePickerCell = timePickerCell.TimePickerCell;
1049
+ exports.TimePickerClearTrigger = timePickerClearTrigger.TimePickerClearTrigger;
1050
+ exports.TimePickerColumn = timePickerColumn.TimePickerColumn;
1051
+ exports.TimePickerContent = timePickerContent.TimePickerContent;
1052
+ exports.TimePickerContext = timePickerContext.TimePickerContext;
1053
+ exports.TimePickerControl = timePickerControl.TimePickerControl;
1054
+ exports.TimePickerInput = timePickerInput.TimePickerInput;
1055
+ exports.TimePickerLabel = timePickerLabel.TimePickerLabel;
1056
+ exports.TimePickerPositioner = timePickerPositioner.TimePickerPositioner;
1057
+ exports.TimePickerRoot = timePickerRoot.TimePickerRoot;
1058
+ exports.TimePickerRootProvider = timePickerRootProvider.TimePickerRootProvider;
1059
+ exports.TimePickerSpacer = timePickerSpacer.TimePickerSpacer;
1060
+ exports.TimePickerTrigger = timePickerTrigger.TimePickerTrigger;
1061
+ exports.useTimePicker = useTimePicker.useTimePicker;
1062
+ exports.useTimePickerContext = useTimePickerContext.useTimePickerContext;
1063
+ exports.TimePicker = timePicker;
1010
1064
  exports.createToaster = createToaster.createToaster;
1011
1065
  exports.ToastActionTrigger = toastActionTrigger.ToastActionTrigger;
1012
1066
  exports.ToastCloseTrigger = toastCloseTrigger.ToastCloseTrigger;
@@ -11,8 +11,10 @@ export * from './dialog';
11
11
  export * from './editable';
12
12
  export * from './factory';
13
13
  export * from './field';
14
+ export * from './fieldset';
14
15
  export * from './file-upload';
15
16
  export * from './format';
17
+ export * from './highlight';
16
18
  export * from './hover-card';
17
19
  export * from './menu';
18
20
  export * from './number-input';
@@ -33,6 +35,7 @@ export * from './splitter';
33
35
  export * from './switch';
34
36
  export * from './tabs';
35
37
  export * from './tags-input';
38
+ export * from './time-picker';
36
39
  export * from './toast';
37
40
  export * from './toggle-group';
38
41
  export * from './tooltip';
@@ -11,8 +11,10 @@ export * from './dialog';
11
11
  export * from './editable';
12
12
  export * from './factory';
13
13
  export * from './field';
14
+ export * from './fieldset';
14
15
  export * from './file-upload';
15
16
  export * from './format';
17
+ export * from './highlight';
16
18
  export * from './hover-card';
17
19
  export * from './menu';
18
20
  export * from './number-input';
@@ -33,6 +35,7 @@ export * from './splitter';
33
35
  export * from './switch';
34
36
  export * from './tabs';
35
37
  export * from './tags-input';
38
+ export * from './time-picker';
36
39
  export * from './toast';
37
40
  export * from './toggle-group';
38
41
  export * from './tooltip';
@@ -202,6 +202,16 @@ export { useFieldContext } from './field/use-field-context.js';
202
202
  export { fieldAnatomy } from './field/field.anatomy.js';
203
203
  import * as field from './field/field.js';
204
204
  export { field as Field };
205
+ export { FieldsetContext } from './fieldset/fieldset-context.js';
206
+ export { FieldsetErrorText } from './fieldset/fieldset-error-text.js';
207
+ export { FieldsetHelperText } from './fieldset/fieldset-helper-text.js';
208
+ export { FieldsetRoot } from './fieldset/fieldset-root.js';
209
+ export { FieldsetRootProvider } from './fieldset/fieldset-root-provider.js';
210
+ export { FieldsetLegend } from './fieldset/fieldset-legend.js';
211
+ export { fieldsetAnatomy } from './fieldset/fieldset.anatomy.js';
212
+ export { useFieldsetContext } from './fieldset/use-fieldset-context.js';
213
+ import * as fieldset from './fieldset/fieldset.js';
214
+ export { fieldset as Fieldset };
205
215
  export { FileUploadContext } from './file-upload/file-upload-context.js';
206
216
  export { FileUploadDropzone } from './file-upload/file-upload-dropzone.js';
207
217
  export { FileUploadHiddenInput } from './file-upload/file-upload-hidden-input.js';
@@ -224,6 +234,8 @@ export { FormatByte } from './format/format-byte.js';
224
234
  export { FormatNumber } from './format/format-number.js';
225
235
  import * as format from './format/format.js';
226
236
  export { format as Format };
237
+ export { Highlight } from './highlight/highlight.js';
238
+ export { useHighlight } from './highlight/use-highlight.js';
227
239
  export { HoverCardArrow } from './hover-card/hover-card-arrow.js';
228
240
  export { HoverCardArrowTip } from './hover-card/hover-card-arrow-tip.js';
229
241
  export { HoverCardContent } from './hover-card/hover-card-content.js';
@@ -492,6 +504,23 @@ export { useTagsInputContext } from './tags-input/use-tags-input-context.js';
492
504
  export { useTagsInputItemContext } from './tags-input/use-tags-input-item-context.js';
493
505
  import * as tagsInput from './tags-input/tags-input.js';
494
506
  export { tagsInput as TagsInput };
507
+ export { TimePickerCell } from './time-picker/time-picker-cell.js';
508
+ export { TimePickerClearTrigger } from './time-picker/time-picker-clear-trigger.js';
509
+ export { TimePickerColumn } from './time-picker/time-picker-column.js';
510
+ export { TimePickerContent } from './time-picker/time-picker-content.js';
511
+ export { TimePickerContext } from './time-picker/time-picker-context.js';
512
+ export { TimePickerControl } from './time-picker/time-picker-control.js';
513
+ export { TimePickerInput } from './time-picker/time-picker-input.js';
514
+ export { TimePickerLabel } from './time-picker/time-picker-label.js';
515
+ export { TimePickerPositioner } from './time-picker/time-picker-positioner.js';
516
+ export { TimePickerRoot } from './time-picker/time-picker-root.js';
517
+ export { TimePickerRootProvider } from './time-picker/time-picker-root-provider.js';
518
+ export { TimePickerSpacer } from './time-picker/time-picker-spacer.js';
519
+ export { TimePickerTrigger } from './time-picker/time-picker-trigger.js';
520
+ export { useTimePicker } from './time-picker/use-time-picker.js';
521
+ export { useTimePickerContext } from './time-picker/use-time-picker-context.js';
522
+ import * as timePicker from './time-picker/time-picker.js';
523
+ export { timePicker as TimePicker };
495
524
  export { createToaster } from './toast/create-toaster.js';
496
525
  export { ToastActionTrigger } from './toast/toast-action-trigger.js';
497
526
  export { ToastCloseTrigger } from './toast/toast-close-trigger.js';
@@ -18,7 +18,14 @@ const SelectHiddenSelect = react.forwardRef(
18
18
  const field = useFieldContext.useFieldContext();
19
19
  return /* @__PURE__ */ jsxRuntime.jsxs(factory.ark.select, { "aria-describedby": field?.ariaDescribedby, ...mergedProps, ref, children: [
20
20
  isValueEmpty && /* @__PURE__ */ jsxRuntime.jsx("option", { value: "" }),
21
- select.collection.items.map((option) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))
21
+ select.collection.items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
22
+ "option",
23
+ {
24
+ value: select.collection.getItemValue(item) ?? "",
25
+ disabled: select.collection.getItemDisabled(item)
26
+ },
27
+ index
28
+ ))
22
29
  ] });
23
30
  }
24
31
  );
@@ -14,7 +14,14 @@ const SelectHiddenSelect = forwardRef(
14
14
  const field = useFieldContext();
15
15
  return /* @__PURE__ */ jsxs(ark.select, { "aria-describedby": field?.ariaDescribedby, ...mergedProps, ref, children: [
16
16
  isValueEmpty && /* @__PURE__ */ jsx("option", { value: "" }),
17
- select.collection.items.map((option) => /* @__PURE__ */ jsx("option", { value: option.value, children: option.label }, option.value))
17
+ select.collection.items.map((item, index) => /* @__PURE__ */ jsx(
18
+ "option",
19
+ {
20
+ value: select.collection.getItemValue(item) ?? "",
21
+ disabled: select.collection.getItemDisabled(item)
22
+ },
23
+ index
24
+ ))
18
25
  ] });
19
26
  }
20
27
  );
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const timePickerCell = require('./time-picker-cell.cjs');
6
+ const timePickerClearTrigger = require('./time-picker-clear-trigger.cjs');
7
+ const timePickerColumn = require('./time-picker-column.cjs');
8
+ const timePickerContent = require('./time-picker-content.cjs');
9
+ const timePickerContext = require('./time-picker-context.cjs');
10
+ const timePickerControl = require('./time-picker-control.cjs');
11
+ const timePickerInput = require('./time-picker-input.cjs');
12
+ const timePickerLabel = require('./time-picker-label.cjs');
13
+ const timePickerPositioner = require('./time-picker-positioner.cjs');
14
+ const timePickerRoot = require('./time-picker-root.cjs');
15
+ const timePickerRootProvider = require('./time-picker-root-provider.cjs');
16
+ const timePickerSpacer = require('./time-picker-spacer.cjs');
17
+ const timePickerTrigger = require('./time-picker-trigger.cjs');
18
+ const useTimePicker = require('./use-time-picker.cjs');
19
+ const useTimePickerContext = require('./use-time-picker-context.cjs');
20
+ const timePicker = require('./time-picker.cjs');
21
+
22
+
23
+
24
+ exports.TimePickerCell = timePickerCell.TimePickerCell;
25
+ exports.TimePickerClearTrigger = timePickerClearTrigger.TimePickerClearTrigger;
26
+ exports.TimePickerColumn = timePickerColumn.TimePickerColumn;
27
+ exports.TimePickerContent = timePickerContent.TimePickerContent;
28
+ exports.TimePickerContext = timePickerContext.TimePickerContext;
29
+ exports.TimePickerControl = timePickerControl.TimePickerControl;
30
+ exports.TimePickerInput = timePickerInput.TimePickerInput;
31
+ exports.TimePickerLabel = timePickerLabel.TimePickerLabel;
32
+ exports.TimePickerPositioner = timePickerPositioner.TimePickerPositioner;
33
+ exports.TimePickerRoot = timePickerRoot.TimePickerRoot;
34
+ exports.TimePickerRootProvider = timePickerRootProvider.TimePickerRootProvider;
35
+ exports.TimePickerSpacer = timePickerSpacer.TimePickerSpacer;
36
+ exports.TimePickerTrigger = timePickerTrigger.TimePickerTrigger;
37
+ exports.useTimePicker = useTimePicker.useTimePicker;
38
+ exports.useTimePickerContext = useTimePickerContext.useTimePickerContext;
39
+ exports.TimePicker = timePicker;
@@ -0,0 +1,17 @@
1
+ export type { FocusChangeDetails as TimePickerFocusChangeDetails, OpenChangeDetails as TimePickerOpenChangeDetails, ValueChangeDetails as TimePickerValueChangeDetails, } from '@zag-js/time-picker';
2
+ export { TimePickerCell, type TimePickerCellBaseProps, type TimePickerCellProps, } from './time-picker-cell';
3
+ export { TimePickerClearTrigger, type TimePickerClearTriggerBaseProps, type TimePickerClearTriggerProps, } from './time-picker-clear-trigger';
4
+ export { TimePickerColumn, type TimePickerColumnBaseProps, type TimePickerColumnProps, } from './time-picker-column';
5
+ export { TimePickerContent, type TimePickerContentBaseProps, type TimePickerContentProps, } from './time-picker-content';
6
+ export { TimePickerContext, type TimePickerContextProps, } from './time-picker-context';
7
+ export { TimePickerControl, type TimePickerControlBaseProps, type TimePickerControlProps, } from './time-picker-control';
8
+ export { TimePickerInput, type TimePickerInputBaseProps, type TimePickerInputProps, } from './time-picker-input';
9
+ export { TimePickerLabel, type TimePickerLabelBaseProps, type TimePickerLabelProps, } from './time-picker-label';
10
+ export { TimePickerPositioner, type TimePickerPositionerBaseProps, type TimePickerPositionerProps, } from './time-picker-positioner';
11
+ export { TimePickerRoot, type TimePickerRootBaseProps, type TimePickerRootProps, } from './time-picker-root';
12
+ export { TimePickerRootProvider, type TimePickerRootProviderBaseProps, type TimePickerRootProviderProps, } from './time-picker-root-provider';
13
+ export { TimePickerSpacer, type TimePickerSpacerBaseProps, type TimePickerSpacerProps, } from './time-picker-spacer';
14
+ export { TimePickerTrigger, type TimePickerTriggerBaseProps, type TimePickerTriggerProps, } from './time-picker-trigger';
15
+ export { useTimePicker, type UseTimePickerProps, type UseTimePickerReturn } from './use-time-picker';
16
+ export { useTimePickerContext, type UseTimePickerContext } from './use-time-picker-context';
17
+ export * as TimePicker from './time-picker';
@@ -0,0 +1,17 @@
1
+ export type { FocusChangeDetails as TimePickerFocusChangeDetails, OpenChangeDetails as TimePickerOpenChangeDetails, ValueChangeDetails as TimePickerValueChangeDetails, } from '@zag-js/time-picker';
2
+ export { TimePickerCell, type TimePickerCellBaseProps, type TimePickerCellProps, } from './time-picker-cell';
3
+ export { TimePickerClearTrigger, type TimePickerClearTriggerBaseProps, type TimePickerClearTriggerProps, } from './time-picker-clear-trigger';
4
+ export { TimePickerColumn, type TimePickerColumnBaseProps, type TimePickerColumnProps, } from './time-picker-column';
5
+ export { TimePickerContent, type TimePickerContentBaseProps, type TimePickerContentProps, } from './time-picker-content';
6
+ export { TimePickerContext, type TimePickerContextProps, } from './time-picker-context';
7
+ export { TimePickerControl, type TimePickerControlBaseProps, type TimePickerControlProps, } from './time-picker-control';
8
+ export { TimePickerInput, type TimePickerInputBaseProps, type TimePickerInputProps, } from './time-picker-input';
9
+ export { TimePickerLabel, type TimePickerLabelBaseProps, type TimePickerLabelProps, } from './time-picker-label';
10
+ export { TimePickerPositioner, type TimePickerPositionerBaseProps, type TimePickerPositionerProps, } from './time-picker-positioner';
11
+ export { TimePickerRoot, type TimePickerRootBaseProps, type TimePickerRootProps, } from './time-picker-root';
12
+ export { TimePickerRootProvider, type TimePickerRootProviderBaseProps, type TimePickerRootProviderProps, } from './time-picker-root-provider';
13
+ export { TimePickerSpacer, type TimePickerSpacerBaseProps, type TimePickerSpacerProps, } from './time-picker-spacer';
14
+ export { TimePickerTrigger, type TimePickerTriggerBaseProps, type TimePickerTriggerProps, } from './time-picker-trigger';
15
+ export { useTimePicker, type UseTimePickerProps, type UseTimePickerReturn } from './use-time-picker';
16
+ export { useTimePickerContext, type UseTimePickerContext } from './use-time-picker-context';
17
+ export * as TimePicker from './time-picker';
@@ -0,0 +1,17 @@
1
+ export { TimePickerCell } from './time-picker-cell.js';
2
+ export { TimePickerClearTrigger } from './time-picker-clear-trigger.js';
3
+ export { TimePickerColumn } from './time-picker-column.js';
4
+ export { TimePickerContent } from './time-picker-content.js';
5
+ export { TimePickerContext } from './time-picker-context.js';
6
+ export { TimePickerControl } from './time-picker-control.js';
7
+ export { TimePickerInput } from './time-picker-input.js';
8
+ export { TimePickerLabel } from './time-picker-label.js';
9
+ export { TimePickerPositioner } from './time-picker-positioner.js';
10
+ export { TimePickerRoot } from './time-picker-root.js';
11
+ export { TimePickerRootProvider } from './time-picker-root-provider.js';
12
+ export { TimePickerSpacer } from './time-picker-spacer.js';
13
+ export { TimePickerTrigger } from './time-picker-trigger.js';
14
+ export { useTimePicker } from './use-time-picker.js';
15
+ export { useTimePickerContext } from './use-time-picker-context.js';
16
+ import * as timePicker from './time-picker.js';
17
+ export { timePicker as TimePicker };