@cerberus-design/react 0.25.0-rc.7 → 0.25.1-rc.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 (165) hide show
  1. package/dist/components/combobox/combobox.cjs +1 -2
  2. package/dist/components/combobox/combobox.d.cts +1 -3
  3. package/dist/components/combobox/combobox.d.ts +1 -3
  4. package/dist/components/combobox/combobox.js +1 -2
  5. package/dist/components/cta-dialog/provider.cjs +3 -1
  6. package/dist/components/cta-dialog/provider.d.cts +2 -1
  7. package/dist/components/cta-dialog/provider.d.ts +2 -1
  8. package/dist/components/cta-dialog/provider.js +3 -1
  9. package/dist/components/date-picker/calendar.cjs +3 -1
  10. package/dist/components/date-picker/calendar.d.cts +4 -8
  11. package/dist/components/date-picker/calendar.d.ts +4 -8
  12. package/dist/components/date-picker/calendar.js +3 -1
  13. package/dist/components/date-picker/content.cjs +1 -3
  14. package/dist/components/date-picker/content.d.cts +1 -2
  15. package/dist/components/date-picker/content.d.ts +1 -2
  16. package/dist/components/date-picker/content.js +1 -3
  17. package/dist/components/date-picker/date-picker.cjs +47 -2
  18. package/dist/components/date-picker/date-picker.d.cts +1 -6
  19. package/dist/components/date-picker/date-picker.d.ts +1 -6
  20. package/dist/components/date-picker/date-picker.js +47 -2
  21. package/dist/components/date-picker/index.cjs +3 -3
  22. package/dist/components/date-picker/index.js +3 -3
  23. package/dist/components/date-picker/input.cjs +1 -1
  24. package/dist/components/date-picker/input.js +1 -1
  25. package/dist/components/date-picker/primitives.cjs +4 -1
  26. package/dist/components/date-picker/primitives.d.cts +1 -4
  27. package/dist/components/date-picker/primitives.d.ts +1 -4
  28. package/dist/components/date-picker/primitives.js +4 -1
  29. package/dist/components/date-picker/range-input.cjs +2 -2
  30. package/dist/components/date-picker/range-input.js +2 -2
  31. package/dist/components/field/status-indicator.cjs +1 -2
  32. package/dist/components/field/status-indicator.d.cts +1 -1
  33. package/dist/components/field/status-indicator.d.ts +1 -1
  34. package/dist/components/field/status-indicator.js +1 -2
  35. package/dist/components/file-upload/file-status.cjs +26 -43
  36. package/dist/components/file-upload/file-status.js +27 -44
  37. package/dist/components/file-upload/file-uploader.cjs +21 -47
  38. package/dist/components/file-upload/file-uploader.d.cts +7 -10
  39. package/dist/components/file-upload/file-uploader.d.ts +7 -10
  40. package/dist/components/file-upload/file-uploader.js +22 -48
  41. package/dist/components/file-upload/helpers.cjs +17 -0
  42. package/dist/components/file-upload/helpers.d.cts +16 -0
  43. package/dist/components/file-upload/helpers.d.ts +16 -0
  44. package/dist/components/file-upload/helpers.js +13 -0
  45. package/dist/components/file-upload/img-preview.cjs +30 -0
  46. package/dist/components/file-upload/img-preview.d.cts +2 -0
  47. package/dist/components/file-upload/img-preview.d.ts +2 -0
  48. package/dist/components/file-upload/img-preview.js +26 -0
  49. package/dist/components/file-upload/index.cjs +24 -0
  50. package/dist/components/file-upload/index.d.cts +4 -0
  51. package/dist/components/file-upload/index.d.ts +4 -0
  52. package/dist/components/file-upload/index.js +4 -0
  53. package/dist/components/file-upload/parts.cjs +28 -0
  54. package/dist/components/file-upload/parts.d.cts +86 -0
  55. package/dist/components/file-upload/parts.d.ts +86 -0
  56. package/dist/components/file-upload/parts.js +24 -0
  57. package/dist/components/file-upload/primitives.cjs +81 -0
  58. package/dist/components/file-upload/primitives.d.cts +45 -0
  59. package/dist/components/file-upload/primitives.d.ts +45 -0
  60. package/dist/components/file-upload/primitives.js +61 -0
  61. package/dist/components/file-upload/utils.cjs +18 -0
  62. package/dist/components/file-upload/utils.d.cts +7 -0
  63. package/dist/components/file-upload/utils.d.ts +7 -0
  64. package/dist/components/file-upload/utils.js +14 -0
  65. package/dist/components/select/select.cjs +6 -3
  66. package/dist/components/select/select.d.cts +1 -3
  67. package/dist/components/select/select.d.ts +1 -3
  68. package/dist/components/select/select.js +6 -3
  69. package/dist/context/confirm-modal.cjs +3 -1
  70. package/dist/context/confirm-modal.d.cts +2 -1
  71. package/dist/context/confirm-modal.d.ts +2 -1
  72. package/dist/context/confirm-modal.js +3 -1
  73. package/dist/context/prompt-modal.cjs +4 -2
  74. package/dist/context/prompt-modal.d.cts +2 -1
  75. package/dist/context/prompt-modal.d.ts +2 -1
  76. package/dist/context/prompt-modal.js +5 -3
  77. package/dist/index.cjs +163 -131
  78. package/dist/index.client.d.cts +1 -1
  79. package/dist/index.client.d.ts +1 -1
  80. package/dist/index.js +8 -4
  81. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-clear-trigger.cjs +19 -0
  82. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-clear-trigger.js +15 -0
  83. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-context.cjs +10 -0
  84. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-context.js +6 -0
  85. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-dropzone.cjs +22 -0
  86. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-dropzone.js +18 -0
  87. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-hidden-input.cjs +21 -0
  88. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-hidden-input.js +17 -0
  89. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-delete-trigger.cjs +23 -0
  90. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-delete-trigger.js +19 -0
  91. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-group.cjs +23 -0
  92. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-group.js +19 -0
  93. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-name.cjs +22 -0
  94. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-name.js +18 -0
  95. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-preview-image.cjs +28 -0
  96. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-preview-image.js +24 -0
  97. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-preview.cjs +22 -0
  98. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-preview.js +18 -0
  99. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-size-text.cjs +22 -0
  100. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item-size-text.js +18 -0
  101. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item.cjs +26 -0
  102. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-item.js +22 -0
  103. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-label.cjs +19 -0
  104. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-label.js +15 -0
  105. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-root.cjs +47 -0
  106. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-root.js +43 -0
  107. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-trigger.cjs +19 -0
  108. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/file-upload-trigger.js +15 -0
  109. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload-context.cjs +15 -0
  110. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload-context.js +10 -0
  111. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload-item-group-props-context.cjs +15 -0
  112. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload-item-group-props-context.js +10 -0
  113. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload-item-props-context.cjs +15 -0
  114. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload-item-props-context.js +10 -0
  115. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload.cjs +36 -0
  116. package/dist/node_modules/.pnpm/@ark-ui_react@5.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@ark-ui/react/dist/components/file-upload/use-file-upload.js +32 -0
  117. package/dist/node_modules/.pnpm/@internationalized_date@3.10.0/node_modules/@internationalized/date/src/CalendarDate.js +3 -3
  118. package/dist/node_modules/.pnpm/@internationalized_date@3.10.0/node_modules/@internationalized/date/src/conversion.js +1 -1
  119. package/dist/node_modules/.pnpm/@internationalized_date@3.10.0/node_modules/@internationalized/date/src/queries.js +1 -1
  120. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/CalendarDate.cjs +218 -0
  121. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/CalendarDate.js +212 -0
  122. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/DateFormatter.cjs +135 -0
  123. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/DateFormatter.js +131 -0
  124. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/calendars/GregorianCalendar.cjs +101 -0
  125. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/calendars/GregorianCalendar.js +93 -0
  126. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/conversion.cjs +200 -0
  127. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/conversion.js +186 -0
  128. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/manipulation.cjs +352 -0
  129. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/manipulation.js +336 -0
  130. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/queries.cjs +39 -0
  131. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/queries.js +30 -0
  132. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/string.cjs +44 -0
  133. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/string.js +37 -0
  134. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/utils.cjs +10 -0
  135. package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/src/utils.js +6 -0
  136. package/dist/node_modules/.pnpm/@zag-js_file-upload@1.31.1/node_modules/@zag-js/file-upload/dist/index.cjs +649 -0
  137. package/dist/node_modules/.pnpm/@zag-js_file-upload@1.31.1/node_modules/@zag-js/file-upload/dist/index.js +643 -0
  138. package/dist/node_modules/.pnpm/@zag-js_file-utils@1.31.1/node_modules/@zag-js/file-utils/dist/index.cjs +147 -0
  139. package/dist/node_modules/.pnpm/@zag-js_file-utils@1.31.1/node_modules/@zag-js/file-utils/dist/index.js +138 -0
  140. package/dist/node_modules/.pnpm/@zag-js_i18n-utils@1.31.1/node_modules/@zag-js/i18n-utils/dist/index.cjs +53 -0
  141. package/dist/node_modules/.pnpm/@zag-js_i18n-utils@1.31.1/node_modules/@zag-js/i18n-utils/dist/index.js +48 -0
  142. package/dist/node_modules/.pnpm/@zag-js_utils@1.31.1/node_modules/@zag-js/utils/dist/index.cjs +9 -0
  143. package/dist/node_modules/.pnpm/@zag-js_utils@1.31.1/node_modules/@zag-js/utils/dist/index.js +9 -1
  144. package/package.json +7 -7
  145. package/src/components/combobox/combobox.tsx +7 -13
  146. package/src/components/cta-dialog/provider.tsx +8 -3
  147. package/src/components/date-picker/calendar.tsx +10 -9
  148. package/src/components/date-picker/content.tsx +4 -11
  149. package/src/components/date-picker/date-picker.tsx +55 -18
  150. package/src/components/date-picker/input.tsx +1 -1
  151. package/src/components/date-picker/primitives.tsx +4 -1
  152. package/src/components/date-picker/range-input.tsx +2 -2
  153. package/src/components/field/status-indicator.tsx +2 -5
  154. package/src/components/file-upload/file-status.tsx +14 -21
  155. package/src/components/file-upload/file-uploader.tsx +37 -49
  156. package/src/components/file-upload/helpers.ts +28 -0
  157. package/src/components/file-upload/img-preview.tsx +41 -0
  158. package/src/components/file-upload/index.ts +4 -0
  159. package/src/components/file-upload/parts.tsx +126 -0
  160. package/src/components/file-upload/primitives.ts +156 -0
  161. package/src/components/file-upload/utils.ts +20 -0
  162. package/src/components/select/select.tsx +11 -12
  163. package/src/context/confirm-modal.tsx +7 -2
  164. package/src/context/prompt-modal.tsx +9 -4
  165. package/src/index.client.ts +2 -0
