@cdx-ui/primitives 0.0.1-beta.6 → 0.0.1-beta.61

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 (297) hide show
  1. package/README.md +51 -25
  2. package/lib/commonjs/CLAUDE.md +32 -0
  3. package/lib/commonjs/avatar/createAvatarText.js +9 -1
  4. package/lib/commonjs/avatar/createAvatarText.js.map +1 -1
  5. package/lib/commonjs/button/createButtonText.js +1 -0
  6. package/lib/commonjs/button/createButtonText.js.map +1 -1
  7. package/lib/commonjs/checkbox/createCheckboxRoot.web.js +8 -3
  8. package/lib/commonjs/checkbox/createCheckboxRoot.web.js.map +1 -1
  9. package/lib/commonjs/chip/createChipRoot.js +132 -0
  10. package/lib/commonjs/chip/createChipRoot.js.map +1 -0
  11. package/lib/commonjs/chip/index.js +16 -0
  12. package/lib/commonjs/chip/index.js.map +1 -0
  13. package/lib/commonjs/chip/types.js +6 -0
  14. package/lib/commonjs/chip/types.js.map +1 -0
  15. package/lib/commonjs/dialog/createDialogContent.js +7 -127
  16. package/lib/commonjs/dialog/createDialogContent.js.map +1 -1
  17. package/lib/commonjs/dialog/createDialogPopup.js +157 -0
  18. package/lib/commonjs/dialog/createDialogPopup.js.map +1 -0
  19. package/lib/commonjs/dialog/index.js +8 -8
  20. package/lib/commonjs/dialog/index.js.map +1 -1
  21. package/lib/commonjs/field/createFieldLabel.js.map +1 -1
  22. package/lib/commonjs/index.js +45 -1
  23. package/lib/commonjs/index.js.map +1 -1
  24. package/lib/commonjs/input/createInputField.js +5 -0
  25. package/lib/commonjs/input/createInputField.js.map +1 -1
  26. package/lib/commonjs/link/context.js +11 -0
  27. package/lib/commonjs/link/context.js.map +1 -0
  28. package/lib/commonjs/link/createLink.js +28 -14
  29. package/lib/commonjs/link/createLink.js.map +1 -1
  30. package/lib/commonjs/link/index.js +13 -0
  31. package/lib/commonjs/link/index.js.map +1 -1
  32. package/lib/commonjs/list-item/createListItemRoot.js +64 -37
  33. package/lib/commonjs/list-item/createListItemRoot.js.map +1 -1
  34. package/lib/commonjs/list-item/index.js.map +1 -1
  35. package/lib/commonjs/radio/context.js +14 -0
  36. package/lib/commonjs/radio/context.js.map +1 -0
  37. package/lib/commonjs/radio/createRadioGroup.js +66 -0
  38. package/lib/commonjs/radio/createRadioGroup.js.map +1 -0
  39. package/lib/commonjs/radio/createRadioIndicator.js +43 -0
  40. package/lib/commonjs/radio/createRadioIndicator.js.map +1 -0
  41. package/lib/commonjs/radio/createRadioLabel.js +38 -0
  42. package/lib/commonjs/radio/createRadioLabel.js.map +1 -0
  43. package/lib/commonjs/radio/createRadioRoot.js +95 -0
  44. package/lib/commonjs/radio/createRadioRoot.js.map +1 -0
  45. package/lib/commonjs/radio/createRadioRoot.web.js +87 -0
  46. package/lib/commonjs/radio/createRadioRoot.web.js.map +1 -0
  47. package/lib/commonjs/radio/index.js +26 -0
  48. package/lib/commonjs/radio/index.js.map +1 -0
  49. package/lib/commonjs/radio/types.js +6 -0
  50. package/lib/commonjs/radio/types.js.map +1 -0
  51. package/lib/commonjs/radio/useRadioRoot.js +64 -0
  52. package/lib/commonjs/radio/useRadioRoot.js.map +1 -0
  53. package/lib/commonjs/select/createSelectIcon.js +3 -1
  54. package/lib/commonjs/select/createSelectIcon.js.map +1 -1
  55. package/lib/commonjs/select/createSelectTrigger.js +17 -4
  56. package/lib/commonjs/select/createSelectTrigger.js.map +1 -1
  57. package/lib/commonjs/tile/context.js +30 -0
  58. package/lib/commonjs/tile/context.js.map +1 -0
  59. package/lib/commonjs/tile/createTileContent.js +30 -0
  60. package/lib/commonjs/tile/createTileContent.js.map +1 -0
  61. package/lib/commonjs/tile/createTileDescription.js +28 -0
  62. package/lib/commonjs/tile/createTileDescription.js.map +1 -0
  63. package/lib/commonjs/tile/createTileGroup.js +112 -0
  64. package/lib/commonjs/tile/createTileGroup.js.map +1 -0
  65. package/lib/commonjs/tile/createTileIndicator.js +46 -0
  66. package/lib/commonjs/tile/createTileIndicator.js.map +1 -0
  67. package/lib/commonjs/tile/createTileLeadingSlot.js +34 -0
  68. package/lib/commonjs/tile/createTileLeadingSlot.js.map +1 -0
  69. package/lib/commonjs/tile/createTileRoot.js +133 -0
  70. package/lib/commonjs/tile/createTileRoot.js.map +1 -0
  71. package/lib/commonjs/{dialog/createDialogBody.js → tile/createTileTitle.js} +18 -11
  72. package/lib/commonjs/tile/createTileTitle.js.map +1 -0
  73. package/lib/commonjs/tile/createTileTrailingSlot.js +35 -0
  74. package/lib/commonjs/tile/createTileTrailingSlot.js.map +1 -0
  75. package/lib/commonjs/tile/index.js +55 -0
  76. package/lib/commonjs/tile/index.js.map +1 -0
  77. package/lib/commonjs/tile/types.js +6 -0
  78. package/lib/commonjs/tile/types.js.map +1 -0
  79. package/lib/commonjs/utils/dataAttributes.js +6 -25
  80. package/lib/commonjs/utils/dataAttributes.js.map +1 -1
  81. package/lib/commonjs/utils/domDataAttributes.js +34 -0
  82. package/lib/commonjs/utils/domDataAttributes.js.map +1 -0
  83. package/lib/module/CLAUDE.md +32 -0
  84. package/lib/module/avatar/createAvatarText.js +9 -1
  85. package/lib/module/avatar/createAvatarText.js.map +1 -1
  86. package/lib/module/button/createButtonText.js +1 -0
  87. package/lib/module/button/createButtonText.js.map +1 -1
  88. package/lib/module/checkbox/createCheckboxRoot.web.js +8 -2
  89. package/lib/module/checkbox/createCheckboxRoot.web.js.map +1 -1
  90. package/lib/module/chip/createChipRoot.js +126 -0
  91. package/lib/module/chip/createChipRoot.js.map +1 -0
  92. package/lib/module/chip/index.js +12 -0
  93. package/lib/module/chip/index.js.map +1 -0
  94. package/lib/module/chip/types.js +4 -0
  95. package/lib/module/chip/types.js.map +1 -0
  96. package/lib/module/dialog/createDialogContent.js +7 -128
  97. package/lib/module/dialog/createDialogContent.js.map +1 -1
  98. package/lib/module/dialog/createDialogPopup.js +152 -0
  99. package/lib/module/dialog/createDialogPopup.js.map +1 -0
  100. package/lib/module/dialog/index.js +8 -8
  101. package/lib/module/dialog/index.js.map +1 -1
  102. package/lib/module/field/createFieldLabel.js.map +1 -1
  103. package/lib/module/index.js +4 -0
  104. package/lib/module/index.js.map +1 -1
  105. package/lib/module/input/createInputField.js +5 -0
  106. package/lib/module/input/createInputField.js.map +1 -1
  107. package/lib/module/link/context.js +5 -0
  108. package/lib/module/link/context.js.map +1 -0
  109. package/lib/module/link/createLink.js +29 -15
  110. package/lib/module/link/createLink.js.map +1 -1
  111. package/lib/module/link/index.js +1 -0
  112. package/lib/module/link/index.js.map +1 -1
  113. package/lib/module/list-item/createListItemRoot.js +64 -37
  114. package/lib/module/list-item/createListItemRoot.js.map +1 -1
  115. package/lib/module/list-item/index.js.map +1 -1
  116. package/lib/module/radio/context.js +7 -0
  117. package/lib/module/radio/context.js.map +1 -0
  118. package/lib/module/radio/createRadioGroup.js +61 -0
  119. package/lib/module/radio/createRadioGroup.js.map +1 -0
  120. package/lib/module/radio/createRadioIndicator.js +38 -0
  121. package/lib/module/radio/createRadioIndicator.js.map +1 -0
  122. package/lib/module/radio/createRadioLabel.js +33 -0
  123. package/lib/module/radio/createRadioLabel.js.map +1 -0
  124. package/lib/module/radio/createRadioRoot.js +90 -0
  125. package/lib/module/radio/createRadioRoot.js.map +1 -0
  126. package/lib/module/radio/createRadioRoot.web.js +82 -0
  127. package/lib/module/radio/createRadioRoot.web.js.map +1 -0
  128. package/lib/module/radio/index.js +22 -0
  129. package/lib/module/radio/index.js.map +1 -0
  130. package/lib/module/radio/types.js +4 -0
  131. package/lib/module/radio/types.js.map +1 -0
  132. package/lib/module/radio/useRadioRoot.js +60 -0
  133. package/lib/module/radio/useRadioRoot.js.map +1 -0
  134. package/lib/module/select/createSelectIcon.js +3 -1
  135. package/lib/module/select/createSelectIcon.js.map +1 -1
  136. package/lib/module/select/createSelectTrigger.js +19 -6
  137. package/lib/module/select/createSelectTrigger.js.map +1 -1
  138. package/lib/module/tile/context.js +21 -0
  139. package/lib/module/tile/context.js.map +1 -0
  140. package/lib/module/tile/createTileContent.js +24 -0
  141. package/lib/module/tile/createTileContent.js.map +1 -0
  142. package/lib/module/tile/createTileDescription.js +22 -0
  143. package/lib/module/tile/createTileDescription.js.map +1 -0
  144. package/lib/module/tile/createTileGroup.js +106 -0
  145. package/lib/module/tile/createTileGroup.js.map +1 -0
  146. package/lib/module/tile/createTileIndicator.js +40 -0
  147. package/lib/module/tile/createTileIndicator.js.map +1 -0
  148. package/lib/module/tile/createTileLeadingSlot.js +28 -0
  149. package/lib/module/tile/createTileLeadingSlot.js.map +1 -0
  150. package/lib/module/tile/createTileRoot.js +127 -0
  151. package/lib/module/tile/createTileRoot.js.map +1 -0
  152. package/lib/module/tile/createTileTitle.js +22 -0
  153. package/lib/module/tile/createTileTitle.js.map +1 -0
  154. package/lib/module/tile/createTileTrailingSlot.js +29 -0
  155. package/lib/module/tile/createTileTrailingSlot.js.map +1 -0
  156. package/lib/module/tile/index.js +39 -0
  157. package/lib/module/tile/index.js.map +1 -0
  158. package/lib/module/tile/types.js +4 -0
  159. package/lib/module/tile/types.js.map +1 -0
  160. package/lib/module/utils/dataAttributes.js +4 -22
  161. package/lib/module/utils/dataAttributes.js.map +1 -1
  162. package/lib/module/utils/domDataAttributes.js +30 -0
  163. package/lib/module/utils/domDataAttributes.js.map +1 -0
  164. package/lib/typescript/avatar/createAvatarText.d.ts.map +1 -1
  165. package/lib/typescript/button/createButtonText.d.ts.map +1 -1
  166. package/lib/typescript/checkbox/createCheckboxRoot.web.d.ts +4 -0
  167. package/lib/typescript/checkbox/createCheckboxRoot.web.d.ts.map +1 -1
  168. package/lib/typescript/checkbox/useCheckboxRoot.d.ts +2 -0
  169. package/lib/typescript/checkbox/useCheckboxRoot.d.ts.map +1 -1
  170. package/lib/typescript/chip/createChipRoot.d.ts +4 -0
  171. package/lib/typescript/chip/createChipRoot.d.ts.map +1 -0
  172. package/lib/typescript/chip/index.d.ts +9 -0
  173. package/lib/typescript/chip/index.d.ts.map +1 -0
  174. package/lib/typescript/chip/types.d.ts +17 -0
  175. package/lib/typescript/chip/types.d.ts.map +1 -0
  176. package/lib/typescript/dialog/createDialogContent.d.ts +2 -2
  177. package/lib/typescript/dialog/createDialogContent.d.ts.map +1 -1
  178. package/lib/typescript/dialog/createDialogPopup.d.ts +4 -0
  179. package/lib/typescript/dialog/createDialogPopup.d.ts.map +1 -0
  180. package/lib/typescript/dialog/index.d.ts +5 -5
  181. package/lib/typescript/dialog/index.d.ts.map +1 -1
  182. package/lib/typescript/dialog/types.d.ts +16 -5
  183. package/lib/typescript/dialog/types.d.ts.map +1 -1
  184. package/lib/typescript/field/createFieldLabel.d.ts.map +1 -1
  185. package/lib/typescript/index.d.ts +4 -0
  186. package/lib/typescript/index.d.ts.map +1 -1
  187. package/lib/typescript/input/createInputField.d.ts.map +1 -1
  188. package/lib/typescript/link/context.d.ts +10 -0
  189. package/lib/typescript/link/context.d.ts.map +1 -0
  190. package/lib/typescript/link/createLink.d.ts.map +1 -1
  191. package/lib/typescript/link/index.d.ts +2 -0
  192. package/lib/typescript/link/index.d.ts.map +1 -1
  193. package/lib/typescript/link/types.d.ts +1 -0
  194. package/lib/typescript/link/types.d.ts.map +1 -1
  195. package/lib/typescript/list-item/createListItemRoot.d.ts.map +1 -1
  196. package/lib/typescript/list-item/index.d.ts +1 -1
  197. package/lib/typescript/list-item/index.d.ts.map +1 -1
  198. package/lib/typescript/list-item/types.d.ts +1 -7
  199. package/lib/typescript/list-item/types.d.ts.map +1 -1
  200. package/lib/typescript/radio/context.d.ts +21 -0
  201. package/lib/typescript/radio/context.d.ts.map +1 -0
  202. package/lib/typescript/radio/createRadioGroup.d.ts +3 -0
  203. package/lib/typescript/radio/createRadioGroup.d.ts.map +1 -0
  204. package/lib/typescript/radio/createRadioIndicator.d.ts +5 -0
  205. package/lib/typescript/radio/createRadioIndicator.d.ts.map +1 -0
  206. package/lib/typescript/radio/createRadioLabel.d.ts +5 -0
  207. package/lib/typescript/radio/createRadioLabel.d.ts.map +1 -0
  208. package/lib/typescript/radio/createRadioRoot.d.ts +3 -0
  209. package/lib/typescript/radio/createRadioRoot.d.ts.map +1 -0
  210. package/lib/typescript/radio/createRadioRoot.web.d.ts +3 -0
  211. package/lib/typescript/radio/createRadioRoot.web.d.ts.map +1 -0
  212. package/lib/typescript/radio/index.d.ts +10 -0
  213. package/lib/typescript/radio/index.d.ts.map +1 -0
  214. package/lib/typescript/radio/types.d.ts +54 -0
  215. package/lib/typescript/radio/types.d.ts.map +1 -0
  216. package/lib/typescript/radio/useRadioRoot.d.ts +151 -0
  217. package/lib/typescript/radio/useRadioRoot.d.ts.map +1 -0
  218. package/lib/typescript/select/createSelectIcon.d.ts.map +1 -1
  219. package/lib/typescript/select/createSelectTrigger.d.ts.map +1 -1
  220. package/lib/typescript/tile/context.d.ts +9 -0
  221. package/lib/typescript/tile/context.d.ts.map +1 -0
  222. package/lib/typescript/tile/createTileContent.d.ts +3 -0
  223. package/lib/typescript/tile/createTileContent.d.ts.map +1 -0
  224. package/lib/typescript/tile/createTileDescription.d.ts +3 -0
  225. package/lib/typescript/tile/createTileDescription.d.ts.map +1 -0
  226. package/lib/typescript/tile/createTileGroup.d.ts +4 -0
  227. package/lib/typescript/tile/createTileGroup.d.ts.map +1 -0
  228. package/lib/typescript/tile/createTileIndicator.d.ts +4 -0
  229. package/lib/typescript/tile/createTileIndicator.d.ts.map +1 -0
  230. package/lib/typescript/tile/createTileLeadingSlot.d.ts +4 -0
  231. package/lib/typescript/tile/createTileLeadingSlot.d.ts.map +1 -0
  232. package/lib/typescript/tile/createTileRoot.d.ts +4 -0
  233. package/lib/typescript/tile/createTileRoot.d.ts.map +1 -0
  234. package/lib/typescript/tile/createTileTitle.d.ts +3 -0
  235. package/lib/typescript/tile/createTileTitle.d.ts.map +1 -0
  236. package/lib/typescript/tile/createTileTrailingSlot.d.ts +9 -0
  237. package/lib/typescript/tile/createTileTrailingSlot.d.ts.map +1 -0
  238. package/lib/typescript/tile/index.d.ts +15 -0
  239. package/lib/typescript/tile/index.d.ts.map +1 -0
  240. package/lib/typescript/tile/types.d.ts +119 -0
  241. package/lib/typescript/tile/types.d.ts.map +1 -0
  242. package/lib/typescript/utils/dataAttributes.d.ts +4 -10
  243. package/lib/typescript/utils/dataAttributes.d.ts.map +1 -1
  244. package/lib/typescript/utils/domDataAttributes.d.ts +15 -0
  245. package/lib/typescript/utils/domDataAttributes.d.ts.map +1 -0
  246. package/package.json +5 -2
  247. package/src/CLAUDE.md +32 -0
  248. package/src/avatar/createAvatarText.tsx +10 -1
  249. package/src/button/createButtonText.tsx +1 -0
  250. package/src/checkbox/createCheckboxRoot.web.tsx +6 -2
  251. package/src/chip/createChipRoot.tsx +144 -0
  252. package/src/chip/index.ts +18 -0
  253. package/src/chip/types.ts +23 -0
  254. package/src/dialog/createDialogContent.tsx +6 -117
  255. package/src/dialog/createDialogPopup.tsx +146 -0
  256. package/src/dialog/index.tsx +16 -16
  257. package/src/dialog/types.ts +20 -9
  258. package/src/field/createFieldLabel.tsx +4 -1
  259. package/src/index.ts +4 -0
  260. package/src/input/createInputField.tsx +6 -0
  261. package/src/link/context.tsx +10 -0
  262. package/src/link/createLink.tsx +41 -23
  263. package/src/link/index.tsx +2 -0
  264. package/src/link/types.ts +1 -0
  265. package/src/list-item/createListItemRoot.tsx +68 -36
  266. package/src/list-item/index.ts +0 -1
  267. package/src/list-item/types.ts +1 -8
  268. package/src/radio/context.tsx +21 -0
  269. package/src/radio/createRadioGroup.tsx +67 -0
  270. package/src/radio/createRadioIndicator.tsx +32 -0
  271. package/src/radio/createRadioLabel.tsx +28 -0
  272. package/src/radio/createRadioRoot.tsx +100 -0
  273. package/src/radio/createRadioRoot.web.tsx +81 -0
  274. package/src/radio/index.ts +37 -0
  275. package/src/radio/types.ts +67 -0
  276. package/src/radio/useRadioRoot.ts +69 -0
  277. package/src/select/createSelectIcon.tsx +2 -1
  278. package/src/select/createSelectTrigger.tsx +26 -3
  279. package/src/tile/context.tsx +23 -0
  280. package/src/tile/createTileContent.tsx +23 -0
  281. package/src/tile/createTileDescription.tsx +19 -0
  282. package/src/tile/createTileGroup.tsx +134 -0
  283. package/src/tile/createTileIndicator.tsx +38 -0
  284. package/src/tile/createTileLeadingSlot.tsx +30 -0
  285. package/src/tile/createTileRoot.tsx +124 -0
  286. package/src/tile/createTileTitle.tsx +19 -0
  287. package/src/tile/createTileTrailingSlot.tsx +25 -0
  288. package/src/tile/index.ts +88 -0
  289. package/src/tile/types.ts +153 -0
  290. package/src/utils/dataAttributes.ts +4 -25
  291. package/src/utils/domDataAttributes.ts +32 -0
  292. package/lib/commonjs/dialog/createDialogBody.js.map +0 -1
  293. package/lib/module/dialog/createDialogBody.js +0 -15
  294. package/lib/module/dialog/createDialogBody.js.map +0 -1
  295. package/lib/typescript/dialog/createDialogBody.d.ts +0 -4
  296. package/lib/typescript/dialog/createDialogBody.d.ts.map +0 -1
  297. package/src/dialog/createDialogBody.tsx +0 -11
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @cdx-ui/primitives
2
2
 
