entangle-ui 0.9.0 → 0.11.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 (1053) hide show
  1. package/CHANGELOG.md +766 -0
  2. package/README.md +8 -6
  3. package/dist/esm/assets/src/components/controls/FileTree/FileTree.css.ts.vanilla-YmktPvnr.css +48 -0
  4. package/dist/esm/assets/src/components/controls/Select/{Select.css.ts.vanilla-oZnFUorL.css → Select.css.ts.vanilla-Cpu2BvWL.css} +3 -0
  5. package/dist/esm/assets/src/components/controls/TreeView/{TreeNode.css.ts.vanilla-B_f8pUb8.css → TreeNode.css.ts.vanilla-DXPJRWZZ.css} +31 -24
  6. package/dist/esm/assets/src/components/editor/AssetBrowser/AssetBrowser.css.ts.vanilla-B2S4cEiY.css +262 -0
  7. package/dist/esm/assets/src/components/editor/Minimap/Minimap.css.ts.vanilla--rNdWQwy.css +133 -0
  8. package/dist/esm/assets/src/components/editor/NodeGraph/NodeGraph.css.ts.vanilla-ClF4YZvl.css +401 -0
  9. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertyPanel.css.ts.vanilla-RYv_XgOu.css → PropertyPanel.css.ts.vanilla-Dpr_k5I3.css} +4 -1
  10. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertyRow.css.ts.vanilla-C3YZnnHb.css → PropertyRow.css.ts.vanilla-pq1Uhd2a.css} +15 -8
  11. package/dist/esm/assets/src/components/editor/PropertyInspector/{PropertySection.css.ts.vanilla-DK12opZc.css → PropertySection.css.ts.vanilla-6MWWAqyd.css} +50 -32
  12. package/dist/esm/assets/src/components/editor/Timeline/Timeline.css.ts.vanilla-DDX6Zalo.css +203 -0
  13. package/dist/esm/assets/src/components/feedback/LogView/LogView.css.ts.vanilla-nB5ENOpw.css +312 -0
  14. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-B5iVe5S2.css +88 -0
  15. package/dist/esm/assets/src/components/navigation/PathBar/PathBar.css.ts.vanilla-BIEzQQOf.css +10 -0
  16. package/dist/esm/assets/src/components/primitives/viewport/Viewport.css.ts.vanilla-CkFBJ7Vo.css +65 -0
  17. package/dist/esm/assets/src/components/shell/FloatingPanel/{FloatingPanel.css.ts.vanilla-1rIAXEFp.css → FloatingPanel.css.ts.vanilla-CRaeYJ2b.css} +20 -13
  18. package/dist/esm/assets/src/theme/{darkTheme.css.ts.vanilla-ab1WD4dr.css → darkTheme.css.ts.vanilla-BHZ3ecRn.css} +3 -3
  19. package/dist/esm/assets/src/theme/{lightTheme.css.ts.vanilla-OaRI_wIc.css → lightTheme.css.ts.vanilla-Ct6f9Iym.css} +3 -3
  20. package/dist/esm/components/Icons/AddIcon.js.map +1 -1
  21. package/dist/esm/components/Icons/AiChatIcon.js.map +1 -1
  22. package/dist/esm/components/Icons/AiSparklesIcon.js.map +1 -1
  23. package/dist/esm/components/Icons/ArchiveIcon.js.map +1 -1
  24. package/dist/esm/components/Icons/ArrowDownIcon.js.map +1 -1
  25. package/dist/esm/components/Icons/ArrowLeftIcon.js.map +1 -1
  26. package/dist/esm/components/Icons/ArrowRightIcon.js.map +1 -1
  27. package/dist/esm/components/Icons/ArrowUpIcon.js.map +1 -1
  28. package/dist/esm/components/Icons/BookmarkIcon.js.map +1 -1
  29. package/dist/esm/components/Icons/BugIcon.js.map +1 -1
  30. package/dist/esm/components/Icons/BuildingIcon.js.map +1 -1
  31. package/dist/esm/components/Icons/CalendarIcon.js.map +1 -1
  32. package/dist/esm/components/Icons/CameraIcon.js +31 -0
  33. package/dist/esm/components/Icons/CameraIcon.js.map +1 -0
  34. package/dist/esm/components/Icons/CheckIcon.js.map +1 -1
  35. package/dist/esm/components/Icons/ChevronDownIcon.js.map +1 -1
  36. package/dist/esm/components/Icons/ChevronLeftIcon.js.map +1 -1
  37. package/dist/esm/components/Icons/ChevronRightIcon.js.map +1 -1
  38. package/dist/esm/components/Icons/ChevronUpIcon.js.map +1 -1
  39. package/dist/esm/components/Icons/CircleIcon.js.map +1 -1
  40. package/dist/esm/components/Icons/ClockIcon.js.map +1 -1
  41. package/dist/esm/components/Icons/CloseIcon.js.map +1 -1
  42. package/dist/esm/components/Icons/CloudUploadIcon.js.map +1 -1
  43. package/dist/esm/components/Icons/CodeIcon.js.map +1 -1
  44. package/dist/esm/components/Icons/CopyIcon.js.map +1 -1
  45. package/dist/esm/components/Icons/CubeIcon.js +31 -0
  46. package/dist/esm/components/Icons/CubeIcon.js.map +1 -0
  47. package/dist/esm/components/Icons/CutIcon.js.map +1 -1
  48. package/dist/esm/components/Icons/DotsHorizontalIcon.js.map +1 -1
  49. package/dist/esm/components/Icons/DotsVerticalIcon.js.map +1 -1
  50. package/dist/esm/components/Icons/DownloadIcon.js.map +1 -1
  51. package/dist/esm/components/Icons/EditIcon.js.map +1 -1
  52. package/dist/esm/components/Icons/ErrorIcon.js.map +1 -1
  53. package/dist/esm/components/Icons/ExternalLinkIcon.js.map +1 -1
  54. package/dist/esm/components/Icons/EyeDropperIcon.js.map +1 -1
  55. package/dist/esm/components/Icons/EyeIcon.js.map +1 -1
  56. package/dist/esm/components/Icons/FileTextIcon.js.map +1 -1
  57. package/dist/esm/components/Icons/FilterIcon.js.map +1 -1
  58. package/dist/esm/components/Icons/FirstIcon.js.map +1 -1
  59. package/dist/esm/components/Icons/FolderCogIcon.js.map +1 -1
  60. package/dist/esm/components/Icons/FolderIcon.js.map +1 -1
  61. package/dist/esm/components/Icons/FolderOpenIcon.js +2 -2
  62. package/dist/esm/components/Icons/FolderOpenIcon.js.map +1 -1
  63. package/dist/esm/components/Icons/FullscreenIcon.js.map +1 -1
  64. package/dist/esm/components/Icons/GitBranchIcon.js.map +1 -1
  65. package/dist/esm/components/Icons/GridIcon.js.map +1 -1
  66. package/dist/esm/components/Icons/HeartIcon.js.map +1 -1
  67. package/dist/esm/components/Icons/HelpIcon.js.map +1 -1
  68. package/dist/esm/components/Icons/HomeIcon.js.map +1 -1
  69. package/dist/esm/components/Icons/ImageIcon.js +31 -0
  70. package/dist/esm/components/Icons/ImageIcon.js.map +1 -0
  71. package/dist/esm/components/Icons/InfoIcon.js.map +1 -1
  72. package/dist/esm/components/Icons/LastIcon.js.map +1 -1
  73. package/dist/esm/components/Icons/LinkIcon.js.map +1 -1
  74. package/dist/esm/components/Icons/ListIcon.js.map +1 -1
  75. package/dist/esm/components/Icons/LockIcon.js.map +1 -1
  76. package/dist/esm/components/Icons/MaximizeIcon.js.map +1 -1
  77. package/dist/esm/components/Icons/MenuIcon.js.map +1 -1
  78. package/dist/esm/components/Icons/MinimizeIcon.js.map +1 -1
  79. package/dist/esm/components/Icons/MinusIcon.js.map +1 -1
  80. package/dist/esm/components/Icons/OrbitIcon.js +31 -0
  81. package/dist/esm/components/Icons/OrbitIcon.js.map +1 -0
  82. package/dist/esm/components/Icons/PasteIcon.js.map +1 -1
  83. package/dist/esm/components/Icons/PauseIcon.js +2 -2
  84. package/dist/esm/components/Icons/PauseIcon.js.map +1 -1
  85. package/dist/esm/components/Icons/PinIcon.js.map +1 -1
  86. package/dist/esm/components/Icons/PlayIcon.js.map +1 -1
  87. package/dist/esm/components/Icons/RedoIcon.js.map +1 -1
  88. package/dist/esm/components/Icons/RefreshIcon.js.map +1 -1
  89. package/dist/esm/components/Icons/RobotIcon.js.map +1 -1
  90. package/dist/esm/components/Icons/RotateIcon.js +32 -0
  91. package/dist/esm/components/Icons/RotateIcon.js.map +1 -0
  92. package/dist/esm/components/Icons/SaveIcon.js.map +1 -1
  93. package/dist/esm/components/Icons/SearchIcon.js.map +1 -1
  94. package/dist/esm/components/Icons/SendIcon.js.map +1 -1
  95. package/dist/esm/components/Icons/SettingsIcon.js.map +1 -1
  96. package/dist/esm/components/Icons/SortIcon.js.map +1 -1
  97. package/dist/esm/components/Icons/SpinIcon.js +32 -0
  98. package/dist/esm/components/Icons/SpinIcon.js.map +1 -0
  99. package/dist/esm/components/Icons/StarIcon.js.map +1 -1
  100. package/dist/esm/components/Icons/StopIcon.js.map +1 -1
  101. package/dist/esm/components/Icons/SuccessIcon.js.map +1 -1
  102. package/dist/esm/components/Icons/TagIcon.js.map +1 -1
  103. package/dist/esm/components/Icons/TangentAlignedIcon.js.map +1 -1
  104. package/dist/esm/components/Icons/TangentAutoIcon.js.map +1 -1
  105. package/dist/esm/components/Icons/TangentFreeIcon.js.map +1 -1
  106. package/dist/esm/components/Icons/TangentLinearIcon.js.map +1 -1
  107. package/dist/esm/components/Icons/TangentMirroredIcon.js.map +1 -1
  108. package/dist/esm/components/Icons/TangentStepIcon.js.map +1 -1
  109. package/dist/esm/components/Icons/TerminalIcon.js.map +1 -1
  110. package/dist/esm/components/Icons/TrashIcon.js.map +1 -1
  111. package/dist/esm/components/Icons/UndoIcon.js.map +1 -1
  112. package/dist/esm/components/Icons/UnlinkIcon.js.map +1 -1
  113. package/dist/esm/components/Icons/UnlockIcon.js.map +1 -1
  114. package/dist/esm/components/Icons/UploadIcon.js.map +1 -1
  115. package/dist/esm/components/Icons/UserIcon.js.map +1 -1
  116. package/dist/esm/components/Icons/UsersIcon.js.map +1 -1
  117. package/dist/esm/components/Icons/WarningIcon.js.map +1 -1
  118. package/dist/esm/components/Icons/ZoomFitIcon.js +32 -0
  119. package/dist/esm/components/Icons/ZoomFitIcon.js.map +1 -0
  120. package/dist/esm/components/Icons/ZoomInIcon.js.map +1 -1
  121. package/dist/esm/components/Icons/ZoomOutIcon.js.map +1 -1
  122. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js +3 -3
  123. package/dist/esm/components/controls/CartesianPicker/CartesianPicker.js.map +1 -1
  124. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js +7 -5
  125. package/dist/esm/components/controls/CartesianPicker/useCartesianInteraction.js.map +1 -1
  126. package/dist/esm/components/controls/CartesianPicker/useCartesianRenderer.js.map +1 -1
  127. package/dist/esm/components/controls/ColorPicker/AlphaSlider.js.map +1 -1
  128. package/dist/esm/components/controls/ColorPicker/ColorArea.js +2 -2
  129. package/dist/esm/components/controls/ColorPicker/ColorArea.js.map +1 -1
  130. package/dist/esm/components/controls/ColorPicker/ColorInputs.js +16 -2
  131. package/dist/esm/components/controls/ColorPicker/ColorInputs.js.map +1 -1
  132. package/dist/esm/components/controls/ColorPicker/ColorPalette.js +3 -1
  133. package/dist/esm/components/controls/ColorPicker/ColorPalette.js.map +1 -1
  134. package/dist/esm/components/controls/ColorPicker/ColorPicker.js +6 -6
  135. package/dist/esm/components/controls/ColorPicker/ColorPicker.js.map +1 -1
  136. package/dist/esm/components/controls/ColorPicker/ColorPresets.js +3 -1
  137. package/dist/esm/components/controls/ColorPicker/ColorPresets.js.map +1 -1
  138. package/dist/esm/components/controls/ColorPicker/ColorSwatch.js.map +1 -1
  139. package/dist/esm/components/controls/ColorPicker/EyeDropper.js.map +1 -1
  140. package/dist/esm/components/controls/ColorPicker/HueSlider.js.map +1 -1
  141. package/dist/esm/components/controls/ColorPicker/colorUtils.js.map +1 -1
  142. package/dist/esm/components/controls/ColorPicker/palettes/material.js.map +1 -1
  143. package/dist/esm/components/controls/ColorPicker/palettes/professional.js.map +1 -1
  144. package/dist/esm/components/controls/ColorPicker/palettes/tailwind.js.map +1 -1
  145. package/dist/esm/components/controls/ColorPicker/useColor.js.map +1 -1
  146. package/dist/esm/components/controls/Combobox/Combobox.js +46 -23
  147. package/dist/esm/components/controls/Combobox/Combobox.js.map +1 -1
  148. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js +11 -4
  149. package/dist/esm/components/controls/CurveEditor/CurveCanvas.js.map +1 -1
  150. package/dist/esm/components/controls/CurveEditor/CurveEditor.js +4 -4
  151. package/dist/esm/components/controls/CurveEditor/CurveEditor.js.map +1 -1
  152. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js +7 -5
  153. package/dist/esm/components/controls/CurveEditor/CurveToolbar.js.map +1 -1
  154. package/dist/esm/components/controls/CurveEditor/curvePresets.js.map +1 -1
  155. package/dist/esm/components/controls/CurveEditor/curveUtils.js +13 -15
  156. package/dist/esm/components/controls/CurveEditor/curveUtils.js.map +1 -1
  157. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js +72 -50
  158. package/dist/esm/components/controls/CurveEditor/useCurveInteraction.js.map +1 -1
  159. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js +11 -3
  160. package/dist/esm/components/controls/CurveEditor/useCurveRenderer.js.map +1 -1
  161. package/dist/esm/components/controls/FileTree/FileTree.css.js +9 -0
  162. package/dist/esm/components/controls/FileTree/FileTree.css.js.map +1 -0
  163. package/dist/esm/components/controls/FileTree/FileTree.js +252 -0
  164. package/dist/esm/components/controls/FileTree/FileTree.js.map +1 -0
  165. package/dist/esm/components/controls/FileTree/fileTreeIcons.js +129 -0
  166. package/dist/esm/components/controls/FileTree/fileTreeIcons.js.map +1 -0
  167. package/dist/esm/components/controls/FileTree/fileTreeLabels.js +8 -0
  168. package/dist/esm/components/controls/FileTree/fileTreeLabels.js.map +1 -0
  169. package/dist/esm/components/controls/FileTree/useFileTreeDrop.js +115 -0
  170. package/dist/esm/components/controls/FileTree/useFileTreeDrop.js.map +1 -0
  171. package/dist/esm/components/controls/FileUploader/FileUploader.js +3 -6
  172. package/dist/esm/components/controls/FileUploader/FileUploader.js.map +1 -1
  173. package/dist/esm/components/controls/MultiSelect/MultiSelect.js +46 -15
  174. package/dist/esm/components/controls/MultiSelect/MultiSelect.js.map +1 -1
  175. package/dist/esm/components/controls/NumberInput/NumberInput.js +11 -4
  176. package/dist/esm/components/controls/NumberInput/NumberInput.js.map +1 -1
  177. package/dist/esm/components/controls/NumberInput/useNumberInput.js +6 -2
  178. package/dist/esm/components/controls/NumberInput/useNumberInput.js.map +1 -1
  179. package/dist/esm/components/controls/Select/Select.css.js +1 -1
  180. package/dist/esm/components/controls/Select/Select.js +44 -16
  181. package/dist/esm/components/controls/Select/Select.js.map +1 -1
  182. package/dist/esm/components/controls/Slider/Slider.js +6 -8
  183. package/dist/esm/components/controls/Slider/Slider.js.map +1 -1
  184. package/dist/esm/components/controls/TagInput/TagInput.js +4 -2
  185. package/dist/esm/components/controls/TagInput/TagInput.js.map +1 -1
  186. package/dist/esm/components/controls/TreeView/TreeNode.css.js +9 -8
  187. package/dist/esm/components/controls/TreeView/TreeNode.css.js.map +1 -1
  188. package/dist/esm/components/controls/TreeView/TreeNode.js +42 -7
  189. package/dist/esm/components/controls/TreeView/TreeNode.js.map +1 -1
  190. package/dist/esm/components/controls/TreeView/TreeView.js +18 -6
  191. package/dist/esm/components/controls/TreeView/TreeView.js.map +1 -1
  192. package/dist/esm/components/controls/TreeView/useTreeState.js +2 -6
  193. package/dist/esm/components/controls/TreeView/useTreeState.js.map +1 -1
  194. package/dist/esm/components/controls/VectorInput/VectorInput.js +13 -4
  195. package/dist/esm/components/controls/VectorInput/VectorInput.js.map +1 -1
  196. package/dist/esm/components/data/DataTable/DataTable.js +25 -8
  197. package/dist/esm/components/data/DataTable/DataTable.js.map +1 -1
  198. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js +46 -0
  199. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.css.js.map +1 -0
  200. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js +254 -0
  201. package/dist/esm/components/editor/AssetBrowser/AssetBrowser.js.map +1 -0
  202. package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js +17 -0
  203. package/dist/esm/components/editor/AssetBrowser/AssetBrowserAnnouncementLive.js.map +1 -0
  204. package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js +25 -0
  205. package/dist/esm/components/editor/AssetBrowser/AssetBrowserBreadcrumbs.js.map +1 -0
  206. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js +140 -0
  207. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContent.js.map +1 -0
  208. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js +81 -0
  209. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContext.js.map +1 -0
  210. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js +123 -0
  211. package/dist/esm/components/editor/AssetBrowser/AssetBrowserContextMenu.js.map +1 -0
  212. package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js +136 -0
  213. package/dist/esm/components/editor/AssetBrowser/AssetBrowserDefaultMenus.js.map +1 -0
  214. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js +137 -0
  215. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGrid.js.map +1 -0
  216. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js +226 -0
  217. package/dist/esm/components/editor/AssetBrowser/AssetBrowserGridItem.js.map +1 -0
  218. package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js +189 -0
  219. package/dist/esm/components/editor/AssetBrowser/AssetBrowserList.js.map +1 -0
  220. package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js +63 -0
  221. package/dist/esm/components/editor/AssetBrowser/AssetBrowserRenameField.js.map +1 -0
  222. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js +19 -0
  223. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSidebar.js.map +1 -0
  224. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js +24 -0
  225. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStatusBar.js.map +1 -0
  226. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js +176 -0
  227. package/dist/esm/components/editor/AssetBrowser/AssetBrowserStore.js.map +1 -0
  228. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js +120 -0
  229. package/dist/esm/components/editor/AssetBrowser/AssetBrowserSurface.js.map +1 -0
  230. package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js +134 -0
  231. package/dist/esm/components/editor/AssetBrowser/AssetBrowserToolbar.js.map +1 -0
  232. package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js +90 -0
  233. package/dist/esm/components/editor/AssetBrowser/assetBrowserFilter.js.map +1 -0
  234. package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js +32 -0
  235. package/dist/esm/components/editor/AssetBrowser/assetBrowserFormat.js.map +1 -0
  236. package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js +70 -0
  237. package/dist/esm/components/editor/AssetBrowser/assetBrowserGeometry.js.map +1 -0
  238. package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js +62 -0
  239. package/dist/esm/components/editor/AssetBrowser/assetBrowserKeyboard.js.map +1 -0
  240. package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js +52 -0
  241. package/dist/esm/components/editor/AssetBrowser/assetBrowserLabels.js.map +1 -0
  242. package/dist/esm/components/editor/AssetBrowser/slots.js +18 -0
  243. package/dist/esm/components/editor/AssetBrowser/slots.js.map +1 -0
  244. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js +19 -0
  245. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserAnnouncement.js.map +1 -0
  246. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js +70 -0
  247. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserHandle.js.map +1 -0
  248. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js +108 -0
  249. package/dist/esm/components/editor/AssetBrowser/useAssetBrowserViewState.js.map +1 -0
  250. package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js +192 -0
  251. package/dist/esm/components/editor/AssetBrowser/useAssetDnd.js.map +1 -0
  252. package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js +91 -0
  253. package/dist/esm/components/editor/AssetBrowser/useAssetGridKeyboardNav.js.map +1 -0
  254. package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js +91 -0
  255. package/dist/esm/components/editor/AssetBrowser/useAssetGridVirtualizer.js.map +1 -0
  256. package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js +128 -0
  257. package/dist/esm/components/editor/AssetBrowser/useAssetMarqueeGesture.js.map +1 -0
  258. package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js +72 -0
  259. package/dist/esm/components/editor/AssetBrowser/useAssetMutationKeyboard.js.map +1 -0
  260. package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js +141 -0
  261. package/dist/esm/components/editor/AssetBrowser/useAssetMutations.js.map +1 -0
  262. package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js +113 -0
  263. package/dist/esm/components/editor/AssetBrowser/useAssetNavigation.js.map +1 -0
  264. package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js +174 -0
  265. package/dist/esm/components/editor/AssetBrowser/useAssetSelectionController.js.map +1 -0
  266. package/dist/esm/components/editor/ChatPanel/ChatActionBar.js.map +1 -1
  267. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js +8 -2
  268. package/dist/esm/components/editor/ChatPanel/ChatAttachment.js.map +1 -1
  269. package/dist/esm/components/editor/ChatPanel/ChatBubble.js.map +1 -1
  270. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js +20 -4
  271. package/dist/esm/components/editor/ChatPanel/ChatCodeBlock.js.map +1 -1
  272. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js +1 -1
  273. package/dist/esm/components/editor/ChatPanel/ChatContextChip.js.map +1 -1
  274. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js +3 -1
  275. package/dist/esm/components/editor/ChatPanel/ChatEmptyState.js.map +1 -1
  276. package/dist/esm/components/editor/ChatPanel/ChatIcons.js.map +1 -1
  277. package/dist/esm/components/editor/ChatPanel/ChatInput.js +10 -3
  278. package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -1
  279. package/dist/esm/components/editor/ChatPanel/ChatInputToolbar.js.map +1 -1
  280. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js +1 -1
  281. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js.map +1 -1
  282. package/dist/esm/components/editor/ChatPanel/ChatMessage.js +10 -3
  283. package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
  284. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +5 -3
  285. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -1
  286. package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -1
  287. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js +1 -1
  288. package/dist/esm/components/editor/ChatPanel/ChatToolCall.js.map +1 -1
  289. package/dist/esm/components/editor/ChatPanel/ChatTypingIndicator.js.map +1 -1
  290. package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -1
  291. package/dist/esm/components/editor/ChatPanel/useChatMessages.js +7 -4
  292. package/dist/esm/components/editor/ChatPanel/useChatMessages.js.map +1 -1
  293. package/dist/esm/components/editor/ChatPanel/useChatScroll.js +6 -1
  294. package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -1
  295. package/dist/esm/components/editor/Minimap/Minimap.css.js +18 -0
  296. package/dist/esm/components/editor/Minimap/Minimap.css.js.map +1 -0
  297. package/dist/esm/components/editor/Minimap/Minimap.js +257 -0
  298. package/dist/esm/components/editor/Minimap/Minimap.js.map +1 -0
  299. package/dist/esm/components/editor/Minimap/Minimap.types.js +11 -0
  300. package/dist/esm/components/editor/Minimap/Minimap.types.js.map +1 -0
  301. package/dist/esm/components/editor/Minimap/MinimapContext.js +48 -0
  302. package/dist/esm/components/editor/Minimap/MinimapContext.js.map +1 -0
  303. package/dist/esm/components/editor/Minimap/MinimapCorner.js +16 -0
  304. package/dist/esm/components/editor/Minimap/MinimapCorner.js.map +1 -0
  305. package/dist/esm/components/editor/Minimap/MinimapFooter.js +16 -0
  306. package/dist/esm/components/editor/Minimap/MinimapFooter.js.map +1 -0
  307. package/dist/esm/components/editor/Minimap/MinimapStore.js +166 -0
  308. package/dist/esm/components/editor/Minimap/MinimapStore.js.map +1 -0
  309. package/dist/esm/components/editor/Minimap/MinimapTitle.js +16 -0
  310. package/dist/esm/components/editor/Minimap/MinimapTitle.js.map +1 -0
  311. package/dist/esm/components/editor/Minimap/ViewportMinimap.js +69 -0
  312. package/dist/esm/components/editor/Minimap/ViewportMinimap.js.map +1 -0
  313. package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js +65 -0
  314. package/dist/esm/components/editor/Minimap/computeBoundsFromItems.js.map +1 -0
  315. package/dist/esm/components/editor/Minimap/index.js +15 -0
  316. package/dist/esm/components/editor/Minimap/index.js.map +1 -0
  317. package/dist/esm/components/editor/Minimap/minimapCoords.js +105 -0
  318. package/dist/esm/components/editor/Minimap/minimapCoords.js.map +1 -0
  319. package/dist/esm/components/editor/Minimap/minimapDrawing.js +93 -0
  320. package/dist/esm/components/editor/Minimap/minimapDrawing.js.map +1 -0
  321. package/dist/esm/components/editor/Minimap/minimapHitTest.js +59 -0
  322. package/dist/esm/components/editor/Minimap/minimapHitTest.js.map +1 -0
  323. package/dist/esm/components/editor/Minimap/useMinimapGestures.js +299 -0
  324. package/dist/esm/components/editor/Minimap/useMinimapGestures.js.map +1 -0
  325. package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js +36 -0
  326. package/dist/esm/components/editor/NodeGraph/NodeGraph.css.js.map +1 -0
  327. package/dist/esm/components/editor/NodeGraph/NodeGraph.js +627 -0
  328. package/dist/esm/components/editor/NodeGraph/NodeGraph.js.map +1 -0
  329. package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js +10 -0
  330. package/dist/esm/components/editor/NodeGraph/NodeGraph.types.js.map +1 -0
  331. package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js +54 -0
  332. package/dist/esm/components/editor/NodeGraph/NodeGraphContext.js.map +1 -0
  333. package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js +137 -0
  334. package/dist/esm/components/editor/NodeGraph/NodeGraphEdgeLabels.js.map +1 -0
  335. package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js +211 -0
  336. package/dist/esm/components/editor/NodeGraph/NodeGraphGroup.js.map +1 -0
  337. package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js +122 -0
  338. package/dist/esm/components/editor/NodeGraph/NodeGraphMinimap.js.map +1 -0
  339. package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js +170 -0
  340. package/dist/esm/components/editor/NodeGraph/NodeGraphNode.js.map +1 -0
  341. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js +21 -0
  342. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeContext.js.map +1 -0
  343. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js +56 -0
  344. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeParts.js.map +1 -0
  345. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js +59 -0
  346. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSection.js.map +1 -0
  347. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js +17 -0
  348. package/dist/esm/components/editor/NodeGraph/NodeGraphNodeSectionContext.js.map +1 -0
  349. package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js +35 -0
  350. package/dist/esm/components/editor/NodeGraph/NodeGraphPin.js.map +1 -0
  351. package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js +191 -0
  352. package/dist/esm/components/editor/NodeGraph/NodeGraphPort.js.map +1 -0
  353. package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js +46 -0
  354. package/dist/esm/components/editor/NodeGraph/NodeGraphPortVisual.js.map +1 -0
  355. package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js +50 -0
  356. package/dist/esm/components/editor/NodeGraph/NodeGraphSlots.js.map +1 -0
  357. package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js +70 -0
  358. package/dist/esm/components/editor/NodeGraph/NodeGraphSpawnPalette.js.map +1 -0
  359. package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js +543 -0
  360. package/dist/esm/components/editor/NodeGraph/NodeGraphStore.js.map +1 -0
  361. package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js +100 -0
  362. package/dist/esm/components/editor/NodeGraph/NodeGraphToolbar.js.map +1 -0
  363. package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js +37 -0
  364. package/dist/esm/components/editor/NodeGraph/createTypeMatchValidator.js.map +1 -0
  365. package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js +53 -0
  366. package/dist/esm/components/editor/NodeGraph/nodeGraphActions.js.map +1 -0
  367. package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js +461 -0
  368. package/dist/esm/components/editor/NodeGraph/nodeGraphDrawing.js.map +1 -0
  369. package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js +31 -0
  370. package/dist/esm/components/editor/NodeGraph/nodeGraphIds.js.map +1 -0
  371. package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js +350 -0
  372. package/dist/esm/components/editor/NodeGraph/nodeGraphMath.js.map +1 -0
  373. package/dist/esm/components/editor/NodeGraph/sortSlots.js +69 -0
  374. package/dist/esm/components/editor/NodeGraph/sortSlots.js.map +1 -0
  375. package/dist/esm/components/editor/NodeGraph/useDragGesture.js +63 -0
  376. package/dist/esm/components/editor/NodeGraph/useDragGesture.js.map +1 -0
  377. package/dist/esm/components/editor/NodeGraph/useNodeGraph.js +207 -0
  378. package/dist/esm/components/editor/NodeGraph/useNodeGraph.js.map +1 -0
  379. package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js +334 -0
  380. package/dist/esm/components/editor/NodeGraph/useNodeGraphConnection.js.map +1 -0
  381. package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js +137 -0
  382. package/dist/esm/components/editor/NodeGraph/useNodeGraphEdgeInteraction.js.map +1 -0
  383. package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js +392 -0
  384. package/dist/esm/components/editor/NodeGraph/useNodeGraphGroupDrag.js.map +1 -0
  385. package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js +164 -0
  386. package/dist/esm/components/editor/NodeGraph/useNodeGraphKeyboard.js.map +1 -0
  387. package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js +234 -0
  388. package/dist/esm/components/editor/NodeGraph/useNodeGraphNodeDrag.js.map +1 -0
  389. package/dist/esm/components/editor/NodeGraph/useStoreSlice.js +49 -0
  390. package/dist/esm/components/editor/NodeGraph/useStoreSlice.js.map +1 -0
  391. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js +1 -1
  392. package/dist/esm/components/editor/PropertyInspector/PropertyGroup.js.map +1 -1
  393. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js +4 -3
  394. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.css.js.map +1 -1
  395. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js +12 -7
  396. package/dist/esm/components/editor/PropertyInspector/PropertyPanel.js.map +1 -1
  397. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js +7 -6
  398. package/dist/esm/components/editor/PropertyInspector/PropertyRow.css.js.map +1 -1
  399. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js +21 -5
  400. package/dist/esm/components/editor/PropertyInspector/PropertyRow.js.map +1 -1
  401. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js +11 -10
  402. package/dist/esm/components/editor/PropertyInspector/PropertySection.css.js.map +1 -1
  403. package/dist/esm/components/editor/PropertyInspector/PropertySection.js +32 -11
  404. package/dist/esm/components/editor/PropertyInspector/PropertySection.js.map +1 -1
  405. package/dist/esm/components/editor/PropertyInspector/usePropertyUndo.js.map +1 -1
  406. package/dist/esm/components/editor/Timeline/Timeline.css.js +23 -0
  407. package/dist/esm/components/editor/Timeline/Timeline.css.js.map +1 -0
  408. package/dist/esm/components/editor/Timeline/Timeline.js +450 -0
  409. package/dist/esm/components/editor/Timeline/Timeline.js.map +1 -0
  410. package/dist/esm/components/editor/Timeline/Timeline.types.js +10 -0
  411. package/dist/esm/components/editor/Timeline/Timeline.types.js.map +1 -0
  412. package/dist/esm/components/editor/Timeline/TimelineContext.js +69 -0
  413. package/dist/esm/components/editor/Timeline/TimelineContext.js.map +1 -0
  414. package/dist/esm/components/editor/Timeline/TimelineFooter.js +16 -0
  415. package/dist/esm/components/editor/Timeline/TimelineFooter.js.map +1 -0
  416. package/dist/esm/components/editor/Timeline/TimelineMinimap.js +280 -0
  417. package/dist/esm/components/editor/Timeline/TimelineMinimap.js.map +1 -0
  418. package/dist/esm/components/editor/Timeline/TimelineStore.js +289 -0
  419. package/dist/esm/components/editor/Timeline/TimelineStore.js.map +1 -0
  420. package/dist/esm/components/editor/Timeline/TimelineToolbar.js +15 -0
  421. package/dist/esm/components/editor/Timeline/TimelineToolbar.js.map +1 -0
  422. package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js +142 -0
  423. package/dist/esm/components/editor/Timeline/TimelineTrackHeaders.js.map +1 -0
  424. package/dist/esm/components/editor/Timeline/TimelineTrackScale.js +18 -0
  425. package/dist/esm/components/editor/Timeline/TimelineTrackScale.js.map +1 -0
  426. package/dist/esm/components/editor/Timeline/index.js +18 -0
  427. package/dist/esm/components/editor/Timeline/index.js.map +1 -0
  428. package/dist/esm/components/editor/Timeline/timelineCoords.js +118 -0
  429. package/dist/esm/components/editor/Timeline/timelineCoords.js.map +1 -0
  430. package/dist/esm/components/editor/Timeline/timelineDrawing.js +390 -0
  431. package/dist/esm/components/editor/Timeline/timelineDrawing.js.map +1 -0
  432. package/dist/esm/components/editor/Timeline/timelineEdits.js +323 -0
  433. package/dist/esm/components/editor/Timeline/timelineEdits.js.map +1 -0
  434. package/dist/esm/components/editor/Timeline/timelineHitTest.js +153 -0
  435. package/dist/esm/components/editor/Timeline/timelineHitTest.js.map +1 -0
  436. package/dist/esm/components/editor/Timeline/timelineLayout.js +39 -0
  437. package/dist/esm/components/editor/Timeline/timelineLayout.js.map +1 -0
  438. package/dist/esm/components/editor/Timeline/timelineSelection.js +0 -0
  439. package/dist/esm/components/editor/Timeline/timelineSelection.js.map +1 -0
  440. package/dist/esm/components/editor/Timeline/useTimelineDraw.js +156 -0
  441. package/dist/esm/components/editor/Timeline/useTimelineDraw.js.map +1 -0
  442. package/dist/esm/components/editor/Timeline/useTimelineGestures.js +587 -0
  443. package/dist/esm/components/editor/Timeline/useTimelineGestures.js.map +1 -0
  444. package/dist/esm/components/editor/Timeline/useTimelinePlayback.js +85 -0
  445. package/dist/esm/components/editor/Timeline/useTimelinePlayback.js.map +1 -0
  446. package/dist/esm/components/editor/TransformControl/TransformControl.js +4 -4
  447. package/dist/esm/components/editor/TransformControl/TransformControl.js.map +1 -1
  448. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js +8 -4
  449. package/dist/esm/components/editor/ViewportGizmo/ViewportGizmo.js.map +1 -1
  450. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js +6 -2
  451. package/dist/esm/components/editor/ViewportGizmo/gizmoMath.js.map +1 -1
  452. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js +8 -6
  453. package/dist/esm/components/editor/ViewportGizmo/useGizmoInteraction.js.map +1 -1
  454. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js +1 -2
  455. package/dist/esm/components/editor/ViewportGizmo/useGizmoRenderer.js.map +1 -1
  456. package/dist/esm/components/feedback/Alert/Alert.js +8 -8
  457. package/dist/esm/components/feedback/Alert/Alert.js.map +1 -1
  458. package/dist/esm/components/feedback/Alert/AlertActions.js.map +1 -1
  459. package/dist/esm/components/feedback/Alert/AlertDescription.js.map +1 -1
  460. package/dist/esm/components/feedback/Alert/AlertTitle.js.map +1 -1
  461. package/dist/esm/components/feedback/CommandPalette/CommandPalette.js +32 -22
  462. package/dist/esm/components/feedback/CommandPalette/CommandPalette.js.map +1 -1
  463. package/dist/esm/components/feedback/CommandPalette/fuzzySearch.js.map +1 -1
  464. package/dist/esm/components/feedback/CommandPalette/useRecentItems.js +3 -1
  465. package/dist/esm/components/feedback/CommandPalette/useRecentItems.js.map +1 -1
  466. package/dist/esm/components/feedback/Dialog/Dialog.js +6 -3
  467. package/dist/esm/components/feedback/Dialog/Dialog.js.map +1 -1
  468. package/dist/esm/components/feedback/Dialog/DialogBody.js.map +1 -1
  469. package/dist/esm/components/feedback/Dialog/DialogClose.js.map +1 -1
  470. package/dist/esm/components/feedback/Dialog/DialogFooter.js.map +1 -1
  471. package/dist/esm/components/feedback/Dialog/DialogHeader.js +1 -1
  472. package/dist/esm/components/feedback/Dialog/DialogHeader.js.map +1 -1
  473. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js +10 -2
  474. package/dist/esm/components/feedback/Dialog/useDialogAnimation.js.map +1 -1
  475. package/dist/esm/components/feedback/Drawer/Drawer.js +4 -1
  476. package/dist/esm/components/feedback/Drawer/Drawer.js.map +1 -1
  477. package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js +4 -0
  478. package/dist/esm/components/feedback/Drawer/useDrawerAnimation.js.map +1 -1
  479. package/dist/esm/components/feedback/EmptyState/EmptyState.js +1 -1
  480. package/dist/esm/components/feedback/EmptyState/EmptyState.js.map +1 -1
  481. package/dist/esm/components/feedback/LogView/LogView.css.js +35 -0
  482. package/dist/esm/components/feedback/LogView/LogView.css.js.map +1 -0
  483. package/dist/esm/components/feedback/LogView/LogView.js +297 -0
  484. package/dist/esm/components/feedback/LogView/LogView.js.map +1 -0
  485. package/dist/esm/components/feedback/LogView/LogViewBody.js +205 -0
  486. package/dist/esm/components/feedback/LogView/LogViewBody.js.map +1 -0
  487. package/dist/esm/components/feedback/LogView/LogViewContext.js +31 -0
  488. package/dist/esm/components/feedback/LogView/LogViewContext.js.map +1 -0
  489. package/dist/esm/components/feedback/LogView/LogViewParts.js +73 -0
  490. package/dist/esm/components/feedback/LogView/LogViewParts.js.map +1 -0
  491. package/dist/esm/components/feedback/LogView/LogViewStore.js +240 -0
  492. package/dist/esm/components/feedback/LogView/LogViewStore.js.map +1 -0
  493. package/dist/esm/components/feedback/LogView/logViewLabels.js +25 -0
  494. package/dist/esm/components/feedback/LogView/logViewLabels.js.map +1 -0
  495. package/dist/esm/components/feedback/LogView/logViewLevels.js +74 -0
  496. package/dist/esm/components/feedback/LogView/logViewLevels.js.map +1 -0
  497. package/dist/esm/components/feedback/LogView/logViewUtils.js +128 -0
  498. package/dist/esm/components/feedback/LogView/logViewUtils.js.map +1 -0
  499. package/dist/esm/components/feedback/LogView/useFollowTail.js +95 -0
  500. package/dist/esm/components/feedback/LogView/useFollowTail.js.map +1 -0
  501. package/dist/esm/components/feedback/LogView/useLogSelection.js +113 -0
  502. package/dist/esm/components/feedback/LogView/useLogSelection.js.map +1 -0
  503. package/dist/esm/components/feedback/ProgressBar/CircularProgress.js +1 -1
  504. package/dist/esm/components/feedback/ProgressBar/CircularProgress.js.map +1 -1
  505. package/dist/esm/components/feedback/ProgressBar/ProgressBar.js +1 -1
  506. package/dist/esm/components/feedback/ProgressBar/ProgressBar.js.map +1 -1
  507. package/dist/esm/components/feedback/Skeleton/Skeleton.js +1 -1
  508. package/dist/esm/components/feedback/Skeleton/Skeleton.js.map +1 -1
  509. package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js +1 -1
  510. package/dist/esm/components/feedback/Skeleton/SkeletonGroup.js.map +1 -1
  511. package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js +1 -1
  512. package/dist/esm/components/feedback/Skeleton/SkeletonLayout.js.map +1 -1
  513. package/dist/esm/components/feedback/Spinner/Spinner.js +1 -1
  514. package/dist/esm/components/feedback/Spinner/Spinner.js.map +1 -1
  515. package/dist/esm/components/feedback/Stat/Stat.js.map +1 -1
  516. package/dist/esm/components/feedback/Toast/ToastContainer.js +1 -1
  517. package/dist/esm/components/feedback/Toast/ToastContainer.js.map +1 -1
  518. package/dist/esm/components/feedback/Toast/ToastItem.js +7 -3
  519. package/dist/esm/components/feedback/Toast/ToastItem.js.map +1 -1
  520. package/dist/esm/components/feedback/Toast/ToastProvider.js.map +1 -1
  521. package/dist/esm/components/feedback/Toast/useToast.js.map +1 -1
  522. package/dist/esm/components/form/FormHelperText.js.map +1 -1
  523. package/dist/esm/components/form/FormLabel.js.map +1 -1
  524. package/dist/esm/components/form/InputWrapper.js.map +1 -1
  525. package/dist/esm/components/layout/Accordion/Accordion.js +1 -1
  526. package/dist/esm/components/layout/Accordion/Accordion.js.map +1 -1
  527. package/dist/esm/components/layout/Accordion/AccordionContent.js +1 -1
  528. package/dist/esm/components/layout/Accordion/AccordionContent.js.map +1 -1
  529. package/dist/esm/components/layout/Accordion/AccordionItem.js +1 -1
  530. package/dist/esm/components/layout/Accordion/AccordionItem.js.map +1 -1
  531. package/dist/esm/components/layout/Accordion/AccordionTrigger.js +7 -2
  532. package/dist/esm/components/layout/Accordion/AccordionTrigger.js.map +1 -1
  533. package/dist/esm/components/layout/Card/Card.js +2 -2
  534. package/dist/esm/components/layout/Card/Card.js.map +1 -1
  535. package/dist/esm/components/layout/Divider/Divider.js.map +1 -1
  536. package/dist/esm/components/layout/Flex/Flex.js +1 -1
  537. package/dist/esm/components/layout/Flex/Flex.js.map +1 -1
  538. package/dist/esm/components/layout/Grid/Grid.js +1 -1
  539. package/dist/esm/components/layout/Grid/Grid.js.map +1 -1
  540. package/dist/esm/components/layout/ListItem/ListItem.js +1 -1
  541. package/dist/esm/components/layout/ListItem/ListItem.js.map +1 -1
  542. package/dist/esm/components/layout/PageHeader/PageHeader.js.map +1 -1
  543. package/dist/esm/components/layout/PanelSurface/PanelSurface.js +3 -3
  544. package/dist/esm/components/layout/PanelSurface/PanelSurface.js.map +1 -1
  545. package/dist/esm/components/layout/ScrollArea/ScrollArea.js +91 -23
  546. package/dist/esm/components/layout/ScrollArea/ScrollArea.js.map +1 -1
  547. package/dist/esm/components/layout/Spacer/Spacer.js.map +1 -1
  548. package/dist/esm/components/layout/SplitPane/SplitPane.js +29 -16
  549. package/dist/esm/components/layout/SplitPane/SplitPane.js.map +1 -1
  550. package/dist/esm/components/layout/SplitPane/SplitPanePanel.js.map +1 -1
  551. package/dist/esm/components/layout/Stack/Stack.js +1 -1
  552. package/dist/esm/components/layout/Stack/Stack.js.map +1 -1
  553. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js +4 -0
  554. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbEllipsis.js.map +1 -1
  555. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js +6 -2
  556. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  557. package/dist/esm/components/navigation/Breadcrumbs/BreadcrumbSeparator.js.map +1 -1
  558. package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js +13 -2
  559. package/dist/esm/components/navigation/Breadcrumbs/Breadcrumbs.js.map +1 -1
  560. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js +45 -39
  561. package/dist/esm/components/navigation/ContextMenu/ContextMenu.js.map +1 -1
  562. package/dist/esm/components/navigation/Menu/Menu.css.js +9 -12
  563. package/dist/esm/components/navigation/Menu/Menu.css.js.map +1 -1
  564. package/dist/esm/components/navigation/Menu/Menu.js +97 -63
  565. package/dist/esm/components/navigation/Menu/Menu.js.map +1 -1
  566. package/dist/esm/components/navigation/Menu/MenuGapContext.js +19 -0
  567. package/dist/esm/components/navigation/Menu/MenuGapContext.js.map +1 -0
  568. package/dist/esm/components/navigation/Pagination/Pagination.js.map +1 -1
  569. package/dist/esm/components/navigation/Pagination/usePagination.js.map +1 -1
  570. package/dist/esm/components/navigation/PathBar/PathBar.css.js +6 -0
  571. package/dist/esm/components/navigation/PathBar/PathBar.css.js.map +1 -0
  572. package/dist/esm/components/navigation/PathBar/PathBar.js +184 -0
  573. package/dist/esm/components/navigation/PathBar/PathBar.js.map +1 -0
  574. package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js +151 -0
  575. package/dist/esm/components/navigation/PathBar/PathBarSiblingMenu.js.map +1 -0
  576. package/dist/esm/components/navigation/PathBar/pathUtils.js +118 -0
  577. package/dist/esm/components/navigation/PathBar/pathUtils.js.map +1 -0
  578. package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js +16 -6
  579. package/dist/esm/components/navigation/SegmentedControl/SegmentedControl.js.map +1 -1
  580. package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js +1 -1
  581. package/dist/esm/components/navigation/SegmentedControl/SegmentedControlItem.js.map +1 -1
  582. package/dist/esm/components/navigation/Tabs/Tab.js +10 -3
  583. package/dist/esm/components/navigation/Tabs/Tab.js.map +1 -1
  584. package/dist/esm/components/navigation/Tabs/TabList.js +5 -2
  585. package/dist/esm/components/navigation/Tabs/TabList.js.map +1 -1
  586. package/dist/esm/components/navigation/Tabs/TabPanel.js +1 -1
  587. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
  588. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
  589. package/dist/esm/components/primitives/Avatar/Avatar.js +11 -4
  590. package/dist/esm/components/primitives/Avatar/Avatar.js.map +1 -1
  591. package/dist/esm/components/primitives/Avatar/AvatarGroup.js +2 -2
  592. package/dist/esm/components/primitives/Avatar/AvatarGroup.js.map +1 -1
  593. package/dist/esm/components/primitives/Badge/Badge.js +10 -3
  594. package/dist/esm/components/primitives/Badge/Badge.js.map +1 -1
  595. package/dist/esm/components/primitives/Button/Button.js.map +1 -1
  596. package/dist/esm/components/primitives/Checkbox/Checkbox.js +6 -4
  597. package/dist/esm/components/primitives/Checkbox/Checkbox.js.map +1 -1
  598. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js +2 -2
  599. package/dist/esm/components/primitives/Checkbox/CheckboxGroup.js.map +1 -1
  600. package/dist/esm/components/primitives/Code/Code.js.map +1 -1
  601. package/dist/esm/components/primitives/Collapsible/Collapsible.js +2 -2
  602. package/dist/esm/components/primitives/Collapsible/Collapsible.js.map +1 -1
  603. package/dist/esm/components/primitives/HoverCard/HoverCard.js +5 -3
  604. package/dist/esm/components/primitives/HoverCard/HoverCard.js.map +1 -1
  605. package/dist/esm/components/primitives/Icon/Icon.js +1 -1
  606. package/dist/esm/components/primitives/Icon/Icon.js.map +1 -1
  607. package/dist/esm/components/primitives/IconButton/IconButton.js.map +1 -1
  608. package/dist/esm/components/primitives/Input/Input.js +1 -1
  609. package/dist/esm/components/primitives/Input/Input.js.map +1 -1
  610. package/dist/esm/components/primitives/Kbd/Kbd.js +1 -1
  611. package/dist/esm/components/primitives/Kbd/Kbd.js.map +1 -1
  612. package/dist/esm/components/primitives/Link/Link.js.map +1 -1
  613. package/dist/esm/components/primitives/Paper/Paper.js.map +1 -1
  614. package/dist/esm/components/primitives/Popover/Popover.js +1 -1
  615. package/dist/esm/components/primitives/Popover/Popover.js.map +1 -1
  616. package/dist/esm/components/primitives/Popover/PopoverClose.js +1 -1
  617. package/dist/esm/components/primitives/Popover/PopoverClose.js.map +1 -1
  618. package/dist/esm/components/primitives/Popover/PopoverContent.js +6 -4
  619. package/dist/esm/components/primitives/Popover/PopoverContent.js.map +1 -1
  620. package/dist/esm/components/primitives/Popover/PopoverTrigger.js.map +1 -1
  621. package/dist/esm/components/primitives/Radio/Radio.js +3 -3
  622. package/dist/esm/components/primitives/Radio/Radio.js.map +1 -1
  623. package/dist/esm/components/primitives/Radio/RadioGroup.js +2 -2
  624. package/dist/esm/components/primitives/Radio/RadioGroup.js.map +1 -1
  625. package/dist/esm/components/primitives/Switch/Switch.js +1 -1
  626. package/dist/esm/components/primitives/Switch/Switch.js.map +1 -1
  627. package/dist/esm/components/primitives/Text/Text.js.map +1 -1
  628. package/dist/esm/components/primitives/TextArea/TextArea.js +3 -4
  629. package/dist/esm/components/primitives/TextArea/TextArea.js.map +1 -1
  630. package/dist/esm/components/primitives/Tooltip/Arrow.js +1 -1
  631. package/dist/esm/components/primitives/Tooltip/Arrow.js.map +1 -1
  632. package/dist/esm/components/primitives/Tooltip/Tooltip.js +9 -7
  633. package/dist/esm/components/primitives/Tooltip/Tooltip.js.map +1 -1
  634. package/dist/esm/components/primitives/Tooltip/utils.js +1 -1
  635. package/dist/esm/components/primitives/Tooltip/utils.js.map +1 -1
  636. package/dist/esm/components/primitives/VisuallyHidden/VisuallyHidden.js.map +1 -1
  637. package/dist/esm/components/primitives/canvas/CanvasContainer.js +1 -1
  638. package/dist/esm/components/primitives/canvas/CanvasContainer.js.map +1 -1
  639. package/dist/esm/components/primitives/canvas/canvasCoords.js.map +1 -1
  640. package/dist/esm/components/primitives/canvas/canvasDrawing.js +1 -1
  641. package/dist/esm/components/primitives/canvas/canvasDrawing.js.map +1 -1
  642. package/dist/esm/components/primitives/canvas/canvasTheme.js.map +1 -1
  643. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js +8 -2
  644. package/dist/esm/components/primitives/canvas/useCanvasRenderer.js.map +1 -1
  645. package/dist/esm/components/primitives/viewport/Viewport.css.js +12 -0
  646. package/dist/esm/components/primitives/viewport/Viewport.css.js.map +1 -0
  647. package/dist/esm/components/primitives/viewport/Viewport.js +189 -0
  648. package/dist/esm/components/primitives/viewport/Viewport.js.map +1 -0
  649. package/dist/esm/components/primitives/viewport/ViewportContext.js +47 -0
  650. package/dist/esm/components/primitives/viewport/ViewportContext.js.map +1 -0
  651. package/dist/esm/components/primitives/viewport/ViewportLayer.js +113 -0
  652. package/dist/esm/components/primitives/viewport/ViewportLayer.js.map +1 -0
  653. package/dist/esm/components/primitives/viewport/ViewportOverlay.js +47 -0
  654. package/dist/esm/components/primitives/viewport/ViewportOverlay.js.map +1 -0
  655. package/dist/esm/components/primitives/viewport/ViewportStore.js +210 -0
  656. package/dist/esm/components/primitives/viewport/ViewportStore.js.map +1 -0
  657. package/dist/esm/components/primitives/viewport/ViewportWorld.js +38 -0
  658. package/dist/esm/components/primitives/viewport/ViewportWorld.js.map +1 -0
  659. package/dist/esm/components/primitives/viewport/useViewportGestures.js +333 -0
  660. package/dist/esm/components/primitives/viewport/useViewportGestures.js.map +1 -0
  661. package/dist/esm/components/primitives/viewport/viewportCoords.js +37 -0
  662. package/dist/esm/components/primitives/viewport/viewportCoords.js.map +1 -0
  663. package/dist/esm/components/primitives/viewport/viewportMath.js +77 -0
  664. package/dist/esm/components/primitives/viewport/viewportMath.js.map +1 -0
  665. package/dist/esm/components/shell/AppShell/AppShell.js +1 -1
  666. package/dist/esm/components/shell/AppShell/AppShell.js.map +1 -1
  667. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js +11 -10
  668. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.css.js.map +1 -1
  669. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js +60 -24
  670. package/dist/esm/components/shell/FloatingPanel/FloatingPanel.js.map +1 -1
  671. package/dist/esm/components/shell/MenuBar/MenuBar.js +23 -16
  672. package/dist/esm/components/shell/MenuBar/MenuBar.js.map +1 -1
  673. package/dist/esm/components/shell/StatusBar/StatusBar.js.map +1 -1
  674. package/dist/esm/components/shell/Toolbar/Toolbar.js +4 -3
  675. package/dist/esm/components/shell/Toolbar/Toolbar.js.map +1 -1
  676. package/dist/esm/context/KeyboardContext.js.map +1 -1
  677. package/dist/esm/hooks/useBreakpoint/useBreakpoint.js +1 -1
  678. package/dist/esm/hooks/useBreakpoint/useBreakpoint.js.map +1 -1
  679. package/dist/esm/hooks/useClickOutside/useClickOutside.js +9 -9
  680. package/dist/esm/hooks/useClickOutside/useClickOutside.js.map +1 -1
  681. package/dist/esm/hooks/useClipboard/useClipboard.js +4 -0
  682. package/dist/esm/hooks/useClipboard/useClipboard.js.map +1 -1
  683. package/dist/esm/hooks/useControlledState/useControlledState.js.map +1 -1
  684. package/dist/esm/hooks/useDebounced/useDebouncedCallback.js +11 -6
  685. package/dist/esm/hooks/useDebounced/useDebouncedCallback.js.map +1 -1
  686. package/dist/esm/hooks/useDebounced/useDebouncedValue.js +16 -4
  687. package/dist/esm/hooks/useDebounced/useDebouncedValue.js.map +1 -1
  688. package/dist/esm/hooks/useDisclosure/useDisclosure.js.map +1 -1
  689. package/dist/esm/hooks/useEventCallback/useEventCallback.js +49 -0
  690. package/dist/esm/hooks/useEventCallback/useEventCallback.js.map +1 -0
  691. package/dist/esm/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  692. package/dist/esm/hooks/useHotkey/useHotkey.js +7 -12
  693. package/dist/esm/hooks/useHotkey/useHotkey.js.map +1 -1
  694. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +2 -0
  695. package/dist/esm/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  696. package/dist/esm/hooks/useIsMounted/useIsMounted.js +43 -0
  697. package/dist/esm/hooks/useIsMounted/useIsMounted.js.map +1 -0
  698. package/dist/esm/hooks/useKeyboard/useKeyboard.js.map +1 -1
  699. package/dist/esm/hooks/useKeyboard/utils.js.map +1 -1
  700. package/dist/esm/hooks/useLatest/useLatest.js +31 -0
  701. package/dist/esm/hooks/useLatest/useLatest.js.map +1 -0
  702. package/dist/esm/hooks/useListboxNav/useListboxNav.js +29 -13
  703. package/dist/esm/hooks/useListboxNav/useListboxNav.js.map +1 -1
  704. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js +7 -1
  705. package/dist/esm/hooks/useMediaQuery/useMediaQuery.js.map +1 -1
  706. package/dist/esm/hooks/useMergedRef/useMergedRef.js +6 -1
  707. package/dist/esm/hooks/useMergedRef/useMergedRef.js.map +1 -1
  708. package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js +146 -0
  709. package/dist/esm/hooks/useNavigationHistory/useNavigationHistory.js.map +1 -0
  710. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js +6 -8
  711. package/dist/esm/hooks/useResizeObserver/useResizeObserver.js.map +1 -1
  712. package/dist/esm/hooks/useTheme/useTheme.js +6 -3
  713. package/dist/esm/hooks/useTheme/useTheme.js.map +1 -1
  714. package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js +9 -4
  715. package/dist/esm/hooks/useThrottledCallback/useThrottledCallback.js.map +1 -1
  716. package/dist/esm/index.js +63 -4
  717. package/dist/esm/index.js.map +1 -1
  718. package/dist/esm/node_modules/tslib/tslib.es6.js +37 -0
  719. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
  720. package/dist/esm/styles.js +3 -0
  721. package/dist/esm/styles.js.map +1 -0
  722. package/dist/esm/theme/ThemeProvider.js +6 -4
  723. package/dist/esm/theme/ThemeProvider.js.map +1 -1
  724. package/dist/esm/theme/VanillaThemeProvider.js.map +1 -1
  725. package/dist/esm/theme/breakpoints.js.map +1 -1
  726. package/dist/esm/theme/contract.css.js +1 -1
  727. package/dist/esm/theme/createCustomTheme.js +2 -2
  728. package/dist/esm/theme/createCustomTheme.js.map +1 -1
  729. package/dist/esm/theme/createLightTheme.js.map +1 -1
  730. package/dist/esm/theme/darkTheme.css.js +2 -2
  731. package/dist/esm/theme/darkThemeValues.js +1 -1
  732. package/dist/esm/theme/darkThemeValues.js.map +1 -1
  733. package/dist/esm/theme/lightTheme.css.js +1 -1
  734. package/dist/esm/theme/lightThemeValues.js +1 -1
  735. package/dist/esm/theme/lightThemeValues.js.map +1 -1
  736. package/dist/esm/theme/themeContractData.js +4 -4
  737. package/dist/esm/theme/themeContractData.js.map +1 -1
  738. package/dist/esm/utils/cx.js.map +1 -1
  739. package/dist/esm/utils/devWarn.js +1 -1
  740. package/dist/esm/utils/devWarn.js.map +1 -1
  741. package/dist/esm/utils/mathExpression.js +1 -1
  742. package/dist/esm/utils/mathExpression.js.map +1 -1
  743. package/dist/esm/utils/mathUtils.js.map +1 -1
  744. package/dist/esm/utils/objects.js.map +1 -1
  745. package/dist/esm/utils/platform.js.map +1 -1
  746. package/dist/tokens/tokens.dark.css +1 -1
  747. package/dist/tokens/tokens.json +1 -1
  748. package/dist/tokens/tokens.light.css +1 -1
  749. package/dist/types/components/Icons/AddIcon.d.ts +1 -1
  750. package/dist/types/components/Icons/AiChatIcon.d.ts +1 -1
  751. package/dist/types/components/Icons/AiSparklesIcon.d.ts +1 -1
  752. package/dist/types/components/Icons/ArchiveIcon.d.ts +1 -1
  753. package/dist/types/components/Icons/ArrowDownIcon.d.ts +1 -1
  754. package/dist/types/components/Icons/ArrowLeftIcon.d.ts +1 -1
  755. package/dist/types/components/Icons/ArrowRightIcon.d.ts +1 -1
  756. package/dist/types/components/Icons/ArrowUpIcon.d.ts +1 -1
  757. package/dist/types/components/Icons/BookmarkIcon.d.ts +1 -1
  758. package/dist/types/components/Icons/BugIcon.d.ts +1 -1
  759. package/dist/types/components/Icons/BuildingIcon.d.ts +1 -1
  760. package/dist/types/components/Icons/CalendarIcon.d.ts +1 -1
  761. package/dist/types/components/Icons/CameraIcon.d.ts +34 -0
  762. package/dist/types/components/Icons/CheckIcon.d.ts +1 -1
  763. package/dist/types/components/Icons/ChevronDownIcon.d.ts +1 -1
  764. package/dist/types/components/Icons/ChevronLeftIcon.d.ts +1 -1
  765. package/dist/types/components/Icons/ChevronRightIcon.d.ts +1 -1
  766. package/dist/types/components/Icons/ChevronUpIcon.d.ts +1 -1
  767. package/dist/types/components/Icons/CircleIcon.d.ts +1 -1
  768. package/dist/types/components/Icons/ClockIcon.d.ts +1 -1
  769. package/dist/types/components/Icons/CloseIcon.d.ts +1 -1
  770. package/dist/types/components/Icons/CloudUploadIcon.d.ts +1 -1
  771. package/dist/types/components/Icons/CodeIcon.d.ts +1 -1
  772. package/dist/types/components/Icons/CopyIcon.d.ts +1 -1
  773. package/dist/types/components/Icons/CubeIcon.d.ts +34 -0
  774. package/dist/types/components/Icons/CutIcon.d.ts +1 -1
  775. package/dist/types/components/Icons/DotsHorizontalIcon.d.ts +1 -1
  776. package/dist/types/components/Icons/DotsVerticalIcon.d.ts +1 -1
  777. package/dist/types/components/Icons/DownloadIcon.d.ts +1 -1
  778. package/dist/types/components/Icons/EditIcon.d.ts +1 -1
  779. package/dist/types/components/Icons/ErrorIcon.d.ts +1 -1
  780. package/dist/types/components/Icons/ExternalLinkIcon.d.ts +1 -1
  781. package/dist/types/components/Icons/EyeDropperIcon.d.ts +1 -1
  782. package/dist/types/components/Icons/EyeIcon.d.ts +1 -1
  783. package/dist/types/components/Icons/FileTextIcon.d.ts +1 -1
  784. package/dist/types/components/Icons/FilterIcon.d.ts +1 -1
  785. package/dist/types/components/Icons/FirstIcon.d.ts +1 -1
  786. package/dist/types/components/Icons/FolderCogIcon.d.ts +1 -1
  787. package/dist/types/components/Icons/FolderIcon.d.ts +1 -1
  788. package/dist/types/components/Icons/FolderOpenIcon.d.ts +1 -1
  789. package/dist/types/components/Icons/FullscreenIcon.d.ts +1 -1
  790. package/dist/types/components/Icons/GitBranchIcon.d.ts +1 -1
  791. package/dist/types/components/Icons/GridIcon.d.ts +1 -1
  792. package/dist/types/components/Icons/HeartIcon.d.ts +1 -1
  793. package/dist/types/components/Icons/HelpIcon.d.ts +1 -1
  794. package/dist/types/components/Icons/HomeIcon.d.ts +1 -1
  795. package/dist/types/components/Icons/ImageIcon.d.ts +34 -0
  796. package/dist/types/components/Icons/InfoIcon.d.ts +1 -1
  797. package/dist/types/components/Icons/LastIcon.d.ts +1 -1
  798. package/dist/types/components/Icons/LinkIcon.d.ts +1 -1
  799. package/dist/types/components/Icons/ListIcon.d.ts +1 -1
  800. package/dist/types/components/Icons/LockIcon.d.ts +1 -1
  801. package/dist/types/components/Icons/MaximizeIcon.d.ts +1 -1
  802. package/dist/types/components/Icons/MenuIcon.d.ts +1 -1
  803. package/dist/types/components/Icons/MinimizeIcon.d.ts +1 -1
  804. package/dist/types/components/Icons/MinusIcon.d.ts +1 -1
  805. package/dist/types/components/Icons/OrbitIcon.d.ts +34 -0
  806. package/dist/types/components/Icons/PasteIcon.d.ts +1 -1
  807. package/dist/types/components/Icons/PauseIcon.d.ts +1 -1
  808. package/dist/types/components/Icons/PinIcon.d.ts +1 -1
  809. package/dist/types/components/Icons/PlayIcon.d.ts +1 -1
  810. package/dist/types/components/Icons/RedoIcon.d.ts +1 -1
  811. package/dist/types/components/Icons/RefreshIcon.d.ts +1 -1
  812. package/dist/types/components/Icons/RobotIcon.d.ts +1 -1
  813. package/dist/types/components/Icons/RotateIcon.d.ts +35 -0
  814. package/dist/types/components/Icons/SaveIcon.d.ts +1 -1
  815. package/dist/types/components/Icons/SearchIcon.d.ts +1 -1
  816. package/dist/types/components/Icons/SendIcon.d.ts +1 -1
  817. package/dist/types/components/Icons/SettingsIcon.d.ts +1 -1
  818. package/dist/types/components/Icons/SortIcon.d.ts +1 -1
  819. package/dist/types/components/Icons/SpinIcon.d.ts +35 -0
  820. package/dist/types/components/Icons/StarIcon.d.ts +1 -1
  821. package/dist/types/components/Icons/StopIcon.d.ts +1 -1
  822. package/dist/types/components/Icons/SuccessIcon.d.ts +1 -1
  823. package/dist/types/components/Icons/TagIcon.d.ts +1 -1
  824. package/dist/types/components/Icons/TangentAlignedIcon.d.ts +1 -1
  825. package/dist/types/components/Icons/TangentAutoIcon.d.ts +1 -1
  826. package/dist/types/components/Icons/TangentFreeIcon.d.ts +1 -1
  827. package/dist/types/components/Icons/TangentLinearIcon.d.ts +1 -1
  828. package/dist/types/components/Icons/TangentMirroredIcon.d.ts +1 -1
  829. package/dist/types/components/Icons/TangentStepIcon.d.ts +1 -1
  830. package/dist/types/components/Icons/TerminalIcon.d.ts +1 -1
  831. package/dist/types/components/Icons/TrashIcon.d.ts +1 -1
  832. package/dist/types/components/Icons/UndoIcon.d.ts +1 -1
  833. package/dist/types/components/Icons/UnlinkIcon.d.ts +1 -1
  834. package/dist/types/components/Icons/UnlockIcon.d.ts +1 -1
  835. package/dist/types/components/Icons/UploadIcon.d.ts +1 -1
  836. package/dist/types/components/Icons/UserIcon.d.ts +1 -1
  837. package/dist/types/components/Icons/UsersIcon.d.ts +1 -1
  838. package/dist/types/components/Icons/WarningIcon.d.ts +1 -1
  839. package/dist/types/components/Icons/ZoomFitIcon.d.ts +35 -0
  840. package/dist/types/components/Icons/ZoomInIcon.d.ts +1 -1
  841. package/dist/types/components/Icons/ZoomOutIcon.d.ts +1 -1
  842. package/dist/types/components/controls/CartesianPicker/CartesianPicker.types.d.ts +3 -3
  843. package/dist/types/components/controls/ColorPicker/ColorPicker.types.d.ts +2 -2
  844. package/dist/types/components/controls/ColorPicker/EyeDropper.d.ts +1 -1
  845. package/dist/types/components/controls/Combobox/Combobox.types.d.ts +1 -1
  846. package/dist/types/components/controls/CurveEditor/CurveEditor.types.d.ts +8 -58
  847. package/dist/types/components/controls/CurveEditor/curveUtils.d.ts +2 -1
  848. package/dist/types/components/controls/FileTree/FileTree.d.ts +34 -0
  849. package/dist/types/components/controls/FileTree/FileTree.types.d.ts +133 -0
  850. package/dist/types/components/controls/FileTree/fileTreeIcons.d.ts +29 -0
  851. package/dist/types/components/controls/FileTree/fileTreeLabels.d.ts +19 -0
  852. package/dist/types/components/controls/FileUploader/FileUploader.types.d.ts +2 -2
  853. package/dist/types/components/controls/MultiSelect/MultiSelect.types.d.ts +1 -1
  854. package/dist/types/components/controls/NumberInput/NumberInput.d.ts +2 -2
  855. package/dist/types/components/controls/Select/Select.d.ts +1 -1
  856. package/dist/types/components/controls/Select/Select.types.d.ts +45 -11
  857. package/dist/types/components/controls/Slider/Slider.d.ts +1 -1
  858. package/dist/types/components/controls/TagInput/TagInput.types.d.ts +2 -2
  859. package/dist/types/components/controls/TreeView/TreeView.d.ts +1 -1
  860. package/dist/types/components/controls/TreeView/TreeView.types.d.ts +24 -2
  861. package/dist/types/components/controls/VectorInput/VectorInput.types.d.ts +1 -1
  862. package/dist/types/components/data/DataTable/DataTable.types.d.ts +2 -2
  863. package/dist/types/components/editor/AssetBrowser/AssetBrowser.d.ts +13 -0
  864. package/dist/types/components/editor/AssetBrowser/AssetBrowser.types.d.ts +241 -0
  865. package/dist/types/components/editor/AssetBrowser/assetBrowserLabels.d.ts +70 -0
  866. package/dist/types/components/editor/ChatPanel/ChatMarkdownRenderer.types.d.ts +1 -1
  867. package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +2 -2
  868. package/dist/types/components/editor/Minimap/Minimap.d.ts +26 -0
  869. package/dist/types/components/editor/Minimap/Minimap.types.d.ts +249 -0
  870. package/dist/types/components/editor/Minimap/MinimapContext.d.ts +27 -0
  871. package/dist/types/components/editor/Minimap/MinimapCorner.d.ts +8 -0
  872. package/dist/types/components/editor/Minimap/MinimapFooter.d.ts +8 -0
  873. package/dist/types/components/editor/Minimap/MinimapStore.d.ts +17 -0
  874. package/dist/types/components/editor/Minimap/MinimapTitle.d.ts +8 -0
  875. package/dist/types/components/editor/Minimap/ViewportMinimap.d.ts +52 -0
  876. package/dist/types/components/editor/Minimap/computeBoundsFromItems.d.ts +13 -0
  877. package/dist/types/components/editor/Minimap/index.d.ts +13 -0
  878. package/dist/types/components/editor/NodeGraph/NodeGraph.d.ts +63 -0
  879. package/dist/types/components/editor/NodeGraph/NodeGraph.types.d.ts +568 -0
  880. package/dist/types/components/editor/NodeGraph/NodeGraphContext.d.ts +30 -0
  881. package/dist/types/components/editor/NodeGraph/NodeGraphNodeParts.d.ts +86 -0
  882. package/dist/types/components/editor/NodeGraph/NodeGraphNodeSection.d.ts +47 -0
  883. package/dist/types/components/editor/NodeGraph/NodeGraphPin.d.ts +57 -0
  884. package/dist/types/components/editor/NodeGraph/NodeGraphPort.d.ts +30 -0
  885. package/dist/types/components/editor/NodeGraph/NodeGraphPortVisual.d.ts +46 -0
  886. package/dist/types/components/editor/NodeGraph/NodeGraphSlots.d.ts +16 -0
  887. package/dist/types/components/editor/NodeGraph/NodeGraphStore.d.ts +256 -0
  888. package/dist/types/components/editor/NodeGraph/NodeGraphToolbar.d.ts +54 -0
  889. package/dist/types/components/editor/NodeGraph/createTypeMatchValidator.d.ts +43 -0
  890. package/dist/types/components/editor/NodeGraph/nodeGraphActions.d.ts +39 -0
  891. package/dist/types/components/editor/NodeGraph/nodeGraphIds.d.ts +16 -0
  892. package/dist/types/components/editor/NodeGraph/useNodeGraph.d.ts +103 -0
  893. package/dist/types/components/editor/PropertyInspector/PropertyInspector.types.d.ts +51 -5
  894. package/dist/types/components/editor/Timeline/Timeline.d.ts +18 -0
  895. package/dist/types/components/editor/Timeline/Timeline.types.d.ts +348 -0
  896. package/dist/types/components/editor/Timeline/TimelineContext.d.ts +51 -0
  897. package/dist/types/components/editor/Timeline/TimelineFooter.d.ts +8 -0
  898. package/dist/types/components/editor/Timeline/TimelineMinimap.d.ts +21 -0
  899. package/dist/types/components/editor/Timeline/TimelineStore.d.ts +41 -0
  900. package/dist/types/components/editor/Timeline/TimelineToolbar.d.ts +8 -0
  901. package/dist/types/components/editor/Timeline/TimelineTrackScale.d.ts +8 -0
  902. package/dist/types/components/editor/Timeline/index.d.ts +15 -0
  903. package/dist/types/components/editor/Timeline/timelineCoords.d.ts +7 -0
  904. package/dist/types/components/editor/Timeline/timelineEdits.d.ts +18 -0
  905. package/dist/types/components/editor/TransformControl/TransformControl.types.d.ts +2 -2
  906. package/dist/types/components/editor/ViewportGizmo/ViewportGizmo.types.d.ts +1 -1
  907. package/dist/types/components/feedback/Alert/Alert.d.ts +2 -2
  908. package/dist/types/components/feedback/Alert/Alert.types.d.ts +5 -5
  909. package/dist/types/components/feedback/CommandPalette/CommandPalette.types.d.ts +1 -3
  910. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +2 -2
  911. package/dist/types/components/feedback/Drawer/Drawer.types.d.ts +1 -1
  912. package/dist/types/components/feedback/EmptyState/EmptyState.types.d.ts +2 -2
  913. package/dist/types/components/feedback/LogView/LogView.d.ts +58 -0
  914. package/dist/types/components/feedback/LogView/LogView.types.d.ts +333 -0
  915. package/dist/types/components/feedback/LogView/LogViewBody.d.ts +15 -0
  916. package/dist/types/components/feedback/LogView/LogViewContext.d.ts +9 -0
  917. package/dist/types/components/feedback/LogView/LogViewParts.d.ts +35 -0
  918. package/dist/types/components/feedback/LogView/LogViewStore.d.ts +4 -0
  919. package/dist/types/components/feedback/LogView/logViewLabels.d.ts +9 -0
  920. package/dist/types/components/feedback/LogView/logViewUtils.d.ts +41 -0
  921. package/dist/types/components/feedback/ProgressBar/ProgressBar.types.d.ts +3 -3
  922. package/dist/types/components/feedback/Skeleton/Skeleton.types.d.ts +4 -4
  923. package/dist/types/components/feedback/Stat/Stat.types.d.ts +2 -2
  924. package/dist/types/components/feedback/Toast/Toast.types.d.ts +1 -1
  925. package/dist/types/components/form/FormHelperText.d.ts +2 -2
  926. package/dist/types/components/form/FormLabel.d.ts +1 -1
  927. package/dist/types/components/form/InputWrapper.d.ts +2 -2
  928. package/dist/types/components/layout/Accordion/Accordion.types.d.ts +2 -2
  929. package/dist/types/components/layout/Card/Card.types.d.ts +6 -6
  930. package/dist/types/components/layout/Divider/Divider.types.d.ts +2 -2
  931. package/dist/types/components/layout/Flex/Flex.d.ts +1 -1
  932. package/dist/types/components/layout/Grid/Grid.d.ts +1 -1
  933. package/dist/types/components/layout/ListItem/ListItem.types.d.ts +2 -2
  934. package/dist/types/components/layout/PageHeader/PageHeader.types.d.ts +1 -1
  935. package/dist/types/components/layout/PanelSurface/PanelSurface.types.d.ts +6 -6
  936. package/dist/types/components/layout/ScrollArea/ScrollArea.types.d.ts +2 -2
  937. package/dist/types/components/layout/Stack/Stack.d.ts +1 -1
  938. package/dist/types/components/navigation/Breadcrumbs/BreadcrumbItem.d.ts +1 -0
  939. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.types.d.ts +7 -0
  940. package/dist/types/components/navigation/ContextMenu/ContextMenu.d.ts +18 -3
  941. package/dist/types/components/navigation/ContextMenu/ContextMenu.types.d.ts +55 -63
  942. package/dist/types/components/navigation/Menu/Menu.d.ts +38 -35
  943. package/dist/types/components/navigation/Menu/Menu.types.d.ts +190 -71
  944. package/dist/types/components/navigation/Pagination/Pagination.types.d.ts +1 -1
  945. package/dist/types/components/navigation/PathBar/PathBar.d.ts +31 -0
  946. package/dist/types/components/navigation/PathBar/PathBar.types.d.ts +79 -0
  947. package/dist/types/components/navigation/SegmentedControl/SegmentedControl.types.d.ts +3 -3
  948. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +2 -2
  949. package/dist/types/components/primitives/Avatar/Avatar.types.d.ts +2 -2
  950. package/dist/types/components/primitives/Badge/Badge.types.d.ts +1 -1
  951. package/dist/types/components/primitives/Button/Button.d.ts +2 -2
  952. package/dist/types/components/primitives/Checkbox/Checkbox.types.d.ts +2 -2
  953. package/dist/types/components/primitives/Code/Code.types.d.ts +1 -1
  954. package/dist/types/components/primitives/Collapsible/Collapsible.types.d.ts +2 -2
  955. package/dist/types/components/primitives/HoverCard/HoverCard.types.d.ts +3 -3
  956. package/dist/types/components/primitives/Icon/Icon.d.ts +2 -2
  957. package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
  958. package/dist/types/components/primitives/Input/Input.d.ts +1 -1
  959. package/dist/types/components/primitives/Kbd/Kbd.types.d.ts +1 -1
  960. package/dist/types/components/primitives/Link/Link.types.d.ts +1 -1
  961. package/dist/types/components/primitives/Popover/Popover.types.d.ts +2 -2
  962. package/dist/types/components/primitives/Radio/Radio.types.d.ts +3 -3
  963. package/dist/types/components/primitives/Switch/Switch.d.ts +1 -1
  964. package/dist/types/components/primitives/TextArea/TextArea.types.d.ts +1 -1
  965. package/dist/types/components/primitives/Tooltip/Tooltip.d.ts +1 -1
  966. package/dist/types/components/primitives/VisuallyHidden/VisuallyHidden.types.d.ts +1 -1
  967. package/dist/types/components/primitives/canvas/canvas.types.d.ts +16 -1
  968. package/dist/types/components/primitives/viewport/Viewport.d.ts +38 -0
  969. package/dist/types/components/primitives/viewport/Viewport.types.d.ts +257 -0
  970. package/dist/types/components/primitives/viewport/ViewportContext.d.ts +23 -0
  971. package/dist/types/components/primitives/viewport/ViewportLayer.d.ts +26 -0
  972. package/dist/types/components/primitives/viewport/ViewportOverlay.d.ts +27 -0
  973. package/dist/types/components/primitives/viewport/ViewportWorld.d.ts +25 -0
  974. package/dist/types/components/primitives/viewport/viewportCoords.d.ts +25 -0
  975. package/dist/types/components/primitives/viewport/viewportMath.d.ts +35 -0
  976. package/dist/types/components/shell/AppShell/AppShell.types.d.ts +2 -2
  977. package/dist/types/components/shell/FloatingPanel/FloatingPanel.types.d.ts +2 -2
  978. package/dist/types/components/shell/MenuBar/MenuBar.types.d.ts +5 -5
  979. package/dist/types/components/shell/StatusBar/StatusBar.types.d.ts +3 -3
  980. package/dist/types/components/shell/Toolbar/Toolbar.types.d.ts +5 -5
  981. package/dist/types/hooks/useDebounced/useDebouncedValue.d.ts +13 -4
  982. package/dist/types/hooks/useEventCallback/useEventCallback.d.ts +32 -0
  983. package/dist/types/hooks/useIsMounted/useIsMounted.d.ts +28 -0
  984. package/dist/types/hooks/useKeyboard/types.d.ts +1 -1
  985. package/dist/types/hooks/useLatest/useLatest.d.ts +23 -0
  986. package/dist/types/hooks/useResizeObserver/useResizeObserver.d.ts +3 -3
  987. package/dist/types/index.d.ts +71 -6
  988. package/dist/types/theme/ThemeProvider.d.ts +5 -3
  989. package/dist/types/theme/contract.css.d.ts +1 -1
  990. package/dist/types/theme/createCustomTheme.d.ts +1 -1
  991. package/dist/types/theme/darkThemeValues.d.ts +1 -1
  992. package/dist/types/theme/lightThemeValues.d.ts +1 -1
  993. package/dist/types/theme/themeContractData.d.ts +4 -4
  994. package/dist/types/theme-values.d.ts +1 -1
  995. package/dist/types/types/keyframe.d.ts +64 -0
  996. package/package.json +34 -18
  997. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  998. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  999. package/dist/esm/_virtual/cjs.js +0 -4
  1000. package/dist/esm/_virtual/cjs.js.map +0 -1
  1001. package/dist/esm/_virtual/cssesc.js +0 -8
  1002. package/dist/esm/_virtual/cssesc.js.map +0 -1
  1003. package/dist/esm/_virtual/picocolors.js +0 -8
  1004. package/dist/esm/_virtual/picocolors.js.map +0 -1
  1005. package/dist/esm/_virtual/picocolors2.js +0 -4
  1006. package/dist/esm/_virtual/picocolors2.js.map +0 -1
  1007. package/dist/esm/assets/src/components/navigation/Menu/Menu.css.ts.vanilla-DD0c5D10.css +0 -67
  1008. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js +0 -53
  1009. package/dist/esm/components/navigation/ContextMenu/useContextMenuTarget.js.map +0 -1
  1010. package/dist/esm/components/navigation/Menu/Menu.helpers.js +0 -53
  1011. package/dist/esm/components/navigation/Menu/Menu.helpers.js.map +0 -1
  1012. package/dist/esm/components/navigation/Menu/useMenu.js +0 -88
  1013. package/dist/esm/components/navigation/Menu/useMenu.js.map +0 -1
  1014. package/dist/esm/node_modules/@emotion/hash/dist/emotion-hash.esm.js +0 -56
  1015. package/dist/esm/node_modules/@emotion/hash/dist/emotion-hash.esm.js.map +0 -1
  1016. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js +0 -46
  1017. package/dist/esm/node_modules/@vanilla-extract/css/adapter/dist/vanilla-extract-css-adapter.esm.js.map +0 -1
  1018. package/dist/esm/node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-10998315.esm.js +0 -13
  1019. package/dist/esm/node_modules/@vanilla-extract/css/dist/taggedTemplateLiteral-10998315.esm.js.map +0 -1
  1020. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js +0 -962
  1021. package/dist/esm/node_modules/@vanilla-extract/css/dist/transformCss-fd0786e1.esm.js.map +0 -1
  1022. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js +0 -309
  1023. package/dist/esm/node_modules/@vanilla-extract/css/dist/vanilla-extract-css.esm.js.map +0 -1
  1024. package/dist/esm/node_modules/@vanilla-extract/css/fileScope/dist/vanilla-extract-css-fileScope.esm.js +0 -18
  1025. package/dist/esm/node_modules/@vanilla-extract/css/fileScope/dist/vanilla-extract-css-fileScope.esm.js.map +0 -1
  1026. package/dist/esm/node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.esm.js +0 -23
  1027. package/dist/esm/node_modules/@vanilla-extract/css/injectStyles/dist/vanilla-extract-css-injectStyles.esm.js.map +0 -1
  1028. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js +0 -1543
  1029. package/dist/esm/node_modules/@vanilla-extract/css/node_modules/lru-cache/dist/esm/index.js.map +0 -1
  1030. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js +0 -38
  1031. package/dist/esm/node_modules/@vanilla-extract/private/dist/vanilla-extract-private.esm.js.map +0 -1
  1032. package/dist/esm/node_modules/css-what/lib/es/parse.js +0 -424
  1033. package/dist/esm/node_modules/css-what/lib/es/parse.js.map +0 -1
  1034. package/dist/esm/node_modules/css-what/lib/es/types.js +0 -29
  1035. package/dist/esm/node_modules/css-what/lib/es/types.js.map +0 -1
  1036. package/dist/esm/node_modules/cssesc/cssesc.js +0 -120
  1037. package/dist/esm/node_modules/cssesc/cssesc.js.map +0 -1
  1038. package/dist/esm/node_modules/dedent/dist/dedent.js +0 -100
  1039. package/dist/esm/node_modules/dedent/dist/dedent.js.map +0 -1
  1040. package/dist/esm/node_modules/deep-object-diff/mjs/diff.js +0 -40
  1041. package/dist/esm/node_modules/deep-object-diff/mjs/diff.js.map +0 -1
  1042. package/dist/esm/node_modules/deep-object-diff/mjs/utils.js +0 -9
  1043. package/dist/esm/node_modules/deep-object-diff/mjs/utils.js.map +0 -1
  1044. package/dist/esm/node_modules/deepmerge/dist/cjs.js +0 -143
  1045. package/dist/esm/node_modules/deepmerge/dist/cjs.js.map +0 -1
  1046. package/dist/esm/node_modules/media-query-parser/dist/media-query-parser.esm.js +0 -1386
  1047. package/dist/esm/node_modules/media-query-parser/dist/media-query-parser.esm.js.map +0 -1
  1048. package/dist/esm/node_modules/modern-ahocorasick/dist/index.js +0 -102
  1049. package/dist/esm/node_modules/modern-ahocorasick/dist/index.js.map +0 -1
  1050. package/dist/esm/node_modules/picocolors/picocolors.js +0 -87
  1051. package/dist/esm/node_modules/picocolors/picocolors.js.map +0 -1
  1052. package/dist/types/components/navigation/ContextMenu/useContextMenuTarget.d.ts +0 -5
  1053. package/dist/types/components/navigation/Menu/useMenu.d.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"CartesianPicker.js","sources":["../../../../../../src/components/controls/CartesianPicker/CartesianPicker.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAoBO;AAiCL;;;AAOA;;AAMA;;;;AAKI;AACF;AAIF;AAEI;AACF;;AAKF;;AAEE;AACA;AACA;;;;;;;AAOF;;;AAIE;;;;;;;;;;;;AAYA;AACA;AACD;;AAGD;;AAEE;;;;;;;;;;;;;;;;;AAiBD;;;;;AAQD;AAIM;;AAEE;;AAEH;AAsBK;;;;;;AAMD;AAKX;AAEA;;"}