@@ -0,0 +1,156 @@
1
+ import {
2
+ FileUpload,
3
+ type FileUploadContextProps as ArkFileUploadContextProps,
4
+ type FileUploadRootProps as ArkFileUploadRootProps,
5
+ type FileUploadLabelProps as ArkFileUploadLabelProps,
6
+ type FileUploadDropzoneProps as ArkFileUploadDropzoneProps,
7
+ type FileUploadTriggerProps as ArkFileUploadTriggerProps,
8
+ type FileUploadClearTriggerProps as ArkFileUploadClearTriggerProps,
9
+ type FileUploadItemGroupProps as ArkFileUploadItemGroupProps,
10
+ type FileUploadItemProps as ArkFileUploadItemProps,
11
+ type FileUploadItemPreviewProps as ArkFileUploadItemPreviewProps,
12
+ type FileUploadItemPreviewImageProps as ArkFileUploadItemPreviewImageProps,
13
+ type FileUploadItemNameProps as ArkFileUploadItemNameProps,
14
+ type FileUploadItemSizeTextProps as ArkFileUploadItemSizeTextProps,
15
+ type FileUploadItemDeleteTriggerProps as ArkFileUploadItemDeleteTriggerProps,
16
+ type FileUploadHiddenInputProps as ArkFileUploadHiddenInputProps,
17
+ } from '@ark-ui/react/file-upload'
18
+ import {
19
+ fileUploader,
20
+ type FileUploaderVariantProps,
21
+ } from 'styled-system/recipes'
22
+ import {
23
+ createCerberusPrimitive,
24
+ type CerberusPrimitiveProps,
25
+ } from '../../system/index'
26
+
27
+ const { withSlotRecipe, withNoRecipe } = createCerberusPrimitive(fileUploader)
28
+
29
+ // Root
30
+
31
+ export type FileUploadRootProps = CerberusPrimitiveProps<
32
+ ArkFileUploadRootProps & FileUploaderVariantProps
33
+ >
34
+ export const FileUploadRoot = withSlotRecipe(FileUpload.Root, 'root')
35
+
36
+ // Dropzone
37
+
38
+ export type FileUploadDropzoneProps =
39
+ CerberusPrimitiveProps<ArkFileUploadDropzoneProps>
40
+ export const FileUploadDropzone = withSlotRecipe(
41
+ FileUpload.Dropzone,
42
+ 'dropzone',
43
+ )
44
+
45
+ // Label
46
+
47
+ export type FileUploadLabelProps =
48
+ CerberusPrimitiveProps<ArkFileUploadLabelProps>
49
+ export const FileUploadLabel = withSlotRecipe(FileUpload.Label, 'label')
50
+
51
+ // Trigger
52
+
53
+ export type FileUploadTriggerProps =
54
+ CerberusPrimitiveProps<ArkFileUploadTriggerProps>
55
+ export const FileUploadTrigger = withSlotRecipe(FileUpload.Trigger, 'trigger')
56
+
57
+ // ClearTrigger
58
+
59
+ export type FileUploadClearTriggerProps =
60
+ CerberusPrimitiveProps<ArkFileUploadClearTriggerProps>
61
+ export const FileUploadClearTrigger = withSlotRecipe(
62
+ FileUpload.ClearTrigger,
63
+ 'clearTrigger',
64
+ )
65
+
66
+ // ItemGroup
67
+
68
+ export type FileUploadItemGroupProps =
69
+ CerberusPrimitiveProps<ArkFileUploadItemGroupProps>
70
+ export const FileUploadItemGroup = withSlotRecipe(
71
+ FileUpload.ItemGroup,
72
+ 'itemGroup',
73
+ )
74
+
75
+ // Item
76
+
77
+ export type FileUploadItemProps = CerberusPrimitiveProps<ArkFileUploadItemProps>
78
+ export const FileUploadItem = withSlotRecipe(FileUpload.Item, 'item')
79
+
80
+ // ItemPreview
81
+
82
+ export type FileUploadItemPreviewProps =
83
+ CerberusPrimitiveProps<ArkFileUploadItemPreviewProps>
84
+ export const FileUploadItemPreview = withSlotRecipe(
85
+ FileUpload.ItemPreview,
86
+ 'itemPreview',
87
+ )
88
+
89
+ // ItemPreviewImage
90
+
91
+ export type FileUploadItemPreviewImageProps =
92
+ CerberusPrimitiveProps<ArkFileUploadItemPreviewImageProps>
93
+ export const FileUploadItemPreviewImage = withSlotRecipe(
94
+ FileUpload.ItemPreviewImage,
95
+ 'itemPreviewImage',
96
+ )
97
+
98
+ // ItemName
99
+
100
+ export type FileUploadItemNameProps =
101
+ CerberusPrimitiveProps<ArkFileUploadItemNameProps>
102
+ export const FileUploadItemName = withSlotRecipe(
103
+ FileUpload.ItemName,
104
+ 'itemName',
105
+ )
106
+
107
+ // ItemSizeText
108
+
109
+ export type FileUploadItemSizeTextProps =
110
+ CerberusPrimitiveProps<ArkFileUploadItemSizeTextProps>
111
+ export const FileUploadItemSizeText = withSlotRecipe(
112
+ FileUpload.ItemSizeText,
113
+ 'itemSizeText',
114
+ )
115
+
116
+ // ItemDeleteTrigger
117
+
118
+ export type FileUploadItemDeleteTriggerProps =
119
+ CerberusPrimitiveProps<ArkFileUploadItemDeleteTriggerProps>
120
+ export const FileUploadItemDeleteTrigger = withSlotRecipe(
121
+ FileUpload.ItemDeleteTrigger,
122
+ 'itemDeleteTrigger',
123
+ )
124
+
125
+ // HiddenInput
126
+
127
+ export type FileUploadHiddenInputProps =
128
+ CerberusPrimitiveProps<ArkFileUploadHiddenInputProps>
129
+ export const FileUploadHiddenInput = withNoRecipe(FileUpload.HiddenInput)
130
+
131
+ // Context
132
+
133
+ export type FileUploadContextProps =
134
+ CerberusPrimitiveProps<ArkFileUploadContextProps>
135
+ export const FileUploadContext = withNoRecipe(FileUpload.Context)
136
+
137
+ // Icon
138
+
139
+ export type FileUploadIconProps = CerberusPrimitiveProps<HTMLDivElement>
140
+ export const FileUploadIcon = withSlotRecipe('div', 'icon')
141
+
142
+ // Heading
143
+
144
+ export type FileUploadHeadingProps =
145
+ CerberusPrimitiveProps<HTMLParagraphElement>
146
+ export const FileUploadHeading = withSlotRecipe('p', 'heading')
147
+
148
+ // Description
149
+
150
+ export type FileUploadDescriptionProps =
151
+ CerberusPrimitiveProps<HTMLParagraphElement>
152
+ export const FileUploadDescription = withSlotRecipe('p', 'description')
153
+
154
+ // Types
155
+
156
+ export type { UseFileUploadContext } from '@ark-ui/react'
@@ -0,0 +1,20 @@
1
+ import { FileUploadRootProps } from '@ark-ui/react'
2
+
3
+ /**
4
+ * Format a given file type string into a human-readable format.
5
+ * @param accept FileUploadRootProps['accept']
6
+ * @returns string (e.g., ".png, .jpg, .svg")
7
+ */
8
+ export function formatFileTypes(accept: FileUploadRootProps['accept']): string {
9
+ if (Array.isArray(accept)) return accept.join(', ')
10
+ if (typeof accept === 'object') return Object.keys(accept).join(', ')
11
+
12
+ if (typeof accept === 'string') {
13
+ if (accept.includes('/*')) {
14
+ return `any ${accept.split('/')[0]}`
15
+ }
16
+ return accept.split(',').join(', ')
17
+ }
18
+
19
+ return 'any file'
20
+ }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { HStack } from 'styled-system/jsx'
4
4
  import { useCerberusContext } from '../../context/cerberus'