3
- Unstyled, accessible behavioral components (headless) for the Candescent Design System.
3
+ Unstyled, accessible behavioral components (headless) for the Forge Design System.
4
4
 
5
5
  Primitives provide interaction logic, focus management, and accessibility without imposing any visual styling. They serve as the foundation for [`@cdx-ui/components`](../components/).
6
6
 
@@ -12,42 +12,68 @@ pnpm add @cdx-ui/primitives
12
12
 
13
13
  ### Peer dependencies
14
14
 
15
- - `react` >= 18.0.0
16
- - `react-native` >= 0.74.0 _(optional)_
15
+ - `react` ^18.2.0 || ^19.0.0
16
+ - `react-native` >= 0.76.0 _(optional)_
17
+ - `react-native-reanimated` >= 3.0.0
17
18
  - `react-native-web` >= 0.19.0 _(optional)_
18
19
 
19
20
  ## Factory functions
20
21
 
21
22
  Each `create*` factory accepts a map of base React Native components and returns a compound component with built-in interaction state tracking, accessibility (roles, ARIA props, keyboard handling), and context propagation.
22
23
 
23
- | Factory | Returns |
24
- | --- | --- |
25
- | `createButton` | `Button` + `.Text` `.Group` `.Spinner` `.Icon` |
26
- | `createInput` | `Input` + `.Slot` `.Field` |
27
- | `createSelect` | `Select` + `.Trigger` `.Value` `.Icon` `.Content` `.Item` `.ItemLabel` |
28
- | `createCheckbox` | `Checkbox` + `.Indicator` `.Icon` `.Label` `.Group` |
29
- | `createSwitch` | `Switch` |
30
- | `createLink` | `Link` |
31
- | `createAvatar` | `Avatar` + `.Image` `.Text` `.Icon` `.Badge` |
32
- | `createDialog` | `Dialog` + `.Root` `.Trigger` `.Content` `.Header` `.Title` `.Description` `.Body` `.Footer` `.Close` |
33
- | `createField` | `Field` + `.Label` `.Helper` `.HelperText` `.Error` `.ErrorText` `.ErrorIcon` |
34
- | `createForm` | `Form` |
24
+ | Factory | Returns |
25
+ | ---------------- | ------------------------------------------------------------------------------------------------------- |
26
+ | `createButton` | `Button` + `.Text` `.Group` `.Spinner` `.Icon` |
27
+ | `createChip` | `Chip` (root only — pressable / `asChild` behavior; sub-components live in `@cdx-ui/components`) |
28
+ | `createInput` | `Input` + `.Slot` `.Field` |
29
+ | `createSelect` | `Select` + `.Trigger` `.Value` `.Icon` `.Content` `.Item` `.ItemLabel` |
30
+ | `createCheckbox` | `Checkbox` + `.Indicator` `.Icon` `.Label` `.Group` |
31
+ | `createRadio` | `Radio` + `.Indicator` `.Label` `.Group` |
32
+ | `createSwitch` | `Switch` |
33
+ | `createLink` | `Link` |
34
+ | `createAvatar` | `Avatar` + `.Image` `.Text` `.Icon` `.Badge` |
35
+ | `createDialog` | `Dialog` + `.Root` `.Trigger` `.Popup` `.Header` `.Title` `.Description` `.Content` `.Footer` `.Close` |
36
+ | `createField` | `Field` + `.Label` `.Helper` `.HelperText` `.Error` `.ErrorText` `.ErrorIcon` |
37
+ | `createForm` | `Form` |
35
38
  | `createListItem` | `ListItem` + `.LeadingSlot` `.Content` `.Title` `.Description` `.Meta` `.TrailingSlot` `.SectionHeader` |