1
+ {"version":3,"file":"CartesianPicker.js","sources":["src/components/controls/CartesianPicker/CartesianPicker.tsx"],"sourcesContent":["'use client';\n\nimport { assignInlineVars } from '@vanilla-extract/dynamic';\nimport React, { useState, useCallback, useMemo, useRef } from 'react';\n\nimport { CanvasContainer } from '@/components/primitives/canvas/CanvasContainer';\nimport { cx } from '@/utils/cx';\nimport { roundToPrecision } from '@/utils/mathUtils';\n\nimport {\n cartesianPickerRecipe,\n pickerWidthVar,\n bottomBarStyle,\n} from './CartesianPicker.css';\nimport { useCartesianInteraction } from './useCartesianInteraction';\nimport { useCartesianRenderer } from './useCartesianRenderer';\n\nimport type { CartesianPickerProps } from './CartesianPicker.types';\nimport type {\n Point2D,\n CanvasViewport,\n} from '@/components/primitives/canvas/canvas.types';\n\nexport const CartesianPicker: React.FC<CartesianPickerProps> = ({\n value,\n defaultValue,\n domainX = [-1, 1],\n domainY = [-1, 1],\n showGrid = true,\n gridSubdivisions = 4,\n showAxisLabels = true,\n showOriginAxes = true,\n showCrosshair = true,\n crosshairStyle = 'dashed',\n labelX,\n labelY,\n markerRadius = 6,\n snapToGrid = false,\n step,\n clampToRange = true,\n precision = 2,\n width = 200,\n height = 200,\n responsive = false,\n disabled = false,\n readOnly = false,\n onChange,\n onChangeComplete,\n renderBackground,\n renderBottomBar,\n className,\n testId,\n id,\n style,\n ...rest\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n // Controlled / uncontrolled\n const [internalValue, setInternalValue] = useState<Point2D>(\n () => defaultValue ?? { x: 0, y: 0 }\n );\n\n const isControlled = value !== undefined;\n const currentPoint = useMemo(\n () => (isControlled ? value : internalValue),\n [isControlled, value, internalValue]\n );\n\n const handleChange = useCallback(\n (newPoint: Point2D) => {\n if (!isControlled) {\n setInternalValue(newPoint);\n }\n onChange?.(newPoint);\n },\n [isControlled, onChange]\n );\n\n const handleChangeComplete = useCallback(\n (newPoint: Point2D) => {\n onChangeComplete?.(newPoint);\n },\n [onChangeComplete]\n );\n\n // Viewport with padding\n const viewport = useMemo((): CanvasViewport => {\n const hasAxisNames = Boolean(labelX ?? labelY);\n const padding = hasAxisNames && showAxisLabels ? 0.12 : 0.08;\n const [dxMin, dxMax] = domainX;\n const [dyMin, dyMax] = domainY;\n const xPad = (dxMax - dxMin) * padding;\n const yPad = (dyMax - dyMin) * padding;\n return {\n viewX: [dxMin - xPad, dxMax + xPad],\n viewY: [dyMin - yPad, dyMax + yPad],\n };\n }, [domainX, domainY, labelX, labelY, showAxisLabels]);\n\n // Interaction hook\n const interaction = useCartesianInteraction({\n point: currentPoint,\n viewport,\n canvasRef,\n domainX,\n domainY,\n disabled,\n readOnly,\n clampToRange,\n snapToGrid,\n gridSubdivisions,\n step,\n precision,\n onChange: handleChange,\n onChangeComplete: handleChangeComplete,\n });\n\n // Renderer hook\n useCartesianRenderer({\n canvasRef,\n point: currentPoint,\n viewport,\n domainX,\n domainY,\n showGrid,\n gridSubdivisions,\n showAxisLabels,\n showOriginAxes,\n showCrosshair,\n crosshairStyle,\n labelX,\n labelY,\n markerRadius,\n disabled,\n isHovered: interaction.isHovered,\n isDragging: interaction.isDragging,\n renderBackground,\n });\n\n // ARIA description\n const ariaDescription = `2D point picker, current value X: ${roundToPrecision(currentPoint.x, precision)}, Y: ${roundToPrecision(currentPoint.y, precision)}`;\n\n // Live announcement\n const liveAnnouncement = `X: ${roundToPrecision(currentPoint.x, precision)}, Y: ${roundToPrecision(currentPoint.y, precision)}`;\n\n return (\n <div\n className={cx(cartesianPickerRecipe({ disabled, responsive }), className)}\n style={{\n ...style,\n ...(!responsive\n ? assignInlineVars({ [pickerWidthVar]: `${width}px` })\n : {}),\n }}\n data-testid={testId}\n id={id}\n {...rest}\n >\n <CanvasContainer\n canvasRef={canvasRef}\n height={height}\n responsive={responsive}\n disabled={disabled}\n ariaLabel=\"Cartesian point picker\"\n ariaRoledescription={ariaDescription}\n liveAnnouncement={liveAnnouncement}\n handlers={interaction.handlers}\n testId={testId ? `${testId}-canvas` : undefined}\n />\n {renderBottomBar && (\n <div\n className={bottomBarStyle}\n data-testid={testId ? `${testId}-bottom-bar` : undefined}\n >\n {renderBottomBar({\n point: currentPoint,\n disabled,\n readOnly,\n isDragging: interaction.isDragging,\n domainX,\n domainY,\n })}\n </div>\n )}\n </div>\n );\n};\n\nCartesianPicker.displayName = 'CartesianPicker';\n"],"names":[],"mappings":";;;;;;;;;;;AAuBO;AAiCL;;;AAOA;;AAMA;;;;AAKI;AACF;AAIF;AAEI;AACF;;AAKF;;AAEE;AACA;AACA;;;;;;;AAOF;;;AAIE;;;;;;;;;;;;AAYA;AACA;AACD;;AAGD;;AAEE;;;;;;;;;;;;;;;;;AAiBD;;;;;AAQD;AAIM;;AAEE;;AAEH;AAsBK;;;;;;AAMD;AAKX;AAEA;;"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { useState, useRef, useCallback } from 'react';
3
- import { clamp, roundToPrecision } from '../../../utils/mathUtils.js';
4
3
  import { getCanvasPointerPosition, canvasToDomain, hitTestPoint } from '../../primitives/canvas/canvasCoords.js';
4
+ import { clamp, roundToPrecision } from '../../../utils/mathUtils.js';
5
5
 
6
6
  function snapValue(value, step) {
7
7
  if (step === 0)
@@ -11,8 +11,10 @@ function snapValue(value, step) {
11
11
  function useCartesianInteraction(options) {
12
12
  const { point, viewport, canvasRef, domainX, domainY, disabled, readOnly, clampToRange, snapToGrid, gridSubdivisions, step, precision, onChange, onChangeComplete, } = options;
13
13
  const [isHovered, setIsHovered] = useState(false);
14
+ // Ref drives synchronous reads inside the pointer handlers; the state mirror
15
+ // is the value exposed for rendering (kept in sync on drag start/end).
14
16
  const isDraggingRef = useRef(false);
15
- const [, setForceUpdate] = useState(0);
17
+ const [isDragging, setIsDragging] = useState(false);
16
18
  const getCanvasSize = useCallback(() => {
17
19
  const canvas = canvasRef.current;
18
20
  if (!canvas)
@@ -63,7 +65,7 @@ function useCartesianInteraction(options) {
63
65
  const domain = canvasToDomain(px, py, viewport, w, h);
64
66
  const newPoint = applyConstraints(domain.x, domain.y, e.ctrlKey);
65
67
  isDraggingRef.current = true;
66
- setForceUpdate(n => n + 1);
68
+ setIsDragging(true);
67
69
  canvas.setPointerCapture(e.pointerId);
68
70
  onChange(newPoint);
69
71
  }, [
@@ -123,7 +125,7 @@ function useCartesianInteraction(options) {
123
125
  return;
124
126
  if (isDraggingRef.current) {
125
127
  isDraggingRef.current = false;
126
- setForceUpdate(n => n + 1);
128
+ setIsDragging(false);
127
129
  canvas.releasePointerCapture(e.pointerId);
128
130
  // Compute final point for onChangeComplete
129
131
  const { px, py } = getCanvasPointerPosition(e, canvas);
@@ -214,7 +216,7 @@ function useCartesianInteraction(options) {
214
216
  onChangeComplete,
215
217
  ]);
216
218
  return {
217
- isDragging: isDraggingRef.current,
219
+ isDragging,
218
220
  isHovered,
219
221
  handlers: {
220
222
  onPointerDown,
@@ -1 +1 @@
1
- {"version":3,"file":"useCartesianInteraction.js","sources":["../../../../../../src/components/controls/CartesianPicker/useCartesianInteraction.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AA2CA;;AACkB;;AAElB;AAEM;AAGJ;;AAkBA;;AAGA;AACE;AACA;;AACA;AACA;AACF;;;;;;;AAUM;AACA;;AACK;;AAEL;AACA;AACA;AACA;;AAGF;AACA;;AAGE;AACA;;;AAIJ;;;;;;;;AASC;AAGH;;;AAGI;AACA;;AAEA;;AAGA;AACA;AAEA;;AAEA;;AAGF;;;;;;;;AASC;AAGH;AAEI;AACA;;AAEA;AACE;;AACA;;AAEA;AACA;;;;;AAMF;;AAEA;AACA;;;AAIE;;;AAEA;;;AAEA;;;AAEA;;AAEJ;;;;;;;;;AAUC;AAGH;AAEI;AACA;;AAEA;AACE;;AAEA;;AAGA;;AAEA;AACA;AACA;;AAEJ;AAIF;;;;;AAOI;;;;;;AAKE;;AAGF;AACA;;AAGI;AACE;AACA;AACF;AAEJ;AACA;;AAGA;AACE;;;;AAIA;;;;AAIA;;;;AAIA;;;;;;AAME;AACA;;;;;;;;;;;;AAaJ;;;AAGA;AACA;;AAGE;AACA;;;;AAKF;AACF;;;;;;;;;;;;AAaC;;;;AAMD;;;;;AAKC;;AAEL;;"}
1
+ {"version":3,"file":"useCartesianInteraction.js","sources":["src/components/controls/CartesianPicker/useCartesianInteraction.ts"],"sourcesContent":["'use client';\n\nimport { useState, useCallback, useRef } from 'react';\n\nimport {\n canvasToDomain,\n getCanvasPointerPosition,\n hitTestPoint,\n} from '@/components/primitives/canvas/canvasCoords';\nimport { clamp, roundToPrecision } from '@/utils/mathUtils';\n\nimport type {\n Point2D,\n CanvasViewport,\n} from '@/components/primitives/canvas/canvas.types';\nimport type React from 'react';\n\ninterface UseCartesianInteractionOptions {\n point: Point2D;\n viewport: CanvasViewport;\n canvasRef: React.RefObject<HTMLCanvasElement | null>;\n domainX: [number, number];\n domainY: [number, number];\n disabled: boolean;\n readOnly: boolean;\n clampToRange: boolean;\n snapToGrid: boolean;\n gridSubdivisions: number;\n step?: number | [number, number];\n precision: number;\n onChange: (point: Point2D) => void;\n onChangeComplete?: (point: Point2D) => void;\n}\n\ninterface UseCartesianInteractionReturn {\n isDragging: boolean;\n isHovered: boolean;\n handlers: {\n onPointerDown: (e: React.PointerEvent) => void;\n onPointerMove: (e: React.PointerEvent) => void;\n onPointerUp: (e: React.PointerEvent) => void;\n onKeyDown: (e: React.KeyboardEvent) => void;\n };\n}\n\nfunction snapValue(value: number, step: number): number {\n if (step === 0) return value;\n return Math.round(value / step) * step;\n}\n\nexport function useCartesianInteraction(\n options: UseCartesianInteractionOptions\n): UseCartesianInteractionReturn {\n const {\n point,\n viewport,\n canvasRef,\n domainX,\n domainY,\n disabled,\n readOnly,\n clampToRange,\n snapToGrid,\n gridSubdivisions,\n step,\n precision,\n onChange,\n onChangeComplete,\n } = options;\n\n const [isHovered, setIsHovered] = useState(false);\n // Ref drives synchronous reads inside the pointer handlers; the state mirror\n // is the value exposed for rendering (kept in sync on drag start/end).\n const isDraggingRef = useRef(false);\n const [isDragging, setIsDragging] = useState(false);\n\n const getCanvasSize = useCallback(() => {\n const canvas = canvasRef.current;\n if (!canvas) return { w: 200, h: 200 };\n const rect = canvas.getBoundingClientRect();\n return { w: rect.width, h: rect.height };\n }, [canvasRef]);\n\n const applyConstraints = useCallback(\n (rawX: number, rawY: number, ctrlKey: boolean): Point2D => {\n let newX = rawX;\n let newY = rawY;\n\n // Apply snap\n if (step) {\n const [stepX, stepY] = Array.isArray(step) ? step : [step, step];\n newX = snapValue(newX, stepX);\n newY = snapValue(newY, stepY);\n } else if (snapToGrid !== ctrlKey) {\n // Ctrl toggles snap behavior\n const xStep = (domainX[1] - domainX[0]) / gridSubdivisions;\n const yStep = (domainY[1] - domainY[0]) / gridSubdivisions;\n newX = snapValue(newX, xStep);\n newY = snapValue(newY, yStep);\n }\n\n newX = roundToPrecision(newX, precision);\n newY = roundToPrecision(newY, precision);\n\n if (clampToRange) {\n newX = clamp(newX, domainX[0], domainX[1]);\n newY = clamp(newY, domainY[0], domainY[1]);\n }\n\n return { x: newX, y: newY };\n },\n [\n step,\n snapToGrid,\n gridSubdivisions,\n domainX,\n domainY,\n precision,\n clampToRange,\n ]\n );\n\n const onPointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (disabled || readOnly || e.button !== 0) return;\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const { px, py } = getCanvasPointerPosition(e, canvas);\n const { w, h } = getCanvasSize();\n\n const domain = canvasToDomain(px, py, viewport, w, h);\n const newPoint = applyConstraints(domain.x, domain.y, e.ctrlKey);\n\n isDraggingRef.current = true;\n setIsDragging(true);\n canvas.setPointerCapture(e.pointerId);\n\n onChange(newPoint);\n },\n [\n disabled,\n readOnly,\n canvasRef,\n viewport,\n getCanvasSize,\n applyConstraints,\n onChange,\n ]\n );\n\n const onPointerMove = useCallback(\n (e: React.PointerEvent) => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n if (isDraggingRef.current) {\n if (readOnly) return;\n const { px, py } = getCanvasPointerPosition(e, canvas);\n const { w, h } = getCanvasSize();\n const domain = canvasToDomain(px, py, viewport, w, h);\n const newPoint = applyConstraints(domain.x, domain.y, e.ctrlKey);\n onChange(newPoint);\n return;\n }\n\n // Hover detection\n const { px, py } = getCanvasPointerPosition(e, canvas);\n const { w, h } = getCanvasSize();\n const dist = hitTestPoint(px, py, point, viewport, w, h, 12);\n const hovering = dist !== Infinity;\n setIsHovered(hovering);\n\n if (disabled) {\n canvas.style.cursor = 'not-allowed';\n } else if (readOnly) {\n canvas.style.cursor = 'default';\n } else if (hovering) {\n canvas.style.cursor = 'grab';\n } else {\n canvas.style.cursor = 'crosshair';\n }\n },\n [\n canvasRef,\n viewport,\n point,\n disabled,\n readOnly,\n getCanvasSize,\n applyConstraints,\n onChange,\n ]\n );\n\n const onPointerUp = useCallback(\n (e: React.PointerEvent) => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n if (isDraggingRef.current) {\n isDraggingRef.current = false;\n setIsDragging(false);\n canvas.releasePointerCapture(e.pointerId);\n\n // Compute final point for onChangeComplete\n const { px, py } = getCanvasPointerPosition(e, canvas);\n const { w, h } = getCanvasSize();\n const domain = canvasToDomain(px, py, viewport, w, h);\n const finalPoint = applyConstraints(domain.x, domain.y, e.ctrlKey);\n onChangeComplete?.(finalPoint);\n }\n },\n [canvasRef, viewport, getCanvasSize, applyConstraints, onChangeComplete]\n );\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled || readOnly) return;\n\n const xRange = domainX[1] - domainX[0];\n const yRange = domainY[1] - domainY[0];\n\n let baseStep: number;\n if (step) {\n const [stepX] = Array.isArray(step) ? step : [step, step];\n baseStep = stepX;\n } else {\n baseStep = xRange / gridSubdivisions;\n }\n\n const fineMultiplier = e.shiftKey ? 0.1 : 1;\n const xStep = baseStep * fineMultiplier;\n const yStep =\n (step\n ? Array.isArray(step)\n ? step[1]\n : step\n : yRange / gridSubdivisions) * fineMultiplier;\n\n let newX = point.x;\n let newY = point.y;\n let handled = false;\n\n switch (e.key) {\n case 'ArrowLeft':\n newX -= xStep;\n handled = true;\n break;\n case 'ArrowRight':\n newX += xStep;\n handled = true;\n break;\n case 'ArrowUp':\n newY += yStep;\n handled = true;\n break;\n case 'ArrowDown':\n newY -= yStep;\n handled = true;\n break;\n case 'Home': {\n // Reset to center of domain\n newX = (domainX[0] + domainX[1]) / 2;\n newY = (domainY[0] + domainY[1]) / 2;\n handled = true;\n break;\n }\n case '0': {\n // Reset to origin\n newX = 0;\n newY = 0;\n handled = true;\n break;\n }\n }\n\n if (!handled) return;\n e.preventDefault();\n\n newX = roundToPrecision(newX, precision);\n newY = roundToPrecision(newY, precision);\n\n if (clampToRange) {\n newX = clamp(newX, domainX[0], domainX[1]);\n newY = clamp(newY, domainY[0], domainY[1]);\n }\n\n const newPoint = { x: newX, y: newY };\n onChange(newPoint);\n onChangeComplete?.(newPoint);\n },\n [\n disabled,\n readOnly,\n point,\n domainX,\n domainY,\n step,\n gridSubdivisions,\n precision,\n clampToRange,\n onChange,\n onChangeComplete,\n ]\n );\n\n return {\n isDragging,\n isHovered,\n handlers: {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onKeyDown,\n },\n };\n}\n"],"names":[],"mappings":";;;;;AA6CA;;AACkB;;AAElB;AAEM;AAGJ;;;;AAoBA;;AAGA;AACE;AACA;;AACA;AACA;AACF;;;;;;;AAUM;AACA;;AACK;;AAEL;AACA;AACA;AACA;;AAGF;AACA;;AAGE;AACA;;;AAIJ;;;;;;;;AASC;AAGH;;;AAGI;AACA;;AAEA;;AAGA;AACA;AAEA;;AAEA;;AAGF;;;;;;;;AASC;AAGH;AAEI;AACA;;AAEA;AACE;;AACA;;AAEA;AACA;;;;;AAMF;;AAEA;AACA;;;AAIE;;;AAEA;;;AAEA;;;AAEA;;AAEJ;;;;;;;;;AAUC;AAGH;AAEI;AACA;;AAEA;AACE;;AAEA;;AAGA;;AAEA;AACA;AACA;;AAEJ;AAIF;;;;;AAOI;;;;;;AAKE;;AAGF;AACA;;AAGI;AACE;AACA;AACF;AAEJ;AACA;;AAGA;AACE;;;;AAIA;;;;AAIA;;;;AAIA;;;;;;AAME;AACA;;;;;;;;;;;;AAaJ;;;AAGA;AACA;;AAGE;AACA;;;;AAKF;AACF;;;;;;;;;;;;AAaC;;;;AAMD;;;;;AAKC;;AAEL;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCartesianRenderer.js","sources":["../../../../../../src/components/controls/CartesianPicker/useCartesianRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AA6CM;AAGJ;AAqBA;AACE;AACA;;;AAGA;;AAEA;AAEA;AACA;AACA;;AAGA;AACE;AACA;AACA;;;AAEA;;AAGF;;AAEA;;AAGA;AACA;;;;;;AAOI;AACA;;;;AAID;;;;;;AAOC;;;;AAID;;;AAIH;;;AAIE;;;;;AAME;;;;;;AAMD;;;;;;;AAQC;;AAED;;;;;;AAOD;AACA;AACA;;AAED;AAED;AACF;;;;;;;;;;;;;;;;;;;AAmBC;AAED;;;AAGE;AACD;AACH;;"}
1
+ {"version":3,"file":"useCartesianRenderer.js","sources":["src/components/controls/CartesianPicker/useCartesianRenderer.ts"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\n\nimport {\n drawGrid,\n drawDomainBounds,\n drawOriginAxes,\n drawAxisLabels,\n drawCrosshair,\n drawPointMarker,\n} from '@/components/primitives/canvas/canvasDrawing';\nimport { resolveCanvasTheme } from '@/components/primitives/canvas/canvasTheme';\nimport { useCanvasRenderer } from '@/components/primitives/canvas/useCanvasRenderer';\n\nimport type {\n Point2D,\n CanvasViewport,\n CanvasBackgroundInfo,\n CanvasThemeColors,\n} from '@/components/primitives/canvas/canvas.types';\nimport type React from 'react';\n\ninterface UseCartesianRendererOptions {\n canvasRef: React.RefObject<HTMLCanvasElement | null>;\n point: Point2D;\n viewport: CanvasViewport;\n domainX: [number, number];\n domainY: [number, number];\n showGrid: boolean;\n gridSubdivisions: number;\n showAxisLabels: boolean;\n showOriginAxes: boolean;\n showCrosshair: boolean;\n crosshairStyle: 'solid' | 'dashed';\n labelX?: string;\n labelY?: string;\n markerRadius: number;\n disabled: boolean;\n isHovered: boolean;\n isDragging: boolean;\n renderBackground?: (\n ctx: CanvasRenderingContext2D,\n info: CanvasBackgroundInfo\n ) => void;\n}\n\nexport function useCartesianRenderer(\n options: UseCartesianRendererOptions\n): void {\n const {\n canvasRef,\n point,\n viewport,\n domainX,\n domainY,\n showGrid,\n gridSubdivisions,\n showAxisLabels,\n showOriginAxes: showOrigin,\n showCrosshair,\n crosshairStyle,\n labelX,\n labelY,\n markerRadius,\n disabled,\n isHovered,\n isDragging,\n renderBackground,\n } = options;\n\n const draw = useCallback(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const dpr =\n typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1;\n const rect = canvas.getBoundingClientRect();\n const w = rect.width;\n const h = rect.height;\n\n // Set canvas resolution for retina\n if (canvas.width !== w * dpr || canvas.height !== h * dpr) {\n canvas.width = w * dpr;\n canvas.height = h * dpr;\n ctx.scale(dpr, dpr);\n } else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n\n const theme: CanvasThemeColors = resolveCanvasTheme(canvas);\n const opacity = disabled ? 0.4 : 1;\n const domain = { domainX, domainY };\n\n // 1. Clear background\n ctx.globalAlpha = 1;\n ctx.fillStyle = theme.backgroundSecondary;\n ctx.fillRect(0, 0, w, h);\n\n // 2. Custom background\n if (renderBackground) {\n ctx.save();\n renderBackground(ctx, {\n width: w,\n height: h,\n viewport,\n domainX,\n domainY,\n });\n ctx.restore();\n }\n\n // 3. Grid lines\n if (showGrid) {\n drawGrid(ctx, w, h, theme, {\n subdivisions: gridSubdivisions,\n domain,\n viewport,\n opacity,\n });\n }\n\n // 4. Domain bounds\n drawDomainBounds(ctx, w, h, theme, domain, viewport, opacity);\n\n // 5. Origin axes\n if (showOrigin) {\n drawOriginAxes(ctx, w, h, theme, viewport, opacity);\n }\n\n // 6. Axis labels\n if (showAxisLabels) {\n drawAxisLabels(ctx, w, h, theme, {\n subdivisions: gridSubdivisions,\n domain,\n viewport,\n opacity,\n labelX,\n labelY,\n });\n }\n\n // 7. Crosshair\n if (showCrosshair) {\n drawCrosshair(ctx, w, h, theme, {\n point,\n viewport,\n lineStyle: crosshairStyle,\n opacity,\n });\n }\n\n // 8. Point marker\n drawPointMarker(ctx, w, h, theme, {\n point,\n viewport,\n radius: markerRadius,\n hovered: isHovered,\n dragging: isDragging,\n opacity,\n });\n\n ctx.globalAlpha = 1;\n }, [\n canvasRef,\n point,\n viewport,\n domainX,\n domainY,\n showGrid,\n gridSubdivisions,\n showAxisLabels,\n showOrigin,\n showCrosshair,\n crosshairStyle,\n labelX,\n labelY,\n markerRadius,\n disabled,\n isHovered,\n isDragging,\n renderBackground,\n ]);\n\n useCanvasRenderer({\n draw,\n deps: [draw],\n paused: false,\n });\n}\n"],"names":[],"mappings":";;;;;;AA+CM;AAGJ;AAqBA;AACE;AACA;;;AAGA;;AAEA;AAEA;AACA;AACA;;AAGA;AACE;AACA;AACA;;;AAEA;;AAGF;;AAEA;;AAGA;AACA;;;;;;AAOI;AACA;;;;AAID;;;;;;AAOC;;;;AAID;;;AAIH;;;AAIE;;;;;AAME;;;;;;AAMD;;;;;;;AAQC;;AAED;;;;;;AAOD;AACA;AACA;;AAED;AAED;AACF;;;;;;;;;;;;;;;;;;;AAmBC;AAED;;;AAGE;AACD;AACH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlphaSlider.js","sources":["../../../../../../src/components/controls/ColorPicker/AlphaSlider.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAgBO;AAML;AAEA;;AAGI;;;AAGA;;AAEF;AAIF;;;AAII;AACF;AAIF;AAEI;;AACA;AACF;AAIF;;AAEA;AAEA;AAEI;;AAGA;AACE;AACA;;;AAGA;AACA;;;AAGA;;;;;AAMJ;AAIF;;;AAqBO;AAKT;AAEA;;"}
1
+ {"version":3,"file":"AlphaSlider.js","sources":["src/components/controls/ColorPicker/AlphaSlider.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useRef } from 'react';\n\nimport {\n alphaTrackStyle,\n alphaGradientStyle,\n alphaThumbStyle,\n} from './ColorPicker.css';\n\ninterface AlphaSliderProps {\n alpha: number;\n color: string;\n onChange: (alpha: number) => void;\n onChangeComplete?: () => void;\n}\n\nexport const AlphaSlider: React.FC<AlphaSliderProps> = ({\n alpha,\n color,\n onChange,\n onChangeComplete,\n}) => {\n const trackRef = useRef<HTMLDivElement>(null);\n\n const getAlpha = useCallback(\n (clientX: number) => {\n const rect = trackRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const x = Math.max(0, Math.min(clientX - rect.left, rect.width));\n const a = Number((x / rect.width).toFixed(2));\n onChange(a);\n },\n [onChange]\n );\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault();\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n getAlpha(e.clientX);\n },\n [getAlpha]\n );\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (e.buttons === 0) return;\n getAlpha(e.clientX);\n },\n [getAlpha]\n );\n\n const handlePointerUp = useCallback(() => {\n onChangeComplete?.();\n }, [onChangeComplete]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const step = e.shiftKey ? 0.01 : 0.05;\n let newAlpha = alpha;\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n newAlpha = Math.min(1, alpha + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n newAlpha = Math.max(0, alpha - step);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n onChange(Number(newAlpha.toFixed(2)));\n },\n [alpha, onChange]\n );\n\n const thumbPosition = `${alpha * 100}%`;\n\n return (\n <div\n ref={trackRef}\n className={alphaTrackStyle}\n role=\"slider\"\n tabIndex={0}\n aria-label=\"Opacity\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(alpha * 100)}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onKeyDown={handleKeyDown}\n >\n <div\n className={alphaGradientStyle}\n style={{\n background: `linear-gradient(to right, transparent, ${color})`,\n }}\n />\n <div className={alphaThumbStyle} style={{ left: thumbPosition }} />\n </div>\n );\n};\n\nAlphaSlider.displayName = 'AlphaSlider';\n"],"names":[],"mappings":";;;;;AAiBO;AAML;AAEA;;AAGI;;;AAGA;;AAEF;AAIF;;;AAII;AACF;AAIF;AAEI;;AACA;AACF;AAIF;;AAEA;AAEA;AAEI;;AAGA;AACE;AACA;;;AAGA;AACA;;;AAGA;;;;;AAMJ;AAIF;;;AAqBO;AAKT;AAEA;;"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { useRef, useCallback } from 'react';
4
- import { rgbToHex, hsvToRgb } from './colorUtils.js';
5
4
  import { colorAreaStyle, saturationGradientStyle, valueGradientStyle, colorAreaThumbStyle } from './ColorPicker.css.js';
5
+ import { rgbToHex, hsvToRgb } from './colorUtils.js';
6
6
 
7
7
  const ColorArea = ({ hue, saturation, value, onChange, onChangeComplete, }) => {
8
8
  const areaRef = useRef(null);
@@ -56,7 +56,7 @@ const ColorArea = ({ hue, saturation, value, onChange, onChangeComplete, }) => {
56
56
  const hueColor = rgbToHex(r, g, b);
57
57
  const thumbX = `${saturation}%`;
58
58
  const thumbY = `${100 - value}%`;
59
- return (jsxs("div", { ref: areaRef, className: colorAreaStyle, role: "slider", tabIndex: 0, "aria-label": "Color saturation and brightness", "aria-valuetext": `Saturation ${saturation}%, Brightness ${value}%`, style: { backgroundColor: hueColor }, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onKeyDown: handleKeyDown, children: [jsx("div", { className: saturationGradientStyle }), jsx("div", { className: valueGradientStyle }), jsx("div", { className: colorAreaThumbStyle, style: { left: thumbX, top: thumbY } })] }));
59
+ return (jsxs("div", { ref: areaRef, className: colorAreaStyle, role: "slider", tabIndex: 0, "aria-label": "Color saturation and brightness", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": value, "aria-valuetext": `Saturation ${saturation}%, Brightness ${value}%`, style: { backgroundColor: hueColor }, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, onKeyDown: handleKeyDown, children: [jsx("div", { className: saturationGradientStyle }), jsx("div", { className: valueGradientStyle }), jsx("div", { className: colorAreaThumbStyle, style: { left: thumbX, top: thumbY } })] }));
60
60
  };
61
61
  ColorArea.displayName = 'ColorArea';
62
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"ColorArea.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorArea.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAmBO;AAOL;;;AAKI;;;;AAKA;AACA;AACA;AACF;AAIF;;;;AAKE;AAIF;AAEI;;;AAEF;AAIF;;AAEA;AAEA;AAEI;;;AAIA;AACE;;;AAGA;;;AAGA;;;AAGA;;;AAGA;;;;AAKF;;AAKJ;;AAEA;AACA;AAEA;AAsBF;AAEA;;"}
1
+ {"version":3,"file":"ColorArea.js","sources":["src/components/controls/ColorPicker/ColorArea.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useRef } from 'react';\n\nimport {\n colorAreaStyle,\n saturationGradientStyle,\n valueGradientStyle,\n colorAreaThumbStyle,\n} from './ColorPicker.css';\nimport { hsvToRgb, rgbToHex } from './colorUtils';\n\ninterface ColorAreaProps {\n hue: number;\n saturation: number;\n value: number;\n onChange: (s: number, v: number) => void;\n onChangeComplete?: () => void;\n}\n\nexport const ColorArea: React.FC<ColorAreaProps> = ({\n hue,\n saturation,\n value,\n onChange,\n onChangeComplete,\n}) => {\n const areaRef = useRef<HTMLDivElement>(null);\n\n const getSV = useCallback(\n (clientX: number, clientY: number) => {\n const rect = areaRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const x = Math.max(0, Math.min(clientX - rect.left, rect.width));\n const y = Math.max(0, Math.min(clientY - rect.top, rect.height));\n\n const s = Math.round((x / rect.width) * 100);\n const v = Math.round((1 - y / rect.height) * 100);\n onChange(s, v);\n },\n [onChange]\n );\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault();\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n getSV(e.clientX, e.clientY);\n },\n [getSV]\n );\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (e.buttons === 0) return;\n getSV(e.clientX, e.clientY);\n },\n [getSV]\n );\n\n const handlePointerUp = useCallback(() => {\n onChangeComplete?.();\n }, [onChangeComplete]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const step = e.shiftKey ? 1 : 5;\n let newS = saturation;\n let newV = value;\n\n switch (e.key) {\n case 'ArrowRight':\n newS = Math.min(100, saturation + step);\n break;\n case 'ArrowLeft':\n newS = Math.max(0, saturation - step);\n break;\n case 'ArrowUp':\n newV = Math.min(100, value + step);\n break;\n case 'ArrowDown':\n newV = Math.max(0, value - step);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n onChange(newS, newV);\n },\n [saturation, value, onChange]\n );\n\n const { r, g, b } = hsvToRgb(hue, 100, 100);\n const hueColor = rgbToHex(r, g, b);\n const thumbX = `${saturation}%`;\n const thumbY = `${100 - value}%`;\n\n return (\n <div\n ref={areaRef}\n className={colorAreaStyle}\n role=\"slider\"\n tabIndex={0}\n aria-label=\"Color saturation and brightness\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={value}\n aria-valuetext={`Saturation ${saturation}%, Brightness ${value}%`}\n style={{ backgroundColor: hueColor }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onKeyDown={handleKeyDown}\n >\n <div className={saturationGradientStyle} />\n <div className={valueGradientStyle} />\n <div\n className={colorAreaThumbStyle}\n style={{ left: thumbX, top: thumbY }}\n />\n </div>\n );\n};\n\nColorArea.displayName = 'ColorArea';\n"],"names":[],"mappings":";;;;;;AAoBO;AAOL;;;AAKI;;;;AAKA;AACA;AACA;AACF;AAIF;;;;AAKE;AAIF;AAEI;;;AAEF;AAIF;;AAEA;AAEA;AAEI;;;AAIA;AACE;;;AAGA;;;AAGA;;;AAGA;;;AAGA;;;;AAKF;;AAKJ;;AAEA;AACA;AAEA;AAyBF;AAEA;;"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import { useState, useCallback } from 'react';
4
+ import { inputsRowStyle, modeToggleStyle, inputColStyle, smallInputStyle, inputLabelStyle } from './ColorPicker.css.js';
4
5
  import { hsvToRgb, rgbToHex, hsvToHsl, rgbToHsv, hslToHsv } from './colorUtils.js';
5
6
  import { EyeDropper } from './EyeDropper.js';
6
- import { inputsRowStyle, modeToggleStyle, inputColStyle, smallInputStyle, inputLabelStyle } from './ColorPicker.css.js';
7
7
 
8
8
  const ColorInputs = ({ hsva, inputModes, defaultInputMode, showAlpha, showEyeDropper = false, disabled = false, onSetFromString, onSetAlpha, onSetHue, onSetSaturationValue, }) => {
9
9
  const [mode, setMode] = useState(defaultInputMode);
@@ -56,7 +56,21 @@ const ColorInputs = ({ hsva, inputModes, defaultInputMode, showAlpha, showEyeDro
56
56
  return;
57
57
  onSetAlpha(num / 100);
58
58
  }, [onSetAlpha]);
59
- return (jsx("div", { children: jsxs("div", { className: inputsRowStyle, children: [inputModes.length > 1 && (jsx("button", { type: "button", className: modeToggleStyle, onClick: cycleMode, children: mode.toUpperCase() })), mode === 'hex' && (jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, defaultValue: hex, maxLength: 6, onChange: handleHexChange, onBlur: handleHexBlur, "aria-label": "Hex color" }, hex), jsx("span", { className: inputLabelStyle, children: "HEX" })] })), mode === 'rgb' && (jsxs(Fragment, { children: [jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 255, value: r, onChange: e => handleRgbChange('r', e.target.value), "aria-label": "Red" }), jsx("span", { className: inputLabelStyle, children: "R" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 255, value: g, onChange: e => handleRgbChange('g', e.target.value), "aria-label": "Green" }), jsx("span", { className: inputLabelStyle, children: "G" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 255, value: b, onChange: e => handleRgbChange('b', e.target.value), "aria-label": "Blue" }), jsx("span", { className: inputLabelStyle, children: "B" })] })] })), mode === 'hsl' && (jsxs(Fragment, { children: [jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 360, value: hsl.h, onChange: e => handleHslChange('h', e.target.value), "aria-label": "Hue" }), jsx("span", { className: inputLabelStyle, children: "H" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 100, value: hsl.s, onChange: e => handleHslChange('s', e.target.value), "aria-label": "Saturation" }), jsx("span", { className: inputLabelStyle, children: "S" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 100, value: hsl.l, onChange: e => handleHslChange('l', e.target.value), "aria-label": "Lightness" }), jsx("span", { className: inputLabelStyle, children: "L" })] })] })), showAlpha && (jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 100, value: Math.round(hsva.a * 100), onChange: e => handleAlphaChange(e.target.value), "aria-label": "Alpha" }), jsx("span", { className: inputLabelStyle, children: "A" })] })), showEyeDropper && (jsx(EyeDropper, { onColorPick: onSetFromString, size: "sm", disabled: disabled }))] }) }));
59
+ return (jsx("div", { children: jsxs("div", { className: inputsRowStyle, children: [inputModes.length > 1 && (jsx("button", { type: "button", className: modeToggleStyle, onClick: cycleMode, children: mode.toUpperCase() })), mode === 'hex' && (jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, defaultValue: hex, maxLength: 6, onChange: handleHexChange, onBlur: handleHexBlur, "aria-label": "Hex color" }, hex), jsx("span", { className: inputLabelStyle, children: "HEX" })] })), mode === 'rgb' && (jsxs(Fragment, { children: [jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 255, value: r, onChange: e => {
60
+ handleRgbChange('r', e.target.value);
61
+ }, "aria-label": "Red" }), jsx("span", { className: inputLabelStyle, children: "R" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 255, value: g, onChange: e => {
62
+ handleRgbChange('g', e.target.value);
63
+ }, "aria-label": "Green" }), jsx("span", { className: inputLabelStyle, children: "G" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 255, value: b, onChange: e => {
64
+ handleRgbChange('b', e.target.value);
65
+ }, "aria-label": "Blue" }), jsx("span", { className: inputLabelStyle, children: "B" })] })] })), mode === 'hsl' && (jsxs(Fragment, { children: [jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 360, value: hsl.h, onChange: e => {
66
+ handleHslChange('h', e.target.value);
67
+ }, "aria-label": "Hue" }), jsx("span", { className: inputLabelStyle, children: "H" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 100, value: hsl.s, onChange: e => {
68
+ handleHslChange('s', e.target.value);
69
+ }, "aria-label": "Saturation" }), jsx("span", { className: inputLabelStyle, children: "S" })] }), jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 100, value: hsl.l, onChange: e => {
70
+ handleHslChange('l', e.target.value);
71
+ }, "aria-label": "Lightness" }), jsx("span", { className: inputLabelStyle, children: "L" })] })] })), showAlpha && (jsxs("div", { className: inputColStyle, children: [jsx("input", { className: smallInputStyle, type: "number", min: 0, max: 100, value: Math.round(hsva.a * 100), onChange: e => {
72
+ handleAlphaChange(e.target.value);
73
+ }, "aria-label": "Alpha" }), jsx("span", { className: inputLabelStyle, children: "A" })] })), showEyeDropper && (jsx(EyeDropper, { onColorPick: onSetFromString, size: "sm", disabled: disabled }))] }) }));
60
74
  };