5
- import { Portal } from '../portal/index'
5
+ import { splitProps } from '../../utils/index'
6
6
  import { Show } from '../show/index'
7
7
  import { SelectParts } from './parts'
8
8
  import type { RefObject } from 'react'
@@ -41,9 +41,7 @@ export interface SelectProps extends Omit<SelectRootProps, 'container'> {
41
41
  */
42
42
  placeholder?: string
43
43
  /**
44
- * The container element to render the Select dropdown in. This is used
45
- * to render the Select dropdown in a specific context, such as a modal.
46
- * @default document.body
44
+ * @deprecated - this is no longer needed
47
45
  */
48
46
  container?: RefObject<HTMLElement | null>
49
47
  }
@@ -80,7 +78,10 @@ export interface SelectProps extends Omit<SelectRootProps, 'container'> {
80
78
  * }
81
79
  */
82
80
  export function Select(props: SelectProps) {
83
- const { collection, container, placeholder, ...rootProps } = props
81
+ const [{ collection, placeholder }, rootProps] = splitProps(props, [
82
+ 'collection',
83
+ 'placeholder',
84
+ ])
84
85
 
85
86
  const { icons } = useCerberusContext()
86
87
  const { selectArrow: SelectArrow, invalid: InvalidIcon } = icons
@@ -102,13 +103,11 @@ export function Select(props: SelectProps) {
102
103
  </SelectParts.Trigger>
103
104
  </SelectParts.Control>
104
105
 
105
- <Portal container={container}>
106
- <SelectParts.Positioner>
107
- <SelectParts.Content size={rootProps.size}>
108
- {props.children}
109
- </SelectParts.Content>
110
- </SelectParts.Positioner>
111
- </Portal>
106
+ <SelectParts.Positioner>
107
+ <SelectParts.Content size={rootProps.size}>
108
+ {props.children}
109
+ </SelectParts.Content>
110
+ </SelectParts.Positioner>
112
111
 
113
112
  <SelectParts.HiddenSelect />
114
113
  </SelectParts.Root>
@@ -23,6 +23,7 @@ import {
23
23
  DialogHeading,
24
24
  DialogProvider,
25
25
  type OpenChangeDetails,
26
+ type DialogRootProps,
26
27
  } from '../components/dialog'
27
28
  import { useCerberusContext } from './cerberus'
28
29
 
@@ -89,7 +90,7 @@ export interface ConfirmModalValue {
89
90
 
90
91
  const ConfirmModalContext = createContext<ConfirmModalValue | null>(null)
91
92
 
92
- export type ConfirmModalProviderProps = PropsWithChildren<unknown>
93
+ export type ConfirmModalProviderProps = PropsWithChildren<DialogRootProps>
93
94
 
94
95
  /**
95
96
  * Provides a confirm modal to the app.
@@ -119,9 +120,12 @@ export type ConfirmModalProviderProps = PropsWithChildren<unknown>
119
120
  export function ConfirmModal(
120
121
  props: PropsWithChildren<ConfirmModalProviderProps>,
121
122
  ) {
123
+ const { children, ...rootProps } = props
122
124
  const [open, setOpen] = useState<boolean>(false)
123
125
  const [content, setContent] = useState<ShowConfirmModalOptions | null>(null)
126
+
124
127
  const resolveRef = useRef<ShowResult>(null)
128
+
125
129
  const showAvatar = content?.showAvatar ?? true
126
130
  const kind = content?.kind ?? 'non-destructive'
127
131
 
@@ -176,13 +180,14 @@ export function ConfirmModal(
176
180
 
177
181
  return (
178
182
  <ConfirmModalContext.Provider value={value}>
179
- {props.children}
183
+ {children}
180
184
 
181
185
  <DialogProvider
182
186
  lazyMount
183
187
  open={open}
184
188
  onOpenChange={handleOpenChange}
185
189
  unmountOnExit
190
+ {...rootProps}
186
191
  >
187
192
  <Dialog
188
193
  size="sm"
@@ -27,7 +27,8 @@ import {
27
27
  DialogDescription,
28
28
  DialogHeading,
29
29
  DialogProvider,
30
- } from '../components/dialog'
30
+ DialogRootProps,
31
+ } from '../components/dialog/index'
31
32
  import { useCerberusContext } from './cerberus'
32
33
 
33
34
  /**
@@ -87,7 +88,7 @@ export interface PromptModalValue {
87
88
 
88
89
  const PromptModalContext = createContext<PromptModalValue | null>(null)
89
90
 
90
- export type PromptModalProviderProps = PropsWithChildren<unknown>
91
+ export type PromptModalProviderProps = PropsWithChildren<DialogRootProps>
91
92
 
92
93
  /**
93
94
  * Provides a prompt modal to the app.
@@ -119,11 +120,14 @@ export type PromptModalProviderProps = PropsWithChildren<unknown>
119
120
  export function PromptModal(
120
121
  props: PropsWithChildren<PromptModalProviderProps>,
121
122
  ) {
122
- const resolveRef = useRef<PromptShowResult>(null)
123
+ const { children, ...rootProps } = props
124
+
123
125
  const [open, setOpen] = useState<boolean>(false)
124
126
  const [content, setContent] = useState<ShowPromptModalOptions | null>(null)
125
127
  const [inputValue, setInputValue] = useState<string>('')
126
128
 
129
+ const resolveRef = useRef<PromptShowResult>(null)
130
+
127
131
  const { icons } = useCerberusContext()
128
132
  const { promptModal: PromptIcon } = icons
129
133
 
@@ -172,13 +176,14 @@ export function PromptModal(
172
176
 
173
177
  return (
174
178
  <PromptModalContext.Provider value={value}>
175
- {props.children}
179
+ {children}
176
180
 
177
181
  <DialogProvider
178
182
  lazyMount
179
183
  open={open}
180
184
  onOpenChange={(e) => setOpen(e.open)}
181
185
  unmountOnExit
186
+ {...rootProps}
182
187
  >
183
188
  <Dialog
184
189
  size="sm"
@@ -7,6 +7,8 @@ export {
7
7
  useAccordion,
8
8
  DialogRootProvider,
9
9
  useDialog,
10
+ FileUploadRootProvider,
11
+ useFileUpload,
10
12
  // utilities
11
13
  ClientOnly,
12
14
  DownloadTrigger,