36
- | `createOtpInput` | `OtpInput` + `.Cell` `.Field` |
37
- | `createProgress` | `Progress` + `.Indicator` |
39
+ | `createOtpInput` | `OtpInput` + `.Cell` `.Field` |
40
+ | `createProgress` | `Progress` + `.Indicator` |
41
+ | `createTile` | `Tile` + `.Group` `.LeadingSlot` `.Content` `.Title` `.Description` `.Indicator` `.TrailingSlot` |
38
42
 
39
43
  ### Utility exports
40
44
 
41
- | Export | Description |
42
- | --- | --- |
43
- | `dataAttributes` | Builds `data-hover`, `data-active`, `data-focus-visible`, etc. from an `InteractionState` object. |
44
- | `OverlayInsetsProvider` | Context provider for safe-area insets used by overlay/dialog positioning. |
45
- | `InteractionState` | Type: `{ hover, focus, active, disabled, focusVisible }`. |
46
- | `EdgeInsets` | Type: `{ top, right, bottom, left }`. |
45
+ | Export | Description |
46
+ | ----------------------- | ------------------------------------------------------------------------------------------------- |
47
+ | `dataAttributes` | Builds `data-hover`, `data-active`, `data-focus-visible`, etc. from an `InteractionState` object. |
48
+ | `domDataAttributes` | Web-specific variant that converts data attributes to DOM-compatible format. |
49
+ | `OverlayInsetsProvider` | Context provider for safe-area insets used by overlay/dialog positioning. |
50
+ | `InteractionState` | Type: `{ hover, focus, active, disabled, focusVisible }`. |
51
+ | `EdgeInsets` | Type: `{ top, right, bottom, left }`. |
47
52
 