61
75
  ColorInputs.displayName = 'ColorInputs';
62
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"ColorInputs.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorInputs.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AA4BO;;AAcL;;AAEE;AACA;;AACF;;AAGA;AACA;AAEA;AAEI;AACA;AACE;;AAEJ;AAIF;AAEI;AACA;AACE;;AAEJ;;;;;AAQE;AACA;AACA;;AAEA;;AAEF;;;;;AAQE;AACA;AACA;;AAEA;;AAEF;AAIF;;;;AAII;AACF;;AAuIJ;AAEA;;"}
1
+ {"version":3,"file":"ColorInputs.js","sources":["src/components/controls/ColorPicker/ColorInputs.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useState } from 'react';\n\nimport {\n inputsRowStyle,\n modeToggleStyle,\n smallInputStyle,\n inputLabelStyle,\n inputColStyle,\n} from './ColorPicker.css';\nimport { hsvToRgb, hsvToHsl, rgbToHex, rgbToHsv, hslToHsv } from './colorUtils';\nimport { EyeDropper } from './EyeDropper';\n\nimport type { ColorInputMode } from './ColorPicker.types';\nimport type { ColorHSVA } from './colorUtils';\n\ninterface ColorInputsProps {\n hsva: ColorHSVA;\n inputModes: ColorInputMode[];\n defaultInputMode: ColorInputMode;\n showAlpha: boolean;\n showEyeDropper?: boolean;\n disabled?: boolean;\n onSetFromString: (color: string) => void;\n onSetAlpha: (a: number) => void;\n onSetHue: (h: number) => void;\n onSetSaturationValue: (s: number, v: number) => void;\n}\n\nexport const ColorInputs: React.FC<ColorInputsProps> = ({\n hsva,\n inputModes,\n defaultInputMode,\n showAlpha,\n showEyeDropper = false,\n disabled = false,\n onSetFromString,\n onSetAlpha,\n onSetHue,\n onSetSaturationValue,\n}) => {\n const [mode, setMode] = useState<ColorInputMode>(defaultInputMode);\n\n const cycleMode = useCallback(() => {\n const idx = inputModes.indexOf(mode);\n const next = inputModes[(idx + 1) % inputModes.length];\n if (next) setMode(next);\n }, [mode, inputModes]);\n\n const { r, g, b } = hsvToRgb(hsva.h, hsva.s, hsva.v);\n const hex = rgbToHex(r, g, b).replace('#', '');\n const hsl = hsvToHsl(hsva.h, hsva.s, hsva.v);\n\n const handleHexChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value.replace('#', '');\n if (/^[0-9a-fA-F]{6}$/.test(val)) {\n onSetFromString(`#${val}`);\n }\n },\n [onSetFromString]\n );\n\n const handleHexBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n const val = e.target.value.replace('#', '');\n if (/^[0-9a-fA-F]{3}$/.test(val) || /^[0-9a-fA-F]{6}$/.test(val)) {\n onSetFromString(`#${val}`);\n }\n },\n [onSetFromString]\n );\n\n const handleRgbChange = useCallback(\n (channel: 'r' | 'g' | 'b', val: string) => {\n const num = Math.max(0, Math.min(255, parseInt(val, 10)));\n if (isNaN(num)) return;\n const newR = channel === 'r' ? num : r;\n const newG = channel === 'g' ? num : g;\n const newB = channel === 'b' ? num : b;\n const newHsv = rgbToHsv(newR, newG, newB);\n onSetHue(newHsv.h);\n onSetSaturationValue(newHsv.s, newHsv.v);\n },\n [r, g, b, onSetHue, onSetSaturationValue]\n );\n\n const handleHslChange = useCallback(\n (channel: 'h' | 's' | 'l', val: string) => {\n const num = parseInt(val, 10);\n if (isNaN(num)) return;\n const newH = channel === 'h' ? Math.max(0, Math.min(360, num)) : hsl.h;\n const newS = channel === 's' ? Math.max(0, Math.min(100, num)) : hsl.s;\n const newL = channel === 'l' ? Math.max(0, Math.min(100, num)) : hsl.l;\n const newHsv = hslToHsv(newH, newS, newL);\n onSetHue(newHsv.h);\n onSetSaturationValue(newHsv.s, newHsv.v);\n },\n [hsl.h, hsl.s, hsl.l, onSetHue, onSetSaturationValue]\n );\n\n const handleAlphaChange = useCallback(\n (val: string) => {\n const num = Math.max(0, Math.min(100, parseInt(val, 10)));\n if (isNaN(num)) return;\n onSetAlpha(num / 100);\n },\n [onSetAlpha]\n );\n\n return (\n <div>\n <div className={inputsRowStyle}>\n {inputModes.length > 1 && (\n <button type=\"button\" className={modeToggleStyle} onClick={cycleMode}>\n {mode.toUpperCase()}\n </button>\n )}\n\n {mode === 'hex' && (\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n defaultValue={hex}\n key={hex}\n maxLength={6}\n onChange={handleHexChange}\n onBlur={handleHexBlur}\n aria-label=\"Hex color\"\n />\n <span className={inputLabelStyle}>HEX</span>\n </div>\n )}\n\n {mode === 'rgb' && (\n <>\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={255}\n value={r}\n onChange={e => {\n handleRgbChange('r', e.target.value);\n }}\n aria-label=\"Red\"\n />\n <span className={inputLabelStyle}>R</span>\n </div>\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={255}\n value={g}\n onChange={e => {\n handleRgbChange('g', e.target.value);\n }}\n aria-label=\"Green\"\n />\n <span className={inputLabelStyle}>G</span>\n </div>\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={255}\n value={b}\n onChange={e => {\n handleRgbChange('b', e.target.value);\n }}\n aria-label=\"Blue\"\n />\n <span className={inputLabelStyle}>B</span>\n </div>\n </>\n )}\n\n {mode === 'hsl' && (\n <>\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={360}\n value={hsl.h}\n onChange={e => {\n handleHslChange('h', e.target.value);\n }}\n aria-label=\"Hue\"\n />\n <span className={inputLabelStyle}>H</span>\n </div>\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={100}\n value={hsl.s}\n onChange={e => {\n handleHslChange('s', e.target.value);\n }}\n aria-label=\"Saturation\"\n />\n <span className={inputLabelStyle}>S</span>\n </div>\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={100}\n value={hsl.l}\n onChange={e => {\n handleHslChange('l', e.target.value);\n }}\n aria-label=\"Lightness\"\n />\n <span className={inputLabelStyle}>L</span>\n </div>\n </>\n )}\n\n {showAlpha && (\n <div className={inputColStyle}>\n <input\n className={smallInputStyle}\n type=\"number\"\n min={0}\n max={100}\n value={Math.round(hsva.a * 100)}\n onChange={e => {\n handleAlphaChange(e.target.value);\n }}\n aria-label=\"Alpha\"\n />\n <span className={inputLabelStyle}>A</span>\n </div>\n )}\n\n {showEyeDropper && (\n <EyeDropper\n onColorPick={onSetFromString}\n size=\"sm\"\n disabled={disabled}\n />\n )}\n </div>\n </div>\n );\n};\n\nColorInputs.displayName = 'ColorInputs';\n"],"names":[],"mappings":";;;;;;;AA8BO;;AAcL;;AAEE;AACA;;AACF;;AAGA;AACA;AAEA;AAEI;AACA;AACE;;AAEJ;AAIF;AAEI;AACA;AACE;;AAEJ;;;;;AAQE;AACA;AACA;;AAEA;;AAEF;;;;;AAQE;AACA;AACA;;AAEA;;AAEF;AAIF;;;;AAII;AACF;;;AAuCY;;AAcA;;;;AAiCA;;AAcA;;;AA+BA;AACF;AAiBd;AAEA;;"}
@@ -11,7 +11,9 @@ const ColorPalette = ({ palette, currentColor, onSelect, title = 'Palette', defa
11
11
  const normalizedCurrent = currentColor.toLowerCase();
12
12
  return (jsx(Collapsible, { trigger: title, defaultOpen: defaultExpanded, size: "sm", children: jsx("div", { className: paletteContainerStyle, role: "radiogroup", "aria-label": "Color palette", children: palette.map(color => (jsxs("div", { className: paletteRowStyle, children: [jsx("span", { className: paletteRowLabelStyle, children: color.name.slice(0, 2) }), color.shades.map(shade => (jsx("button", { type: "button", role: "radio", "aria-checked": shade.color.toLowerCase() === normalizedCurrent, "aria-label": `${color.name} ${shade.label}`, title: `${color.name} ${shade.label} (${shade.color})`, className: paletteShadeRecipe({
13
13
  selected: shade.color.toLowerCase() === normalizedCurrent,
14
- }), onClick: () => handleSelect(shade.color), children: jsx("span", { className: paletteShadeColorStyle, style: { background: shade.color } }) }, shade.color)))] }, color.name))) }) }));
14
+ }), onClick: () => {
15
+ handleSelect(shade.color);
16
+ }, children: jsx("span", { className: paletteShadeColorStyle, style: { background: shade.color } }) }, shade.color)))] }, color.name))) }) }));
15
17
  };
