@cdx-ui/primitives 0.1.6 → 0.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 (344) hide show
  1. package/lib/commonjs/color/Color.js +69 -0
  2. package/lib/commonjs/color/Color.js.map +1 -0
  3. package/lib/commonjs/color/index.js +13 -0
  4. package/lib/commonjs/color/index.js.map +1 -0
  5. package/lib/commonjs/color/types.js +2 -0
  6. package/lib/commonjs/color/types.js.map +1 -0
  7. package/lib/commonjs/color-area/ColorAreaAccessibility.js +100 -0
  8. package/lib/commonjs/color-area/ColorAreaAccessibility.js.map +1 -0
  9. package/lib/commonjs/color-area/ColorAreaAccessibility.web.js +58 -0
  10. package/lib/commonjs/color-area/ColorAreaAccessibility.web.js.map +1 -0
  11. package/lib/commonjs/color-area/ColorAreaRoot.js +240 -0
  12. package/lib/commonjs/color-area/ColorAreaRoot.js.map +1 -0
  13. package/lib/commonjs/color-area/ColorAreaThumb.js +71 -0
  14. package/lib/commonjs/color-area/ColorAreaThumb.js.map +1 -0
  15. package/lib/commonjs/color-area/context.js +11 -0
  16. package/lib/commonjs/color-area/context.js.map +1 -0
  17. package/lib/commonjs/color-area/index.js +27 -0
  18. package/lib/commonjs/color-area/index.js.map +1 -0
  19. package/lib/commonjs/color-area/types.js +6 -0
  20. package/lib/commonjs/color-area/types.js.map +1 -0
  21. package/lib/commonjs/color-area/utils.js +51 -0
  22. package/lib/commonjs/color-area/utils.js.map +1 -0
  23. package/lib/commonjs/color-field/ColorFieldInput.js +67 -0
  24. package/lib/commonjs/color-field/ColorFieldInput.js.map +1 -0
  25. package/lib/commonjs/color-field/ColorFieldRoot.js +104 -0
  26. package/lib/commonjs/color-field/ColorFieldRoot.js.map +1 -0
  27. package/lib/commonjs/color-field/context.js +11 -0
  28. package/lib/commonjs/color-field/context.js.map +1 -0
  29. package/lib/commonjs/color-field/index.js +27 -0
  30. package/lib/commonjs/color-field/index.js.map +1 -0
  31. package/lib/commonjs/color-field/types.js +6 -0
  32. package/lib/commonjs/color-field/types.js.map +1 -0
  33. package/lib/commonjs/color-field/utils.js +60 -0
  34. package/lib/commonjs/color-field/utils.js.map +1 -0
  35. package/lib/commonjs/color-picker/ColorPickerRoot.js +69 -0
  36. package/lib/commonjs/color-picker/ColorPickerRoot.js.map +1 -0
  37. package/lib/commonjs/color-picker/ColorPickerTrigger.js +98 -0
  38. package/lib/commonjs/color-picker/ColorPickerTrigger.js.map +1 -0
  39. package/lib/commonjs/color-picker/context.js +32 -0
  40. package/lib/commonjs/color-picker/context.js.map +1 -0
  41. package/lib/commonjs/color-picker/index.js +51 -0
  42. package/lib/commonjs/color-picker/index.js.map +1 -0
  43. package/lib/commonjs/color-picker/types.js +6 -0
  44. package/lib/commonjs/color-picker/types.js.map +1 -0
  45. package/lib/commonjs/color-slider/ColorSliderRail.js +119 -0
  46. package/lib/commonjs/color-slider/ColorSliderRail.js.map +1 -0
  47. package/lib/commonjs/color-slider/ColorSliderRoot.js +153 -0
  48. package/lib/commonjs/color-slider/ColorSliderRoot.js.map +1 -0
  49. package/lib/commonjs/color-slider/ColorSliderThumb.js +265 -0
  50. package/lib/commonjs/color-slider/ColorSliderThumb.js.map +1 -0
  51. package/lib/commonjs/color-slider/context.js +11 -0
  52. package/lib/commonjs/color-slider/context.js.map +1 -0
  53. package/lib/commonjs/color-slider/index.js +34 -0
  54. package/lib/commonjs/color-slider/index.js.map +1 -0
  55. package/lib/commonjs/color-slider/types.js +6 -0
  56. package/lib/commonjs/color-slider/types.js.map +1 -0
  57. package/lib/commonjs/color-slider/utils.js +75 -0
  58. package/lib/commonjs/color-slider/utils.js.map +1 -0
  59. package/lib/commonjs/color-swatch-picker/ColorSwatchPickerItem.js +46 -0
  60. package/lib/commonjs/color-swatch-picker/ColorSwatchPickerItem.js.map +1 -0
  61. package/lib/commonjs/color-swatch-picker/ColorSwatchPickerRoot.js +71 -0
  62. package/lib/commonjs/color-swatch-picker/ColorSwatchPickerRoot.js.map +1 -0
  63. package/lib/commonjs/color-swatch-picker/context.js +22 -0
  64. package/lib/commonjs/color-swatch-picker/context.js.map +1 -0
  65. package/lib/commonjs/color-swatch-picker/index.js +33 -0
  66. package/lib/commonjs/color-swatch-picker/index.js.map +1 -0
  67. package/lib/commonjs/color-swatch-picker/types.js +6 -0
  68. package/lib/commonjs/color-swatch-picker/types.js.map +1 -0
  69. package/lib/commonjs/dialog/DialogContent.js +13 -5
  70. package/lib/commonjs/dialog/DialogContent.js.map +1 -1
  71. package/lib/commonjs/dialog/DialogPopup.js +7 -1
  72. package/lib/commonjs/dialog/DialogPopup.js.map +1 -1
  73. package/lib/commonjs/dialog/DialogRoot.js +3 -1
  74. package/lib/commonjs/dialog/DialogRoot.js.map +1 -1
  75. package/lib/commonjs/index.js +80 -0
  76. package/lib/commonjs/index.js.map +1 -1
  77. package/lib/commonjs/portal/portal.js +4 -2
  78. package/lib/commonjs/portal/portal.js.map +1 -1
  79. package/lib/commonjs/react-native-web.d.js +2 -0
  80. package/lib/commonjs/react-native-web.d.js.map +1 -0
  81. package/lib/commonjs/select/SelectContent.js +1 -0
  82. package/lib/commonjs/select/SelectContent.js.map +1 -1
  83. package/lib/commonjs/slider/useSliderPointer.js +2 -0
  84. package/lib/commonjs/slider/useSliderPointer.js.map +1 -1
  85. package/lib/commonjs/utils/createPortal.web.js +10 -1
  86. package/lib/commonjs/utils/createPortal.web.js.map +1 -1
  87. package/lib/commonjs/utils/textAncestor.js +25 -0
  88. package/lib/commonjs/utils/textAncestor.js.map +1 -0
  89. package/lib/commonjs/utils/textAncestor.web.js +27 -0
  90. package/lib/commonjs/utils/textAncestor.web.js.map +1 -0
  91. package/lib/module/color/Color.js +65 -0
  92. package/lib/module/color/Color.js.map +1 -0
  93. package/lib/module/color/index.js +4 -0
  94. package/lib/module/color/index.js.map +1 -0
  95. package/lib/module/color/types.js +2 -0
  96. package/lib/module/color/types.js.map +1 -0
  97. package/lib/module/color-area/ColorAreaAccessibility.js +96 -0
  98. package/lib/module/color-area/ColorAreaAccessibility.js.map +1 -0
  99. package/lib/module/color-area/ColorAreaAccessibility.web.js +54 -0
  100. package/lib/module/color-area/ColorAreaAccessibility.web.js.map +1 -0
  101. package/lib/module/color-area/ColorAreaRoot.js +236 -0
  102. package/lib/module/color-area/ColorAreaRoot.js.map +1 -0
  103. package/lib/module/color-area/ColorAreaThumb.js +67 -0
  104. package/lib/module/color-area/ColorAreaThumb.js.map +1 -0
  105. package/lib/module/color-area/context.js +5 -0
  106. package/lib/module/color-area/context.js.map +1 -0
  107. package/lib/module/color-area/index.js +6 -0
  108. package/lib/module/color-area/index.js.map +1 -0
  109. package/lib/module/color-area/types.js +4 -0
  110. package/lib/module/color-area/types.js.map +1 -0
  111. package/lib/module/color-area/utils.js +45 -0
  112. package/lib/module/color-area/utils.js.map +1 -0
  113. package/lib/module/color-field/ColorFieldInput.js +63 -0
  114. package/lib/module/color-field/ColorFieldInput.js.map +1 -0
  115. package/lib/module/color-field/ColorFieldRoot.js +100 -0
  116. package/lib/module/color-field/ColorFieldRoot.js.map +1 -0
  117. package/lib/module/color-field/context.js +5 -0
  118. package/lib/module/color-field/context.js.map +1 -0
  119. package/lib/module/color-field/index.js +6 -0
  120. package/lib/module/color-field/index.js.map +1 -0
  121. package/lib/module/color-field/types.js +4 -0
  122. package/lib/module/color-field/types.js.map +1 -0
  123. package/lib/module/color-field/utils.js +55 -0
  124. package/lib/module/color-field/utils.js.map +1 -0
  125. package/lib/module/color-picker/ColorPickerRoot.js +65 -0
  126. package/lib/module/color-picker/ColorPickerRoot.js.map +1 -0
  127. package/lib/module/color-picker/ColorPickerTrigger.js +94 -0
  128. package/lib/module/color-picker/ColorPickerTrigger.js.map +1 -0
  129. package/lib/module/color-picker/context.js +25 -0
  130. package/lib/module/color-picker/context.js.map +1 -0
  131. package/lib/module/color-picker/index.js +6 -0
  132. package/lib/module/color-picker/index.js.map +1 -0
  133. package/lib/module/color-picker/types.js +4 -0
  134. package/lib/module/color-picker/types.js.map +1 -0
  135. package/lib/module/color-slider/ColorSliderRail.js +115 -0
  136. package/lib/module/color-slider/ColorSliderRail.js.map +1 -0
  137. package/lib/module/color-slider/ColorSliderRoot.js +149 -0
  138. package/lib/module/color-slider/ColorSliderRoot.js.map +1 -0
  139. package/lib/module/color-slider/ColorSliderThumb.js +261 -0
  140. package/lib/module/color-slider/ColorSliderThumb.js.map +1 -0
  141. package/lib/module/color-slider/context.js +5 -0
  142. package/lib/module/color-slider/context.js.map +1 -0
  143. package/lib/module/color-slider/index.js +7 -0
  144. package/lib/module/color-slider/index.js.map +1 -0
  145. package/lib/module/color-slider/types.js +4 -0
  146. package/lib/module/color-slider/types.js.map +1 -0
  147. package/lib/module/color-slider/utils.js +66 -0
  148. package/lib/module/color-slider/utils.js.map +1 -0
  149. package/lib/module/color-swatch-picker/ColorSwatchPickerItem.js +42 -0
  150. package/lib/module/color-swatch-picker/ColorSwatchPickerItem.js.map +1 -0
  151. package/lib/module/color-swatch-picker/ColorSwatchPickerRoot.js +67 -0
  152. package/lib/module/color-swatch-picker/ColorSwatchPickerRoot.js.map +1 -0
  153. package/lib/module/color-swatch-picker/context.js +15 -0
  154. package/lib/module/color-swatch-picker/context.js.map +1 -0
  155. package/lib/module/color-swatch-picker/index.js +6 -0
  156. package/lib/module/color-swatch-picker/index.js.map +1 -0
  157. package/lib/module/color-swatch-picker/types.js +4 -0
  158. package/lib/module/color-swatch-picker/types.js.map +1 -0
  159. package/lib/module/dialog/DialogContent.js +13 -5
  160. package/lib/module/dialog/DialogContent.js.map +1 -1
  161. package/lib/module/dialog/DialogPopup.js +7 -1
  162. package/lib/module/dialog/DialogPopup.js.map +1 -1
  163. package/lib/module/dialog/DialogRoot.js +4 -2
  164. package/lib/module/dialog/DialogRoot.js.map +1 -1
  165. package/lib/module/index.js +7 -0
  166. package/lib/module/index.js.map +1 -1
  167. package/lib/module/portal/portal.js +4 -2
  168. package/lib/module/portal/portal.js.map +1 -1
  169. package/lib/module/react-native-web.d.js +2 -0
  170. package/lib/module/react-native-web.d.js.map +1 -0
  171. package/lib/module/select/SelectContent.js +2 -1
  172. package/lib/module/select/SelectContent.js.map +1 -1
  173. package/lib/module/slider/useSliderPointer.js +2 -0
  174. package/lib/module/slider/useSliderPointer.js.map +1 -1
  175. package/lib/module/utils/createPortal.web.js +9 -1
  176. package/lib/module/utils/createPortal.web.js.map +1 -1
  177. package/lib/module/utils/textAncestor.js +20 -0
  178. package/lib/module/utils/textAncestor.js.map +1 -0
  179. package/lib/module/utils/textAncestor.web.js +22 -0
  180. package/lib/module/utils/textAncestor.web.js.map +1 -0
  181. package/lib/typescript/breadcrumbs/types.d.ts +13 -0
  182. package/lib/typescript/breadcrumbs/types.d.ts.map +1 -1
  183. package/lib/typescript/checkbox/types.d.ts +4 -0
  184. package/lib/typescript/checkbox/types.d.ts.map +1 -1
  185. package/lib/typescript/color/Color.d.ts +3 -0
  186. package/lib/typescript/color/Color.d.ts.map +1 -0
  187. package/lib/typescript/color/index.d.ts +3 -0
  188. package/lib/typescript/color/index.d.ts.map +1 -0
  189. package/lib/typescript/color/types.d.ts +13 -0
  190. package/lib/typescript/color/types.d.ts.map +1 -0
  191. package/lib/typescript/color-area/ColorAreaAccessibility.d.ts +8 -0
  192. package/lib/typescript/color-area/ColorAreaAccessibility.d.ts.map +1 -0
  193. package/lib/typescript/color-area/ColorAreaAccessibility.web.d.ts +8 -0
  194. package/lib/typescript/color-area/ColorAreaAccessibility.web.d.ts.map +1 -0
  195. package/lib/typescript/color-area/ColorAreaRoot.d.ts +7 -0
  196. package/lib/typescript/color-area/ColorAreaRoot.d.ts.map +1 -0
  197. package/lib/typescript/color-area/ColorAreaThumb.d.ts +6 -0
  198. package/lib/typescript/color-area/ColorAreaThumb.d.ts.map +1 -0
  199. package/lib/typescript/color-area/context.d.ts +6 -0
  200. package/lib/typescript/color-area/context.d.ts.map +1 -0
  201. package/lib/typescript/color-area/index.d.ts +5 -0
  202. package/lib/typescript/color-area/index.d.ts.map +1 -0
  203. package/lib/typescript/color-area/types.d.ts +65 -0
  204. package/lib/typescript/color-area/types.d.ts.map +1 -0
  205. package/lib/typescript/color-area/utils.d.ts +5 -0
  206. package/lib/typescript/color-area/utils.d.ts.map +1 -0
  207. package/lib/typescript/color-field/ColorFieldInput.d.ts +5 -0
  208. package/lib/typescript/color-field/ColorFieldInput.d.ts.map +1 -0
  209. package/lib/typescript/color-field/ColorFieldRoot.d.ts +7 -0
  210. package/lib/typescript/color-field/ColorFieldRoot.d.ts.map +1 -0
  211. package/lib/typescript/color-field/context.d.ts +6 -0
  212. package/lib/typescript/color-field/context.d.ts.map +1 -0
  213. package/lib/typescript/color-field/index.d.ts +7 -0
  214. package/lib/typescript/color-field/index.d.ts.map +1 -0
  215. package/lib/typescript/color-field/types.d.ts +39 -0
  216. package/lib/typescript/color-field/types.d.ts.map +1 -0
  217. package/lib/typescript/color-field/utils.d.ts +5 -0
  218. package/lib/typescript/color-field/utils.d.ts.map +1 -0
  219. package/lib/typescript/color-picker/ColorPickerRoot.d.ts +7 -0
  220. package/lib/typescript/color-picker/ColorPickerRoot.d.ts.map +1 -0
  221. package/lib/typescript/color-picker/ColorPickerTrigger.d.ts +4 -0
  222. package/lib/typescript/color-picker/ColorPickerTrigger.d.ts.map +1 -0
  223. package/lib/typescript/color-picker/context.d.ts +19 -0
  224. package/lib/typescript/color-picker/context.d.ts.map +1 -0
  225. package/lib/typescript/color-picker/index.d.ts +5 -0
  226. package/lib/typescript/color-picker/index.d.ts.map +1 -0
  227. package/lib/typescript/color-picker/types.d.ts +24 -0
  228. package/lib/typescript/color-picker/types.d.ts.map +1 -0
  229. package/lib/typescript/color-slider/ColorSliderRail.d.ts +6 -0
  230. package/lib/typescript/color-slider/ColorSliderRail.d.ts.map +1 -0
  231. package/lib/typescript/color-slider/ColorSliderRoot.d.ts +7 -0
  232. package/lib/typescript/color-slider/ColorSliderRoot.d.ts.map +1 -0
  233. package/lib/typescript/color-slider/ColorSliderThumb.d.ts +6 -0
  234. package/lib/typescript/color-slider/ColorSliderThumb.d.ts.map +1 -0
  235. package/lib/typescript/color-slider/context.d.ts +6 -0
  236. package/lib/typescript/color-slider/context.d.ts.map +1 -0
  237. package/lib/typescript/color-slider/index.d.ts +6 -0
  238. package/lib/typescript/color-slider/index.d.ts.map +1 -0
  239. package/lib/typescript/color-slider/types.d.ts +82 -0
  240. package/lib/typescript/color-slider/types.d.ts.map +1 -0
  241. package/lib/typescript/color-slider/utils.d.ts +12 -0
  242. package/lib/typescript/color-slider/utils.d.ts.map +1 -0
  243. package/lib/typescript/color-swatch-picker/ColorSwatchPickerItem.d.ts +6 -0
  244. package/lib/typescript/color-swatch-picker/ColorSwatchPickerItem.d.ts.map +1 -0
  245. package/lib/typescript/color-swatch-picker/ColorSwatchPickerRoot.d.ts +7 -0
  246. package/lib/typescript/color-swatch-picker/ColorSwatchPickerRoot.d.ts.map +1 -0
  247. package/lib/typescript/color-swatch-picker/context.d.ts +8 -0
  248. package/lib/typescript/color-swatch-picker/context.d.ts.map +1 -0
  249. package/lib/typescript/color-swatch-picker/index.d.ts +5 -0
  250. package/lib/typescript/color-swatch-picker/index.d.ts.map +1 -0
  251. package/lib/typescript/color-swatch-picker/types.d.ts +26 -0
  252. package/lib/typescript/color-swatch-picker/types.d.ts.map +1 -0
  253. package/lib/typescript/dialog/DialogContent.d.ts +1 -1
  254. package/lib/typescript/dialog/DialogContent.d.ts.map +1 -1
  255. package/lib/typescript/dialog/DialogPopup.d.ts.map +1 -1
  256. package/lib/typescript/dialog/DialogRoot.d.ts.map +1 -1
  257. package/lib/typescript/dialog/types.d.ts +12 -0
  258. package/lib/typescript/dialog/types.d.ts.map +1 -1
  259. package/lib/typescript/field/types.d.ts +1 -1
  260. package/lib/typescript/field/types.d.ts.map +1 -1
  261. package/lib/typescript/form/types.d.ts +6 -0
  262. package/lib/typescript/form/types.d.ts.map +1 -1
  263. package/lib/typescript/index.d.ts +7 -0
  264. package/lib/typescript/index.d.ts.map +1 -1
  265. package/lib/typescript/input/types.d.ts +1 -0
  266. package/lib/typescript/input/types.d.ts.map +1 -1
  267. package/lib/typescript/link/types.d.ts +2 -2
  268. package/lib/typescript/list-item/types.d.ts +3 -2
  269. package/lib/typescript/list-item/types.d.ts.map +1 -1
  270. package/lib/typescript/portal/portal.d.ts +13 -2
  271. package/lib/typescript/portal/portal.d.ts.map +1 -1
  272. package/lib/typescript/progress-bar/types.d.ts +9 -4
  273. package/lib/typescript/progress-bar/types.d.ts.map +1 -1
  274. package/lib/typescript/radio/types.d.ts +2 -0
  275. package/lib/typescript/radio/types.d.ts.map +1 -1
  276. package/lib/typescript/select/SelectContent.d.ts.map +1 -1
  277. package/lib/typescript/slider/useSliderPointer.d.ts.map +1 -1
  278. package/lib/typescript/switch/types.d.ts +4 -4
  279. package/lib/typescript/tabs/types.d.ts +7 -2
  280. package/lib/typescript/tabs/types.d.ts.map +1 -1
  281. package/lib/typescript/utils/createPortal.web.d.ts +6 -2
  282. package/lib/typescript/utils/createPortal.web.d.ts.map +1 -1
  283. package/lib/typescript/utils/textAncestor.d.ts +13 -0
  284. package/lib/typescript/utils/textAncestor.d.ts.map +1 -0
  285. package/lib/typescript/utils/textAncestor.web.d.ts +15 -0
  286. package/lib/typescript/utils/textAncestor.web.d.ts.map +1 -0
  287. package/package.json +4 -3
  288. package/src/breadcrumbs/types.ts +13 -0
  289. package/src/checkbox/types.ts +4 -0
  290. package/src/color/Color.ts +95 -0
  291. package/src/color/index.ts +2 -0
  292. package/src/color/types.ts +19 -0
  293. package/src/color-area/ColorAreaAccessibility.tsx +94 -0
  294. package/src/color-area/ColorAreaAccessibility.web.tsx +52 -0
  295. package/src/color-area/ColorAreaRoot.tsx +326 -0
  296. package/src/color-area/ColorAreaThumb.tsx +56 -0
  297. package/src/color-area/context.tsx +5 -0
  298. package/src/color-area/index.ts +10 -0
  299. package/src/color-area/types.ts +69 -0
  300. package/src/color-area/utils.ts +51 -0
  301. package/src/color-field/ColorFieldInput.tsx +66 -0
  302. package/src/color-field/ColorFieldRoot.tsx +132 -0
  303. package/src/color-field/context.tsx +5 -0
  304. package/src/color-field/index.ts +11 -0
  305. package/src/color-field/types.ts +46 -0
  306. package/src/color-field/utils.ts +75 -0
  307. package/src/color-picker/ColorPickerRoot.tsx +91 -0
  308. package/src/color-picker/ColorPickerTrigger.tsx +96 -0
  309. package/src/color-picker/context.tsx +47 -0
  310. package/src/color-picker/index.ts +12 -0
  311. package/src/color-picker/types.ts +25 -0
  312. package/src/color-slider/ColorSliderRail.tsx +130 -0
  313. package/src/color-slider/ColorSliderRoot.tsx +222 -0
  314. package/src/color-slider/ColorSliderThumb.tsx +294 -0
  315. package/src/color-slider/context.tsx +5 -0
  316. package/src/color-slider/index.ts +16 -0
  317. package/src/color-slider/types.ts +94 -0
  318. package/src/color-slider/utils.ts +79 -0
  319. package/src/color-swatch-picker/ColorSwatchPickerItem.tsx +54 -0
  320. package/src/color-swatch-picker/ColorSwatchPickerRoot.tsx +94 -0
  321. package/src/color-swatch-picker/context.tsx +22 -0
  322. package/src/color-swatch-picker/index.ts +4 -0
  323. package/src/color-swatch-picker/types.ts +29 -0
  324. package/src/dialog/DialogContent.tsx +13 -5
  325. package/src/dialog/DialogPopup.tsx +7 -1
  326. package/src/dialog/DialogRoot.tsx +3 -1
  327. package/src/dialog/types.ts +12 -0
  328. package/src/field/types.tsx +1 -1
  329. package/src/form/types.tsx +6 -0
  330. package/src/index.ts +7 -0
  331. package/src/input/types.ts +1 -0
  332. package/src/link/types.ts +2 -2
  333. package/src/list-item/types.ts +3 -2
  334. package/src/portal/portal.tsx +17 -2
  335. package/src/progress-bar/types.ts +9 -4
  336. package/src/radio/types.ts +2 -0
  337. package/src/react-native-web.d.ts +6 -0
  338. package/src/select/SelectContent.tsx +2 -1
  339. package/src/slider/useSliderPointer.ts +3 -0
  340. package/src/switch/types.ts +4 -4
  341. package/src/tabs/types.ts +7 -2
  342. package/src/utils/createPortal.web.ts +9 -3
  343. package/src/utils/textAncestor.ts +19 -0
  344. package/src/utils/textAncestor.web.ts +19 -0
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useMemo, useRef, useState } from 'react';
4
+ import { I18nManager, PanResponder, Platform, View } from 'react-native';
5
+ import { useControllableState } from '@cdx-ui/utils';
6
+ import { parseColor } from '../color';
7
+ import { useOptionalColorPickerContext } from '../color-picker';
8
+ import { Slot } from '../slot';
9
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
10
+ import { ColorAreaAccessibility } from './ColorAreaAccessibility';
11
+ import { ColorAreaProvider } from './context';
12
+ import { clampColorChannel, snapColorChannel } from './utils';
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ function createDefaultColor() {
15
+ const color = parseColor('#FF0000');
16
+ if (!color) {
17
+ throw new Error('ColorArea default color could not be parsed');
18
+ }
19
+ return color;
20
+ }
21
+ const DEFAULT_COLOR = createDefaultColor();
22
+ const EMPTY_LAYOUT = {
23
+ width: 0,
24
+ height: 0
25
+ };
26
+ function getFinitePoint(event) {
27
+ const {
28
+ locationX: x,
29
+ locationY: y
30
+ } = event.nativeEvent;
31
+ return Number.isFinite(x) && Number.isFinite(y) ? {
32
+ x,
33
+ y
34
+ } : null;
35
+ }
36
+ export const ColorAreaRoot = /*#__PURE__*/forwardRef(({
37
+ asChild,
38
+ value: valueProp,
39
+ defaultValue,
40
+ onValueChange,
41
+ onValueChangeComplete,
42
+ colorSpace = 'hsb',
43
+ xChannel = 'saturation',
44
+ yChannel = 'brightness',
45
+ step = 1,
46
+ pageStep = 10,
47
+ isRTL = I18nManager.isRTL,
48
+ isDisabled = false,
49
+ accessibilityLabel,
50
+ children,
51
+ onLayout,
52
+ ...props
53
+ }, ref) => {
54
+ const picker = useOptionalColorPickerContext();
55
+ const usesPickerContext = picker !== null && valueProp === undefined && defaultValue === undefined;
56
+ const [localValue, setLocalValue] = useControllableState({
57
+ prop: valueProp,
58
+ defaultProp: defaultValue ?? DEFAULT_COLOR,
59
+ onChange: onValueChange
60
+ });
61
+ const value = (usesPickerContext ? picker.value : localValue) ?? DEFAULT_COLOR;
62
+ const [layout, setLayoutState] = useState(EMPTY_LAYOUT);
63
+ const [thumbSize, setThumbSizeState] = useState(EMPTY_LAYOUT);
64
+ const valueRef = useRef(value);
65
+ valueRef.current = value;
66
+ const layoutRef = useRef(layout);
67
+ layoutRef.current = layout;
68
+ const isDisabledRef = useRef(isDisabled);
69
+ isDisabledRef.current = isDisabled;
70
+ const setChannelsFromPointRef = useRef(undefined);
71
+ const lastValidPointRef = useRef(null);
72
+ const commitValue = useCallback((next, complete = false) => {
73
+ if (isDisabled) {
74
+ return;
75
+ }
76
+ valueRef.current = next;
77
+ if (usesPickerContext) {
78
+ onValueChange?.(next);
79
+ picker.onValueChange(next);
80
+ } else {
81
+ setLocalValue(next);
82
+ }
83
+ if (complete) {
84
+ onValueChangeComplete?.(next);
85
+ }
86
+ }, [isDisabled, onValueChange, onValueChangeComplete, picker, setLocalValue, usesPickerContext]);
87
+ const setXValue = useCallback((nextValue, complete = false) => {
88
+ commitValue(valueRef.current.withChannel(colorSpace, xChannel, snapColorChannel(nextValue, step)), complete);
89
+ }, [colorSpace, commitValue, step, xChannel]);
90
+ const setYValue = useCallback((nextValue, complete = false) => {
91
+ commitValue(valueRef.current.withChannel(colorSpace, yChannel, snapColorChannel(nextValue, step)), complete);
92
+ }, [colorSpace, commitValue, step, yChannel]);
93
+ const setChannelsFromPoint = useCallback((x, y, complete = false) => {
94
+ const currentLayout = layoutRef.current;
95
+ if (isDisabledRef.current || !Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(currentLayout.width) || !Number.isFinite(currentLayout.height) || currentLayout.width <= 0 || currentLayout.height <= 0) {
96
+ return;
97
+ }
98
+ const visualXRatio = clampColorChannel(x, 0, currentLayout.width) / currentLayout.width;
99
+ const xRatio = isRTL ? 1 - visualXRatio : visualXRatio;
100
+ const yRatio = 1 - clampColorChannel(y, 0, currentLayout.height) / currentLayout.height;
101
+ const next = valueRef.current.withChannel(colorSpace, xChannel, xRatio * 100).withChannel(colorSpace, yChannel, yRatio * 100);
102
+ commitValue(next, complete);
103
+ }, [colorSpace, commitValue, isRTL, xChannel, yChannel]);
104
+ setChannelsFromPointRef.current = setChannelsFromPoint;
105
+ const handleKeyDown = useCallback(event => {
106
+ if (isDisabled) {
107
+ return;
108
+ }
109
+ const key = event.nativeEvent?.key ?? event.key;
110
+ const shiftKey = event.nativeEvent?.shiftKey ?? event.shiftKey;
111
+ const increment = shiftKey ? pageStep : step;
112
+ const currentX = valueRef.current.getChannel(colorSpace, xChannel);
113
+ const currentY = valueRef.current.getChannel(colorSpace, yChannel);
114
+ let handled = true;
115
+ if (key === 'ArrowLeft') {
116
+ setXValue(currentX + (isRTL ? increment : -increment), true);
117
+ } else if (key === 'ArrowRight') {
118
+ setXValue(currentX + (isRTL ? -increment : increment), true);
119
+ } else if (key === 'ArrowUp') {
120
+ setYValue(currentY + increment, true);
121
+ } else if (key === 'ArrowDown') {
122
+ setYValue(currentY - increment, true);
123
+ } else if (key === 'PageUp') {
124
+ setYValue(currentY + pageStep, true);
125
+ } else if (key === 'PageDown') {
126
+ setYValue(currentY - pageStep, true);
127
+ } else if (key === 'Home') {
128
+ setXValue(currentX + (isRTL ? pageStep : -pageStep), true);
129
+ } else if (key === 'End') {
130
+ setXValue(currentX + (isRTL ? -pageStep : pageStep), true);
131
+ } else {
132
+ handled = false;
133
+ }
134
+ if (handled) {
135
+ event.preventDefault?.();
136
+ }
137
+ }, [colorSpace, isDisabled, isRTL, pageStep, setXValue, setYValue, step, xChannel, yChannel]);
138
+ const panResponder = useMemo(() => {
139
+ const updateFromEvent = (event, complete = false) => {
140
+ const point = getFinitePoint(event);
141
+ if (point) {
142
+ lastValidPointRef.current = point;
143
+ }
144
+ const resolvedPoint = point ?? lastValidPointRef.current;
145
+ if (resolvedPoint) {
146
+ setChannelsFromPointRef.current?.(resolvedPoint.x, resolvedPoint.y, complete);
147
+ }
148
+ };
149
+ return PanResponder.create({
150
+ onStartShouldSetPanResponder: () => !isDisabledRef.current,
151
+ onMoveShouldSetPanResponder: () => !isDisabledRef.current,
152
+ onPanResponderTerminationRequest: () => false,
153
+ onShouldBlockNativeResponder: () => true,
154
+ onPanResponderGrant: event => {
155
+ lastValidPointRef.current = null;
156
+ updateFromEvent(event);
157
+ },
158
+ onPanResponderMove: event => {
159
+ updateFromEvent(event);
160
+ },
161
+ onPanResponderRelease: event => {
162
+ updateFromEvent(event, true);
163
+ lastValidPointRef.current = null;
164
+ },
165
+ onPanResponderTerminate: event => {
166
+ updateFromEvent(event, true);
167
+ lastValidPointRef.current = null;
168
+ }
169
+ });
170
+ }, []);
171
+ const setLayout = useCallback(next => {
172
+ setLayoutState(previous => previous.width === next.width && previous.height === next.height ? previous : next);
173
+ }, []);
174
+ const setThumbSize = useCallback(next => {
175
+ setThumbSizeState(previous => previous.width === next.width && previous.height === next.height ? previous : next);
176
+ }, []);
177
+ const handleLayout = useCallback(event => {
178
+ const {
179
+ width,
180
+ height
181
+ } = event.nativeEvent.layout;
182
+ setLayout({
183
+ width,
184
+ height
185
+ });
186
+ onLayout?.(event);
187
+ }, [onLayout, setLayout]);
188
+ const xValue = value.getChannel(colorSpace, xChannel);
189
+ const yValue = value.getChannel(colorSpace, yChannel);
190
+ const contextValue = useMemo(() => ({
191
+ value,
192
+ xValue,
193
+ yValue,
194
+ xPercent: clampColorChannel(xValue),
195
+ yPercent: clampColorChannel(yValue),
196
+ layout,
197
+ thumbSize,
198
+ isRTL,
199
+ isDisabled,
200
+ step,
201
+ pageStep,
202
+ setLayout,
203
+ setThumbSize,
204
+ setChannelsFromPoint,
205
+ setXValue,
206
+ setYValue,
207
+ handleKeyDown
208
+ }), [handleKeyDown, isDisabled, isRTL, layout, pageStep, setChannelsFromPoint, setLayout, setThumbSize, setXValue, setYValue, step, thumbSize, value, xValue, yValue]);
209
+ const Comp = asChild ? Slot : View;
210
+ return /*#__PURE__*/_jsx(ColorAreaProvider, {
211
+ value: contextValue,
212
+ children: /*#__PURE__*/_jsxs(Comp, {
213
+ ref: ref,
214
+ ...props,
215
+ ...panResponder.panHandlers,
216
+ onLayout: handleLayout,
217
+ role: Platform.OS === 'web' ? 'group' : undefined,
218
+ "aria-label": props['aria-label'] ?? accessibilityLabel,
219
+ accessibilityLabel: accessibilityLabel,
220
+ accessibilityState: {
221
+ disabled: isDisabled
222
+ },
223
+ ...mergeDataAttributes(props, dataAttributes({
224
+ disabled: isDisabled,
225
+ colorSpace,
226
+ xChannel,
227
+ yChannel
228
+ })),
229
+ children: [children, /*#__PURE__*/_jsx(ColorAreaAccessibility, {
230
+ accessibilityLabel: accessibilityLabel
231
+ })]
232
+ })
233
+ });
234
+ });
235
+ ColorAreaRoot.displayName = 'ColorAreaRoot';
236
+ //# sourceMappingURL=ColorAreaRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useMemo","useRef","useState","I18nManager","PanResponder","Platform","View","useControllableState","parseColor","useOptionalColorPickerContext","Slot","dataAttributes","mergeDataAttributes","ColorAreaAccessibility","ColorAreaProvider","clampColorChannel","snapColorChannel","jsx","_jsx","jsxs","_jsxs","createDefaultColor","color","Error","DEFAULT_COLOR","EMPTY_LAYOUT","width","height","getFinitePoint","event","locationX","x","locationY","y","nativeEvent","Number","isFinite","ColorAreaRoot","asChild","value","valueProp","defaultValue","onValueChange","onValueChangeComplete","colorSpace","xChannel","yChannel","step","pageStep","isRTL","isDisabled","accessibilityLabel","children","onLayout","props","ref","picker","usesPickerContext","undefined","localValue","setLocalValue","prop","defaultProp","onChange","layout","setLayoutState","thumbSize","setThumbSizeState","valueRef","current","layoutRef","isDisabledRef","setChannelsFromPointRef","lastValidPointRef","commitValue","next","complete","setXValue","nextValue","withChannel","setYValue","setChannelsFromPoint","currentLayout","visualXRatio","xRatio","yRatio","handleKeyDown","key","shiftKey","increment","currentX","getChannel","currentY","handled","preventDefault","panResponder","updateFromEvent","point","resolvedPoint","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderTerminationRequest","onShouldBlockNativeResponder","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate","setLayout","previous","setThumbSize","handleLayout","xValue","yValue","contextValue","xPercent","yPercent","Comp","panHandlers","role","OS","accessibilityState","disabled","displayName"],"sourceRoot":"../../../src","sources":["color-area/ColorAreaRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useMemo } from 'react';
4
+ import { View } from 'react-native';
5
+ import { Slot } from '../slot';
6
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
7
+ import { useColorAreaContext } from './context';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const ColorAreaThumb = /*#__PURE__*/forwardRef(({
10
+ asChild,
11
+ style,
12
+ onLayout,
13
+ children,
14
+ ...props
15
+ }, ref) => {
16
+ const {
17
+ xPercent,
18
+ yPercent,
19
+ layout,
20
+ thumbSize,
21
+ isRTL,
22
+ setThumbSize
23
+ } = useColorAreaContext();
24
+ const positionStyle = useMemo(() => {
25
+ const visualXPercent = isRTL ? 100 - xPercent : xPercent;
26
+ const translateX = visualXPercent / 100 * layout.width - thumbSize.width / 2;
27
+ const translateY = (100 - yPercent) / 100 * layout.height - thumbSize.height / 2;
28
+ return {
29
+ position: 'absolute',
30
+ top: 0,
31
+ left: 0,
32
+ pointerEvents: 'none',
33
+ transform: [{
34
+ translateX
35
+ }, {
36
+ translateY
37
+ }]
38
+ };
39
+ }, [isRTL, layout.height, layout.width, thumbSize.height, thumbSize.width, xPercent, yPercent]);
40
+ const handleLayout = useCallback(event => {
41
+ const {
42
+ width,
43
+ height
44
+ } = event.nativeEvent.layout;
45
+ setThumbSize({
46
+ width,
47
+ height
48
+ });
49
+ onLayout?.(event);
50
+ }, [onLayout, setThumbSize]);
51
+ const Comp = asChild ? Slot : View;
52
+ return /*#__PURE__*/_jsx(Comp, {
53
+ ref: ref,
54
+ ...props,
55
+ accessible: false,
56
+ accessibilityElementsHidden: true,
57
+ importantForAccessibility: "no-hide-descendants",
58
+ onLayout: handleLayout,
59
+ style: [positionStyle, style],
60
+ ...mergeDataAttributes(props, dataAttributes({
61
+ slot: 'color-area-thumb'
62
+ })),
63
+ children: children
64
+ });
65
+ });
66
+ ColorAreaThumb.displayName = 'ColorAreaThumb';
67
+ //# sourceMappingURL=ColorAreaThumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useMemo","View","Slot","dataAttributes","mergeDataAttributes","useColorAreaContext","jsx","_jsx","ColorAreaThumb","asChild","style","onLayout","children","props","ref","xPercent","yPercent","layout","thumbSize","isRTL","setThumbSize","positionStyle","visualXPercent","translateX","width","translateY","height","position","top","left","pointerEvents","transform","handleLayout","event","nativeEvent","Comp","accessible","accessibilityElementsHidden","importantForAccessibility","slot","displayName"],"sourceRoot":"../../../src","sources":["color-area/ColorAreaThumb.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACxD,SAASC,IAAI,QAAgD,cAAc;AAC3E,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,mBAAmB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAKhD,OAAO,MAAMC,cAAc,gBAAGV,UAAU,CACtC,CAAC;EAAEW,OAAO;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC;EAAa,CAAC,GAAGf,mBAAmB,CAAC,CAAC;EAE5F,MAAMgB,aAAa,GAAGrB,OAAO,CAAY,MAAM;IAC7C,MAAMsB,cAAc,GAAGH,KAAK,GAAG,GAAG,GAAGJ,QAAQ,GAAGA,QAAQ;IACxD,MAAMQ,UAAU,GAAID,cAAc,GAAG,GAAG,GAAIL,MAAM,CAACO,KAAK,GAAGN,SAAS,CAACM,KAAK,GAAG,CAAC;IAC9E,MAAMC,UAAU,GAAI,CAAC,GAAG,GAAGT,QAAQ,IAAI,GAAG,GAAIC,MAAM,CAACS,MAAM,GAAGR,SAAS,CAACQ,MAAM,GAAG,CAAC;IAElF,OAAO;MACLC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,aAAa,EAAE,MAAM;MACrBC,SAAS,EAAE,CAAC;QAAER;MAAW,CAAC,EAAE;QAAEE;MAAW,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAACN,KAAK,EAAEF,MAAM,CAACS,MAAM,EAAET,MAAM,CAACO,KAAK,EAAEN,SAAS,CAACQ,MAAM,EAAER,SAAS,CAACM,KAAK,EAAET,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAE/F,MAAMgB,YAAY,GAAGjC,WAAW,CAC7BkC,KAAwB,IAAK;IAC5B,MAAM;MAAET,KAAK;MAAEE;IAAO,CAAC,GAAGO,KAAK,CAACC,WAAW,CAACjB,MAAM;IAClDG,YAAY,CAAC;MAAEI,KAAK;MAAEE;IAAO,CAAC,CAAC;IAC/Bf,QAAQ,GAAGsB,KAAK,CAAC;EACnB,CAAC,EACD,CAACtB,QAAQ,EAAES,YAAY,CACzB,CAAC;EAED,MAAMe,IAAI,GAAG1B,OAAO,GAAGP,IAAI,GAAGD,IAAI;EAElC,oBACEM,IAAA,CAAC4B,IAAI;IACHrB,GAAG,EAAEA,GAAI;IAAA,GACLD,KAAK;IACTuB,UAAU,EAAE,KAAM;IAClBC,2BAA2B;IAC3BC,yBAAyB,EAAC,qBAAqB;IAC/C3B,QAAQ,EAAEqB,YAAa;IACvBtB,KAAK,EAAE,CAACW,aAAa,EAAEX,KAAK,CAAE;IAAA,GAC1BN,mBAAmB,CAACS,KAAK,EAAEV,cAAc,CAAC;MAAEoC,IAAI,EAAE;IAAmB,CAAC,CAAC,CAAC;IAAA3B,QAAA,EAE3EA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDJ,cAAc,CAACgC,WAAW,GAAG,gBAAgB","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { createContext } from '@cdx-ui/utils';
4
+ export const [ColorAreaProvider, useColorAreaContext] = createContext('ColorAreaContext');
5
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","ColorAreaProvider","useColorAreaContext"],"sourceRoot":"../../../src","sources":["color-area/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAG7C,OAAO,MAAM,CAACC,iBAAiB,EAAEC,mBAAmB,CAAC,GACnDF,aAAa,CAAwB,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { ColorAreaRoot } from './ColorAreaRoot';
4
+ export { ColorAreaThumb } from './ColorAreaThumb';
5
+ export { useColorAreaContext } from './context';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ColorAreaRoot","ColorAreaThumb","useColorAreaContext"],"sourceRoot":"../../../src","sources":["color-area/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAiC,iBAAiB;AACxE,SAASC,cAAc,QAAkC,kBAAkB;AAC3E,SAASC,mBAAmB,QAAQ,WAAW","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["color-area/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ export function clampColorChannel(value, min = 0, max = 100) {
4
+ if (!Number.isFinite(value)) {
5
+ return min;
6
+ }
7
+ return Math.min(max, Math.max(min, value));
8
+ }
9
+ export function snapColorChannel(value, step, min = 0, max = 100) {
10
+ const clamped = clampColorChannel(value, min, max);
11
+ const snapped = step > 0 ? min + Math.round((clamped - min) / step) * step : clamped;
12
+ return clampColorChannel(snapped, min, max);
13
+ }
14
+ function describeColor(color) {
15
+ const hue = clampColorChannel(color.getChannel('hsb', 'hue'), 0, 360);
16
+ const saturation = clampColorChannel(color.getChannel('hsb', 'saturation'));
17
+ const brightness = clampColorChannel(color.getChannel('hsb', 'brightness'));
18
+ if (brightness <= 10) {
19
+ return 'black';
20
+ }
21
+ if (saturation <= 10) {
22
+ if (brightness >= 90) {
23
+ return 'white';
24
+ }
25
+ return brightness < 45 ? 'dark gray' : brightness > 75 ? 'light gray' : 'gray';
26
+ }
27
+ const names = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', 'magenta'];
28
+ const index = Math.round((hue % 360 + 360) % 360 / 45) % names.length;
29
+ const tone = brightness < 40 ? 'dark ' : brightness > 80 ? 'light ' : '';
30
+ const intensity = saturation > 75 ? 'vibrant ' : saturation < 40 ? 'muted ' : '';
31
+ return `${tone}${intensity}${names[index]}`;
32
+ }
33
+ export function colorAreaValueText(color, changedChannel) {
34
+ const saturation = Math.round(clampColorChannel(color.getChannel('hsb', 'saturation')));
35
+ const brightness = Math.round(clampColorChannel(color.getChannel('hsb', 'brightness')));
36
+ const colorName = describeColor(color);
37
+ if (changedChannel === 'saturation') {
38
+ return `Saturation ${String(saturation)}%, ${colorName}`;
39
+ }
40
+ if (changedChannel === 'brightness') {
41
+ return `Brightness ${String(brightness)}%, ${colorName}`;
42
+ }
43
+ return `Saturation ${String(saturation)}%, Brightness ${String(brightness)}%, ${colorName}`;
44
+ }
45
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clampColorChannel","value","min","max","Number","isFinite","Math","snapColorChannel","step","clamped","snapped","round","describeColor","color","hue","getChannel","saturation","brightness","names","index","length","tone","intensity","colorAreaValueText","changedChannel","colorName","String"],"sourceRoot":"../../../src","sources":["color-area/utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useEffect, useState } from 'react';
4
+ import { InputField } from '../input';
5
+ import { useColorFieldContext } from './context';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const ColorFieldInput = /*#__PURE__*/forwardRef(({
8
+ onChangeText,
9
+ onFocus,
10
+ onBlur,
11
+ editable,
12
+ keyboardType,
13
+ autoCapitalize = 'none',
14
+ autoCorrect = false,
15
+ ...props
16
+ }, ref) => {
17
+ const {
18
+ value,
19
+ colorSpace,
20
+ disabled,
21
+ readOnly,
22
+ invalid,
23
+ required,
24
+ commitText,
25
+ formatValue
26
+ } = useColorFieldContext();
27
+ const [text, setText] = useState(formatValue);
28
+ const [isEditing, setIsEditing] = useState(false);
29
+ useEffect(() => {
30
+ if (!isEditing) {
31
+ setText(formatValue());
32
+ }
33
+ }, [formatValue, isEditing, value]);
34
+ return /*#__PURE__*/_jsx(InputField, {
35
+ ref: ref,
36
+ ...props,
37
+ value: text,
38
+ editable: editable ?? !(disabled || readOnly),
39
+ disabled: disabled,
40
+ isDisabled: disabled,
41
+ isReadOnly: readOnly,
42
+ isInvalid: invalid,
43
+ isRequired: required,
44
+ keyboardType: keyboardType ?? (colorSpace ? 'decimal-pad' : 'default'),
45
+ autoCapitalize: autoCapitalize,
46
+ autoCorrect: autoCorrect,
47
+ onChangeText: nextText => {
48
+ onChangeText?.(nextText);
49
+ setText(nextText);
50
+ commitText(nextText);
51
+ },
52
+ onFocus: event => {
53
+ setIsEditing(true);
54
+ onFocus?.(event);
55
+ },
56
+ onBlur: event => {
57
+ setIsEditing(false);
58
+ onBlur?.(event);
59
+ }
60
+ });
61
+ });
62
+ ColorFieldInput.displayName = 'ColorFieldInput';
63
+ //# sourceMappingURL=ColorFieldInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useEffect","useState","InputField","useColorFieldContext","jsx","_jsx","ColorFieldInput","onChangeText","onFocus","onBlur","editable","keyboardType","autoCapitalize","autoCorrect","props","ref","value","colorSpace","disabled","readOnly","invalid","required","commitText","formatValue","text","setText","isEditing","setIsEditing","isDisabled","isReadOnly","isInvalid","isRequired","nextText","event","displayName"],"sourceRoot":"../../../src","sources":["color-field/ColorFieldInput.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAEvD,SAASC,UAAU,QAAQ,UAAU;AACrC,SAASC,oBAAoB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAKjD,OAAO,MAAMC,eAAe,gBAAGP,UAAU,CACvC,CACE;EACEQ,YAAY;EACZC,OAAO;EACPC,MAAM;EACNC,QAAQ;EACRC,YAAY;EACZC,cAAc,GAAG,MAAM;EACvBC,WAAW,GAAG,KAAK;EACnB,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAM;IAAEC,KAAK;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,UAAU;IAAEC;EAAY,CAAC,GACzFpB,oBAAoB,CAAC,CAAC;EACxB,MAAM,CAACqB,IAAI,EAAEC,OAAO,CAAC,GAAGxB,QAAQ,CAACsB,WAAW,CAAC;EAC7C,MAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAG1B,QAAQ,CAAC,KAAK,CAAC;EAEjDD,SAAS,CAAC,MAAM;IACd,IAAI,CAAC0B,SAAS,EAAE;MACdD,OAAO,CAACF,WAAW,CAAC,CAAC,CAAC;IACxB;EACF,CAAC,EAAE,CAACA,WAAW,EAAEG,SAAS,EAAEV,KAAK,CAAC,CAAC;EAEnC,oBACEX,IAAA,CAACH,UAAU;IACTa,GAAG,EAAEA,GAAI;IAAA,GACLD,KAAK;IACTE,KAAK,EAAEQ,IAAK;IACZd,QAAQ,EAAEA,QAAQ,IAAI,EAAEQ,QAAQ,IAAIC,QAAQ,CAAE;IAC9CD,QAAQ,EAAEA,QAAS;IACnBU,UAAU,EAAEV,QAAS;IACrBW,UAAU,EAAEV,QAAS;IACrBW,SAAS,EAAEV,OAAQ;IACnBW,UAAU,EAAEV,QAAS;IACrBV,YAAY,EAAEA,YAAY,KAAKM,UAAU,GAAG,aAAa,GAAG,SAAS,CAAE;IACvEL,cAAc,EAAEA,cAAe;IAC/BC,WAAW,EAAEA,WAAY;IACzBN,YAAY,EAAGyB,QAAQ,IAAK;MAC1BzB,YAAY,GAAGyB,QAAQ,CAAC;MACxBP,OAAO,CAACO,QAAQ,CAAC;MACjBV,UAAU,CAACU,QAAQ,CAAC;IACtB,CAAE;IACFxB,OAAO,EAAGyB,KAAK,IAAK;MAClBN,YAAY,CAAC,IAAI,CAAC;MAClBnB,OAAO,GAAGyB,KAAK,CAAC;IAClB,CAAE;IACFxB,MAAM,EAAGwB,KAAK,IAAK;MACjBN,YAAY,CAAC,KAAK,CAAC;MACnBlB,MAAM,GAAGwB,KAAK,CAAC;IACjB;EAAE,CACH,CAAC;AAEN,CACF,CAAC;AAED3B,eAAe,CAAC4B,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useMemo, useRef } from 'react';
4
+ import { View } from 'react-native';
5
+ import { useControllableState, useFormControl } from '@cdx-ui/utils';
6
+ import { useOptionalColorPickerContext } from '../color-picker';
7
+ import { Slot } from '../slot';
8
+ import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
9
+ import { ColorFieldProvider } from './context';
10
+ import { formatColorFieldValue, parseColorFieldValue } from './utils';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ export const ColorFieldRoot = /*#__PURE__*/forwardRef(({
13
+ asChild,
14
+ value: valueProp,
15
+ defaultValue,
16
+ onValueChange,
17
+ colorSpace,
18
+ channel,
19
+ isDisabled,
20
+ isReadOnly,
21
+ isInvalid,
22
+ isRequired,
23
+ children,
24
+ ...props
25
+ }, ref) => {
26
+ const picker = useOptionalColorPickerContext();
27
+ const usesPickerContext = picker !== null && valueProp === undefined && defaultValue === undefined;
28
+ const [localValue, setLocalValue] = useControllableState({
29
+ prop: valueProp,
30
+ defaultProp: defaultValue,
31
+ onChange: onValueChange
32
+ });
33
+ const value = usesPickerContext ? picker.value : localValue;
34
+ const valueRef = useRef(value);
35
+ valueRef.current = value;
36
+ const formControl = useFormControl({
37
+ isDisabled,
38
+ isReadOnly,
39
+ isInvalid,
40
+ isRequired
41
+ });
42
+ const disabled = Boolean(formControl.disabled);
43
+ const readOnly = Boolean(formControl.readOnly);
44
+ const invalid = Boolean(formControl['aria-invalid']);
45
+ const required = Boolean(formControl.required);
46
+ const configuration = useMemo(() => channel ? {
47
+ colorSpace,
48
+ channel
49
+ } : {
50
+ colorSpace: undefined,
51
+ channel: undefined
52
+ }, [channel, colorSpace]);
53
+ const commitText = useCallback(text => {
54
+ if (disabled || readOnly) {
55
+ return undefined;
56
+ }
57
+ const nextValue = parseColorFieldValue(text, valueRef.current, configuration);
58
+ if (!nextValue) {
59
+ return undefined;
60
+ }
61
+ valueRef.current = nextValue;
62
+ if (usesPickerContext) {
63
+ onValueChange?.(nextValue);
64
+ picker.onValueChange(nextValue);
65
+ } else {
66
+ setLocalValue(nextValue);
67
+ }
68
+ return nextValue;
69
+ }, [configuration, disabled, onValueChange, picker, readOnly, setLocalValue, usesPickerContext]);
70
+ const formatValue = useCallback(() => formatColorFieldValue(valueRef.current, configuration), [configuration]);
71
+ const contextValue = useMemo(() => ({
72
+ ...configuration,
73
+ value,
74
+ disabled,
75
+ readOnly,
76
+ invalid,
77
+ required,
78
+ commitText,
79
+ formatValue
80
+ }), [commitText, configuration, disabled, formatValue, invalid, readOnly, required, value]);
81
+ const Comp = asChild ? Slot : View;
82
+ return /*#__PURE__*/_jsx(ColorFieldProvider, {
83
+ value: contextValue,
84
+ children: /*#__PURE__*/_jsx(Comp, {
85
+ ref: ref,
86
+ ...props,
87
+ ...mergeDataAttributes(props, dataAttributes({
88
+ disabled,
89
+ invalid,
90
+ readonly: readOnly,
91
+ required,
92
+ colorSpace: configuration.colorSpace,
93
+ channel: configuration.channel
94
+ })),
95
+ children: children
96
+ })
97
+ });
98
+ });
99
+ ColorFieldRoot.displayName = 'ColorFieldRoot';
100
+ //# sourceMappingURL=ColorFieldRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useMemo","useRef","View","useControllableState","useFormControl","useOptionalColorPickerContext","Slot","dataAttributes","mergeDataAttributes","ColorFieldProvider","formatColorFieldValue","parseColorFieldValue","jsx","_jsx","ColorFieldRoot","asChild","value","valueProp","defaultValue","onValueChange","colorSpace","channel","isDisabled","isReadOnly","isInvalid","isRequired","children","props","ref","picker","usesPickerContext","undefined","localValue","setLocalValue","prop","defaultProp","onChange","valueRef","current","formControl","disabled","Boolean","readOnly","invalid","required","configuration","commitText","text","nextValue","formatValue","contextValue","Comp","readonly","displayName"],"sourceRoot":"../../../src","sources":["color-field/ColorFieldRoot.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { createContext } from '@cdx-ui/utils';
4
+ export const [ColorFieldProvider, useColorFieldContext] = createContext('ColorFieldContext');
5
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","ColorFieldProvider","useColorFieldContext"],"sourceRoot":"../../../src","sources":["color-field/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAG7C,OAAO,MAAM,CAACC,kBAAkB,EAAEC,oBAAoB,CAAC,GACrDF,aAAa,CAAyB,mBAAmB,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { ColorFieldRoot } from './ColorFieldRoot';
4
+ export { ColorFieldInput } from './ColorFieldInput';
5
+ export { useColorFieldContext } from './context';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ColorFieldRoot","ColorFieldInput","useColorFieldContext"],"sourceRoot":"../../../src","sources":["color-field/index.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,kBAAkB;AAEjD,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,oBAAoB,QAAQ,WAAW","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["color-field/types.ts"],"mappings":"","ignoreList":[]}