48
- The dialog module also exports `DialogProvider` and `useDialog()` for imperative control, and the link module exports `LinkProvider` for router integration.
53
+ ### OTP input utilities
54
+
55
+ Standalone helper functions re-exported from the `createOtpInput` module for custom OTP input implementations:
56
+
57
+ | Export | Description |
58
+ | ---------------------------------------------- | ---------------------------------------------------------------------------- |
59
+ | `applyOtpInputChange(value, change, position)` | Applies a character change (insert, delete, replace) to an OTP value string. |
60
+ | `filterDigits(text)` | Filters a string to digits only (0–9). |
61
+ | `filterAllowedCharacters(text, allowed)` | Filters a string to characters matching a provided set. |
62
+ | `filterByRegExp(text, pattern)` | Filters a string to characters matching a regular expression. |
63
+
64
+ ### Context hooks and providers
65
+
66
+ Several modules export context providers and hooks for reading component state from descendant sub-components or for integrating with external systems (e.g., routing).
67
+
68
+ | Module | Provider(s) | Hook(s) | Context value type(s) |
69
+ | --------- | ----------------------------------------- | -------------------------------------- | --------------------------------------------- |
70
+ | dialog | `DialogProvider` | `useDialog` | `IDialogContextType` |
71
+ | link | `LinkProvider`, `LinkInteractionProvider` | `useLink`, `useLinkInteractionContext` | `LinkConfig`, `LinkInteractionState` |
72
+ | tile | `TileProvider` | `useTileContext` | `ITileContextValue`, `ITileGroupContextValue` |
73
+ | list-item | `ListItemProvider` | `useListItemContext` | `IListItemContextValue` |
74
+ | button | — | `useButtonContext` | — |
75
+ | progress | — | `useProgressContext` | `ProgressContextValue` |
49
76
 
50
77
  ## Further reading
51
78
 
52
- - [Advanced Usage — Primitives](../../docs/advanced-usage.md) — full examples for every factory, Uniwind integration, type reference
53
79
  - [Definitions](../../docs/internal/practices/definitions.md) — artifact taxonomy (primitive vs component vs utility)