16
18
  ColorPalette.displayName = 'ColorPalette';
17
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPalette.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorPalette.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AA8BE;;AAGE;AAIF;;;;AAsCF;AAEA;;"}
1
+ {"version":3,"file":"ColorPalette.js","sources":["src/components/controls/ColorPicker/ColorPalette.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback } from 'react';\n\nimport { Collapsible } from '@/components/primitives/Collapsible';\n\nimport {\n paletteContainerStyle,\n paletteRowStyle,\n paletteRowLabelStyle,\n paletteShadeRecipe,\n paletteShadeColorStyle,\n} from './ColorPicker.css';\n\nimport type { PaletteColor } from './palettes';\n\ninterface ColorPaletteProps {\n palette: PaletteColor[];\n currentColor: string;\n onSelect: (color: string) => void;\n /** Title displayed in the collapsible header @default \"Palette\" */\n title?: string;\n /** Whether the palette starts expanded @default false */\n defaultExpanded?: boolean;\n}\n\nexport const ColorPalette: React.FC<ColorPaletteProps> = ({\n palette,\n currentColor,\n onSelect,\n title = 'Palette',\n defaultExpanded = false,\n}) => {\n const handleSelect = useCallback(\n (color: string) => {\n onSelect(color);\n },\n [onSelect]\n );\n\n const normalizedCurrent = currentColor.toLowerCase();\n\n return (\n <Collapsible trigger={title} defaultOpen={defaultExpanded} size=\"sm\">\n <div\n className={paletteContainerStyle}\n role=\"radiogroup\"\n aria-label=\"Color palette\"\n >\n {palette.map(color => (\n <div className={paletteRowStyle} key={color.name}>\n <span className={paletteRowLabelStyle}>\n {color.name.slice(0, 2)}\n </span>\n {color.shades.map(shade => (\n <button\n key={shade.color}\n type=\"button\"\n role=\"radio\"\n aria-checked={shade.color.toLowerCase() === normalizedCurrent}\n aria-label={`${color.name} ${shade.label}`}\n title={`${color.name} ${shade.label} (${shade.color})`}\n className={paletteShadeRecipe({\n selected: shade.color.toLowerCase() === normalizedCurrent,\n })}\n onClick={() => {\n handleSelect(shade.color);\n }}\n >\n <span\n className={paletteShadeColorStyle}\n style={{ background: shade.color }}\n />\n </button>\n ))}\n </div>\n ))}\n </div>\n </Collapsible>\n );\n};\n\nColorPalette.displayName = 'ColorPalette';\n\nexport type { ColorPaletteProps };\n"],"names":[],"mappings":";;;;;;;AAiCE;;AAGE;AAIF;;;AAwBe;AAEC;AACF;AAahB;AAEA;;"}
@@ -2,20 +2,20 @@
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { useMemo } from 'react';
4
4
  import { Popover } from '../../primitives/Popover/Popover.js';
