@ark-ui/react 1.0.1 → 1.2.0

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 (183) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +67 -61
  3. package/accordion/accordion.stories.d.ts +0 -1
  4. package/color-picker/color-picker-format-select.cjs +21 -0
  5. package/color-picker/color-picker-format-select.d.ts +6 -0
  6. package/color-picker/color-picker-format-select.mjs +17 -0
  7. package/color-picker/color-picker-format-trigger.cjs +19 -0
  8. package/color-picker/color-picker-format-trigger.d.ts +6 -0
  9. package/color-picker/color-picker-format-trigger.mjs +15 -0
  10. package/color-picker/color-picker-swatch-context.cjs +15 -0
  11. package/color-picker/color-picker-swatch-context.d.ts +6 -0
  12. package/color-picker/color-picker-swatch-context.mjs +10 -0
  13. package/color-picker/color-picker-swatch-indicator.cjs +21 -0
  14. package/color-picker/color-picker-swatch-indicator.d.ts +6 -0
  15. package/color-picker/color-picker-swatch-indicator.mjs +17 -0
  16. package/color-picker/color-picker-swatch-trigger.cjs +4 -1
  17. package/color-picker/color-picker-swatch-trigger.d.ts +1 -5
  18. package/color-picker/color-picker-swatch-trigger.mjs +4 -1
  19. package/color-picker/color-picker-swatch.cjs +4 -3
  20. package/color-picker/color-picker-swatch.mjs +4 -3
  21. package/color-picker/color-picker-transparency-grid.d.ts +2 -5
  22. package/color-picker/color-picker.cjs +4 -2
  23. package/color-picker/color-picker.mjs +4 -2
  24. package/color-picker/index.cjs +10 -0
  25. package/color-picker/index.d.ts +10 -3
  26. package/color-picker/index.mjs +7 -1
  27. package/color-picker/use-color-picker.cjs +1 -1
  28. package/color-picker/use-color-picker.d.ts +4 -1
  29. package/color-picker/use-color-picker.mjs +1 -1
  30. package/combobox/combobox.cjs +1 -1
  31. package/combobox/combobox.d.ts +1 -1
  32. package/combobox/combobox.mjs +1 -1
  33. package/date-picker/date-picker.cjs +2 -2
  34. package/date-picker/date-picker.mjs +2 -2
  35. package/date-picker/date-picker.stories.d.ts +1 -0
  36. package/dialog/dialog-backdrop.cjs +1 -1
  37. package/dialog/dialog-backdrop.mjs +1 -1
  38. package/dialog/dialog.cjs +2 -1
  39. package/dialog/dialog.mjs +2 -1
  40. package/editable/editable.cjs +2 -2
  41. package/editable/editable.mjs +2 -2
  42. package/factory.cjs +1 -2
  43. package/factory.d.ts +1 -1
  44. package/factory.mjs +2 -3
  45. package/factory.test.d.ts +1 -0
  46. package/file-upload/file-upload-context.cjs +15 -0
  47. package/file-upload/file-upload-context.d.ts +6 -0
  48. package/file-upload/file-upload-context.mjs +10 -0
  49. package/file-upload/file-upload-dropzone.cjs +24 -0
  50. package/file-upload/file-upload-dropzone.d.ts +6 -0
  51. package/file-upload/file-upload-dropzone.mjs +20 -0
  52. package/file-upload/file-upload-item-context.cjs +15 -0
  53. package/file-upload/file-upload-item-context.d.ts +6 -0
  54. package/file-upload/file-upload-item-context.mjs +10 -0
  55. package/file-upload/file-upload-item-delete-trigger.cjs +21 -0
  56. package/file-upload/file-upload-item-delete-trigger.d.ts +6 -0
  57. package/file-upload/file-upload-item-delete-trigger.mjs +17 -0
  58. package/file-upload/file-upload-item-group.cjs +24 -0
  59. package/file-upload/file-upload-item-group.d.ts +8 -0
  60. package/file-upload/file-upload-item-group.mjs +20 -0
  61. package/file-upload/file-upload-item-name.cjs +24 -0
  62. package/file-upload/file-upload-item-name.d.ts +6 -0
  63. package/file-upload/file-upload-item-name.mjs +20 -0
  64. package/file-upload/file-upload-item-preview-image.cjs +25 -0
  65. package/file-upload/file-upload-item-preview-image.d.ts +6 -0
  66. package/file-upload/file-upload-item-preview-image.mjs +21 -0
  67. package/file-upload/file-upload-item-preview.cjs +25 -0
  68. package/file-upload/file-upload-item-preview.d.ts +11 -0
  69. package/file-upload/file-upload-item-preview.mjs +21 -0
  70. package/file-upload/file-upload-item-size-text.cjs +24 -0
  71. package/file-upload/file-upload-item-size-text.d.ts +6 -0
  72. package/file-upload/file-upload-item-size-text.mjs +20 -0
  73. package/file-upload/file-upload-item.cjs +24 -0
  74. package/file-upload/file-upload-item.d.ts +8 -0
  75. package/file-upload/file-upload-item.mjs +20 -0
  76. package/file-upload/file-upload-label.cjs +19 -0
  77. package/file-upload/file-upload-label.d.ts +6 -0
  78. package/file-upload/file-upload-label.mjs +15 -0
  79. package/file-upload/file-upload-trigger.cjs +21 -0
  80. package/file-upload/file-upload-trigger.d.ts +6 -0
  81. package/file-upload/file-upload-trigger.mjs +17 -0
  82. package/file-upload/file-upload.cjs +46 -0
  83. package/file-upload/file-upload.d.ts +9 -0
  84. package/file-upload/file-upload.mjs +42 -0
  85. package/file-upload/file-upload.stories.d.ts +7 -0
  86. package/file-upload/file-upload.test.d.ts +1 -0
  87. package/file-upload/index.cjs +43 -0
  88. package/file-upload/index.d.ts +29 -0
  89. package/file-upload/index.mjs +29 -0
  90. package/file-upload/use-file-upload.cjs +48 -0
  91. package/file-upload/use-file-upload.d.ts +8 -0
  92. package/file-upload/use-file-upload.mjs +25 -0
  93. package/hover-card/hover-card.cjs +2 -1
  94. package/hover-card/hover-card.mjs +2 -1
  95. package/index.cjs +74 -42
  96. package/index.d.ts +1 -0
  97. package/index.mjs +18 -2
  98. package/menu/menu.cjs +4 -3
  99. package/menu/menu.mjs +2 -1
  100. package/number-input/index.cjs +3 -3
  101. package/number-input/index.d.ts +1 -1
  102. package/number-input/index.mjs +1 -1
  103. package/number-input/number-input.cjs +5 -3
  104. package/number-input/number-input.d.ts +5 -4
  105. package/number-input/number-input.mjs +5 -3
  106. package/number-input/number-input.stories.d.ts +1 -0
  107. package/package.json +72 -57
  108. package/pagination/pagination-item.cjs +1 -1
  109. package/pagination/pagination-item.mjs +1 -1
  110. package/pagination/pagination.cjs +2 -2
  111. package/pagination/pagination.mjs +2 -2
  112. package/pin-input/index.cjs +3 -3
  113. package/pin-input/index.d.ts +1 -1
  114. package/pin-input/index.mjs +1 -1
  115. package/pin-input/pin-input.cjs +2 -2
  116. package/pin-input/pin-input.mjs +2 -2
  117. package/popover/popover.cjs +2 -1
  118. package/popover/popover.mjs +2 -1
  119. package/portal.cjs +2 -1
  120. package/portal.d.ts +2 -2
  121. package/portal.mjs +2 -1
  122. package/radio-group/radio-group-indicator.cjs +1 -2
  123. package/radio-group/radio-group-indicator.mjs +1 -2
  124. package/radio-group/radio-group-item.d.ts +1 -1
  125. package/radio-group/radio-group.cjs +2 -2
  126. package/radio-group/radio-group.mjs +2 -2
  127. package/radio-group/radio-group.stories.d.ts +1 -1
  128. package/rating-group/rating-group-control.cjs +2 -2
  129. package/rating-group/rating-group-control.mjs +2 -2
  130. package/rating-group/rating-group-item-context.d.ts +2 -2
  131. package/rating-group/rating-group-item.cjs +5 -4
  132. package/rating-group/rating-group-item.mjs +5 -4
  133. package/rating-group/rating-group.cjs +2 -2
  134. package/rating-group/rating-group.mjs +2 -2
  135. package/rating-group/use-rating-group.cjs +4 -4
  136. package/rating-group/use-rating-group.d.ts +4 -4
  137. package/rating-group/use-rating-group.mjs +3 -3
  138. package/segment-group/segment-group-indicator.cjs +2 -2
  139. package/segment-group/segment-group-indicator.mjs +2 -2
  140. package/segment-group/segment-group-item-context.d.ts +1 -13
  141. package/segment-group/segment-group-item-control.cjs +2 -2
  142. package/segment-group/segment-group-item-control.mjs +2 -2
  143. package/segment-group/segment-group-item-text.cjs +2 -2
  144. package/segment-group/segment-group-item-text.mjs +2 -2
  145. package/segment-group/segment-group-item.cjs +3 -3
  146. package/segment-group/segment-group-item.d.ts +3 -2
  147. package/segment-group/segment-group-item.mjs +3 -3
  148. package/segment-group/segment-group-label.cjs +2 -2
  149. package/segment-group/segment-group-label.mjs +2 -2
  150. package/segment-group/segment-group.cjs +4 -4
  151. package/segment-group/segment-group.mjs +4 -4
  152. package/select/select-item-group.cjs +2 -2
  153. package/select/select-item-group.mjs +2 -2
  154. package/select/select.cjs +1 -1
  155. package/select/select.d.ts +1 -1
  156. package/select/select.mjs +1 -1
  157. package/select/select.stories.d.ts +1 -0
  158. package/slider/slider.stories.d.ts +1 -1
  159. package/switch/switch.cjs +2 -2
  160. package/switch/switch.mjs +2 -2
  161. package/toast/create-toaster.cjs +2 -2
  162. package/toast/create-toaster.d.ts +1 -1
  163. package/toast/create-toaster.mjs +2 -2
  164. package/toast/index.cjs +5 -2
  165. package/toast/index.d.ts +6 -4
  166. package/toast/index.mjs +5 -3
  167. package/toast/toast-group.cjs +15 -0
  168. package/toast/toast-group.d.ts +6 -0
  169. package/toast/toast-group.mjs +11 -0
  170. package/tooltip/tooltip.cjs +2 -1
  171. package/tooltip/tooltip.mjs +2 -1
  172. package/use-is-server.cjs +16 -0
  173. package/use-is-server.d.ts +1 -0
  174. package/use-is-server.mjs +12 -0
  175. package/segment-group/segment-group.anatomy.cjs +0 -10
  176. package/segment-group/segment-group.anatomy.d.ts +0 -2
  177. package/segment-group/segment-group.anatomy.mjs +0 -6
  178. /package/number-input/{number-input-field.cjs → number-input-input.cjs} +0 -0
  179. /package/number-input/{number-input-field.d.ts → number-input-input.d.ts} +0 -0
  180. /package/number-input/{number-input-field.mjs → number-input-input.mjs} +0 -0
  181. /package/pin-input/{pin-input-field.cjs → pin-input-input.cjs} +0 -0
  182. /package/pin-input/{pin-input-field.d.ts → pin-input-input.d.ts} +0 -0
  183. /package/pin-input/{pin-input-field.mjs → pin-input-input.mjs} +0 -0
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const fileUploadContext = require('./file-upload-context.cjs');
11
+ const fileUploadItemContext = require('./file-upload-item-context.cjs');
12
+
13
+ const FileUploadItemPreviewImage = react.forwardRef((props, ref) => {
14
+ const [url, setUrl] = react.useState("");
15
+ const api = fileUploadContext.useFileUploadContext();
16
+ const item = fileUploadItemContext.useFileUploadItemContext();
17
+ const mergedProps = react$1.mergeProps(api.getItemPreviewImageProps({ ...item, url }), props);
18
+ react.useEffect(() => {
19
+ api.createFileUrl(item.file, (url2) => setUrl(url2));
20
+ }, [item, api]);
21
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.img, { ...mergedProps, ref });
22
+ });
23
+ FileUploadItemPreviewImage.displayName = "FileUploadItemPreviewImage";
24
+
25
+ exports.FileUploadItemPreviewImage = FileUploadItemPreviewImage;
@@ -0,0 +1,6 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface FileUploadItemPreviewImageProps extends HTMLArkProps<'img'> {
5
+ }
6
+ export declare const FileUploadItemPreviewImage: ForwardRefExoticComponent<FileUploadItemPreviewImageProps & RefAttributes<HTMLImageElement>>;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef, useState, useEffect } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useFileUploadContext } from './file-upload-context.mjs';
7
+ import { useFileUploadItemContext } from './file-upload-item-context.mjs';
8
+
9
+ const FileUploadItemPreviewImage = forwardRef((props, ref) => {
10
+ const [url, setUrl] = useState("");
11
+ const api = useFileUploadContext();
12
+ const item = useFileUploadItemContext();
13
+ const mergedProps = mergeProps(api.getItemPreviewImageProps({ ...item, url }), props);
14
+ useEffect(() => {
15
+ api.createFileUrl(item.file, (url2) => setUrl(url2));
16
+ }, [item, api]);
17
+ return /* @__PURE__ */ jsx(ark.img, { ...mergedProps, ref });
18
+ });
19
+ FileUploadItemPreviewImage.displayName = "FileUploadItemPreviewImage";
20
+
21
+ export { FileUploadItemPreviewImage };
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const fileUploadContext = require('./file-upload-context.cjs');
11
+ const fileUploadItemContext = require('./file-upload-item-context.cjs');
12
+
13
+ const FileUploadItemPreview = react.forwardRef(
14
+ (props, ref) => {
15
+ const api = fileUploadContext.useFileUploadContext();
16
+ const item = fileUploadItemContext.useFileUploadItemContext();
17
+ const mergedProps = react$1.mergeProps(api.getItemPreviewProps(item), props);
18
+ if (!item.file.type.match(props.type ?? ".*"))
19
+ return null;
20
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref });
21
+ }
22
+ );
23
+ FileUploadItemPreview.displayName = "FileUploadItemPreview";
24
+
25
+ exports.FileUploadItemPreview = FileUploadItemPreview;
@@ -0,0 +1,11 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface FileUploadItemPreviewProps extends HTMLArkProps<'div'> {
5
+ /**
6
+ * The file type to match against. Matches all file types by default.
7
+ * @default '.*'
8
+ */
9
+ type?: string;
10
+ }
11
+ export declare const FileUploadItemPreview: ForwardRefExoticComponent<FileUploadItemPreviewProps & RefAttributes<HTMLImageElement>>;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useFileUploadContext } from './file-upload-context.mjs';
7
+ import { useFileUploadItemContext } from './file-upload-item-context.mjs';
8
+
9
+ const FileUploadItemPreview = forwardRef(
10
+ (props, ref) => {
11
+ const api = useFileUploadContext();
12
+ const item = useFileUploadItemContext();
13
+ const mergedProps = mergeProps(api.getItemPreviewProps(item), props);
14
+ if (!item.file.type.match(props.type ?? ".*"))
15
+ return null;
16
+ return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });
17
+ }
18
+ );
19
+ FileUploadItemPreview.displayName = "FileUploadItemPreview";
20
+
21
+ export { FileUploadItemPreview };
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const fileUploadContext = require('./file-upload-context.cjs');
11
+ const fileUploadItemContext = require('./file-upload-item-context.cjs');
12
+
13
+ const FileUploadItemSizeText = react.forwardRef(
14
+ (props, ref) => {
15
+ const { children, ...rest } = props;
16
+ const api = fileUploadContext.useFileUploadContext();
17
+ const item = fileUploadItemContext.useFileUploadItemContext();
18
+ const mergedProps = react$1.mergeProps(api.getItemSizeTextProps(item), rest);
19
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: children || api.getFileSize(item.file) });
20
+ }
21
+ );
22
+ FileUploadItemSizeText.displayName = "FileUploadItemSizeText";
23
+
24
+ exports.FileUploadItemSizeText = FileUploadItemSizeText;
@@ -0,0 +1,6 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface FileUploadItemSizeTextProps extends HTMLArkProps<'div'> {
5
+ }
6
+ export declare const FileUploadItemSizeText: ForwardRefExoticComponent<FileUploadItemSizeTextProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useFileUploadContext } from './file-upload-context.mjs';
7
+ import { useFileUploadItemContext } from './file-upload-item-context.mjs';
8
+
9
+ const FileUploadItemSizeText = forwardRef(
10
+ (props, ref) => {
11
+ const { children, ...rest } = props;
12
+ const api = useFileUploadContext();
13
+ const item = useFileUploadItemContext();
14
+ const mergedProps = mergeProps(api.getItemSizeTextProps(item), rest);
15
+ return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: children || api.getFileSize(item.file) });
16
+ }
17
+ );
18
+ FileUploadItemSizeText.displayName = "FileUploadItemSizeText";
19
+
20
+ export { FileUploadItemSizeText };
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const createSplitProps = require('../create-split-props.cjs');
10
+ const factory = require('../factory.cjs');
11
+ const runIfFn = require('../run-if-fn.cjs');
12
+ const fileUploadContext = require('./file-upload-context.cjs');
13
+ const fileUploadItemContext = require('./file-upload-item-context.cjs');
14
+
15
+ const FileUploadItem = react.forwardRef((props, ref) => {
16
+ const [itemProps, { children, ...localProps }] = createSplitProps.createSplitProps()(props, ["file"]);
17
+ const api = fileUploadContext.useFileUploadContext();
18
+ const mergedProps = react$1.mergeProps(api.getItemProps(itemProps), localProps);
19
+ const view = runIfFn.runIfFn(children, api);
20
+ return /* @__PURE__ */ jsxRuntime.jsx(fileUploadItemContext.FileUploadItemProvider, { value: itemProps, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.li, { ...mergedProps, ref, children: view }) });
21
+ });
22
+ FileUploadItem.displayName = "FileUploadItem";
23
+
24
+ exports.FileUploadItem = FileUploadItem;
@@ -0,0 +1,8 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import type { ItemProps } from '@zag-js/file-upload';
4
+ import { type HTMLArkProps } from '../factory';
5
+ import type { Assign } from '../types';
6
+ export interface FileUploadItemProps extends Assign<HTMLArkProps<'ul'>, ItemProps> {
7
+ }
8
+ export declare const FileUploadItem: ForwardRefExoticComponent<FileUploadItemProps & RefAttributes<HTMLLIElement>>;
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { createSplitProps } from '../create-split-props.mjs';
6
+ import { ark } from '../factory.mjs';
7
+ import { runIfFn } from '../run-if-fn.mjs';
8
+ import { useFileUploadContext } from './file-upload-context.mjs';
9
+ import { FileUploadItemProvider } from './file-upload-item-context.mjs';
10
+
11
+ const FileUploadItem = forwardRef((props, ref) => {
12
+ const [itemProps, { children, ...localProps }] = createSplitProps()(props, ["file"]);
13
+ const api = useFileUploadContext();
14
+ const mergedProps = mergeProps(api.getItemProps(itemProps), localProps);
15
+ const view = runIfFn(children, api);
16
+ return /* @__PURE__ */ jsx(FileUploadItemProvider, { value: itemProps, children: /* @__PURE__ */ jsx(ark.li, { ...mergedProps, ref, children: view }) });
17
+ });
18
+ FileUploadItem.displayName = "FileUploadItem";
19
+
20
+ export { FileUploadItem };
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const fileUploadContext = require('./file-upload-context.cjs');
11
+
12
+ const FileUploadLabel = react.forwardRef((props, ref) => {
13
+ const api = fileUploadContext.useFileUploadContext();
14
+ const mergedProps = react$1.mergeProps(api.labelProps, props);
15
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.label, { ...mergedProps, ref });
16
+ });
17
+ FileUploadLabel.displayName = "FileUploadLabel";
18
+
19
+ exports.FileUploadLabel = FileUploadLabel;
@@ -0,0 +1,6 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface FileUploadLabelProps extends HTMLArkProps<'label'> {
5
+ }
6
+ export declare const FileUploadLabel: ForwardRefExoticComponent<FileUploadLabelProps & RefAttributes<HTMLLabelElement>>;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useFileUploadContext } from './file-upload-context.mjs';
7
+
8
+ const FileUploadLabel = forwardRef((props, ref) => {
9
+ const api = useFileUploadContext();
10
+ const mergedProps = mergeProps(api.labelProps, props);
11
+ return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });
12
+ });
13
+ FileUploadLabel.displayName = "FileUploadLabel";
14
+
15
+ export { FileUploadLabel };
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const factory = require('../factory.cjs');
10
+ const fileUploadContext = require('./file-upload-context.cjs');
11
+
12
+ const FileUploadTrigger = react.forwardRef(
13
+ (props, ref) => {
14
+ const api = fileUploadContext.useFileUploadContext();
15
+ const mergedProps = react$1.mergeProps(api.triggerProps, props);
16
+ return /* @__PURE__ */ jsxRuntime.jsx(factory.ark.button, { ...mergedProps, ref });
17
+ }
18
+ );
19
+ FileUploadTrigger.displayName = "FileUploadTrigger";
20
+
21
+ exports.FileUploadTrigger = FileUploadTrigger;
@@ -0,0 +1,6 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type HTMLArkProps } from '../factory';
4
+ export interface FileUploadTriggerProps extends HTMLArkProps<'button'> {
5
+ }
6
+ export declare const FileUploadTrigger: ForwardRefExoticComponent<FileUploadTriggerProps & RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { ark } from '../factory.mjs';
6
+ import { useFileUploadContext } from './file-upload-context.mjs';
7
+
8
+ const FileUploadTrigger = forwardRef(
9
+ (props, ref) => {
10
+ const api = useFileUploadContext();
11
+ const mergedProps = mergeProps(api.triggerProps, props);
12
+ return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });
13
+ }
14
+ );
15
+ FileUploadTrigger.displayName = "FileUploadTrigger";
16
+
17
+ export { FileUploadTrigger };
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ const createSplitProps = require('../create-split-props.cjs');
10
+ const factory = require('../factory.cjs');
11
+ const runIfFn = require('../run-if-fn.cjs');
12
+ const fileUploadContext = require('./file-upload-context.cjs');
13
+ const useFileUpload = require('./use-file-upload.cjs');
14
+
15
+ const FileUpload = react.forwardRef((props, ref) => {
16
+ const [useFileUploadProps, { children, ...divProps }] = createSplitProps.createSplitProps()(
17
+ props,
18
+ [
19
+ "accept",
20
+ "allowDrop",
21
+ "dir",
22
+ "disabled",
23
+ "files",
24
+ "getRootNode",
25
+ "id",
26
+ "ids",
27
+ "locale",
28
+ "maxFiles",
29
+ "maxFileSize",
30
+ "minFileSize",
31
+ "name",
32
+ "onFileAccept",
33
+ "onFileReject",
34
+ "onFilesChange",
35
+ "translations",
36
+ "validate"
37
+ ]
38
+ );
39
+ const api = useFileUpload.useFileUpload(useFileUploadProps);
40
+ const mergedProps = react$1.mergeProps(api.rootProps, divProps);
41
+ const view = runIfFn.runIfFn(children, api);
42
+ return /* @__PURE__ */ jsxRuntime.jsx(fileUploadContext.FileUploadProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(factory.ark.div, { ...mergedProps, ref, children: view }) });
43
+ });
44
+ FileUpload.displayName = "FileUpload";
45
+
46
+ exports.FileUpload = FileUpload;
@@ -0,0 +1,9 @@
1
+ import { ForwardRefExoticComponent, RefAttributes, type ReactNode } from 'react';
2
+ import { type HTMLArkProps } from '../factory';
3
+ import type { Assign } from '../types';
4
+ import { type UseFileUploadProps, type UseFileUploadReturn } from './use-file-upload';
5
+ export interface FileUploadProps extends Assign<HTMLArkProps<'div'>, UseFileUploadProps & {
6
+ children?: ((api: UseFileUploadReturn) => ReactNode) | ReactNode;
7
+ }> {
8
+ }
9
+ export declare const FileUpload: ForwardRefExoticComponent<FileUploadProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { mergeProps } from '@zag-js/react';
4
+ import { forwardRef } from 'react';
5
+ import { createSplitProps } from '../create-split-props.mjs';
6
+ import { ark } from '../factory.mjs';
7
+ import { runIfFn } from '../run-if-fn.mjs';
8
+ import { FileUploadProvider } from './file-upload-context.mjs';
9
+ import { useFileUpload } from './use-file-upload.mjs';
10
+
11
+ const FileUpload = forwardRef((props, ref) => {
12
+ const [useFileUploadProps, { children, ...divProps }] = createSplitProps()(
13
+ props,
14
+ [
15
+ "accept",
16
+ "allowDrop",
17
+ "dir",
18
+ "disabled",
19
+ "files",
20
+ "getRootNode",
21
+ "id",
22
+ "ids",
23
+ "locale",
24
+ "maxFiles",
25
+ "maxFileSize",
26
+ "minFileSize",
27
+ "name",
28
+ "onFileAccept",
29
+ "onFileReject",
30
+ "onFilesChange",
31
+ "translations",
32
+ "validate"
33
+ ]
34
+ );
35
+ const api = useFileUpload(useFileUploadProps);
36
+ const mergedProps = mergeProps(api.rootProps, divProps);
37
+ const view = runIfFn(children, api);
38
+ return /* @__PURE__ */ jsx(FileUploadProvider, { value: api, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: view }) });
39
+ });
40
+ FileUpload.displayName = "FileUpload";
41
+
42
+ export { FileUpload };
@@ -0,0 +1,7 @@
1
+ import { JSX } from 'react/jsx-runtime';
2
+ import type { Meta } from '@storybook/react';
3
+ import { FileUpload } from './';
4
+ type FileUploadType = typeof FileUpload;
5
+ declare const meta: Meta<FileUploadType>;
6
+ export default meta;
7
+ export declare const Basic: () => JSX.Element;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const fileUpload = require('./file-upload.cjs');
7
+ const fileUploadContext = require('./file-upload-context.cjs');
8
+ const fileUploadDropzone = require('./file-upload-dropzone.cjs');
9
+ const fileUploadItem = require('./file-upload-item.cjs');
10
+ const fileUploadItemDeleteTrigger = require('./file-upload-item-delete-trigger.cjs');
11
+ const fileUploadItemGroup = require('./file-upload-item-group.cjs');
12
+ const fileUploadItemName = require('./file-upload-item-name.cjs');
13
+ const fileUploadItemPreview = require('./file-upload-item-preview.cjs');
14
+ const fileUploadItemPreviewImage = require('./file-upload-item-preview-image.cjs');
15
+ const fileUploadItemSizeText = require('./file-upload-item-size-text.cjs');
16
+ const fileUploadLabel = require('./file-upload-label.cjs');
17
+ const fileUploadTrigger = require('./file-upload-trigger.cjs');
18
+
19
+ const FileUpload = Object.assign(fileUpload.FileUpload, {
20
+ Root: fileUpload.FileUpload,
21
+ Dropzone: fileUploadDropzone.FileUploadDropzone,
22
+ Item: fileUploadItem.FileUploadItem,
23
+ ItemDeleteTrigger: fileUploadItemDeleteTrigger.FileUploadItemDeleteTrigger,
24
+ ItemGroup: fileUploadItemGroup.FileUploadItemGroup,
25
+ ItemName: fileUploadItemName.FileUploadItemName,
26
+ ItemPreview: fileUploadItemPreview.FileUploadItemPreview,
27
+ ItemPreviewImage: fileUploadItemPreviewImage.FileUploadItemPreviewImage,
28
+ ItemSizeText: fileUploadItemSizeText.FileUploadItemSizeText,
29
+ Label: fileUploadLabel.FileUploadLabel,
30
+ Trigger: fileUploadTrigger.FileUploadTrigger
31
+ });
32
+
33
+ exports.useFileUploadContext = fileUploadContext.useFileUploadContext;
34
+ exports.FileUploadDropzone = fileUploadDropzone.FileUploadDropzone;
35
+ exports.FileUploadItem = fileUploadItem.FileUploadItem;
36
+ exports.FileUploadItemDeleteTrigger = fileUploadItemDeleteTrigger.FileUploadItemDeleteTrigger;
37
+ exports.FileUploadItemGroup = fileUploadItemGroup.FileUploadItemGroup;
38
+ exports.FileUploadItemName = fileUploadItemName.FileUploadItemName;
39
+ exports.FileUploadItemPreviewImage = fileUploadItemPreviewImage.FileUploadItemPreviewImage;
40
+ exports.FileUploadItemSizeText = fileUploadItemSizeText.FileUploadItemSizeText;
41
+ exports.FileUploadLabel = fileUploadLabel.FileUploadLabel;
42
+ exports.FileUploadTrigger = fileUploadTrigger.FileUploadTrigger;
43
+ exports.FileUpload = FileUpload;
@@ -0,0 +1,29 @@
1
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
2
+ /// <reference types="react" />
3
+ import { type FileUploadProps } from './file-upload';
4
+ import { useFileUploadContext, type FileUploadContext } from './file-upload-context';
5
+ import { FileUploadDropzone, type FileUploadDropzoneProps } from './file-upload-dropzone';
6
+ import { FileUploadItem, type FileUploadItemProps } from './file-upload-item';
7
+ import { FileUploadItemDeleteTrigger, type FileUploadItemDeleteTriggerProps } from './file-upload-item-delete-trigger';
8
+ import { FileUploadItemGroup, type FileUploadItemGroupProps } from './file-upload-item-group';
9
+ import { FileUploadItemName, type FileUploadItemNameProps } from './file-upload-item-name';
10
+ import { type FileUploadItemPreviewProps } from './file-upload-item-preview';
11
+ import { FileUploadItemPreviewImage, type FileUploadItemPreviewImageProps } from './file-upload-item-preview-image';
12
+ import { FileUploadItemSizeText, type FileUploadItemSizeTextProps } from './file-upload-item-size-text';
13
+ import { FileUploadLabel, type FileUploadLabelProps } from './file-upload-label';
14
+ import { FileUploadTrigger, type FileUploadTriggerProps } from './file-upload-trigger';
15
+ declare const FileUpload: ForwardRefExoticComponent<FileUploadProps & RefAttributes<HTMLDivElement>> & {
16
+ Root: ForwardRefExoticComponent<FileUploadProps & RefAttributes<HTMLDivElement>>;
17
+ Dropzone: ForwardRefExoticComponent<FileUploadDropzoneProps & RefAttributes<HTMLDivElement>>;
18
+ Item: ForwardRefExoticComponent<FileUploadItemProps & RefAttributes<HTMLLIElement>>;
19
+ ItemDeleteTrigger: ForwardRefExoticComponent<FileUploadItemDeleteTriggerProps & RefAttributes<HTMLButtonElement>>;
20
+ ItemGroup: ForwardRefExoticComponent<FileUploadItemGroupProps & RefAttributes<HTMLUListElement>>;
21
+ ItemName: ForwardRefExoticComponent<FileUploadItemNameProps & RefAttributes<HTMLDivElement>>;
22
+ ItemPreview: ForwardRefExoticComponent<FileUploadItemPreviewProps & RefAttributes<HTMLImageElement>>;
23
+ ItemPreviewImage: ForwardRefExoticComponent<FileUploadItemPreviewImageProps & RefAttributes<HTMLImageElement>>;
24
+ ItemSizeText: ForwardRefExoticComponent<FileUploadItemSizeTextProps & RefAttributes<HTMLDivElement>>;
25
+ Label: ForwardRefExoticComponent<FileUploadLabelProps & RefAttributes<HTMLLabelElement>>;
26
+ Trigger: ForwardRefExoticComponent<FileUploadTriggerProps & RefAttributes<HTMLButtonElement>>;
27
+ };
28
+ export { FileUpload, FileUploadDropzone, FileUploadItem, FileUploadItemDeleteTrigger, FileUploadItemGroup, FileUploadItemName, FileUploadItemPreviewImage, FileUploadItemSizeText, FileUploadLabel, FileUploadTrigger, useFileUploadContext, };
29
+ export type { FileUploadContext, FileUploadDropzoneProps, FileUploadItemDeleteTriggerProps, FileUploadItemGroupProps, FileUploadItemNameProps, FileUploadItemPreviewImageProps, FileUploadItemPreviewProps, FileUploadItemProps, FileUploadItemSizeTextProps, FileUploadLabelProps, FileUploadProps, FileUploadTriggerProps, };
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { FileUpload as FileUpload$1 } from './file-upload.mjs';
3
+ export { useFileUploadContext } from './file-upload-context.mjs';
4
+ import { FileUploadDropzone } from './file-upload-dropzone.mjs';
5
+ import { FileUploadItem } from './file-upload-item.mjs';
6
+ import { FileUploadItemDeleteTrigger } from './file-upload-item-delete-trigger.mjs';
7
+ import { FileUploadItemGroup } from './file-upload-item-group.mjs';
8
+ import { FileUploadItemName } from './file-upload-item-name.mjs';
9
+ import { FileUploadItemPreview } from './file-upload-item-preview.mjs';
10
+ import { FileUploadItemPreviewImage } from './file-upload-item-preview-image.mjs';
11
+ import { FileUploadItemSizeText } from './file-upload-item-size-text.mjs';
12
+ import { FileUploadLabel } from './file-upload-label.mjs';
13
+ import { FileUploadTrigger } from './file-upload-trigger.mjs';
14
+
15
+ const FileUpload = Object.assign(FileUpload$1, {
16
+ Root: FileUpload$1,
17
+ Dropzone: FileUploadDropzone,
18
+ Item: FileUploadItem,
19
+ ItemDeleteTrigger: FileUploadItemDeleteTrigger,
20
+ ItemGroup: FileUploadItemGroup,
21
+ ItemName: FileUploadItemName,
22
+ ItemPreview: FileUploadItemPreview,
23
+ ItemPreviewImage: FileUploadItemPreviewImage,
24
+ ItemSizeText: FileUploadItemSizeText,
25
+ Label: FileUploadLabel,
26
+ Trigger: FileUploadTrigger
27
+ });
28
+
29
+ export { FileUpload, FileUploadDropzone, FileUploadItem, FileUploadItemDeleteTrigger, FileUploadItemGroup, FileUploadItemName, FileUploadItemPreviewImage, FileUploadItemSizeText, FileUploadLabel, FileUploadTrigger };
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const fileUpload = require('@zag-js/file-upload');
7
+ const react$1 = require('@zag-js/react');
8
+ const react = require('react');
9
+ require('../environment/index.cjs');
10
+ const useEvent = require('../use-event.cjs');
11
+ const environmentContext = require('../environment/environment-context.cjs');
12
+
13
+ function _interopNamespaceDefault(e) {
14
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
15
+ if (e) {
16
+ for (const k in e) {
17
+ if (k !== 'default') {
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: () => e[k]
22
+ });
23
+ }
24
+ }
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ const fileUpload__namespace = /*#__PURE__*/_interopNamespaceDefault(fileUpload);
31
+
32
+ const useFileUpload = (props = {}) => {
33
+ const initialContext = {
34
+ id: react.useId(),
35
+ getRootNode: environmentContext.useEnvironmentContext(),
36
+ ...props
37
+ };
38
+ const context = {
39
+ ...initialContext,
40
+ onFileAccept: useEvent.useEvent(props.onFileAccept),
41
+ onFileReject: useEvent.useEvent(props.onFileReject),
42
+ onFilesChange: useEvent.useEvent(props.onFilesChange, { sync: true })
43
+ };
44
+ const [state, send] = react$1.useMachine(fileUpload__namespace.machine(initialContext), { context });
45
+ return fileUpload__namespace.connect(state, send, react$1.normalizeProps);
46
+ };
47
+
48
+ exports.useFileUpload = useFileUpload;
@@ -0,0 +1,8 @@
1
+ import * as fileUpload from '@zag-js/file-upload';
2
+ import { type PropTypes } from '@zag-js/react';
3
+ import { type Optional } from '../types';
4
+ export interface UseFileUploadProps extends Optional<fileUpload.Context, 'id'> {
5
+ }
6
+ export interface UseFileUploadReturn extends fileUpload.Api<PropTypes> {
7
+ }
8
+ export declare const useFileUpload: (props?: UseFileUploadProps) => UseFileUploadReturn;
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import * as fileUpload from '@zag-js/file-upload';
3
+ import { useMachine, normalizeProps } from '@zag-js/react';
4
+ import { useId } from 'react';
5
+ import '../environment/index.mjs';
6
+ import { useEvent } from '../use-event.mjs';
7
+ import { useEnvironmentContext } from '../environment/environment-context.mjs';
8
+
9
+ const useFileUpload = (props = {}) => {
10
+ const initialContext = {
11
+ id: useId(),
12
+ getRootNode: useEnvironmentContext(),
13
+ ...props
14
+ };
15
+ const context = {
16
+ ...initialContext,
17
+ onFileAccept: useEvent(props.onFileAccept),
18
+ onFileReject: useEvent(props.onFileReject),
19
+ onFilesChange: useEvent(props.onFilesChange, { sync: true })
20
+ };
21
+ const [state, send] = useMachine(fileUpload.machine(initialContext), { context });
22
+ return fileUpload.connect(state, send, normalizeProps);
23
+ };
24
+
25
+ export { useFileUpload };
@@ -4,6 +4,7 @@
4
4
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
 
6
6
  const jsxRuntime = require('react/jsx-runtime');
7
+ const react = require('@zag-js/react');
7
8
  require('react');
8
9
  require('../presence/index.cjs');
9
10
  const splitPresenceProps = require('../presence/split-presence-props.cjs');
@@ -16,7 +17,7 @@ const presenceContext = require('../presence/presence-context.cjs');
16
17
  const HoverCard = (props) => {
17
18
  const [presenceProps, { children, ...localProps }] = splitPresenceProps.splitPresenceProps(props);
18
19
  const api = useHoverCard.useHoverCard(localProps);
19
- const presenceApi = usePresence.usePresence({ ...presenceProps, present: api.isOpen });
20
+ const presenceApi = usePresence.usePresence(react.mergeProps({ present: api.isOpen }, presenceProps));
20
21
  const view = runIfFn.runIfFn(children, api);
21
22
  return /* @__PURE__ */ jsxRuntime.jsx(hoverCardContext.HoverCardProvider, { value: api, children: /* @__PURE__ */ jsxRuntime.jsx(presenceContext.PresenceProvider, { value: presenceApi, children: view }) });
22
23
  };