@@ -0,0 +1,32 @@
1
+ # Primitive Authoring
2
+
3
+ Auto-loaded when working in `packages/primitives/src/**`.
4
+
5
+ Primitives in `@cdx-ui/primitives` are unstyled behavioral components that handle accessibility and interactions. Read the full guides before making changes:
6
+
7
+ - `docs/internal/practices/composition.md` — compound component structure
8
+ - `docs/internal/practices/types.md` — `I*Props` convention, extending RN base types
9
+ - `docs/internal/practices/accessibility.md` — ARIA roles, keyboard nav, screen reader support
10
+ - `docs/internal/practices/as-child.md` — `asChild` prop pattern
11
+
12
+ ## Pattern summary
13
+
14
+ Each primitive follows the factory function pattern (see `createButtonRoot.tsx` as the canonical example):
15
+
16
+ 1. **Factory function** — `export const createComponentPart = <T,>(BaseComponent: ComponentType<T>) => forwardRef(...)` — accepts a host element type, returns a wrapped component with behavior
17
+ 2. **Interaction hooks** — `useFocus`, `useFocusRing`, `useHover`, `usePress` from `@react-native-aria/*`
18
+ 3. **Data attributes** — `dataAttributes({ hover, focus, active, disabled, focusVisible })` emitted on the rendered element for Uniwind `data-[state]` selectors
19
+ 4. **Context provider** — interaction state exposed via context so child primitives can react to parent state
20
+ 5. **Barrel export** — `index.tsx` re-exports the factory, context, and types
21
+
22
+ ## Key rules
23
+
24
+ - **Unstyled** — no visual styling (no `className`, no color/spacing classes). Only behavioral and a11y concerns.
25
+ - **`I*Props` convention** — public prop types are aliased with `I` prefix (e.g., `IButtonProps`, `ICheckboxProps`), exported from `types.ts`
26
+ - **`Interface*Props` pattern** — the full interface (e.g., `InterfaceButtonProps`, `InterfaceCheckbox`) extends the appropriate RN base type (`PressableProps`, `ViewProps`, etc.) with interaction state booleans (`isHovered`, `isActive`, `isFocused`, `isFocusVisible`, `isDisabled`); re-exported as `I*Props` (e.g., `export type IButtonProps = InterfaceButtonProps`)
27
+ - **`dataAttributes()` helper** — always use the helper from `../utils/dataAttributes` to emit `data-*` props; it handles platform differences (native vs web)
28
+ - **`composeEventHandlers`** from `@cdx-ui/utils` — merge consumer handlers with internal handlers; never silently override
29
+ - **`forwardRef`** on every component — refs forwarded to the underlying host element
30
+ - **ARIA roles** — set `role` with a sensible default (e.g., `role={props?.role || 'button'}`)
31
+ - **Render children as function** — support `children` as `(state: InteractionState) => ReactNode` for state-driven rendering
32
+ - **Consumable independently** of `@cdx-ui/components` — no imports from the styled layer
@@ -8,7 +8,15 @@ var _react = require("react");
8
8
  var _context = require("./context");
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
10
  function getInitials(name) {
11
- const words = name.trim().split(/\s+/);
11
+ const trimmed = name.trim();
12
+ const words = trimmed.split(/\s+/);
13
+
14
+ // Pre-composed initials (e.g. "JD", "AB") — single token, at most 2 chars.
15
+ // Figma Code Connect surfaces the raw text property which is already initials;
16
+ // passing them through a derivation step would truncate to the first letter.
17
+ if (words.length === 1 && trimmed.length <= 2) {
18
+ return trimmed.toUpperCase();
19
+ }
12
20
  let result = '';
13
21
  for (const word of words) {
14
22
  if (word.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_context","_jsxRuntime","getInitials","name","words","trim","split","result","word","length","charAt","toUpperCase","createAvatarText","BaseText","forwardRef","children","style","props","ref","imageLoaded","imageError","useAvatarContext","visible","text","jsx","opacity","exports"],"sourceRoot":"../../../src","sources":["avatar/createAvatarText.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAA6C,IAAAE,WAAA,GAAAF,OAAA;AAG7C,SAASG,WAAWA,CAACC,IAAY,EAAU;EACzC,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK,CAAC;EACtC,IAAIC,MAAM,GAAG,EAAE;EACf,KAAK,MAAMC,IAAI,IAAIJ,KAAK,EAAE;IACxB,IAAII,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;MACnBF,MAAM,IAAIC,IAAI,CAACE,MAAM,CAAC,CAAC,CAAC;IAC1B;IACA,IAAIH,MAAM,CAACE,MAAM,IAAI,CAAC,EAAE;EAC1B;EACA,OAAOF,MAAM,CAACI,WAAW,CAAC,CAAC;AAC7B;AAEO,MAAMC,gBAAgB,GAAQC,QAAgC,iBACnE,IAAAC,iBAAU,EAA4B,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC5E,MAAM;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EACtD,MAAMC,OAAO,GAAG,CAACH,WAAW,IAAIC,UAAU;EAE1C,MAAMG,IAAI,GAAG,OAAOR,QAAQ,KAAK,QAAQ,GAAGb,WAAW,CAACa,QAAQ,CAAC,GAAGA,QAAQ;EAE5E,oBACE,IAAAd,WAAA,CAAAuB,GAAA,EAACX,QAAQ;IAACK,GAAG,EAAEA,GAAI;IAACF,KAAK,EAAE,CAACA,KAAK,EAAE,CAACM,OAAO,IAAI;MAAEG,OAAO,EAAE;IAAE,CAAC,CAAE;IAAA,GAAMR,KAAK;IAAAF,QAAA,EACvEQ;EAAI,CACG,CAAC;AAEf,CAAC,CAAC;AAACG,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_context","_jsxRuntime","getInitials","name","trimmed","trim","words","split","length","toUpperCase","result","word","charAt","createAvatarText","BaseText","forwardRef","children","style","props","ref","imageLoaded","imageError","useAvatarContext","visible","text","jsx","opacity","exports"],"sourceRoot":"../../../src","sources":["avatar/createAvatarText.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAA6C,IAAAE,WAAA,GAAAF,OAAA;AAG7C,SAASG,WAAWA,CAACC,IAAY,EAAU;EACzC,MAAMC,OAAO,GAAGD,IAAI,CAACE,IAAI,CAAC,CAAC;EAC3B,MAAMC,KAAK,GAAGF,OAAO,CAACG,KAAK,CAAC,KAAK,CAAC;;EAElC;EACA;EACA;EACA,IAAID,KAAK,CAACE,MAAM,KAAK,CAAC,IAAIJ,OAAO,CAACI,MAAM,IAAI,CAAC,EAAE;IAC7C,OAAOJ,OAAO,CAACK,WAAW,CAAC,CAAC;EAC9B;EAEA,IAAIC,MAAM,GAAG,EAAE;EACf,KAAK,MAAMC,IAAI,IAAIL,KAAK,EAAE;IACxB,IAAIK,IAAI,CAACH,MAAM,GAAG,CAAC,EAAE;MACnBE,MAAM,IAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC;IAC1B;IACA,IAAIF,MAAM,CAACF,MAAM,IAAI,CAAC,EAAE;EAC1B;EACA,OAAOE,MAAM,CAACD,WAAW,CAAC,CAAC;AAC7B;AAEO,MAAMI,gBAAgB,GAAQC,QAAgC,iBACnE,IAAAC,iBAAU,EAA4B,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC5E,MAAM;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EACtD,MAAMC,OAAO,GAAG,CAACH,WAAW,IAAIC,UAAU;EAE1C,MAAMG,IAAI,GAAG,OAAOR,QAAQ,KAAK,QAAQ,GAAGd,WAAW,CAACc,QAAQ,CAAC,GAAGA,QAAQ;EAE5E,oBACE,IAAAf,WAAA,CAAAwB,GAAA,EAACX,QAAQ;IAACK,GAAG,EAAEA,GAAI;IAACF,KAAK,EAAE,CAACA,KAAK,EAAE,CAACM,OAAO,IAAI;MAAEG,OAAO,EAAE;IAAE,CAAC,CAAE;IAAA,GAAMR,KAAK;IAAAF,QAAA,EACvEQ;EAAI,CACG,CAAC;AAEf,CAAC,CAAC;AAACG,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -9,6 +9,7 @@ var _dataAttributes = require("../utils/dataAttributes");
9
9
  var _context = require("./context");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  // TODO: Rename to ButtonLabel
12
+ // TODO: Can we remove the dataAttributes here?
12
13
 
13
14
  const createButtonText = BaseButtonText => /*#__PURE__*/(0, _react.forwardRef)(({
14
15
  children,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_dataAttributes","_context","_jsxRuntime","createButtonText","BaseButtonText","forwardRef","children","props","ref","hover","focus","active","disabled","focusVisible","useButtonContext","jsx","dataAttributes","exports"],"sourceRoot":"../../../src","sources":["button/createButtonText.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAA6C,IAAAG,WAAA,GAAAH,OAAA;AAG7C;;AAEO,MAAMI,gBAAgB,GAAQC,cAAsC,iBACzE,IAAAC,iBAAU,EAA4B,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACrE,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAE3E,oBACE,IAAAZ,WAAA,CAAAa,GAAA,EAACX,cAAc;IACbI,GAAG,EAAEA,GAAI;IAAA,GACJD,KAAK;IAAA,GACN,IAAAS,8BAAc,EAAC;MAAEP,KAAK;MAAEC,KAAK;MAAEC,MAAM;MAAEC,QAAQ;MAAEC;IAAa,CAAC,CAAC;IAAAP,QAAA,EAEnEA;EAAQ,CACK,CAAC;AAErB,CAAC,CAAC;AAACW,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_dataAttributes","_context","_jsxRuntime","createButtonText","BaseButtonText","forwardRef","children","props","ref","hover","focus","active","disabled","focusVisible","useButtonContext","jsx","dataAttributes","exports"],"sourceRoot":"../../../src","sources":["button/createButtonText.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAA6C,IAAAG,WAAA,GAAAH,OAAA;AAG7C;AACA;;AAEO,MAAMI,gBAAgB,GAAQC,cAAsC,iBACzE,IAAAC,iBAAU,EAA4B,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACrE,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAE3E,oBACE,IAAAZ,WAAA,CAAAa,GAAA,EAACX,cAAc;IACbI,GAAG,EAAEA,GAAI;IAAA,GACJD,KAAK;IAAA,GACN,IAAAS,8BAAc,EAAC;MAAEP,KAAK;MAAEC,KAAK;MAAEC,MAAM;MAAEC,QAAQ;MAAEC;IAAa,CAAC,CAAC;IAAAP,QAAA,EAEnEA;EAAQ,CACK,CAAC;AAErB,CAAC,CAAC;AAACW,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -11,8 +11,10 @@ var _dataAttributes = require("../utils/dataAttributes");
11
11
  var _context = require("./context");
12
12
  var _useCheckboxRoot = require("./useCheckboxRoot");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
- // TODO: Label is taking focus on keyboard navigation
15
-
14
+ /**
15
+ * Web uses a native checkbox input (VisuallyHidden) for ARIA + focus management. The outer
16
+ * `Pressable` must not be in the tab order or each control consumes two Tab stops (wrapper + input).
17
+ */
16
18
  const createCheckboxRoot = BaseCheckbox => /*#__PURE__*/(0, _react.forwardRef)(({
17
19
  children,
18
20
  ...props
@@ -48,7 +50,10 @@ const createCheckboxRoot = BaseCheckbox => /*#__PURE__*/(0, _react.forwardRef)((
48
50
  } = (0, _focus.useFocusRing)();
49
51
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseCheckbox, {
50
52
  ...combinedProps,
51
- ref: mergedRef,
53
+ ref: mergedRef
54
+ // Native input is the only tab stop; Pressable is still clickable (mouse / screen reader).
55
+ ,
56
+ tabIndex: -1,
52
57
  role: "label"
53
58
  // eslint-disable-next-line react-native-a11y/has-valid-accessibility-role
54
59
  ,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_visuallyHidden","_focus","_dataAttributes","_context","_useCheckboxRoot","_jsxRuntime","createCheckboxRoot","BaseCheckbox","forwardRef","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isChecked","isCheckedProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isIndeterminate","isIndeterminateProp","isFocused","isPressed","combinedProps","groupItemInputProps","mergedRef","inputRef","useCheckboxRoot","useInputRefForAria","focusProps","useFocusRing","jsx","role","accessibilityRole","dataAttributes","checked","disabled","hover","invalid","readonly","active","focus","indeterminate","focusVisible","jsxs","CheckboxProvider","value","VisuallyHidden","exports"],"sourceRoot":"../../../src","sources":["checkbox/createCheckboxRoot.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AAAoD,IAAAM,WAAA,GAAAN,OAAA;AAEpD;;AAEO,MAAMO,kBAAkB,GAAQC,YAAoC,iBACzE,IAAAC,iBAAU,EAAC,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAsB,CAAC,EAAEC,GAAkB,KAAK;EACzE,MAAM;IACJC,SAAS,EAAEC,aAAa;IACxBC,cAAc,EAAEC,kBAAkB;IAClCC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,eAAe,EAAEC,mBAAmB;IACpCC,SAAS;IACTC;EACF,CAAC,GAAGjB,KAAK;EAET,MAAM;IACJkB,aAAa;IACbR,SAAS;IACTE,UAAU;IACVE,eAAe;IACfK,mBAAmB;IACnBb,SAAS;IACTE,UAAU;IACVN,SAAS;IACTkB,SAAS;IACTC;EACF,CAAC,GAAG,IAAAC,gCAAe,EAACtB,KAAK,EAAEC,GAAG,EAAE;IAAEsB,kBAAkB,EAAE;EAAK,CAAC,CAAC;EAE7D,MAAM;IAAEC,UAAU;IAAEpB;EAAe,CAAC,GAAG,IAAAqB,mBAAY,EAAC,CAAC;EAErD,oBACE,IAAA9B,WAAA,CAAA+B,GAAA,EAAC7B,YAAY;IAAA,GACNqB,aAAa;IAClBjB,GAAG,EAAEmB,SAAU;IACfO,IAAI,EAAC;IACL;IAAA;IACAC,iBAAiB,EAAC,OAAO;IAAA,GACrB,IAAAC,8BAAc,EAAC;MACjBC,OAAO,EAAExB,SAAS,IAAIC,aAAa;MACnCwB,QAAQ,EAAEvB,UAAU,IAAIC,cAAc;MACtCuB,KAAK,EAAE9B,SAAS,IAAIC,aAAa;MACjC8B,OAAO,EAAEvB,SAAS,IAAIC,aAAa;MACnCuB,QAAQ,EAAEtB,UAAU,IAAIC,cAAc;MACtCsB,MAAM,EAAElB,SAAS;MACjBmB,KAAK,EAAEpB,SAAS;MAChBqB,aAAa,EAAEvB,eAAe,IAAIC,mBAAmB;MACrDuB,YAAY,EAAElC;IAChB,CAAC,CAAC;IAAAL,QAAA,eAEF,IAAAJ,WAAA,CAAA4C,IAAA,EAAC9C,QAAA,CAAA+C,gBAAgB;MACfC,KAAK,EAAE;QACLnC,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCL,cAAc,EAAEA,cAAc,IAAIC,kBAAkB;QACpDH,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCO,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCC,eAAe,EAAEA,eAAe,IAAIC,mBAAmB;QACvDE,SAAS;QACTD;MACF,CAAE;MAAAjB,QAAA,gBAEF,IAAAJ,WAAA,CAAA+B,GAAA,EAACpC,eAAA,CAAAoD,cAAc;QAAA3C,QAAA,eACb,IAAAJ,WAAA,CAAA+B,GAAA;UAAA,GAAWP,mBAAmB;UAAA,GAAMK,UAAU;UAAEvB,GAAG,EAAEoB;QAAS,CAAE;MAAC,CACnD,CAAC,EAChBtB,QAAQ;IAAA,CACO;EAAC,CACP,CAAC;AAEnB,CAAC,CAAC;AAAC4C,OAAA,CAAA/C,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_visuallyHidden","_focus","_dataAttributes","_context","_useCheckboxRoot","_jsxRuntime","createCheckboxRoot","BaseCheckbox","forwardRef","children","props","ref","isHovered","isHoveredProp","isFocusVisible","isFocusVisibleProp","isChecked","isCheckedProp","isDisabled","isDisabledProp","isInvalid","isInvalidProp","isReadOnly","isReadOnlyProp","isIndeterminate","isIndeterminateProp","isFocused","isPressed","combinedProps","groupItemInputProps","mergedRef","inputRef","useCheckboxRoot","useInputRefForAria","focusProps","useFocusRing","jsx","tabIndex","role","accessibilityRole","dataAttributes","checked","disabled","hover","invalid","readonly","active","focus","indeterminate","focusVisible","jsxs","CheckboxProvider","value","VisuallyHidden","exports"],"sourceRoot":"../../../src","sources":["checkbox/createCheckboxRoot.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAEA,IAAAK,gBAAA,GAAAL,OAAA;AAAoD,IAAAM,WAAA,GAAAN,OAAA;AAEpD;AACA;AACA;AACA;AACO,MAAMO,kBAAkB,GAAQC,YAAoC,iBACzE,IAAAC,iBAAU,EAAC,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAsB,CAAC,EAAEC,GAAkB,KAAK;EACzE,MAAM;IACJC,SAAS,EAAEC,aAAa;IACxBC,cAAc,EAAEC,kBAAkB;IAClCC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC,eAAe,EAAEC,mBAAmB;IACpCC,SAAS;IACTC;EACF,CAAC,GAAGjB,KAAK;EAET,MAAM;IACJkB,aAAa;IACbR,SAAS;IACTE,UAAU;IACVE,eAAe;IACfK,mBAAmB;IACnBb,SAAS;IACTE,UAAU;IACVN,SAAS;IACTkB,SAAS;IACTC;EACF,CAAC,GAAG,IAAAC,gCAAe,EAACtB,KAAK,EAAEC,GAAG,EAAE;IAAEsB,kBAAkB,EAAE;EAAK,CAAC,CAAC;EAE7D,MAAM;IAAEC,UAAU;IAAEpB;EAAe,CAAC,GAAG,IAAAqB,mBAAY,EAAC,CAAC;EAErD,oBACE,IAAA9B,WAAA,CAAA+B,GAAA,EAAC7B,YAAY;IAAA,GACNqB,aAAa;IAClBjB,GAAG,EAAEmB;IACL;IAAA;IACAO,QAAQ,EAAE,CAAC,CAAE;IACbC,IAAI,EAAC;IACL;IAAA;IACAC,iBAAiB,EAAC,OAAO;IAAA,GACrB,IAAAC,8BAAc,EAAC;MACjBC,OAAO,EAAEzB,SAAS,IAAIC,aAAa;MACnCyB,QAAQ,EAAExB,UAAU,IAAIC,cAAc;MACtCwB,KAAK,EAAE/B,SAAS,IAAIC,aAAa;MACjC+B,OAAO,EAAExB,SAAS,IAAIC,aAAa;MACnCwB,QAAQ,EAAEvB,UAAU,IAAIC,cAAc;MACtCuB,MAAM,EAAEnB,SAAS;MACjBoB,KAAK,EAAErB,SAAS;MAChBsB,aAAa,EAAExB,eAAe,IAAIC,mBAAmB;MACrDwB,YAAY,EAAEnC;IAChB,CAAC,CAAC;IAAAL,QAAA,eAEF,IAAAJ,WAAA,CAAA6C,IAAA,EAAC/C,QAAA,CAAAgD,gBAAgB;MACfC,KAAK,EAAE;QACLpC,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCL,cAAc,EAAEA,cAAc,IAAIC,kBAAkB;QACpDH,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCO,SAAS,EAAEA,SAAS,IAAIC,aAAa;QACrCC,UAAU,EAAEA,UAAU,IAAIC,cAAc;QACxCC,eAAe,EAAEA,eAAe,IAAIC,mBAAmB;QACvDE,SAAS;QACTD;MACF,CAAE;MAAAjB,QAAA,gBAEF,IAAAJ,WAAA,CAAA+B,GAAA,EAACpC,eAAA,CAAAqD,cAAc;QAAA5C,QAAA,eACb,IAAAJ,WAAA,CAAA+B,GAAA;UAAA,GAAWP,mBAAmB;UAAA,GAAMK,UAAU;UAAEvB,GAAG,EAAEoB;QAAS,CAAE;MAAC,CACnD,CAAC,EAChBtB,QAAQ;IAAA,CACO;EAAC,CACP,CAAC;AAEnB,CAAC,CAAC;AAAC6C,OAAA,CAAAhD,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createChipRoot = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _utils = require("@cdx-ui/utils");
9
+ var _focus = require("@react-native-aria/focus");
10
+ var _interactions = require("@react-native-aria/interactions");
11
+ var _dataAttributes = require("../utils/dataAttributes");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const rowStyle = {
15
+ flexDirection: 'row',
16
+ alignItems: 'center',
17
+ alignSelf: 'flex-start'
18
+ };
19
+ const chipSlotAttrs = (0, _dataAttributes.dataAttributes)({
20
+ slot: 'chip'
21
+ });
22
+ const createChipRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.forwardRef)(({
23
+ asChild = false,
24
+ children,
25
+ onPress,
26
+ disabled = false,
27
+ accessibilityRole,
28
+ style,
29
+ ...restProps
30
+ }, ref) => {
31
+ const childOnPress = /*#__PURE__*/_react.default.isValidElement(children) ? children.props.onPress : undefined;
32
+ const asChildInteractive = asChild && /*#__PURE__*/_react.default.isValidElement(children);
33
+ const isPressableRoot = !!onPress && !asChildInteractive;
34
+ const pressState = (0, _interactions.usePress)({
35
+ isDisabled: !isPressableRoot || disabled
36
+ });
37
+ const isPressed = pressState.isPressed;
38
+ const pressProps = pressState.pressProps;
39
+ const {
40
+ hoverProps,
41
+ isHovered
42
+ } = (0, _interactions.useHover)();
43
+ const {
44
+ isFocused,
45
+ focusProps
46
+ } = (0, _focus.useFocus)();
47
+ const {
48
+ isFocusVisible,
49
+ focusProps: focusRingProps
50
+ } = (0, _focus.useFocusRing)();
51
+ if (asChildInteractive) {
52
+ const child = children;
53
+ const childDisabled = !!child.props.disabled;
54
+ const resolvedDisabled = disabled || childDisabled;
55
+ const cloneProps = {
56
+ ...restProps,
57
+ ...chipSlotAttrs,
58
+ ...(0, _dataAttributes.dataAttributes)({
59
+ active: false,
60
+ hover: false,
61
+ disabled: resolvedDisabled,
62
+ focused: false,
63
+ focusVisible: false
64
+ }),
65
+ ...(resolvedDisabled && {
66
+ accessibilityState: {
67
+ disabled: true
68
+ }
69
+ }),
70
+ disabled: resolvedDisabled,
71
+ ref: (0, _utils.mergeRefs)(ref, child.props.ref),
72
+ style: [rowStyle, style, child.props.style]
73
+ };
74
+ if (resolvedDisabled) {
75
+ cloneProps.onPress = undefined;
76
+ } else if (onPress) {
77
+ cloneProps.onPress = (0, _utils.composeEventHandlers)(childOnPress, onPress);
78
+ }
79
+ return /*#__PURE__*/_react.default.cloneElement(child, cloneProps);
80
+ }
81
+ if (isPressableRoot) {
82
+ const interactionAttrs = (0, _dataAttributes.dataAttributes)({
83
+ active: isPressed,
84
+ hover: isHovered,
85
+ disabled,
86
+ focused: isFocused,
87
+ focusVisible: isFocusVisible
88
+ });
89
+ const {
90
+ onPressIn: onPressInProp,
91
+ onPressOut: onPressOutProp,
92
+ onHoverIn: onHoverInProp,
93
+ onHoverOut: onHoverOutProp,
94
+ onFocus: onFocusProp,
95
+ onBlur: onBlurProp
96
+ } = restProps;
97
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(BasePressable, {
98
+ ...restProps,
99
+ ...chipSlotAttrs,
100
+ ...interactionAttrs,
101
+ accessibilityRole: accessibilityRole ?? 'button',
102
+ ...(disabled && {
103
+ accessibilityState: {
104
+ disabled: true
105
+ }
106
+ }),
107
+ disabled: disabled,
108
+ ref: ref,
109
+ style: [rowStyle, style],
110
+ onPress: disabled ? undefined : onPress,
111
+ onPressIn: (0, _utils.composeEventHandlers)(onPressInProp, pressProps.onPressIn),
112
+ onPressOut: (0, _utils.composeEventHandlers)(onPressOutProp, pressProps.onPressOut),
113
+ onHoverIn: (0, _utils.composeEventHandlers)(onHoverInProp, hoverProps.onHoverIn),
114
+ onHoverOut: (0, _utils.composeEventHandlers)(onHoverOutProp, hoverProps.onHoverOut),
115
+ onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(onFocusProp, focusProps.onFocus), focusRingProps.onFocus),
116
+ onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(onBlurProp, focusProps.onBlur), focusRingProps.onBlur),
117
+ children: children
118
+ });
119
+ }
120
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseView, {
121
+ ...restProps,
122
+ ...chipSlotAttrs,
123
+ ...(disabled ? (0, _dataAttributes.dataAttributes)({
124
+ disabled: true
125
+ }) : undefined),
126
+ ref: ref,
127
+ style: [rowStyle, style],
128
+ children: children
129
+ });
130
+ });
131
+ exports.createChipRoot = createChipRoot;
132
+ //# sourceMappingURL=createChipRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","chipSlotAttrs","dataAttributes","slot","createChipRoot","BaseView","BasePressable","forwardRef","asChild","children","onPress","disabled","accessibilityRole","style","restProps","ref","childOnPress","React","isValidElement","props","undefined","asChildInteractive","isPressableRoot","pressState","usePress","isDisabled","isPressed","pressProps","hoverProps","isHovered","useHover","isFocused","focusProps","useFocus","isFocusVisible","focusRingProps","useFocusRing","child","childDisabled","resolvedDisabled","cloneProps","active","hover","focused","focusVisible","accessibilityState","mergeRefs","composeEventHandlers","cloneElement","interactionAttrs","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp","jsx","exports"],"sourceRoot":"../../../src","sources":["chip/createChipRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createChip = createChip;
7
+ var _createChipRoot = require("./createChipRoot");
8
+ function createChip({
9
+ View,
10
+ Pressable
11
+ }) {
12
+ const Chip = (0, _createChipRoot.createChipRoot)(View, Pressable);
13
+ Chip.displayName = 'ChipPrimitive';
14
+ return Chip;
15
+ }
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_createChipRoot","require","createChip","View","Pressable","Chip","createChipRoot","displayName"],"sourceRoot":"../../../src","sources":["chip/index.ts"],"mappings":";;;;;;AAEA,IAAAA,eAAA,GAAAC,OAAA;AAKO,SAASC,UAAUA,CAAC;EACzBC,IAAI;EACJC;AAIF,CAAC,EAAE;EACD,MAAMC,IAAI,GAAG,IAAAC,8BAAc,EAACH,IAAI,EAAEC,SAAS,CAAC;EAC5CC,IAAI,CAACE,WAAW,GAAG,eAAe;EAClC,OAAOF,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["chip/types.ts"],"mappings":"","ignoreList":[]}
@@ -4,138 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createDialogContent = void 0;
7
- var _react = require("react");
8
- var _reactNative = require("react-native");
9
- var _focus = require("@react-native-aria/focus");
10
- var _overlay = require("../overlay");
11
- var _createPortal = require("../utils/createPortal");
12
- var _dataAttributes = require("../utils/dataAttributes");
13
- var _context = require("./context");
7
+ var _react = _interopRequireWildcard(require("react"));
14
8
  var _jsxRuntime = require("react/jsx-runtime");
15
- const createDialogContent = (BaseContent, BaseOverlay) => /*#__PURE__*/(0, _react.forwardRef)(({
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
+ const createDialogContent = BaseContent => /*#__PURE__*/(0, _react.forwardRef)(({
16
11
  children,
17
- forceMount = false,
18
12
  ...props
19
13
  }, ref) => {
20
- const {
21
- open,
22
- onOpenChange,
23
- closeOnBackdropPress,
24
- closeOnEscKey,
25
- nativeID,
26
- role
27
- } = (0, _context.useDialog)();
28
- const handleClose = (0, _react.useCallback)(() => {
29
- onOpenChange(false);
30
- }, [onOpenChange]);
31
- (0, _overlay.useEscapeKey)(open && closeOnEscKey, handleClose);
32
- if (!(open || forceMount)) {
33
- return null;
34
- }
35
- const overlayProps = {
36
- ...(closeOnBackdropPress ? {
37
- onPress: handleClose
38
- } : {}),
39
- accessible: false,
40
- importantForAccessibility: 'no-hide-descendants',
41
- ...(0, _dataAttributes.dataAttributes)({
42
- slot: 'dialog-overlay'
43
- })
44
- };
45
- const contentSlotAttrs = (0, _dataAttributes.dataAttributes)({
46
- slot: 'dialog-content',
47
- state: open ? 'open' : 'closed'
48
- });
49
- const ariaProps = {
50
- role,
51
- 'aria-modal': true,
52
- 'aria-labelledby': `${nativeID}-title`,
53
- 'aria-describedby': `${nativeID}-description`
54
- };
55
- if (_reactNative.Platform.OS === 'web' && _createPortal.createPortalFn) {
56
- return (0, _createPortal.createPortalFn)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_focus.FocusScope, {
57
- contain: open,
58
- restoreFocus: true,
59
- autoFocus: open,
60
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
61
- style: {
62
- position: 'fixed',
63
- inset: 0,
64
- zIndex: 50,
65
- display: 'flex',
66
- alignItems: 'center',
67
- justifyContent: 'center'
68
- },
69
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(BaseOverlay, {
70
- ...overlayProps
71
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseContent, {
72
- ref: ref,
73
- ...contentSlotAttrs,
74
- ...props,
75
- ...ariaProps,
76
- children: children
77
- })]
78
- })
79
- }), document.body);
80
- }
81
-
82
- // Native layout uses two layers to support both backdrop dismiss and
83
- // scrollable body content. The overlay Pressable fills the Modal via
84
- // absolute positioning and handles backdrop taps. A second absolute-fill
85
- // View with pointerEvents="box-none" centers the content panel — "box-none"
86
- // lets taps outside the panel pass through to the overlay while allowing
87
- // the panel and its children to receive touches normally.
88
- //
89
- // Critically, the content panel must NOT claim the JS touch responder
90
- // (e.g. via onStartShouldSetResponder). Doing so triggers React Native's
91
- // blockNativeResponder, which suppresses the native UIScrollView /
92
- // ScrollView pan gesture recognizer and breaks any ScrollView inside
93
- // Dialog.Body.
94
- //
95
- // Static StyleSheet used here because these are structural layout concerns
96
- // of the primitive's modal chrome — not themeable styles. They must remain
97
- // stable regardless of the styled layer's className.
98
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
99
- visible: open,
100
- transparent: true,
101
- statusBarTranslucent: true,
102
- onRequestClose: handleClose,
103
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_focus.FocusScope, {
104
- contain: open,
105
- restoreFocus: true,
106
- autoFocus: open,
107
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
108
- style: styles.fill,
109
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(BaseOverlay, {
110
- ...overlayProps
111
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
112
- style: styles.center,
113
- pointerEvents: "box-none",
114
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseContent, {
115
- ref: ref,
116
- ...contentSlotAttrs,
117
- ...props,
118
- ...ariaProps,
119
- children: children
120
- })
121
- })]
122
- })
123
- })
14
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseContent, {
15
+ ref: ref,
16
+ ...props,
17
+ children: children
124
18
  });
125
19
  });