5
- import { PopoverTrigger } from '../../primitives/Popover/PopoverTrigger.js';
6
5
  import { PopoverContent } from '../../primitives/Popover/PopoverContent.js';
7
- import { ColorSwatch } from './ColorSwatch.js';
8
- import { ColorArea } from './ColorArea.js';
9
- import { HueSlider } from './HueSlider.js';
6
+ import { PopoverTrigger } from '../../primitives/Popover/PopoverTrigger.js';
10
7
  import { AlphaSlider } from './AlphaSlider.js';
8
+ import { ColorArea } from './ColorArea.js';
11
9
  import { ColorInputs } from './ColorInputs.js';
12
- import { ColorPresets } from './ColorPresets.js';
13
10
  import { ColorPalette } from './ColorPalette.js';
11
+ import { pickerBodyStyle, triggerRowStyle, labelStyle } from './ColorPicker.css.js';
12
+ import { ColorPresets } from './ColorPresets.js';
13
+ import { ColorSwatch } from './ColorSwatch.js';
14
+ import { HueSlider } from './HueSlider.js';
14
15
  import { MATERIAL_PALETTE } from './palettes/material.js';
15
16
  import { TAILWIND_PALETTE } from './palettes/tailwind.js';
16
17
  import { VINTAGE_PALETTE, SKIN_TONES_PALETTE, MONOCHROME_PALETTE, NEON_PALETTE, EARTH_PALETTE, PASTEL_PALETTE } from './palettes/professional.js';
17
18
  import { useColor } from './useColor.js';
18
- import { pickerBodyStyle, triggerRowStyle, labelStyle } from './ColorPicker.css.js';
19
19
 
20
20
  // --- Constants ---
21
21
  const PALETTE_MAP = {
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPicker.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorPicker.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAgCA;AAEA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGF;AAEO;;;;;;;AA6BJ;AAED;AAGE;AAAc;AACd;AACE;;;AAGF;;;AAGA;AACF;;;;;AAsEA;AAmBF;AAEA;;"}
1
+ {"version":3,"file":"ColorPicker.js","sources":["src/components/controls/ColorPicker/ColorPicker.tsx"],"sourcesContent":["'use client';\n\nimport React, { useMemo } from 'react';\n\nimport { Popover } from '@/components/primitives/Popover/Popover';\nimport { PopoverContent } from '@/components/primitives/Popover/PopoverContent';\nimport { PopoverTrigger } from '@/components/primitives/Popover/PopoverTrigger';\n\nimport { AlphaSlider } from './AlphaSlider';\nimport { ColorArea } from './ColorArea';\nimport { ColorInputs } from './ColorInputs';\nimport { ColorPalette } from './ColorPalette';\nimport {\n pickerBodyStyle,\n triggerRowStyle,\n labelStyle,\n} from './ColorPicker.css';\nimport { ColorPresets } from './ColorPresets';\nimport { ColorSwatch } from './ColorSwatch';\nimport { HueSlider } from './HueSlider';\nimport {\n MATERIAL_PALETTE,\n TAILWIND_PALETTE,\n PASTEL_PALETTE,\n EARTH_PALETTE,\n NEON_PALETTE,\n MONOCHROME_PALETTE,\n SKIN_TONES_PALETTE,\n VINTAGE_PALETTE,\n} from './palettes';\nimport { useColor } from './useColor';\n\nimport type { ColorPickerProps } from './ColorPicker.types';\nimport type { Palette, PaletteColor } from './palettes';\n\n// --- Constants ---\n\nconst PALETTE_MAP: Record<string, Palette> = {\n material: MATERIAL_PALETTE,\n tailwind: TAILWIND_PALETTE,\n pastel: PASTEL_PALETTE,\n earth: EARTH_PALETTE,\n neon: NEON_PALETTE,\n monochrome: MONOCHROME_PALETTE,\n 'skin-tones': SKIN_TONES_PALETTE,\n vintage: VINTAGE_PALETTE,\n};\n\n// --- Component ---\n\nexport const ColorPicker: React.FC<ColorPickerProps> = ({\n value,\n defaultValue = '#007acc',\n format = 'hex',\n showAlpha = false,\n inputModes = ['hex', 'rgb', 'hsl'],\n defaultInputMode = 'hex',\n presets,\n showEyeDropper = false,\n palette,\n size = 'md',\n swatchShape = 'square',\n label,\n disabled = false,\n inline = false,\n pickerWidth = 240,\n onChange,\n onChangeComplete,\n className,\n style,\n testId,\n ...rest\n}) => {\n const colorState = useColor({\n value,\n defaultValue,\n format,\n onChange,\n onChangeComplete,\n });\n\n const resolvedPalette = useMemo<\n { colors: PaletteColor[]; title: string } | undefined\n >(() => {\n if (!palette) return undefined;\n if (typeof palette === 'string') {\n const found = PALETTE_MAP[palette];\n return found ? { colors: found.colors, title: found.name } : undefined;\n }\n if (Array.isArray(palette)) {\n return { colors: palette, title: 'Palette' };\n }\n return { colors: palette.colors, title: palette.name };\n }, [palette]);\n\n const pickerBody = (\n <div\n className={pickerBodyStyle}\n data-testid={testId ? `${testId}-panel` : undefined}\n >\n <ColorArea\n hue={colorState.hsva.h}\n saturation={colorState.hsva.s}\n value={colorState.hsva.v}\n onChange={colorState.setSaturationValue}\n onChangeComplete={colorState.commitChange}\n />\n <HueSlider\n hue={colorState.hsva.h}\n onChange={colorState.setHue}\n onChangeComplete={colorState.commitChange}\n />\n {showAlpha && (\n <AlphaSlider\n alpha={colorState.hsva.a}\n color={colorState.hexString}\n onChange={colorState.setAlpha}\n onChangeComplete={colorState.commitChange}\n />\n )}\n <ColorInputs\n hsva={colorState.hsva}\n inputModes={inputModes}\n defaultInputMode={defaultInputMode}\n showAlpha={showAlpha}\n showEyeDropper={showEyeDropper}\n disabled={disabled}\n onSetFromString={colorState.setFromString}\n onSetAlpha={colorState.setAlpha}\n onSetHue={colorState.setHue}\n onSetSaturationValue={colorState.setSaturationValue}\n />\n {presets && presets.length > 0 && (\n <ColorPresets\n presets={presets}\n currentColor={colorState.hexString}\n onSelect={colorState.setFromString}\n />\n )}\n {resolvedPalette && (\n <ColorPalette\n palette={resolvedPalette.colors}\n currentColor={colorState.hexString}\n onSelect={colorState.setFromString}\n title={resolvedPalette.title}\n />\n )}\n </div>\n );\n\n if (inline) {\n return (\n <div\n className={className}\n style={{ ...style, width: pickerWidth }}\n data-testid={testId}\n {...rest}\n >\n {pickerBody}\n </div>\n );\n }\n\n return (\n <Popover>\n <PopoverTrigger>\n <div className={triggerRowStyle} data-testid={testId} {...rest}>\n <ColorSwatch\n color={colorState.hexString}\n size={size}\n shape={swatchShape}\n disabled={disabled}\n testId={testId ? `${testId}-swatch` : undefined}\n />\n {label && <span className={labelStyle}>{label}</span>}\n </div>\n </PopoverTrigger>\n <PopoverContent width={pickerWidth} padding=\"md\">\n {pickerBody}\n </PopoverContent>\n </Popover>\n );\n};\n\nColorPicker.displayName = 'ColorPicker';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAmCA;AAEA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGF;AAEO;;;;;;;AA6BJ;AAED;AAGE;AAAc;AACd;AACE;;;AAGF;;;AAGA;AACF;;;;;AAsEA;AAmBF;AAEA;;"}
@@ -10,7 +10,9 @@ const ColorPresets = ({ presets, currentColor, onSelect, }) => {
10
10
  const normalizedCurrent = currentColor.toLowerCase();
11
11
  return (jsx("div", { className: presetsGridStyle, role: "radiogroup", "aria-label": "Color presets", children: presets.map((preset, i) => (jsx("button", { type: "button", role: "radio", "aria-checked": preset.color.toLowerCase() === normalizedCurrent, "aria-label": preset.label ?? preset.color, title: preset.label ?? preset.color, className: presetButtonRecipe({
12
12
  selected: preset.color.toLowerCase() === normalizedCurrent,
13
- }), onClick: () => handleClick(preset.color), children: jsx("span", { className: presetColorStyle, style: { background: preset.color } }) }, `${preset.color}-${i}`))) }));
13
+ }), onClick: () => {
14
+ handleClick(preset.color);
15
+ }, children: jsx("span", { className: presetColorStyle, style: { background: preset.color } }) }, `${preset.color}-${i}`))) }));
14
16
  };