126
-
127
- // Structural layout for the native Modal chrome. These are not themeable —
128
- // they position the overlay and centering layers that the primitive manages
129
- // internally. Matches the pattern in OverlayContainer.tsx.
130
20
  exports.createDialogContent = createDialogContent;
131
- const styles = _reactNative.StyleSheet.create({
132
- fill: {
133
- flex: 1
134
- },
135
- center: {
136
- ..._reactNative.StyleSheet.absoluteFillObject,
137
- alignItems: 'center',
138
- justifyContent: 'center'
139
- }
140
- });
141
21
  //# sourceMappingURL=createDialogContent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_focus","_overlay","_createPortal","_dataAttributes","_context","_jsxRuntime","createDialogContent","BaseContent","BaseOverlay","forwardRef","children","forceMount","props","ref","open","onOpenChange","closeOnBackdropPress","closeOnEscKey","nativeID","role","useDialog","handleClose","useCallback","useEscapeKey","overlayProps","onPress","accessible","importantForAccessibility","dataAttributes","slot","contentSlotAttrs","state","ariaProps","Platform","OS","createPortalFn","jsx","FocusScope","contain","restoreFocus","autoFocus","jsxs","View","style","position","inset","zIndex","display","alignItems","justifyContent","document","body","Modal","visible","transparent","statusBarTranslucent","onRequestClose","styles","fill","center","pointerEvents","exports","StyleSheet","create","flex","absoluteFillObject"],"sourceRoot":"../../../src","sources":["dialog/createDialogContent.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAAsC,IAAAO,WAAA,GAAAP,OAAA;AAG/B,MAAMQ,mBAAmB,GAAGA,CACjCC,WAA8C,EAC9CC,WAA8C,kBAE9C,IAAAC,iBAAU,EAAC,CAAC;EAAEC,QAAQ;EAAEC,UAAU,GAAG,KAAK;EAAE,GAAGC;AAA2B,CAAC,EAAEC,GAAS,KAAK;EACzF,MAAM;IAAEC,IAAI;IAAEC,YAAY;IAAEC,oBAAoB;IAAEC,aAAa;IAAEC,QAAQ;IAAEC;EAAK,CAAC,GAAG,IAAAC,kBAAS,EAAC,CAAC;EAE/F,MAAMC,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACpCP,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,IAAAQ,qBAAY,EAACT,IAAI,IAAIG,aAAa,EAAEI,WAAW,CAAC;EAEhD,IAAI,EAAEP,IAAI,IAAIH,UAAU,CAAC,EAAE;IACzB,OAAO,IAAI;EACb;EAEA,MAAMa,YAAY,GAAG;IACnB,IAAIR,oBAAoB,GAAG;MAAES,OAAO,EAAEJ;IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACzDK,UAAU,EAAE,KAAK;IACjBC,yBAAyB,EAAE,qBAA8B;IACzD,GAAG,IAAAC,8BAAc,EAAC;MAAEC,IAAI,EAAE;IAAiB,CAAC;EAC9C,CAAC;EAED,MAAMC,gBAAgB,GAAG,IAAAF,8BAAc,EAAC;IACtCC,IAAI,EAAE,gBAAgB;IACtBE,KAAK,EAAEjB,IAAI,GAAG,MAAM,GAAG;EACzB,CAAC,CAAC;EAEF,MAAMkB,SAAS,GAAG;IAChBb,IAAI;IACJ,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,GAAGD,QAAQ,QAAQ;IACtC,kBAAkB,EAAE,GAAGA,QAAQ;EACjC,CAAC;EAED,IAAIe,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAIC,4BAAc,EAAE;IAC3C,OAAO,IAAAA,4BAAc,eACnB,IAAA9B,WAAA,CAAA+B,GAAA,EAACpC,MAAA,CAAAqC,UAAU;MAACC,OAAO,EAAExB,IAAK;MAACyB,YAAY;MAACC,SAAS,EAAE1B,IAAK;MAAAJ,QAAA,eACtD,IAAAL,WAAA,CAAAoC,IAAA,EAAC1C,YAAA,CAAA2C,IAAI;QACHC,KAAK,EAAE;UACLC,QAAQ,EAAE,OAAc;UACxBC,KAAK,EAAE,CAAQ;UACfC,MAAM,EAAE,EAAE;UACVC,OAAO,EAAE,MAAa;UACtBC,UAAU,EAAE,QAAQ;UACpBC,cAAc,EAAE;QAClB,CAAE;QAAAvC,QAAA,gBAEF,IAAAL,WAAA,CAAA+B,GAAA,EAAC5B,WAAW;UAAA,GAAMgB;QAAY,CAAW,CAAC,eAC1C,IAAAnB,WAAA,CAAA+B,GAAA,EAAC7B,WAAW;UACVM,GAAG,EAAEA,GAAI;UAAA,GACLiB,gBAAgB;UAAA,GACflB,KAAK;UAAA,GACNoB,SAAS;UAAAtB,QAAA,EAEZA;QAAQ,CACE,CAAC;MAAA,CACV;IAAC,CACG,CAAC,EACbwC,QAAQ,CAACC,IACX,CAAC;EACH;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBACE,IAAA9C,WAAA,CAAA+B,GAAA,EAACrC,YAAA,CAAAqD,KAAK;IAACC,OAAO,EAAEvC,IAAK;IAACwC,WAAW;IAACC,oBAAoB;IAACC,cAAc,EAAEnC,WAAY;IAAAX,QAAA,eACjF,IAAAL,WAAA,CAAA+B,GAAA,EAACpC,MAAA,CAAAqC,UAAU;MAACC,OAAO,EAAExB,IAAK;MAACyB,YAAY;MAACC,SAAS,EAAE1B,IAAK;MAAAJ,QAAA,eACtD,IAAAL,WAAA,CAAAoC,IAAA,EAAC1C,YAAA,CAAA2C,IAAI;QAACC,KAAK,EAAEc,MAAM,CAACC,IAAK;QAAAhD,QAAA,gBACvB,IAAAL,WAAA,CAAA+B,GAAA,EAAC5B,WAAW;UAAA,GAAMgB;QAAY,CAAW,CAAC,eAC1C,IAAAnB,WAAA,CAAA+B,GAAA,EAACrC,YAAA,CAAA2C,IAAI;UAACC,KAAK,EAAEc,MAAM,CAACE,MAAO;UAACC,aAAa,EAAC,UAAU;UAAAlD,QAAA,eAClD,IAAAL,WAAA,CAAA+B,GAAA,EAAC7B,WAAW;YACVM,GAAG,EAAEA,GAAI;YAAA,GACLiB,gBAAgB;YAAA,GACflB,KAAK;YAAA,GACNoB,SAAS;YAAAtB,QAAA,EAEZA;UAAQ,CACE;QAAC,CACV,CAAC;MAAA,CACH;IAAC,CACG;EAAC,CACR,CAAC;AAEZ,CAAC,CAAC;;AAEJ;AACA;AACA;AAAAmD,OAAA,CAAAvD,mBAAA,GAAAA,mBAAA;AACA,MAAMmD,MAAM,GAAGK,uBAAU,CAACC,MAAM,CAAC;EAC/BL,IAAI,EAAE;IAAEM,IAAI,EAAE;EAAE,CAAC;EACjBL,MAAM,EAAE;IACN,GAAGG,uBAAU,CAACG,kBAAkB;IAChCjB,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createDialogContent","BaseContent","forwardRef","children","props","ref","jsx","exports"],"sourceRoot":"../../../src","sources":["dialog/createDialogContent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA0C,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGnC,MAAMkB,mBAAmB,GAAQC,WAAmC,iBACzE,IAAAC,iBAAU,EAA+B,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACxE,oBACE,IAAAzB,WAAA,CAAA0B,GAAA,EAACL,WAAW;IAACI,GAAG,EAAEA,GAAI;IAAA,GAAMD,KAAK;IAAAD,QAAA,EAC9BA;EAAQ,CACE,CAAC;AAElB,CAAC,CAAC;AAACI,OAAA,CAAAP,mBAAA,GAAAA,mBAAA","ignoreList":[]}