15
17
  ColorPresets.displayName = 'ColorPresets';
16
18
 
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPresets.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorPresets.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAgBO;AAKL;;AAGE;AAIF;AAEA;;AAgBS;AAWX;AAEA;;"}
1
+ {"version":3,"file":"ColorPresets.js","sources":["src/components/controls/ColorPicker/ColorPresets.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback } from 'react';\n\nimport {\n presetsGridStyle,\n presetButtonRecipe,\n presetColorStyle,\n} from './ColorPicker.css';\n\nimport type { ColorPreset } from './ColorPicker.types';\n\ninterface ColorPresetsProps {\n presets: ColorPreset[];\n currentColor: string;\n onSelect: (color: string) => void;\n}\n\nexport const ColorPresets: React.FC<ColorPresetsProps> = ({\n presets,\n currentColor,\n onSelect,\n}) => {\n const handleClick = useCallback(\n (color: string) => {\n onSelect(color);\n },\n [onSelect]\n );\n\n const normalizedCurrent = currentColor.toLowerCase();\n\n return (\n <div\n className={presetsGridStyle}\n role=\"radiogroup\"\n aria-label=\"Color presets\"\n >\n {presets.map((preset, i) => (\n <button\n key={`${preset.color}-${i}`}\n type=\"button\"\n role=\"radio\"\n aria-checked={preset.color.toLowerCase() === normalizedCurrent}\n aria-label={preset.label ?? preset.color}\n title={preset.label ?? preset.color}\n className={presetButtonRecipe({\n selected: preset.color.toLowerCase() === normalizedCurrent,\n })}\n onClick={() => {\n handleClick(preset.color);\n }}\n >\n <span\n className={presetColorStyle}\n style={{ background: preset.color }}\n />\n </button>\n ))}\n </div>\n );\n};\n\nColorPresets.displayName = 'ColorPresets';\n"],"names":[],"mappings":";;;;;AAkBO;AAKL;;AAGE;AAIF;AAEA;;AAgBS;AAEC;AACF;AAUV;AAEA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatch.js","sources":["../../../../../../src/components/controls/ColorPicker/ColorSwatch.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAOO;AAaH;AAeF;AAGF;;"}
1
+ {"version":3,"file":"ColorSwatch.js","sources":["src/components/controls/ColorPicker/ColorSwatch.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { cx } from '@/utils/cx';\n\nimport { swatchRecipe, swatchColorStyle } from './ColorPicker.css';\n\nimport type { ColorSwatchProps } from './ColorPicker.types';\n\nexport const ColorSwatch = /*#__PURE__*/ React.memo<ColorSwatchProps>(\n ({\n color,\n size = 'md',\n shape = 'square',\n disabled = false,\n onClick,\n className,\n style,\n testId,\n ref,\n ...rest\n }) => {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cx(swatchRecipe({ size, shape, disabled }), className)}\n disabled={disabled}\n onClick={onClick}\n style={style}\n data-testid={testId}\n aria-label={rest['aria-label'] ?? `Color: ${color}`}\n {...rest}\n >\n <span className={swatchColorStyle} style={{ background: color }} />\n </button>\n );\n }\n);\n\nColorSwatch.displayName = 'ColorSwatch';\n"],"names":[],"mappings":";;;;;;AAUO;AAaH;AAeF;AAGF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EyeDropper.js","sources":["../../../../../../src/components/controls/ColorPicker/EyeDropper.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAkCA;AAEA;;;;;;;;;;AAUG;AACH;;AASE;AACE;;AAEA;;AAMI;;;AAIF;AAEJ;;AAGE;;AAGF;AAaF;AAEA;;"}
1
+ {"version":3,"file":"EyeDropper.js","sources":["src/components/controls/ColorPicker/EyeDropper.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback } from 'react';\n\nimport { EyeDropperIcon } from '@/components/Icons/EyeDropperIcon';\n\nimport { eyeDropperRecipe } from './ColorPicker.css';\n\nimport type { BaseComponent, Size } from '@/types/common';\nimport type { Prettify } from '@/types/utilities';\n\n// ---------- EyeDropper API types (not yet in TypeScript lib) ----------\n\ninterface EyeDropperResult {\n sRGBHex: string;\n}\n\ninterface EyeDropperAPI {\n open(): Promise<EyeDropperResult>;\n}\n\n// ---------- Component types ----------\n\ninterface EyeDropperBaseProps extends Omit<\n BaseComponent<HTMLButtonElement>,\n 'onChange'\n> {\n /** Callback when a color is picked */\n onColorPick?: (color: string) => void;\n /** Button size @default \"md\" */\n size?: Size;\n /** Whether disabled @default false */\n disabled?: boolean;\n}\n\ntype EyeDropperProps = Prettify<EyeDropperBaseProps>;\n\n// ---------- Component ----------\n\n/**\n * EyeDropper button that opens the native browser EyeDropper API\n * to sample a color from anywhere on the screen.\n *\n * Renders nothing if the EyeDropper API is not available in the browser.\n *\n * @example\n * ```tsx\n * <EyeDropper onColorPick={(hex) => setColor(hex)} />\n * ```\n */\nconst EyeDropper: React.FC<EyeDropperProps> = ({\n onColorPick,\n size = 'md',\n disabled = false,\n testId,\n ...rest\n}) => {\n const isAvailable = typeof window !== 'undefined' && 'EyeDropper' in window;\n\n const handleClick = useCallback(() => {\n if (!isAvailable) return;\n\n const dropper = new (\n window as unknown as { EyeDropper: new () => EyeDropperAPI }\n ).EyeDropper();\n\n void dropper.open().then(\n result => {\n onColorPick?.(result.sRGBHex);\n },\n () => {\n // User cancelled the eye dropper -- silently ignore\n }\n );\n }, [isAvailable, onColorPick]);\n\n if (!isAvailable) {\n return null;\n }\n\n return (\n <button\n type=\"button\"\n className={eyeDropperRecipe({ size, disabled })}\n disabled={disabled}\n onClick={handleClick}\n data-testid={testId}\n aria-label=\"Pick color from screen\"\n {...rest}\n >\n <EyeDropperIcon size=\"sm\" />\n </button>\n );\n};\n\nEyeDropper.displayName = 'EyeDropper';\n\nexport { EyeDropper };\nexport type { EyeDropperProps };\n"],"names":[],"mappings":";;;;;;AAqCA;AAEA;;;;;;;;;;AAUG;AACH;;AASE;AACE;;AAEA;;AAMI;;;AAIF;AAEJ;;AAGE;;AAGF;AAaF;AAEA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HueSlider.js","sources":["../../../../../../src/components/controls/ColorPicker/HueSlider.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAWO;AAKL;AAEA;;AAGI;;;AAGA;;AAEF;AAIF;;;AAII;AACF;AAIF;AAEI;;AACA;AACF;AAIF;;AAEA;AAEA;AAEI;;AAGA;AACE;AACA;;;AAGA;AACA;;;AAGA;;;;;AAMJ;;;AAwBM;;;AAMV;AAEA;;"}
1
+ {"version":3,"file":"HueSlider.js","sources":["src/components/controls/ColorPicker/HueSlider.tsx"],"sourcesContent":["'use client';\n\nimport React, { useCallback, useRef } from 'react';\n\nimport { hueTrackStyle, hueThumbStyle } from './ColorPicker.css';\n\ninterface HueSliderProps {\n hue: number;\n onChange: (hue: number) => void;\n onChangeComplete?: () => void;\n}\n\nexport const HueSlider: React.FC<HueSliderProps> = ({\n hue,\n onChange,\n onChangeComplete,\n}) => {\n const trackRef = useRef<HTMLDivElement>(null);\n\n const getHue = useCallback(\n (clientX: number) => {\n const rect = trackRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const x = Math.max(0, Math.min(clientX - rect.left, rect.width));\n const h = Math.round((x / rect.width) * 360);\n onChange(h);\n },\n [onChange]\n );\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault();\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n getHue(e.clientX);\n },\n [getHue]\n );\n\n const handlePointerMove = useCallback(\n (e: React.PointerEvent) => {\n if (e.buttons === 0) return;\n getHue(e.clientX);\n },\n [getHue]\n );\n\n const handlePointerUp = useCallback(() => {\n onChangeComplete?.();\n }, [onChangeComplete]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const step = e.shiftKey ? 1 : 5;\n let newHue = hue;\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n newHue = Math.min(360, hue + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n newHue = Math.max(0, hue - step);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n onChange(newHue);\n },\n [hue, onChange]\n );\n\n const thumbPosition = `${(hue / 360) * 100}%`;\n\n return (\n <div\n ref={trackRef}\n className={hueTrackStyle}\n role=\"slider\"\n tabIndex={0}\n aria-label=\"Hue\"\n aria-valuemin={0}\n aria-valuemax={360}\n aria-valuenow={hue}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onKeyDown={handleKeyDown}\n >\n <div\n className={hueThumbStyle}\n style={{\n left: thumbPosition,\n backgroundColor: `hsl(${hue}, 100%, 50%)`,\n }}\n />\n </div>\n );\n};\n\nHueSlider.displayName = 'HueSlider';\n"],"names":[],"mappings":";;;;;AAYO;AAKL;AAEA;;AAGI;;;AAGA;;AAEF;AAIF;;;AAII;AACF;AAIF;AAEI;;AACA;AACF;AAIF;;AAEA;AAEA;AAEI;;AAGA;AACE;AACA;;;AAGA;AACA;;;AAGA;;;;;AAMJ;;;AAwBM;;;AAMV;AAEA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"colorUtils.js","sources":["../../../../../../src/components/controls/ColorPicker/colorUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;AAWH;SAEgB,QAAQ,CACtB,CAAS,EACT,CAAS,EACT,CAAS,EAAA;AAET,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,IAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;IACjB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;IAEhB,IAAI,EAAE,GAAG,CAAC,EACR,EAAE,GAAG,CAAC,EACN,EAAE,GAAG,CAAC;AAER,IAAA,IAAI,CAAC,GAAG,EAAE,EAAE;QACV,EAAE,GAAG,CAAC;QACN,EAAE,GAAG,CAAC;IACR;AAAO,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,EAAE,GAAG,CAAC;QACN,EAAE,GAAG,CAAC;IACR;AAAO,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,EAAE,GAAG,CAAC;QACN,EAAE,GAAG,CAAC;IACR;AAAO,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,EAAE,GAAG,CAAC;QACN,EAAE,GAAG,CAAC;IACR;AAAO,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,EAAE,GAAG,CAAC;QACN,EAAE,GAAG,CAAC;IACR;SAAO;QACL,EAAE,GAAG,CAAC;QACN,EAAE,GAAG,CAAC;IACR;IAEA,OAAO;AACL,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;AAC7B,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;AAC7B,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;KAC9B;AACH;SAEgB,QAAQ,CACtB,CAAS,EACT,CAAS,EACT,CAAS,EAAA;AAET,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAElB,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAChC,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;IAEnB,IAAI,CAAC,GAAG,CAAC;AACT,IAAA,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG;AACzC,IAAA,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG;AAEnB,IAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACX,QAAA,IAAI,GAAG,KAAK,EAAE,EAAE;AACd,YAAA,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;QACzB;AAAO,aAAA,IAAI,GAAG,KAAK,EAAE,EAAE;YACrB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACvB;aAAO;YACL,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACvB;QACA,CAAC,IAAI,EAAE;QACP,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,IAAI,GAAG;IACrB;AAEA,IAAA,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACjE;SAEgB,QAAQ,CACtB,CAAS,EACT,CAAS,EACT,CAAS,EAAA;AAET,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAElB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAClB,QAAA,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC;IAEA,OAAO;AACL,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;QACvB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;KACvB;AACH;SAEgB,QAAQ,CACtB,CAAS,EACT,CAAS,EACT,CAAS,EAAA;AAET,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,IAAA,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAElB,IAAA,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzC,OAAO;AACL,QAAA,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;QACvB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;KACvB;AACH;SAEgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;IACtD,MAAM,KAAK,GAAG,CAAC,CAAS,KACtB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACrC,QAAQ,CAAC,EAAE;AACX,SAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACrB,IAAA,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;AAC7C;AAEM,SAAU,QAAQ,CACtB,GAAW,EAAA;IAEX,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;;IAGlC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACjC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AAC/B,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACpB;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACpB;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;QACnD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACvB;AAEA,IAAA,OAAO,IAAI;AACb;AAEA;AAEM,SAAU,UAAU,CAAC,KAAa,EAAA;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;;AAG1C,IAAA,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC;IACnC,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B;;AAGA,IAAA,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC3B,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC7B,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,YAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE;QAClC;IACF;;IAGA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAC5B,kEAAkE,CACnE;IACD,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE;IACtB;;IAGA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAC5B,sEAAsE,CACvE;IACD,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE;IACtB;;AAGA,IAAA,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC;AAEA;AAEM,SAAU,WAAW,CAAC,IAAe,EAAE,MAAmB,EAAA;IAC9D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpD,QAAQ,MAAM;AACZ,QAAA,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1B,KAAK,MAAM,EAAE;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG;iBACrC,QAAQ,CAAC,EAAE;AACX,iBAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnB,YAAA,OAAO,CAAA,EAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,QAAQ,CAAA,CAAE;QAC1C;AACA,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,GAAG;AAChC,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,QAAQ,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,EAAA,EAAK,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;QAC/D,KAAK,KAAK,EAAE;AACV,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5C,YAAA,OAAO,CAAA,IAAA,EAAO,GAAG,CAAC,CAAC,CAAA,EAAA,EAAK,GAAG,CAAC,CAAC,CAAA,GAAA,EAAM,GAAG,CAAC,CAAC,IAAI;QAC9C;QACA,KAAK,MAAM,EAAE;AACX,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAA,KAAA,EAAQ,GAAG,CAAC,CAAC,CAAA,EAAA,EAAK,GAAG,CAAC,CAAC,CAAA,GAAA,EAAM,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;QAC7E;;AAEJ;AAgBA;AAEA,MAAM,YAAY,GAA2B;AAC3C,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,WAAW,EAAE,kBAAkB;CAChC;;;;"}
1
+ {"version":3,"file":"colorUtils.js","sources":["src/components/controls/ColorPicker/colorUtils.ts"],"sourcesContent":["/**\n * Pure color conversion utilities for the ColorPicker.\n * Internal state is always HSVA. All conversions go through HSVA.\n */\n\nexport interface ColorHSVA {\n h: number; // 0-360\n s: number; // 0-100\n v: number; // 0-100\n a: number; // 0-1\n}\n\nexport type ColorFormat = 'hex' | 'hex8' | 'rgb' | 'rgba' | 'hsl' | 'hsla';\n\n// --- Conversions ---\n\nexport function hsvToRgb(\n h: number,\n s: number,\n v: number\n): { r: number; g: number; b: number } {\n const s1 = s / 100;\n const v1 = v / 100;\n const c = v1 * s1;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v1 - c;\n\n let r1 = 0,\n g1 = 0,\n b1 = 0;\n\n if (h < 60) {\n r1 = c;\n g1 = x;\n } else if (h < 120) {\n r1 = x;\n g1 = c;\n } else if (h < 180) {\n g1 = c;\n b1 = x;\n } else if (h < 240) {\n g1 = x;\n b1 = c;\n } else if (h < 300) {\n r1 = x;\n b1 = c;\n } else {\n r1 = c;\n b1 = x;\n }\n\n return {\n r: Math.round((r1 + m) * 255),\n g: Math.round((g1 + m) * 255),\n b: Math.round((b1 + m) * 255),\n };\n}\n\nexport function rgbToHsv(\n r: number,\n g: number,\n b: number\n): { h: number; s: number; v: number } {\n const r1 = r / 255;\n const g1 = g / 255;\n const b1 = b / 255;\n\n const max = Math.max(r1, g1, b1);\n const min = Math.min(r1, g1, b1);\n const d = max - min;\n\n let h = 0;\n const s = max === 0 ? 0 : (d / max) * 100;\n const v = max * 100;\n\n if (d !== 0) {\n if (max === r1) {\n h = ((g1 - b1) / d) % 6;\n } else if (max === g1) {\n h = (b1 - r1) / d + 2;\n } else {\n h = (r1 - g1) / d + 4;\n }\n h *= 60;\n if (h < 0) h += 360;\n }\n\n return { h: Math.round(h), s: Math.round(s), v: Math.round(v) };\n}\n\nexport function hsvToHsl(\n h: number,\n s: number,\n v: number\n): { h: number; s: number; l: number } {\n const s1 = s / 100;\n const v1 = v / 100;\n\n const l = v1 * (1 - s1 / 2);\n let sl = 0;\n if (l > 0 && l < 1) {\n sl = (v1 - l) / Math.min(l, 1 - l);\n }\n\n return {\n h: Math.round(h),\n s: Math.round(sl * 100),\n l: Math.round(l * 100),\n };\n}\n\nexport function hslToHsv(\n h: number,\n s: number,\n l: number\n): { h: number; s: number; v: number } {\n const s1 = s / 100;\n const l1 = l / 100;\n\n const v = l1 + s1 * Math.min(l1, 1 - l1);\n const sv = v === 0 ? 0 : 2 * (1 - l1 / v);\n\n return {\n h: Math.round(h),\n s: Math.round(sv * 100),\n v: Math.round(v * 100),\n };\n}\n\nexport function rgbToHex(r: number, g: number, b: number): string {\n const toHex = (n: number) =>\n Math.max(0, Math.min(255, Math.round(n)))\n .toString(16)\n .padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function hexToRgb(\n hex: string\n): { r: number; g: number; b: number; a?: number } | null {\n const clean = hex.replace('#', '');\n\n // Validate hex characters\n if (!/^[0-9a-fA-F]+$/.test(clean)) {\n return null;\n }\n\n if (clean.length === 3) {\n const c0 = clean.charAt(0);\n const c1 = clean.charAt(1);\n const c2 = clean.charAt(2);\n const r = parseInt(c0 + c0, 16);\n const g = parseInt(c1 + c1, 16);\n const b = parseInt(c2 + c2, 16);\n return { r, g, b };\n }\n\n if (clean.length === 6) {\n const r = parseInt(clean.substring(0, 2), 16);\n const g = parseInt(clean.substring(2, 4), 16);\n const b = parseInt(clean.substring(4, 6), 16);\n return { r, g, b };\n }\n\n if (clean.length === 8) {\n const r = parseInt(clean.substring(0, 2), 16);\n const g = parseInt(clean.substring(2, 4), 16);\n const b = parseInt(clean.substring(4, 6), 16);\n const a = parseInt(clean.substring(6, 8), 16) / 255;\n return { r, g, b, a };\n }\n\n return null;\n}\n\n// --- Parsing ---\n\nexport function parseColor(color: string): ColorHSVA {\n const trimmed = color.trim().toLowerCase();\n\n // Named colors lookup (common ones)\n const named = NAMED_COLORS[trimmed];\n if (named) {\n return parseColor(named);\n }\n\n // HEX\n if (trimmed.startsWith('#')) {\n const rgb = hexToRgb(trimmed);\n if (rgb) {\n const hsv = rgbToHsv(rgb.r, rgb.g, rgb.b);\n return { ...hsv, a: rgb.a ?? 1 };\n }\n }\n\n // rgb() / rgba()\n const rgbMatch = trimmed.match(\n /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+)\\s*)?\\)/\n );\n if (rgbMatch) {\n const rStr = rgbMatch[1] ?? '0';\n const gStr = rgbMatch[2] ?? '0';\n const bStr = rgbMatch[3] ?? '0';\n const r = parseInt(rStr, 10);\n const g = parseInt(gStr, 10);\n const b = parseInt(bStr, 10);\n const a = rgbMatch[4] ? parseFloat(rgbMatch[4]) : 1;\n const hsv = rgbToHsv(r, g, b);\n return { ...hsv, a };\n }\n\n // hsl() / hsla()\n const hslMatch = trimmed.match(\n /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%?\\s*,\\s*(\\d+)%?\\s*(?:,\\s*([\\d.]+)\\s*)?\\)/\n );\n if (hslMatch) {\n const hStr = hslMatch[1] ?? '0';\n const sStr = hslMatch[2] ?? '0';\n const lStr = hslMatch[3] ?? '0';\n const h = parseInt(hStr, 10);\n const s = parseInt(sStr, 10);\n const l = parseInt(lStr, 10);\n const a = hslMatch[4] ? parseFloat(hslMatch[4]) : 1;\n const hsv = hslToHsv(h, s, l);\n return { ...hsv, a };\n }\n\n // Fallback: blue\n return { h: 210, s: 100, v: 80, a: 1 };\n}\n\n// --- Formatting ---\n\nexport function formatColor(hsva: ColorHSVA, format: ColorFormat): string {\n const { r, g, b } = hsvToRgb(hsva.h, hsva.s, hsva.v);\n\n switch (format) {\n case 'hex':\n return rgbToHex(r, g, b);\n case 'hex8': {\n const alphaHex = Math.round(hsva.a * 255)\n .toString(16)\n .padStart(2, '0');\n return `${rgbToHex(r, g, b)}${alphaHex}`;\n }\n case 'rgb':\n return `rgb(${r}, ${g}, ${b})`;\n case 'rgba':\n return `rgba(${r}, ${g}, ${b}, ${Number(hsva.a.toFixed(2))})`;\n case 'hsl': {\n const hsl = hsvToHsl(hsva.h, hsva.s, hsva.v);\n return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;\n }\n case 'hsla': {\n const hsl = hsvToHsl(hsva.h, hsva.s, hsva.v);\n return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${Number(hsva.a.toFixed(2))})`;\n }\n }\n}\n\n// --- Validation ---\n\nexport function isValidHex(hex: string): boolean {\n return /^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(hex);\n}\n\nexport function getContrastColor(hex: string): 'black' | 'white' {\n const rgb = hexToRgb(hex);\n if (!rgb) return 'white';\n // Perceived luminance\n const luminance = (0.299 * rgb.r + 0.587 * rgb.g + 0.114 * rgb.b) / 255;\n return luminance > 0.5 ? 'black' : 'white';\n}\n\n// --- Named colors (subset) ---\n\nconst NAMED_COLORS: Record<string, string> = {\n red: '#ff0000',\n green: '#008000',\n blue: '#0000ff',\n white: '#ffffff',\n black: '#000000',\n yellow: '#ffff00',\n cyan: '#00ffff',\n magenta: '#ff00ff',\n orange: '#ffa500',\n purple: '#800080',\n pink: '#ffc0cb',\n gray: '#808080',\n grey: '#808080',\n transparent: 'rgba(0, 0, 0, 0)',\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"material.js","sources":["../../../../../../../src/components/controls/ColorPicker/palettes/material.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"material.js","sources":["src/components/controls/ColorPicker/palettes/material.ts"],"sourcesContent":["/**\n * Material Design color palette\n *\n * Contains 19 color families with 10 shades each (50-900).\n * Based on the official Material Design color system.\n */\n\nexport interface PaletteShade {\n label: string;\n color: string;\n}\n\nexport interface PaletteColor {\n name: string;\n shades: PaletteShade[];\n}\n\nexport interface Palette {\n /** Display name for the palette (e.g. \"Material Design\") */\n name: string;\n /** Color families in this palette */\n colors: PaletteColor[];\n}\n\nexport const MATERIAL_PALETTE: Palette = {\n name: 'Material Design',\n colors: [\n {\n name: 'Red',\n shades: [\n { label: '50', color: '#ffebee' },\n { label: '100', color: '#ffcdd2' },\n { label: '200', color: '#ef9a9a' },\n { label: '300', color: '#e57373' },\n { label: '400', color: '#ef5350' },\n { label: '500', color: '#f44336' },\n { label: '600', color: '#e53935' },\n { label: '700', color: '#d32f2f' },\n { label: '800', color: '#c62828' },\n { label: '900', color: '#b71c1c' },\n ],\n },\n {\n name: 'Pink',\n shades: [\n { label: '50', color: '#fce4ec' },\n { label: '100', color: '#f8bbd0' },\n { label: '200', color: '#f48fb1' },\n { label: '300', color: '#f06292' },\n { label: '400', color: '#ec407a' },\n { label: '500', color: '#e91e63' },\n { label: '600', color: '#d81b60' },\n { label: '700', color: '#c2185b' },\n { label: '800', color: '#ad1457' },\n { label: '900', color: '#880e4f' },\n ],\n },\n {\n name: 'Purple',\n shades: [\n { label: '50', color: '#f3e5f5' },\n { label: '100', color: '#e1bee7' },\n { label: '200', color: '#ce93d8' },\n { label: '300', color: '#ba68c8' },\n { label: '400', color: '#ab47bc' },\n { label: '500', color: '#9c27b0' },\n { label: '600', color: '#8e24aa' },\n { label: '700', color: '#7b1fa2' },\n { label: '800', color: '#6a1b9a' },\n { label: '900', color: '#4a148c' },\n ],\n },\n {\n name: 'Deep Purple',\n shades: [\n { label: '50', color: '#ede7f6' },\n { label: '100', color: '#d1c4e9' },\n { label: '200', color: '#b39ddb' },\n { label: '300', color: '#9575cd' },\n { label: '400', color: '#7e57c2' },\n { label: '500', color: '#673ab7' },\n { label: '600', color: '#5e35b1' },\n { label: '700', color: '#512da8' },\n { label: '800', color: '#4527a0' },\n { label: '900', color: '#311b92' },\n ],\n },\n {\n name: 'Indigo',\n shades: [\n { label: '50', color: '#e8eaf6' },\n { label: '100', color: '#c5cae9' },\n { label: '200', color: '#9fa8da' },\n { label: '300', color: '#7986cb' },\n { label: '400', color: '#5c6bc0' },\n { label: '500', color: '#3f51b5' },\n { label: '600', color: '#3949ab' },\n { label: '700', color: '#303f9f' },\n { label: '800', color: '#283593' },\n { label: '900', color: '#1a237e' },\n ],\n },\n {\n name: 'Blue',\n shades: [\n { label: '50', color: '#e3f2fd' },\n { label: '100', color: '#bbdefb' },\n { label: '200', color: '#90caf9' },\n { label: '300', color: '#64b5f6' },\n { label: '400', color: '#42a5f5' },\n { label: '500', color: '#2196f3' },\n { label: '600', color: '#1e88e5' },\n { label: '700', color: '#1976d2' },\n { label: '800', color: '#1565c0' },\n { label: '900', color: '#0d47a1' },\n ],\n },\n {\n name: 'Light Blue',\n shades: [\n { label: '50', color: '#e1f5fe' },\n { label: '100', color: '#b3e5fc' },\n { label: '200', color: '#81d4fa' },\n { label: '300', color: '#4fc3f7' },\n { label: '400', color: '#29b6f6' },\n { label: '500', color: '#03a9f4' },\n { label: '600', color: '#039be5' },\n { label: '700', color: '#0288d1' },\n { label: '800', color: '#0277bd' },\n { label: '900', color: '#01579b' },\n ],\n },\n {\n name: 'Cyan',\n shades: [\n { label: '50', color: '#e0f7fa' },\n { label: '100', color: '#b2ebf2' },\n { label: '200', color: '#80deea' },\n { label: '300', color: '#4dd0e1' },\n { label: '400', color: '#26c6da' },\n { label: '500', color: '#00bcd4' },\n { label: '600', color: '#00acc1' },\n { label: '700', color: '#0097a7' },\n { label: '800', color: '#00838f' },\n { label: '900', color: '#006064' },\n ],\n },\n {\n name: 'Teal',\n shades: [\n { label: '50', color: '#e0f2f1' },\n { label: '100', color: '#b2dfdb' },\n { label: '200', color: '#80cbc4' },\n { label: '300', color: '#4db6ac' },\n { label: '400', color: '#26a69a' },\n { label: '500', color: '#009688' },\n { label: '600', color: '#00897b' },\n { label: '700', color: '#00796b' },\n { label: '800', color: '#00695c' },\n { label: '900', color: '#004d40' },\n ],\n },\n {\n name: 'Green',\n shades: [\n { label: '50', color: '#e8f5e9' },\n { label: '100', color: '#c8e6c9' },\n { label: '200', color: '#a5d6a7' },\n { label: '300', color: '#81c784' },\n { label: '400', color: '#66bb6a' },\n { label: '500', color: '#4caf50' },\n { label: '600', color: '#43a047' },\n { label: '700', color: '#388e3c' },\n { label: '800', color: '#2e7d32' },\n { label: '900', color: '#1b5e20' },\n ],\n },\n {\n name: 'Light Green',\n shades: [\n { label: '50', color: '#f1f8e9' },\n { label: '100', color: '#dcedc8' },\n { label: '200', color: '#c5e1a5' },\n { label: '300', color: '#aed581' },\n { label: '400', color: '#9ccc65' },\n { label: '500', color: '#8bc34a' },\n { label: '600', color: '#7cb342' },\n { label: '700', color: '#689f38' },\n { label: '800', color: '#558b2f' },\n { label: '900', color: '#33691e' },\n ],\n },\n {\n name: 'Lime',\n shades: [\n { label: '50', color: '#f9fbe7' },\n { label: '100', color: '#f0f4c3' },\n { label: '200', color: '#e6ee9c' },\n { label: '300', color: '#dce775' },\n { label: '400', color: '#d4e157' },\n { label: '500', color: '#cddc39' },\n { label: '600', color: '#c0ca33' },\n { label: '700', color: '#afb42b' },\n { label: '800', color: '#9e9d24' },\n { label: '900', color: '#827717' },\n ],\n },\n {\n name: 'Yellow',\n shades: [\n { label: '50', color: '#fffde7' },\n { label: '100', color: '#fff9c4' },\n { label: '200', color: '#fff59d' },\n { label: '300', color: '#fff176' },\n { label: '400', color: '#ffee58' },\n { label: '500', color: '#ffeb3b' },\n { label: '600', color: '#fdd835' },\n { label: '700', color: '#fbc02d' },\n { label: '800', color: '#f9a825' },\n { label: '900', color: '#f57f17' },\n ],\n },\n {\n name: 'Amber',\n shades: [\n { label: '50', color: '#fff8e1' },\n { label: '100', color: '#ffecb3' },\n { label: '200', color: '#ffe082' },\n { label: '300', color: '#ffd54f' },\n { label: '400', color: '#ffca28' },\n { label: '500', color: '#ffc107' },\n { label: '600', color: '#ffb300' },\n { label: '700', color: '#ffa000' },\n { label: '800', color: '#ff8f00' },\n { label: '900', color: '#ff6f00' },\n ],\n },\n {\n name: 'Orange',\n shades: [\n { label: '50', color: '#fff3e0' },\n { label: '100', color: '#ffe0b2' },\n { label: '200', color: '#ffcc80' },\n { label: '300', color: '#ffb74d' },\n { label: '400', color: '#ffa726' },\n { label: '500', color: '#ff9800' },\n { label: '600', color: '#fb8c00' },\n { label: '700', color: '#f57c00' },\n { label: '800', color: '#ef6c00' },\n { label: '900', color: '#e65100' },\n ],\n },\n {\n name: 'Deep Orange',\n shades: [\n { label: '50', color: '#fbe9e7' },\n { label: '100', color: '#ffccbc' },\n { label: '200', color: '#ffab91' },\n { label: '300', color: '#ff8a65' },\n { label: '400', color: '#ff7043' },\n { label: '500', color: '#ff5722' },\n { label: '600', color: '#f4511e' },\n { label: '700', color: '#e64a19' },\n { label: '800', color: '#d84315' },\n { label: '900', color: '#bf360c' },\n ],\n },\n {\n name: 'Brown',\n shades: [\n { label: '50', color: '#efebe9' },\n { label: '100', color: '#d7ccc8' },\n { label: '200', color: '#bcaaa4' },\n { label: '300', color: '#a1887f' },\n { label: '400', color: '#8d6e63' },\n { label: '500', color: '#795548' },\n { label: '600', color: '#6d4c41' },\n { label: '700', color: '#5d4037' },\n { label: '800', color: '#4e342e' },\n { label: '900', color: '#3e2723' },\n ],\n },\n {\n name: 'Grey',\n shades: [\n { label: '50', color: '#fafafa' },\n { label: '100', color: '#f5f5f5' },\n { label: '200', color: '#eeeeee' },\n { label: '300', color: '#e0e0e0' },\n { label: '400', color: '#bdbdbd' },\n { label: '500', color: '#9e9e9e' },\n { label: '600', color: '#757575' },\n { label: '700', color: '#616161' },\n { label: '800', color: '#424242' },\n { label: '900', color: '#212121' },\n ],\n },\n {\n name: 'Blue Grey',\n shades: [\n { label: '50', color: '#eceff1' },\n { label: '100', color: '#cfd8dc' },\n { label: '200', color: '#b0bec5' },\n { label: '300', color: '#90a4ae' },\n { label: '400', color: '#78909c' },\n { label: '500', color: '#607d8b' },\n { label: '600', color: '#546e7a' },\n { label: '700', color: '#455a64' },\n { label: '800', color: '#37474f' },\n { label: '900', color: '#263238' },\n ],\n },\n ],\n};\n"],"names":[],"mappings":"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"}