@cube-dev/ui-kit 0.137.1 → 0.138.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 (476) hide show
  1. package/dist/CHANGELOG.md +19 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +54 -43
  14. package/dist/components/GlobalStyles.js.map +1 -1
  15. package/dist/components/GridProvider.js +1 -1
  16. package/dist/components/HiddenInput.js +1 -1
  17. package/dist/components/Root.js +9 -4
  18. package/dist/components/Root.js.map +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.d.ts +1 -0
  22. package/dist/components/actions/Button/Button.js +1 -1
  23. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  25. package/dist/components/actions/ButtonSplit/context.js +1 -1
  26. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +3 -3
  28. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +5 -5
  41. package/dist/components/actions/Menu/styled.js.map +1 -1
  42. package/dist/components/actions/index.js +1 -1
  43. package/dist/components/actions/use-action.js +1 -1
  44. package/dist/components/actions/use-anchored-menu.js +1 -1
  45. package/dist/components/actions/use-context-menu.js +1 -1
  46. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  47. package/dist/components/content/Alert/Alert.js +1 -1
  48. package/dist/components/content/Alert/use-alert.js +1 -1
  49. package/dist/components/content/Avatar/Avatar.js +1 -1
  50. package/dist/components/content/Badge/Badge.js +1 -1
  51. package/dist/components/content/Card/Card.js +2 -2
  52. package/dist/components/content/Card/Card.js.map +1 -1
  53. package/dist/components/content/Content.js +1 -1
  54. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  55. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  56. package/dist/components/content/Disclosure/Disclosure.js +2 -2
  57. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  58. package/dist/components/content/Divider.js +1 -1
  59. package/dist/components/content/Footer.js +1 -1
  60. package/dist/components/content/Header.js +1 -1
  61. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  62. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  63. package/dist/components/content/Item/Item.js +2 -2
  64. package/dist/components/content/Item/Item.js.map +1 -1
  65. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  66. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  67. package/dist/components/content/Layout/GridLayout.js +1 -1
  68. package/dist/components/content/Layout/Layout.js +1 -1
  69. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  70. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  71. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  72. package/dist/components/content/Layout/LayoutContent.js +1 -1
  73. package/dist/components/content/Layout/LayoutContext.js +1 -1
  74. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  75. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  76. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  77. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  78. package/dist/components/content/Layout/LayoutPane.js +2 -2
  79. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +3 -3
  81. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  82. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  83. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  84. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  85. package/dist/components/content/Layout/index.js +1 -1
  86. package/dist/components/content/Layout/utils.js +1 -1
  87. package/dist/components/content/Paragraph.js +1 -1
  88. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  89. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  90. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  91. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  92. package/dist/components/content/Result/Result.js +1 -1
  93. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  94. package/dist/components/content/Tag/Tag.js +1 -1
  95. package/dist/components/content/Text.js +1 -1
  96. package/dist/components/content/TextItem/TextItem.js +1 -1
  97. package/dist/components/content/Title.js +1 -1
  98. package/dist/components/content/Tree/Tree.js +1 -1
  99. package/dist/components/content/Tree/TreeNode.js +1 -1
  100. package/dist/components/content/Tree/styled.js +1 -1
  101. package/dist/components/content/Tree/tree-index.js +1 -1
  102. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  103. package/dist/components/content/Tree/use-load-data.js +1 -1
  104. package/dist/components/content/highlightText.js +1 -1
  105. package/dist/components/content/use-auto-tooltip.js +1 -1
  106. package/dist/components/fields/Checkbox/Checkbox.js +5 -5
  107. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  108. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  109. package/dist/components/fields/Checkbox/context.js +1 -1
  110. package/dist/components/fields/ComboBox/ComboBox.js +2 -2
  111. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  112. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  113. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/dist/components/fields/DatePicker/intl.js +1 -1
  123. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  124. package/dist/components/fields/DatePicker/props.js +1 -1
  125. package/dist/components/fields/DatePicker/utils.js +1 -1
  126. package/dist/components/fields/FileInput/FileInput.js +3 -3
  127. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  128. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  129. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  130. package/dist/components/fields/Input/Input.js +1 -1
  131. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  132. package/dist/components/fields/ListBox/ListBox.js +1 -1
  133. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  134. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  135. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  136. package/dist/components/fields/Picker/Picker.js +1 -1
  137. package/dist/components/fields/RadioGroup/Radio.js +4 -4
  138. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  139. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  140. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  141. package/dist/components/fields/RadioGroup/context.js +1 -1
  142. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  143. package/dist/components/fields/Select/Select.js +5 -5
  144. package/dist/components/fields/Select/Select.js.map +1 -1
  145. package/dist/components/fields/Slider/Gradation.js +1 -1
  146. package/dist/components/fields/Slider/HueSlider.js +1 -1
  147. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  148. package/dist/components/fields/Slider/Slider.js +1 -1
  149. package/dist/components/fields/Slider/SliderBase.js +1 -1
  150. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  151. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  152. package/dist/components/fields/Slider/elements.js +3 -3
  153. package/dist/components/fields/Slider/elements.js.map +1 -1
  154. package/dist/components/fields/Slider/index.js +1 -1
  155. package/dist/components/fields/Switch/Switch.js +2 -2
  156. package/dist/components/fields/Switch/Switch.js.map +1 -1
  157. package/dist/components/fields/TextArea/TextArea.js +1 -1
  158. package/dist/components/fields/TextInput/TextInput.js +1 -1
  159. package/dist/components/fields/TextInput/TextInputBase.js +3 -3
  160. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  161. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  162. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  163. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  164. package/dist/components/form/Form/Field.js +1 -1
  165. package/dist/components/form/Form/Form.js +1 -1
  166. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  167. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  168. package/dist/components/form/Form/SubmitError.js +1 -1
  169. package/dist/components/form/Form/index.js +1 -1
  170. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  171. package/dist/components/form/Form/use-field/use-field.js +1 -1
  172. package/dist/components/form/Form/use-form.js +1 -1
  173. package/dist/components/form/Form/validation.js +1 -1
  174. package/dist/components/form/Label.js +1 -1
  175. package/dist/components/form/wrapper.js +1 -1
  176. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  177. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  178. package/dist/components/layout/Flex.js +1 -1
  179. package/dist/components/layout/Flow.js +1 -1
  180. package/dist/components/layout/Grid.js +1 -1
  181. package/dist/components/layout/Panel.js +1 -1
  182. package/dist/components/layout/Prefix.js +1 -1
  183. package/dist/components/layout/ResizablePanel.js +2 -2
  184. package/dist/components/layout/ResizablePanel.js.map +1 -1
  185. package/dist/components/layout/Space.js +1 -1
  186. package/dist/components/layout/Suffix.js +1 -1
  187. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  188. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  189. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  190. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  191. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  192. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  193. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  194. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  195. package/dist/components/navigation/Tabs/styled.js +3 -3
  196. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  197. package/dist/components/navigation/Tabs/types.js +1 -1
  198. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  199. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  200. package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
  201. package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
  202. package/dist/components/organisms/StatsCard/StatsCard.js +2 -2
  203. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  204. package/dist/components/other/Calendar/Calendar.js +1 -1
  205. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  206. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  207. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  208. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  209. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  210. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  211. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  212. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  213. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  214. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  215. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  216. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  217. package/dist/components/overlays/Dialog/context.js +1 -1
  218. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  219. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  220. package/dist/components/overlays/Modal/Modal.js +1 -1
  221. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  222. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  223. package/dist/components/overlays/Modal/Overlay.js +1 -1
  224. package/dist/components/overlays/Modal/Popover.js +1 -1
  225. package/dist/components/overlays/Modal/Tray.js +1 -1
  226. package/dist/components/overlays/Modal/Underlay.js +1 -1
  227. package/dist/components/overlays/Modal/types.d.ts +1 -0
  228. package/dist/components/overlays/Notifications/Notification.js +1 -1
  229. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  230. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  231. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  232. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  233. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  234. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  235. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  236. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  237. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  238. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  239. package/dist/components/overlays/Notifications/index.js +1 -1
  240. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  241. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  242. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  243. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  244. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  245. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  246. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  247. package/dist/components/overlays/Toast/index.js +1 -1
  248. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  249. package/dist/components/overlays/Toast/useToast.js +1 -1
  250. package/dist/components/overlays/Tooltip/Tooltip.js +7 -7
  251. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  252. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  253. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  254. package/dist/components/overlays/Tooltip/context.js +1 -1
  255. package/dist/components/portal/Portal.js +1 -1
  256. package/dist/components/portal/PortalProvider.d.ts +2 -0
  257. package/dist/components/portal/PortalProvider.js +1 -1
  258. package/dist/components/portal/index.d.ts +1 -0
  259. package/dist/components/portal/usePortal.js +1 -1
  260. package/dist/components/shared/DraggableCollection.js +1 -1
  261. package/dist/components/shared/InvalidIcon.js +1 -1
  262. package/dist/components/shared/ValidIcon.js +1 -1
  263. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +23 -7
  264. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  265. package/dist/components/status/Spin/Cube.js +1 -1
  266. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  267. package/dist/components/status/Spin/Spin.js +1 -1
  268. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  269. package/dist/data/item-themes.js +114 -115
  270. package/dist/data/item-themes.js.map +1 -1
  271. package/dist/data/themes.d.ts +17 -17
  272. package/dist/data/themes.js +18 -18
  273. package/dist/data/themes.js.map +1 -1
  274. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  275. package/dist/icons/AdjustmentsIcon.js +1 -1
  276. package/dist/icons/AiIcon.js +1 -1
  277. package/dist/icons/AreaChartIcon.js +1 -1
  278. package/dist/icons/BackwardIcon.js +1 -1
  279. package/dist/icons/BarChartIcon.js +1 -1
  280. package/dist/icons/BellFilledIcon.js +1 -1
  281. package/dist/icons/BellIcon.js +1 -1
  282. package/dist/icons/BooleanIcon.js +1 -1
  283. package/dist/icons/CalendarEditIcon.js +1 -1
  284. package/dist/icons/CalendarIcon.js +1 -1
  285. package/dist/icons/CaretDownIcon.js +1 -1
  286. package/dist/icons/CaretUpIcon.js +1 -1
  287. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  288. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  289. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  290. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  291. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  292. package/dist/icons/ChartBarLineIcon.js +1 -1
  293. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  294. package/dist/icons/ChartBarStackedIcon.js +1 -1
  295. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  296. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  297. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  298. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  299. package/dist/icons/ChartBubbleIcon.js +1 -1
  300. package/dist/icons/ChartDonut2Icon.js +1 -1
  301. package/dist/icons/ChartFunnelIcon.js +1 -1
  302. package/dist/icons/ChartHeatmapIcon.js +1 -1
  303. package/dist/icons/ChartKPIIcon.js +1 -1
  304. package/dist/icons/ChartPie2Icon.js +1 -1
  305. package/dist/icons/ChartScatterIcon.js +1 -1
  306. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  307. package/dist/icons/CheckCircleIcon.js +1 -1
  308. package/dist/icons/CheckIcon.js +1 -1
  309. package/dist/icons/CircleFilledIcon.js +1 -1
  310. package/dist/icons/ClearIcon.js +1 -1
  311. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  312. package/dist/icons/CloseCircleIcon.js +1 -1
  313. package/dist/icons/CloseIcon.js +1 -1
  314. package/dist/icons/CodeIcon.js +1 -1
  315. package/dist/icons/ColumnTotalIcon.js +1 -1
  316. package/dist/icons/CopyIcon.js +1 -1
  317. package/dist/icons/CountIcon.js +1 -1
  318. package/dist/icons/CubeIcon.js +1 -1
  319. package/dist/icons/CubePauseIcon.js +1 -1
  320. package/dist/icons/CubePlayIcon.js +1 -1
  321. package/dist/icons/CurrencyDollarIcon.js +1 -1
  322. package/dist/icons/DangerIcon.js +1 -1
  323. package/dist/icons/DashboardIcon.js +1 -1
  324. package/dist/icons/DatabaseIcon.js +1 -1
  325. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  326. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  327. package/dist/icons/DirectionIcon.js +1 -1
  328. package/dist/icons/DonutIcon.js +1 -1
  329. package/dist/icons/DownIcon.js +1 -1
  330. package/dist/icons/EditIcon.js +1 -1
  331. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  332. package/dist/icons/ExclamationCircleIcon.js +1 -1
  333. package/dist/icons/ExclamationIcon.js +1 -1
  334. package/dist/icons/EyeIcon.js +1 -1
  335. package/dist/icons/EyeInvisibleIcon.js +1 -1
  336. package/dist/icons/FilterIcon.js +1 -1
  337. package/dist/icons/FolderFilledIcon.js +1 -1
  338. package/dist/icons/FolderIcon.js +1 -1
  339. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  340. package/dist/icons/FolderOpenIcon.js +1 -1
  341. package/dist/icons/ForwardIcon.js +1 -1
  342. package/dist/icons/GripVerticalIcon.js +1 -1
  343. package/dist/icons/HierarchyIcon.js +1 -1
  344. package/dist/icons/HierarchyOpenIcon.js +1 -1
  345. package/dist/icons/Icon.js +1 -1
  346. package/dist/icons/InfoCircleIcon.js +1 -1
  347. package/dist/icons/InfoIcon.js +1 -1
  348. package/dist/icons/KeyIcon.js +1 -1
  349. package/dist/icons/LeftIcon.js +1 -1
  350. package/dist/icons/LineChartIcon.js +1 -1
  351. package/dist/icons/LoadingIcon.js +1 -1
  352. package/dist/icons/LockFilledIcon.js +1 -1
  353. package/dist/icons/LockIcon.js +1 -1
  354. package/dist/icons/MoreIcon.js +1 -1
  355. package/dist/icons/NotAllowedIcon.js +1 -1
  356. package/dist/icons/Number123Icon.js +1 -1
  357. package/dist/icons/NumberIcon.js +1 -1
  358. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  359. package/dist/icons/PauseCircleIcon.js +1 -1
  360. package/dist/icons/PauseIcon.js +1 -1
  361. package/dist/icons/PercentageIcon.js +1 -1
  362. package/dist/icons/PieChartIcon.js +1 -1
  363. package/dist/icons/PlayCircleIcon.js +1 -1
  364. package/dist/icons/PlayIcon.js +1 -1
  365. package/dist/icons/PlusIcon.js +1 -1
  366. package/dist/icons/ProgressBarIcon.js +1 -1
  367. package/dist/icons/ReloadIcon.js +1 -1
  368. package/dist/icons/ReportIcon.js +1 -1
  369. package/dist/icons/ReturnIcon.js +1 -1
  370. package/dist/icons/RightIcon.js +1 -1
  371. package/dist/icons/RowTotalsIcon.js +1 -1
  372. package/dist/icons/SchemeIcon.js +1 -1
  373. package/dist/icons/SearchIcon.js +1 -1
  374. package/dist/icons/SemanticQueryIcon.js +1 -1
  375. package/dist/icons/SettingsIcon.js +1 -1
  376. package/dist/icons/ShieldFilledIcon.js +1 -1
  377. package/dist/icons/ShieldIcon.js +1 -1
  378. package/dist/icons/SlashIcon.js +1 -1
  379. package/dist/icons/SparklesIcon.js +1 -1
  380. package/dist/icons/SqlIcon.js +1 -1
  381. package/dist/icons/StatsIcon.js +1 -1
  382. package/dist/icons/StopIcon.js +1 -1
  383. package/dist/icons/StringIcon.js +1 -1
  384. package/dist/icons/SubtotalsIcon.js +1 -1
  385. package/dist/icons/SwitchIcon.js +1 -1
  386. package/dist/icons/TableIcon.js +1 -1
  387. package/dist/icons/ThumbsDownIcon.js +1 -1
  388. package/dist/icons/ThumbsUpIcon.js +1 -1
  389. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  390. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  391. package/dist/icons/ThunderboltIcon.js +1 -1
  392. package/dist/icons/TimeIcon.js +1 -1
  393. package/dist/icons/TrashIcon.js +1 -1
  394. package/dist/icons/UnlockIcon.js +1 -1
  395. package/dist/icons/UpIcon.js +1 -1
  396. package/dist/icons/UserGroupIcon.js +1 -1
  397. package/dist/icons/UserIcon.js +1 -1
  398. package/dist/icons/UserLockIcon.js +1 -1
  399. package/dist/icons/ViewIcon.js +1 -1
  400. package/dist/icons/WarningFilledIcon.js +1 -1
  401. package/dist/icons/WarningIcon.js +1 -1
  402. package/dist/icons/wrap-icon.js +1 -1
  403. package/dist/index.d.ts +1 -0
  404. package/dist/index.js +3 -1
  405. package/dist/index.js.map +1 -1
  406. package/dist/provider.js +1 -1
  407. package/dist/providers/TrackingProvider.js +1 -1
  408. package/dist/providers/navigationAdapter.default.js +1 -1
  409. package/dist/tokens/base.js +1 -1
  410. package/dist/tokens/colors.d.ts +4 -3
  411. package/dist/tokens/colors.js +93 -83
  412. package/dist/tokens/colors.js.map +1 -1
  413. package/dist/tokens/index.js +1 -1
  414. package/dist/tokens/layout.js +1 -1
  415. package/dist/tokens/palette.js +364 -0
  416. package/dist/tokens/palette.js.map +1 -0
  417. package/dist/tokens/shadows.d.ts +4 -1
  418. package/dist/tokens/shadows.js +9 -6
  419. package/dist/tokens/shadows.js.map +1 -1
  420. package/dist/tokens/sizes.js +1 -1
  421. package/dist/tokens/spacing.js +1 -1
  422. package/dist/tokens/typography.js +1 -1
  423. package/dist/utils/ResizeSensor.js +1 -1
  424. package/dist/utils/is-dev-env.js +1 -1
  425. package/dist/utils/modules.js +1 -1
  426. package/dist/utils/promise.js +1 -1
  427. package/dist/utils/raf.js +1 -1
  428. package/dist/utils/random.js +1 -1
  429. package/dist/utils/range.js +1 -1
  430. package/dist/utils/react/RenderCache.js +1 -1
  431. package/dist/utils/react/Slots.js +1 -1
  432. package/dist/utils/react/chain.js +1 -1
  433. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  434. package/dist/utils/react/index.js +1 -1
  435. package/dist/utils/react/interactions.js +1 -1
  436. package/dist/utils/react/isTextOnly.js +1 -1
  437. package/dist/utils/react/mapProps.js +1 -1
  438. package/dist/utils/react/mergeProps.js +1 -1
  439. package/dist/utils/react/nullableValue.js +1 -1
  440. package/dist/utils/react/resolveIcon.js +1 -1
  441. package/dist/utils/react/sharedStore.js +1 -1
  442. package/dist/utils/react/useCombinedRefs.js +1 -1
  443. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  444. package/dist/utils/react/useEventBus.js +1 -1
  445. package/dist/utils/react/useId.js +1 -1
  446. package/dist/utils/react/useIsDarwin.js +1 -1
  447. package/dist/utils/react/useKeySymbols.js +1 -1
  448. package/dist/utils/react/useLayoutEffect.js +1 -1
  449. package/dist/utils/react/useLocalStorage.js +1 -1
  450. package/dist/utils/react/useMergeStyles.js +1 -1
  451. package/dist/utils/react/usePopoverSync.js +1 -1
  452. package/dist/utils/react/useQaProps.js +1 -1
  453. package/dist/utils/react/useViewportSize.js +1 -1
  454. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  455. package/dist/utils/selection.js +1 -1
  456. package/dist/utils/styles.js +1 -1
  457. package/dist/utils/tree.js +1 -1
  458. package/dist/utils/warnings.js +1 -1
  459. package/dist/version.d.ts +3 -0
  460. package/dist/version.js +13 -5
  461. package/dist/version.js.map +1 -1
  462. package/docs/Usage.md +98 -30
  463. package/docs/components/content/Card.md +1 -1
  464. package/docs/components/content/PrismCode.md +21 -0
  465. package/docs/components/form/Field.md +1 -1
  466. package/docs/components/layout/ResizablePanel.md +1 -1
  467. package/docs/components/organisms/FileTabs.md +1 -1
  468. package/docs/components/organisms/StatsCard.md +1 -1
  469. package/docs/tasty/configuration.md +44 -0
  470. package/docs/tasty/dsl.md +14 -13
  471. package/docs/tasty/methodology.md +26 -0
  472. package/docs/tasty/react-api.md +24 -0
  473. package/docs/tasty/ssr.md +5 -3
  474. package/docs/tasty/styles.md +9 -7
  475. package/docs/tasty/tasty-static.md +15 -0
  476. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"TextInputBase.js","names":["useFocus","mergeProps"],"sources":["../../../../src/components/fields/TextInput/TextInputBase.tsx"],"sourcesContent":["import { createFocusableRef } from '@react-spectrum/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Props,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n cloneElement,\n forwardRef,\n ReactElement,\n ReactNode,\n RefObject,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\nimport { AriaNumberFieldProps, AriaTextFieldProps, useHover } from 'react-aria';\n\nimport { LoadingIcon } from '../../../icons';\nimport { useProviderProps } from '../../../provider';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { useFieldProps, useFormProps, wrapWithField } from '../../form';\nimport { InvalidIcon } from '../../shared/InvalidIcon';\nimport { ValidIcon } from '../../shared/ValidIcon';\n\nconst ADD_STYLES = {\n $: '>',\n display: 'grid',\n placeContent: 'stretch',\n placeItems: 'center',\n gridRows: '1sf',\n flow: 'column',\n gap: 0,\n cursor: 'inherit',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n};\n\nexport const INPUT_WRAPPER_STYLES: Styles = {\n display: 'grid',\n flow: 'row',\n position: 'relative',\n gridColumns: {\n '': '1sf',\n prefix: 'max-content 1sf',\n suffix: '1sf max-content',\n 'prefix & suffix': 'max-content 1sf max-content',\n },\n gridRows: '1sf',\n placeItems: 'stretch',\n fill: {\n '': '#white',\n disabled: '#dark.04',\n },\n border: {\n '': true,\n valid: '#success-text.50',\n invalid: '#danger-text.50',\n focused: '#primary-text',\n 'valid & focused': '#success-text',\n 'invalid & focused': '#danger-text',\n disabled: true,\n },\n preset: 't3',\n radius: true,\n cursor: 'text',\n color: {\n '': '#dark-02',\n focused: '#dark-02',\n invalid: '#danger-text',\n disabled: '#dark.30',\n },\n zIndex: {\n '': 'initial',\n focused: 1,\n },\n boxSizing: 'border-box',\n transition: 'theme',\n backgroundClip: 'content-box',\n height: {\n '': '$size $size',\n multiline: 'min $size',\n },\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n\n Prefix: ADD_STYLES,\n\n Suffix: ADD_STYLES,\n\n State: {\n $: '> Suffix >',\n display: 'flex',\n },\n\n InputIcon: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $size-sm',\n color: 'inherit',\n fontSize: '$icon-size',\n },\n\n ValidationIcon: {\n $: '> Suffix > State >',\n display: 'grid',\n placeItems: 'center',\n width: {\n '': 'min $size-sm',\n suffix: 'min $size-xs',\n },\n fontSize: '$icon-size',\n },\n};\n\nconst InputWrapperElement = tasty({\n qa: 'InputWrapper',\n styles: INPUT_WRAPPER_STYLES,\n});\n\nconst PROP_STYLES = [\n ...BASE_STYLES,\n ...OUTER_STYLES,\n ...BLOCK_STYLES,\n ...COLOR_STYLES,\n];\n\nexport const DEFAULT_INPUT_STYLES: Styles = {\n recipe: 'reset input / input-autofill',\n placeSelf: 'stretch',\n width: 'initial 100% 100%',\n transition: 'theme',\n radius: true,\n padding: '$vertical-padding $right-padding $vertical-padding $left-padding',\n textAlign: 'left',\n preset: 't3',\n flexGrow: 1,\n margin: {\n '': 0,\n multiline: '((($size-md - 1lh) / 2) - 1bw) 0',\n 'multiline & size=small': '((($size-sm - 1lh) / 2) - 1bw) 0',\n 'multiline & size=large': '((($size-lg - 1lh) / 2) - 1bw) 0',\n },\n resize: 'none',\n userSelect: 'auto',\n\n Placeholder: {\n $: '&::placeholder',\n recipe: 'input-placeholder',\n },\n '&::-webkit-search-cancel-button': {\n recipe: 'input-search-cancel-button',\n },\n\n '$vertical-padding': 0,\n '$left-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n prefix: '0',\n },\n '$right-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n suffix: '0',\n },\n};\n\nconst InputElement = tasty({ qa: 'Input', styles: DEFAULT_INPUT_STYLES });\n\nexport interface CubeTextInputBaseProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n BaseStyleProps,\n ColorStyleProps,\n Omit<AriaTextFieldProps, 'validate'>,\n FieldBaseProps {\n validate?: AriaTextFieldProps['validate'] | AriaNumberFieldProps['validate'];\n /** Left input icon */\n icon?: ReactElement | null;\n /** Input decoration before the main input */\n prefix?: ReactNode;\n /** Input decoration after the main input */\n suffix?: ReactNode;\n /** Suffix position goes before or after the validation and loading statuses */\n suffixPosition?: 'before' | 'after';\n /** Whether the input is multiline */\n multiLine?: boolean;\n /** Whether the input should have autofocus */\n autoFocus?: boolean;\n /** Direct input props */\n inputProps?: Props;\n /** Direct input wrapper props */\n wrapperProps?: Props;\n /** The input ref */\n inputRef?: RefObject<HTMLInputElement | HTMLTextAreaElement>;\n /** The wrapper ref */\n wrapperRef?: RefObject<HTMLDivElement>;\n /** Whether the input has the loading status */\n isLoading?: boolean;\n /** The loading status indicator */\n loadingIndicator?: ReactNode;\n /** Style map for the input */\n inputStyles?: Styles;\n /** The number of rows for the input. Only applies to textarea. */\n rows?: number;\n /** The resize CSS property sets whether an element is resizable, and if so, in which directions. */\n resize?: Styles['resize'];\n /** The size of the input */\n size?: 'small' | 'medium' | 'large' | (string & {});\n autocomplete?: string;\n}\n\nfunction _TextInputBase(props: CubeTextInputBaseProps, ref) {\n props = useProviderProps(props);\n props = useFormProps(props);\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onBlur',\n valuePropsMapper: ({ value, onChange }) => ({\n value:\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '',\n onChange,\n }),\n });\n\n let {\n qa,\n mods,\n validationState,\n prefix,\n isDisabled,\n multiLine,\n autoFocus,\n inputProps,\n wrapperProps,\n inputRef,\n isLoading,\n loadingIndicator,\n value,\n inputStyles = {},\n suffix,\n suffixPosition = 'before',\n wrapperRef,\n tooltip,\n rows = 1,\n size = 'medium',\n autocomplete,\n icon,\n maxLength,\n minLength,\n form,\n resize,\n ...otherProps\n } = props;\n\n let styles = extractStyles(otherProps, PROP_STYLES);\n let type = otherProps.type;\n\n if (resize) {\n inputStyles = { ...inputStyles, resize };\n }\n\n let ElementType: 'textarea' | 'input' = multiLine ? 'textarea' : 'input';\n let { isFocused, focusProps } = useFocus({ isDisabled });\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let domRef = useRef(null);\n\n inputRef = useCombinedRefs(inputRef);\n\n // Expose imperative interface for ref\n useImperativeHandle(ref, () => ({\n ...createFocusableRef(domRef, inputRef),\n select() {\n if (inputRef?.current) {\n inputRef.current.select();\n }\n },\n getInputElement() {\n return inputRef?.current;\n },\n }));\n\n let isInvalid = validationState === 'invalid';\n let validationIcon = isInvalid ? InvalidIcon : ValidIcon;\n let validation = cloneElement(validationIcon);\n\n // Fix safari bug: https://github.com/philipwalton/flexbugs/issues/270\n if (!inputProps?.placeholder) {\n if (!inputProps) {\n inputProps = {};\n }\n\n inputProps.placeholder = ' ';\n }\n\n if (icon) {\n icon = <div data-element=\"InputIcon\">{icon}</div>;\n\n if (prefix) {\n prefix = (\n <>\n {icon}\n {prefix}\n </>\n );\n } else {\n prefix = icon;\n }\n }\n\n const modifiers = useMemo(\n () => ({\n invalid: isInvalid,\n valid: validationState === 'valid',\n loadable: !!loadingIndicator,\n focused: isFocused,\n hovered: isHovered,\n disabled: isDisabled,\n multiline: multiLine,\n prefix: !!prefix,\n suffix: (validationState && !isLoading) || isLoading || !!suffix,\n ...mods,\n }),\n [\n mods,\n isInvalid,\n validationState,\n loadingIndicator,\n isFocused,\n isDisabled,\n isHovered,\n multiLine,\n prefix,\n suffix,\n ],\n );\n\n const hasTextSecurity = multiLine && type === 'password';\n const textSecurityStyles =\n hasTextSecurity && inputProps.value?.length\n ? {\n fontFamily: 'text-security-disc',\n }\n : {};\n\n const textField = (\n <InputWrapperElement\n ref={wrapperRef}\n mods={modifiers}\n data-size={size}\n styles={styles}\n {...wrapperProps}\n >\n {prefix ? <div data-element=\"Prefix\">{prefix}</div> : null}\n <InputElement\n qa={qa || 'Input'}\n as={ElementType}\n data-input-type=\"textinput\"\n {...mergeProps(inputProps, focusProps, hoverProps)}\n ref={inputRef}\n rows={multiLine ? rows : undefined}\n mods={modifiers}\n style={textSecurityStyles}\n data-autofocus={autoFocus ? '' : undefined}\n autoFocus={autoFocus}\n data-size={size}\n autoComplete={autocomplete}\n styles={inputStyles}\n disabled={!!isDisabled}\n maxLength={maxLength}\n minLength={minLength}\n />\n {(validationState && !isLoading) || isLoading || suffix ? (\n <div data-element=\"Suffix\">\n {suffixPosition === 'before' ? suffix : null}\n {(validationState && !isLoading) || isLoading ? (\n <div data-element=\"State\">\n {validationState && !isLoading ? validation : null}\n {isLoading && <LoadingIcon data-element=\"InputIcon\" />}\n </div>\n ) : null}\n {suffixPosition === 'after' ? suffix : null}\n </div>\n ) : null}\n </InputWrapperElement>\n );\n\n return wrapWithField(textField, domRef, {\n ...props,\n form: undefined,\n });\n}\n\nconst TextInputBase = forwardRef(_TextInputBase);\n\nexport { TextInputBase };\nexport type { AriaTextFieldProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"TextInputBase.js","names":["useFocus","mergeProps"],"sources":["../../../../src/components/fields/TextInput/TextInputBase.tsx"],"sourcesContent":["import { createFocusableRef } from '@react-spectrum/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Props,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n cloneElement,\n forwardRef,\n ReactElement,\n ReactNode,\n RefObject,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\nimport { AriaNumberFieldProps, AriaTextFieldProps, useHover } from 'react-aria';\n\nimport { LoadingIcon } from '../../../icons';\nimport { useProviderProps } from '../../../provider';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { useFieldProps, useFormProps, wrapWithField } from '../../form';\nimport { InvalidIcon } from '../../shared/InvalidIcon';\nimport { ValidIcon } from '../../shared/ValidIcon';\n\nconst ADD_STYLES = {\n $: '>',\n display: 'grid',\n placeContent: 'stretch',\n placeItems: 'center',\n gridRows: '1sf',\n flow: 'column',\n gap: 0,\n cursor: 'inherit',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n};\n\nexport const INPUT_WRAPPER_STYLES: Styles = {\n display: 'grid',\n flow: 'row',\n position: 'relative',\n gridColumns: {\n '': '1sf',\n prefix: 'max-content 1sf',\n suffix: '1sf max-content',\n 'prefix & suffix': 'max-content 1sf max-content',\n },\n gridRows: '1sf',\n placeItems: 'stretch',\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n },\n border: {\n '': true,\n valid: '#success-text.50',\n invalid: '#danger-text.50',\n focused: '#primary-text',\n 'valid & focused': '#success-text',\n 'invalid & focused': '#danger-text',\n disabled: true,\n },\n preset: 't3',\n radius: true,\n cursor: 'text',\n color: {\n '': '#dark-02',\n focused: '#dark-02',\n invalid: '#danger-text',\n disabled: '#dark.30',\n },\n zIndex: {\n '': 'initial',\n focused: 1,\n },\n boxSizing: 'border-box',\n transition: 'theme',\n backgroundClip: 'content-box',\n height: {\n '': '$size $size',\n multiline: 'min $size',\n },\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n\n Prefix: ADD_STYLES,\n\n Suffix: ADD_STYLES,\n\n State: {\n $: '> Suffix >',\n display: 'flex',\n },\n\n InputIcon: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $size-sm',\n color: 'inherit',\n fontSize: '$icon-size',\n },\n\n ValidationIcon: {\n $: '> Suffix > State >',\n display: 'grid',\n placeItems: 'center',\n width: {\n '': 'min $size-sm',\n suffix: 'min $size-xs',\n },\n fontSize: '$icon-size',\n },\n};\n\nconst InputWrapperElement = tasty({\n qa: 'InputWrapper',\n styles: INPUT_WRAPPER_STYLES,\n});\n\nconst PROP_STYLES = [\n ...BASE_STYLES,\n ...OUTER_STYLES,\n ...BLOCK_STYLES,\n ...COLOR_STYLES,\n];\n\nexport const DEFAULT_INPUT_STYLES: Styles = {\n recipe: 'reset input / input-autofill',\n placeSelf: 'stretch',\n width: 'initial 100% 100%',\n transition: 'theme',\n radius: true,\n padding: '$vertical-padding $right-padding $vertical-padding $left-padding',\n textAlign: 'left',\n preset: 't3',\n flexGrow: 1,\n margin: {\n '': 0,\n multiline: '((($size-md - 1lh) / 2) - 1bw) 0',\n 'multiline & size=small': '((($size-sm - 1lh) / 2) - 1bw) 0',\n 'multiline & size=large': '((($size-lg - 1lh) / 2) - 1bw) 0',\n },\n resize: 'none',\n userSelect: 'auto',\n\n Placeholder: {\n $: '&::placeholder',\n recipe: 'input-placeholder',\n },\n '&::-webkit-search-cancel-button': {\n recipe: 'input-search-cancel-button',\n },\n\n '$vertical-padding': 0,\n '$left-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n prefix: '0',\n },\n '$right-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n suffix: '0',\n },\n};\n\nconst InputElement = tasty({ qa: 'Input', styles: DEFAULT_INPUT_STYLES });\n\nexport interface CubeTextInputBaseProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n BaseStyleProps,\n ColorStyleProps,\n Omit<AriaTextFieldProps, 'validate'>,\n FieldBaseProps {\n validate?: AriaTextFieldProps['validate'] | AriaNumberFieldProps['validate'];\n /** Left input icon */\n icon?: ReactElement | null;\n /** Input decoration before the main input */\n prefix?: ReactNode;\n /** Input decoration after the main input */\n suffix?: ReactNode;\n /** Suffix position goes before or after the validation and loading statuses */\n suffixPosition?: 'before' | 'after';\n /** Whether the input is multiline */\n multiLine?: boolean;\n /** Whether the input should have autofocus */\n autoFocus?: boolean;\n /** Direct input props */\n inputProps?: Props;\n /** Direct input wrapper props */\n wrapperProps?: Props;\n /** The input ref */\n inputRef?: RefObject<HTMLInputElement | HTMLTextAreaElement>;\n /** The wrapper ref */\n wrapperRef?: RefObject<HTMLDivElement>;\n /** Whether the input has the loading status */\n isLoading?: boolean;\n /** The loading status indicator */\n loadingIndicator?: ReactNode;\n /** Style map for the input */\n inputStyles?: Styles;\n /** The number of rows for the input. Only applies to textarea. */\n rows?: number;\n /** The resize CSS property sets whether an element is resizable, and if so, in which directions. */\n resize?: Styles['resize'];\n /** The size of the input */\n size?: 'small' | 'medium' | 'large' | (string & {});\n autocomplete?: string;\n}\n\nfunction _TextInputBase(props: CubeTextInputBaseProps, ref) {\n props = useProviderProps(props);\n props = useFormProps(props);\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onBlur',\n valuePropsMapper: ({ value, onChange }) => ({\n value:\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '',\n onChange,\n }),\n });\n\n let {\n qa,\n mods,\n validationState,\n prefix,\n isDisabled,\n multiLine,\n autoFocus,\n inputProps,\n wrapperProps,\n inputRef,\n isLoading,\n loadingIndicator,\n value,\n inputStyles = {},\n suffix,\n suffixPosition = 'before',\n wrapperRef,\n tooltip,\n rows = 1,\n size = 'medium',\n autocomplete,\n icon,\n maxLength,\n minLength,\n form,\n resize,\n ...otherProps\n } = props;\n\n let styles = extractStyles(otherProps, PROP_STYLES);\n let type = otherProps.type;\n\n if (resize) {\n inputStyles = { ...inputStyles, resize };\n }\n\n let ElementType: 'textarea' | 'input' = multiLine ? 'textarea' : 'input';\n let { isFocused, focusProps } = useFocus({ isDisabled });\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let domRef = useRef(null);\n\n inputRef = useCombinedRefs(inputRef);\n\n // Expose imperative interface for ref\n useImperativeHandle(ref, () => ({\n ...createFocusableRef(domRef, inputRef),\n select() {\n if (inputRef?.current) {\n inputRef.current.select();\n }\n },\n getInputElement() {\n return inputRef?.current;\n },\n }));\n\n let isInvalid = validationState === 'invalid';\n let validationIcon = isInvalid ? InvalidIcon : ValidIcon;\n let validation = cloneElement(validationIcon);\n\n // Fix safari bug: https://github.com/philipwalton/flexbugs/issues/270\n if (!inputProps?.placeholder) {\n if (!inputProps) {\n inputProps = {};\n }\n\n inputProps.placeholder = ' ';\n }\n\n if (icon) {\n icon = <div data-element=\"InputIcon\">{icon}</div>;\n\n if (prefix) {\n prefix = (\n <>\n {icon}\n {prefix}\n </>\n );\n } else {\n prefix = icon;\n }\n }\n\n const modifiers = useMemo(\n () => ({\n invalid: isInvalid,\n valid: validationState === 'valid',\n loadable: !!loadingIndicator,\n focused: isFocused,\n hovered: isHovered,\n disabled: isDisabled,\n multiline: multiLine,\n prefix: !!prefix,\n suffix: (validationState && !isLoading) || isLoading || !!suffix,\n ...mods,\n }),\n [\n mods,\n isInvalid,\n validationState,\n loadingIndicator,\n isFocused,\n isDisabled,\n isHovered,\n multiLine,\n prefix,\n suffix,\n ],\n );\n\n const hasTextSecurity = multiLine && type === 'password';\n const textSecurityStyles =\n hasTextSecurity && inputProps.value?.length\n ? {\n fontFamily: 'text-security-disc',\n }\n : {};\n\n const textField = (\n <InputWrapperElement\n ref={wrapperRef}\n mods={modifiers}\n data-size={size}\n styles={styles}\n {...wrapperProps}\n >\n {prefix ? <div data-element=\"Prefix\">{prefix}</div> : null}\n <InputElement\n qa={qa || 'Input'}\n as={ElementType}\n data-input-type=\"textinput\"\n {...mergeProps(inputProps, focusProps, hoverProps)}\n ref={inputRef}\n rows={multiLine ? rows : undefined}\n mods={modifiers}\n style={textSecurityStyles}\n data-autofocus={autoFocus ? '' : undefined}\n autoFocus={autoFocus}\n data-size={size}\n autoComplete={autocomplete}\n styles={inputStyles}\n disabled={!!isDisabled}\n maxLength={maxLength}\n minLength={minLength}\n />\n {(validationState && !isLoading) || isLoading || suffix ? (\n <div data-element=\"Suffix\">\n {suffixPosition === 'before' ? suffix : null}\n {(validationState && !isLoading) || isLoading ? (\n <div data-element=\"State\">\n {validationState && !isLoading ? validation : null}\n {isLoading && <LoadingIcon data-element=\"InputIcon\" />}\n </div>\n ) : null}\n {suffixPosition === 'after' ? suffix : null}\n </div>\n ) : null}\n </InputWrapperElement>\n );\n\n return wrapWithField(textField, domRef, {\n ...props,\n form: undefined,\n });\n}\n\nconst TextInputBase = forwardRef(_TextInputBase);\n\nexport { TextInputBase };\nexport type { AriaTextFieldProps };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  //#region src/components/form/FieldWrapper/extract-field-wrapper-props.ts
3
3
  const createFieldWrapperPropsKeys = (arr) => new Set(arr);
4
4
  const fieldWrapperPropsKeys = createFieldWrapperPropsKeys([
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { warn } from "../../../utils/warnings.js";
4
4
  import { FieldWrapper } from "../FieldWrapper/FieldWrapper.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { Provider, useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
4
4
  import { useProviderProps } from "../../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { useProviderProps } from "../../../../provider.js";
3
3
  import { Button } from "../../../actions/Button/Button.js";
4
4
  import { useFormProps } from "../Form.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { FormContext } from "./Form.js";
3
3
  import { Alert } from "../../content/Alert/Alert.js";
4
4
  import { forwardRef, isValidElement, useContext } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { useForm } from "./use-form.js";
3
3
  import { FormContext, _Form, useFormProps } from "./Form.js";
4
4
  import { useField } from "./use-field/use-field.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
4
4
  import { warn } from "../../../../utils/warnings.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
3
3
  import { useIsFirstRender } from "../../../../_internal/hooks/use-is-first-render.js";
4
4
  import { delayValidationRule } from "../validation.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { applyRules } from "./validation.js";
3
3
  import { dotize } from "@tenphi/tasty";
4
4
  import { useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { validate } from "email-validator";
3
3
  import validUrl from "valid-url";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useProviderProps } from "../../provider.js";
4
4
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../utils/react/mergeProps.js";
3
3
  import { FieldWrapper } from "./FieldWrapper/FieldWrapper.js";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/helpers/DisplayTransition/DisplayTransition.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { DisplayTransition } from "../DisplayTransition/DisplayTransition.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { isValidElement, useCallback, useLayoutEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { BASE_STYLES, BLOCK_STYLES, COLOR_STYLES, DIMENSION_STYLES, OUTER_STYLES, tasty } from "@tenphi/tasty";
3
3
  import { forwardRef, useMemo } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
4
4
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -128,7 +128,7 @@ const HandlerElement = tasty({
128
128
  fill: {
129
129
  "": "#dark-03",
130
130
  "hovered | drag": "#dark-02",
131
- disabled: "#dark-04"
131
+ disabled: "#disabled-surface-text"
132
132
  }
133
133
  }
134
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResizablePanel.js","names":["mergeProps","Panel"],"sources":["../../../src/components/layout/ResizablePanel.tsx"],"sourcesContent":["import { useResizeObserver } from '@react-aria/utils';\nimport { BasePropsWithoutChildren, Styles, tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue, useEvent } from '../../_internal/hooks';\nimport { mergeProps, useCombinedRefs } from '../../utils/react';\n\nimport { CubePanelProps, Panel } from './Panel';\n\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface CubeResizablePanelProps extends CubePanelProps {\n handlerStyles?: Styles;\n direction: Direction;\n size?: number;\n onSizeChange?: (size: number) => void;\n minSize?: string | number;\n maxSize?: string | number;\n isDisabled?: boolean;\n}\n\nconst HandlerElement = tasty({\n qa: 'ResizeHandler',\n styles: {\n // The real size is slightly bigger than the visual one.\n width: {\n '': 'initial',\n horizontal: '9px',\n 'disabled & horizontal': '1bw',\n },\n height: {\n '': '9px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1bw',\n },\n top: {\n '': 0,\n '[data-direction=\"top\"]': 'initial',\n },\n bottom: {\n '': 0,\n '[data-direction=\"bottom\"]': 'initial',\n },\n right: {\n '': 0,\n '[data-direction=\"right\"]': 'initial',\n },\n left: {\n '': 0,\n '[data-direction=\"left\"]': 'initial',\n },\n // Transform requires a separate visual size property to respect size boundaries\n transform: {\n '': 'translate(0, 0)',\n '[data-direction=\"top\"]':\n 'translate(0, ($size-compensation - $visual-size))',\n '[data-direction=\"right\"]':\n 'translate(($visual-size - $size-compensation), 0)',\n '[data-direction=\"bottom\"]':\n 'translate(0, ($visual-size - $size-compensation))',\n '[data-direction=\"left\"]':\n 'translate(($size-compensation - $visual-size), 0)',\n },\n position: 'absolute',\n zIndex: 1,\n cursor: {\n '': 'row-resize',\n horizontal: 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n '--size-compensation': {\n '': '6px',\n disabled: '1bw',\n },\n\n Track: {\n width: {\n '': 'initial',\n horizontal: '3px',\n 'disabled & horizontal': '1px',\n },\n height: {\n '': '3px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1px',\n },\n position: 'absolute',\n inset: {\n '': '3px 0',\n horizontal: '0 3px',\n disabled: '0 0',\n },\n fill: {\n '': '#border',\n '(hovered | drag) & !disabled': '#purple-03',\n },\n transition: 'theme',\n outline: {\n '': '1bw #primary-text.0',\n drag: '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n flow: {\n '': 'row',\n horizontal: 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n horizontal: 'auto',\n },\n gridRows: {\n '': 'auto',\n horizontal: '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n horizontal: '1px',\n },\n height: {\n '': '1px',\n horizontal: 'auto',\n },\n inset: {\n '': '4px 50% auto auto',\n horizontal: '50% 4px auto auto',\n },\n transform: {\n '': 'translate(-50%, 0)',\n horizontal: 'translate(0, -50%)',\n },\n position: 'absolute',\n transition: 'theme',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'hovered | drag': '#dark-02',\n disabled: '#dark-04',\n },\n },\n },\n});\n\ninterface HandlerProps extends BasePropsWithoutChildren {\n direction: Direction;\n}\n\nconst Handler = (props: HandlerProps) => {\n const { direction = 'right', isDisabled, ...otherProps } = props;\n const { hoverProps, isHovered } = useHover({});\n const isHorizontal = direction === 'left' || direction === 'right';\n const localIsHovered = useDebouncedValue(isHovered, 150);\n\n return (\n <HandlerElement\n {...mergeProps(\n hoverProps,\n {\n mods: {\n hovered: localIsHovered,\n horizontal: isHorizontal,\n disabled: isDisabled,\n },\n 'data-direction': direction,\n },\n otherProps,\n )}\n >\n <div data-element=\"Track\" />\n {!isDisabled ? (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n ) : null}\n </HandlerElement>\n );\n};\n\nconst StyledPanel = tasty(Panel, {\n styles: {\n flexGrow: 0,\n width: {\n '': '$min-size $size $max-size',\n '[data-direction=\"top\"] | [data-direction=\"bottom\"]': 'initial',\n },\n height: {\n '': '$min-size $size $max-size',\n '[data-direction=\"left\"] | [data-direction=\"right\"]': 'initial',\n },\n placeSelf: 'stretch',\n touchAction: 'none',\n\n '$indent-compensation': {\n '': '3px',\n disabled: '1bw',\n },\n },\n});\n\nfunction ResizablePanel(\n props: CubeResizablePanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const timerRef = useRef<ReturnType<typeof setTimeout>>(null);\n const isControllable = typeof props.size === 'number';\n const {\n isDisabled,\n direction = 'right',\n size: providedSize,\n onSizeChange,\n minSize = 200,\n maxSize = isControllable ? undefined : 'min(50%, 400px)',\n ...restProps\n } = props;\n const [isDragging, setIsDragging] = useState(false);\n const isHorizontal = direction === 'left' || direction === 'right';\n\n ref = useCombinedRefs(ref);\n\n const onResize = useEvent(() => {\n if (ref?.current) {\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n const containerSize = ref.current[offsetProp];\n\n if (Math.abs(containerSize - size) < 1 && !isDisabled) {\n setVisualSize(size);\n } else {\n setVisualSize(containerSize);\n }\n }\n });\n\n useResizeObserver({\n ref,\n onResize,\n });\n\n function clamp(size: number) {\n if (typeof maxSize === 'number') {\n size = Math.min(maxSize, size);\n }\n\n if (typeof minSize === 'number' || !minSize) {\n size = Math.max((minSize as number) || 0, size);\n }\n\n return Math.max(size, 0);\n }\n\n let [size, setSize] = useState<number>(\n providedSize != null ? clamp(providedSize) : 200,\n );\n let [visualSize, setVisualSize] = useState<number | null>(null);\n\n let { moveProps } = useMove({\n onMoveStart(e) {\n if (isDisabled) {\n return;\n }\n\n setIsDragging(true);\n\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n\n if (ref.current && Math.abs(ref.current[offsetProp] - size) >= 1) {\n setSize(Math.round(ref.current[offsetProp]));\n }\n },\n onMove(e) {\n setSize((size) => {\n if (isDisabled) {\n return size;\n }\n\n if (e.pointerType === 'keyboard') {\n return size;\n }\n\n size += isHorizontal\n ? e.deltaX * (direction === 'right' ? 1 : -1)\n : e.deltaY * (direction === 'bottom' ? 1 : -1);\n\n return size;\n });\n },\n onMoveEnd(e) {\n setIsDragging(false);\n setSize((size) => clamp(Math.round(size)));\n },\n });\n\n // Since we sync provided size and the local one in two ways,\n // we need a way to prevent infinite loop in some cases.\n // We will run this in setTimeout and make sure it will get the most recent state.\n const notifyChange = useEvent(() => {\n setSize((size) => {\n if (providedSize && Math.abs(providedSize - size) > 0.5) {\n return providedSize;\n }\n\n return size;\n });\n });\n\n useEffect(() => {\n onResize();\n }, [size, isDisabled]);\n\n useEffect(() => {\n if (\n !isDragging &&\n visualSize != null &&\n (providedSize == null || Math.abs(providedSize - visualSize) > 0.5)\n ) {\n onSizeChange?.(Math.round(visualSize));\n }\n }, [visualSize, isDragging]);\n\n useEffect(() => {\n timerRef.current = setTimeout(notifyChange, 500);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [providedSize]);\n\n const mods = useMemo(() => {\n return {\n drag: isDragging,\n horizontal: isHorizontal,\n disabled: isDisabled,\n };\n }, [isDragging, isHorizontal, isDisabled]);\n\n return (\n <StyledPanel\n ref={ref}\n data-direction={direction}\n mods={mods}\n extra={\n <Handler\n isDisabled={isDisabled || visualSize == null}\n direction={direction}\n {...moveProps}\n mods={mods}\n />\n }\n {...mergeProps(restProps, {\n style: {\n // We set the current size further via width/min-width/max-width styles to respect size boundaries\n '--size': `${size}px`,\n // We use a separate visual size to paint the handler for a smoother experience\n '--visual-size': `${visualSize}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': typeof maxSize === 'number' ? `${maxSize}px` : maxSize,\n },\n innerStyles: {\n // The panel inner space compensation for the handler\n margin: `$indent-compensation ${direction}`,\n },\n })}\n />\n );\n}\n\nconst _ResizablePanel = forwardRef(ResizablePanel);\n\n_ResizablePanel.displayName = 'ResizablePanel';\n\nexport { _ResizablePanel as ResizablePanel };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ResizablePanel.js","names":["mergeProps","Panel"],"sources":["../../../src/components/layout/ResizablePanel.tsx"],"sourcesContent":["import { useResizeObserver } from '@react-aria/utils';\nimport { BasePropsWithoutChildren, Styles, tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue, useEvent } from '../../_internal/hooks';\nimport { mergeProps, useCombinedRefs } from '../../utils/react';\n\nimport { CubePanelProps, Panel } from './Panel';\n\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface CubeResizablePanelProps extends CubePanelProps {\n handlerStyles?: Styles;\n direction: Direction;\n size?: number;\n onSizeChange?: (size: number) => void;\n minSize?: string | number;\n maxSize?: string | number;\n isDisabled?: boolean;\n}\n\nconst HandlerElement = tasty({\n qa: 'ResizeHandler',\n styles: {\n // The real size is slightly bigger than the visual one.\n width: {\n '': 'initial',\n horizontal: '9px',\n 'disabled & horizontal': '1bw',\n },\n height: {\n '': '9px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1bw',\n },\n top: {\n '': 0,\n '[data-direction=\"top\"]': 'initial',\n },\n bottom: {\n '': 0,\n '[data-direction=\"bottom\"]': 'initial',\n },\n right: {\n '': 0,\n '[data-direction=\"right\"]': 'initial',\n },\n left: {\n '': 0,\n '[data-direction=\"left\"]': 'initial',\n },\n // Transform requires a separate visual size property to respect size boundaries\n transform: {\n '': 'translate(0, 0)',\n '[data-direction=\"top\"]':\n 'translate(0, ($size-compensation - $visual-size))',\n '[data-direction=\"right\"]':\n 'translate(($visual-size - $size-compensation), 0)',\n '[data-direction=\"bottom\"]':\n 'translate(0, ($visual-size - $size-compensation))',\n '[data-direction=\"left\"]':\n 'translate(($size-compensation - $visual-size), 0)',\n },\n position: 'absolute',\n zIndex: 1,\n cursor: {\n '': 'row-resize',\n horizontal: 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n '--size-compensation': {\n '': '6px',\n disabled: '1bw',\n },\n\n Track: {\n width: {\n '': 'initial',\n horizontal: '3px',\n 'disabled & horizontal': '1px',\n },\n height: {\n '': '3px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1px',\n },\n position: 'absolute',\n inset: {\n '': '3px 0',\n horizontal: '0 3px',\n disabled: '0 0',\n },\n fill: {\n '': '#border',\n '(hovered | drag) & !disabled': '#purple-03',\n },\n transition: 'theme',\n outline: {\n '': '1bw #primary-text.0',\n drag: '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n flow: {\n '': 'row',\n horizontal: 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n horizontal: 'auto',\n },\n gridRows: {\n '': 'auto',\n horizontal: '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n horizontal: '1px',\n },\n height: {\n '': '1px',\n horizontal: 'auto',\n },\n inset: {\n '': '4px 50% auto auto',\n horizontal: '50% 4px auto auto',\n },\n transform: {\n '': 'translate(-50%, 0)',\n horizontal: 'translate(0, -50%)',\n },\n position: 'absolute',\n transition: 'theme',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'hovered | drag': '#dark-02',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\ninterface HandlerProps extends BasePropsWithoutChildren {\n direction: Direction;\n}\n\nconst Handler = (props: HandlerProps) => {\n const { direction = 'right', isDisabled, ...otherProps } = props;\n const { hoverProps, isHovered } = useHover({});\n const isHorizontal = direction === 'left' || direction === 'right';\n const localIsHovered = useDebouncedValue(isHovered, 150);\n\n return (\n <HandlerElement\n {...mergeProps(\n hoverProps,\n {\n mods: {\n hovered: localIsHovered,\n horizontal: isHorizontal,\n disabled: isDisabled,\n },\n 'data-direction': direction,\n },\n otherProps,\n )}\n >\n <div data-element=\"Track\" />\n {!isDisabled ? (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n ) : null}\n </HandlerElement>\n );\n};\n\nconst StyledPanel = tasty(Panel, {\n styles: {\n flexGrow: 0,\n width: {\n '': '$min-size $size $max-size',\n '[data-direction=\"top\"] | [data-direction=\"bottom\"]': 'initial',\n },\n height: {\n '': '$min-size $size $max-size',\n '[data-direction=\"left\"] | [data-direction=\"right\"]': 'initial',\n },\n placeSelf: 'stretch',\n touchAction: 'none',\n\n '$indent-compensation': {\n '': '3px',\n disabled: '1bw',\n },\n },\n});\n\nfunction ResizablePanel(\n props: CubeResizablePanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const timerRef = useRef<ReturnType<typeof setTimeout>>(null);\n const isControllable = typeof props.size === 'number';\n const {\n isDisabled,\n direction = 'right',\n size: providedSize,\n onSizeChange,\n minSize = 200,\n maxSize = isControllable ? undefined : 'min(50%, 400px)',\n ...restProps\n } = props;\n const [isDragging, setIsDragging] = useState(false);\n const isHorizontal = direction === 'left' || direction === 'right';\n\n ref = useCombinedRefs(ref);\n\n const onResize = useEvent(() => {\n if (ref?.current) {\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n const containerSize = ref.current[offsetProp];\n\n if (Math.abs(containerSize - size) < 1 && !isDisabled) {\n setVisualSize(size);\n } else {\n setVisualSize(containerSize);\n }\n }\n });\n\n useResizeObserver({\n ref,\n onResize,\n });\n\n function clamp(size: number) {\n if (typeof maxSize === 'number') {\n size = Math.min(maxSize, size);\n }\n\n if (typeof minSize === 'number' || !minSize) {\n size = Math.max((minSize as number) || 0, size);\n }\n\n return Math.max(size, 0);\n }\n\n let [size, setSize] = useState<number>(\n providedSize != null ? clamp(providedSize) : 200,\n );\n let [visualSize, setVisualSize] = useState<number | null>(null);\n\n let { moveProps } = useMove({\n onMoveStart(e) {\n if (isDisabled) {\n return;\n }\n\n setIsDragging(true);\n\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n\n if (ref.current && Math.abs(ref.current[offsetProp] - size) >= 1) {\n setSize(Math.round(ref.current[offsetProp]));\n }\n },\n onMove(e) {\n setSize((size) => {\n if (isDisabled) {\n return size;\n }\n\n if (e.pointerType === 'keyboard') {\n return size;\n }\n\n size += isHorizontal\n ? e.deltaX * (direction === 'right' ? 1 : -1)\n : e.deltaY * (direction === 'bottom' ? 1 : -1);\n\n return size;\n });\n },\n onMoveEnd(e) {\n setIsDragging(false);\n setSize((size) => clamp(Math.round(size)));\n },\n });\n\n // Since we sync provided size and the local one in two ways,\n // we need a way to prevent infinite loop in some cases.\n // We will run this in setTimeout and make sure it will get the most recent state.\n const notifyChange = useEvent(() => {\n setSize((size) => {\n if (providedSize && Math.abs(providedSize - size) > 0.5) {\n return providedSize;\n }\n\n return size;\n });\n });\n\n useEffect(() => {\n onResize();\n }, [size, isDisabled]);\n\n useEffect(() => {\n if (\n !isDragging &&\n visualSize != null &&\n (providedSize == null || Math.abs(providedSize - visualSize) > 0.5)\n ) {\n onSizeChange?.(Math.round(visualSize));\n }\n }, [visualSize, isDragging]);\n\n useEffect(() => {\n timerRef.current = setTimeout(notifyChange, 500);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [providedSize]);\n\n const mods = useMemo(() => {\n return {\n drag: isDragging,\n horizontal: isHorizontal,\n disabled: isDisabled,\n };\n }, [isDragging, isHorizontal, isDisabled]);\n\n return (\n <StyledPanel\n ref={ref}\n data-direction={direction}\n mods={mods}\n extra={\n <Handler\n isDisabled={isDisabled || visualSize == null}\n direction={direction}\n {...moveProps}\n mods={mods}\n />\n }\n {...mergeProps(restProps, {\n style: {\n // We set the current size further via width/min-width/max-width styles to respect size boundaries\n '--size': `${size}px`,\n // We use a separate visual size to paint the handler for a smoother experience\n '--visual-size': `${visualSize}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': typeof maxSize === 'number' ? `${maxSize}px` : maxSize,\n },\n innerStyles: {\n // The panel inner space compensation for the handler\n margin: `$indent-compensation ${direction}`,\n },\n })}\n />\n );\n}\n\nconst _ResizablePanel = forwardRef(ResizablePanel);\n\n_ResizablePanel.displayName = 'ResizablePanel';\n\nexport { _ResizablePanel as ResizablePanel };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { CONTAINER_STYLES, filterBaseProps, parseStyle, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { DraggableCollection } from "../../shared/DraggableCollection.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { DropIndicatorElement } from "./styled.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { TabPanelElement } from "./styled.js";
3
3
  import { useEffect, useMemo, useRef } from "react";
4
4
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { CloseIcon } from "../../../icons/CloseIcon.js";
4
4
  import { MoreIcon } from "../../../icons/MoreIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { _ItemButton } from "../../actions/ItemButton/ItemButton.js";
3
3
  import { useOptionalTabsContext } from "./TabsContext.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { _Item } from "../../content/Item/Item.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
 
@@ -29,7 +29,7 @@ const TabsElement = tasty({ styles: {
29
29
  },
30
30
  fill: {
31
31
  "": "#clear",
32
- "type=radio": "#dark.06"
32
+ "type=radio": "#surface-3"
33
33
  },
34
34
  flexShrink: 0,
35
35
  flexGrow: 0,
@@ -184,7 +184,7 @@ const TabElement = tasty(_Item, {
184
184
  "": "#dark-02",
185
185
  "type=narrow & (hovered & !selected)": "#primary-text",
186
186
  "(type=default | type=narrow) & selected": "#primary-text",
187
- disabled: "#dark-04"
187
+ disabled: "#disabled-surface-text"
188
188
  },
189
189
  fill: {
190
190
  "": "#clear",
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","names":["Item"],"sources":["../../../../src/components/navigation/Tabs/styled.ts"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Item } from '../../content/Item';\n\n// =============================================================================\n// Main Tabs Container\n// =============================================================================\n\nexport const TabsElement = tasty({\n styles: {\n display: 'flex',\n flow: 'row',\n placeItems: {\n '': 'end stretch',\n 'type=radio | type=file': 'stretch',\n },\n overflow: 'visible',\n border: {\n '': 0,\n '(type=default | type=file | type=narrow) & has-panels': 'bottom',\n },\n width: {\n '': '100%',\n 'type=radio': 'max-content',\n },\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n radius: {\n '': 0,\n 'type=radio': '1cr',\n },\n fill: {\n '': '#clear',\n 'type=radio': '#dark.06',\n },\n flexShrink: 0,\n flexGrow: 0,\n\n $transition: '$tab-transition',\n '$tab-indicator-size': {\n '': '2bw',\n 'size=large': '1ow',\n },\n\n Prefix: {\n $: '>',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 0 .5x 1x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n },\n },\n\n Suffix: {\n $: '>',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 1x .5x 0',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'left',\n },\n },\n\n // Wrapper for scroll area and scrollbar (scrollbar is positioned relative to this)\n ScrollWrapper: {\n $: '>',\n position: 'relative',\n display: 'flex',\n flexGrow: 1,\n flexShrink: 1,\n width: 'min 0',\n overflow: {\n '': 'hidden',\n 'type=radio': 'visible',\n },\n },\n\n Scroll: {\n $: '> ScrollWrapper >',\n position: 'relative',\n display: 'block',\n overflow: {\n '': 'auto hidden',\n 'type=radio': 'visible',\n },\n scrollbar: 'none',\n flexGrow: 1,\n width: '100%',\n // Add padding/margin for radio type to allow shadow to render outside\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n margin: {\n '': 0,\n 'type=radio': '-.5x',\n },\n // Use multi-group fade with color tokens for smooth transitions\n fade: '2x left #tabs-fade-left #black, 2x right #tabs-fade-right #black',\n // ##name outputs --name-color (literal CSS property name)\n transition:\n '##tabs-fade-left $tab-transition ease-in, ##tabs-fade-right $tab-transition ease-in',\n\n // Transition transparent color: opaque (no fade) -> transparent (fade visible)\n '#tabs-fade-left': {\n '': 'rgb(0 0 0 / 1)',\n 'fade-left': 'rgb(0 0 0 / 0)',\n },\n '#tabs-fade-right': {\n '': 'rgb(0 0 0 / 1)',\n 'fade-right': 'rgb(0 0 0 / 0)',\n },\n },\n\n TabList: {\n $: '> ScrollWrapper > Scroll >',\n position: 'relative',\n display: 'grid',\n gridAutoFlow: 'column',\n gridAutoColumns: {\n '': 'auto',\n 'type=radio': '1fr',\n },\n gap: {\n '': 0,\n 'type=default': '1x',\n 'type=narrow': '2x',\n 'type=radio': '.5x',\n },\n placeContent: 'start',\n overflow: 'visible',\n width: {\n '': 'max-content',\n 'type=radio': '100%',\n },\n padding: '0 $tablist-padding',\n\n '$tablist-padding': {\n '': '0',\n 'type=default | type=narrow': '1x',\n },\n },\n\n // Size variable for actions (if ItemAction is used instead of TabsAction)\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n },\n\n // Custom horizontal scrollbar (tiny) - positioned relative to ScrollWrapper\n ScrollbarH: {\n $: '> ScrollWrapper >',\n position: 'absolute',\n bottom: '1px',\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n 'focused | scrolling': 1,\n },\n transition: 'opacity 0.15s',\n pointerEvents: 'none',\n },\n },\n});\n\n// =============================================================================\n// Tab Button (extends Item)\n// =============================================================================\n\nexport const TabElement = tasty(Item, {\n as: 'button',\n styles: {\n radius: {\n '': false,\n 'type=radio | type=default': true,\n 'type=narrow': 'top',\n },\n color: {\n '': '#dark-02',\n 'type=narrow & (hovered & !selected)': '#primary-text',\n '(type=default | type=narrow) & selected': '#primary-text',\n disabled: '#dark-04',\n },\n fill: {\n '': '#clear',\n 'hovered & !type=narrow': '#dark.03',\n 'type=file': '#surface-3',\n 'type=file & hovered': '#surface-3.5',\n 'type=radio & hovered': '#surface.5',\n '(type=file | type=radio) & selected': '#surface',\n },\n border: {\n '': '#clear',\n 'type=file': '0 #clear',\n },\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n },\n shadow: {\n '': '$selection-shadow',\n 'focused & focus-visible':\n 'inset 0 0 0 1bw #primary-text, $selection-shadow',\n editing: 'inset 0 0 0 1bw #primary-text, $selection-shadow',\n 'type=radio & selected': '$item-shadow',\n 'type=radio & selected & focused & focus-visible':\n '$item-shadow, inset 0 0 0 1bw #primary-text',\n },\n placeContent: {\n // extend\n 'type=radio': 'center',\n },\n gridTemplate: {\n // extend\n 'type=radio':\n '\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content',\n },\n '$selection-shadow': {\n '': 'inset 0 0 0 0 #primary',\n 'type=file & selected': 'inset 0 (-1 * $tab-indicator-size) 0 0 #primary',\n '!type=file': 'inset 0 0 0 0 #primary.0',\n },\n // Collapse horizontal padding for narrow type\n '$label-padding-left': {\n '': '$inline-padding',\n 'has-start-content': 0,\n 'type=narrow': 0,\n },\n '$label-padding-right': {\n '': '$inline-padding',\n 'has-end-content': 0,\n 'type=narrow': 0,\n },\n Label: {\n placeSelf: {\n '': 'center start',\n 'type=radio': 'center start',\n 'type=radio & !has-prefix & !has-suffix & !has-icon & !has-right-icon':\n 'center',\n },\n },\n Actions: {\n transition: false,\n },\n },\n});\n\n// =============================================================================\n// Tab Container (wrapper for tab + actions)\n// =============================================================================\n\nexport const TabContainer = tasty({\n styles: {\n position: 'relative',\n display: 'grid',\n margin: {\n '': 0,\n 'type=default': '.5x 0',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n },\n cursor: {\n '': 'default',\n draggable: 'grab',\n dragging: 'grabbing',\n },\n\n // Size variable for actions (same as ItemButton's ActionsWrapper)\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n },\n\n // Actions rendered outside the button for accessibility\n Actions: {\n $: '>',\n position: 'absolute',\n inset: '1bw 1bw auto auto',\n display: 'flex',\n gap: '1bw',\n placeItems: 'center',\n placeContent: 'center end',\n pointerEvents: 'auto',\n height: 'min ($size - 2bw)',\n padding: '0 $side-padding',\n // Simple CSS opacity for show-on-hover\n opacity: {\n '': 1,\n 'auto-hide-actions': 0,\n 'auto-hide-actions & (active | :hover | :focus-within | :has([data-pressed]))': 1,\n },\n transition: 'opacity $transition',\n // Size variables (same as Item)\n '$action-size': 'min(max((2x + 2bw), ($size - 1x - 2bw)), (3x - 2bw))',\n '$side-padding': '(($size - $action-size - 2bw) / 2)',\n },\n },\n});\n\n// =============================================================================\n// Drop Indicator for Drag-and-Drop\n// =============================================================================\n\nexport const DropIndicatorElement = tasty({\n styles: {\n zIndex: 10,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: {\n '': 0,\n 'drop-target': 1,\n },\n fill: '#primary',\n width: '.5x',\n top: 0,\n bottom: 0,\n left: {\n '': 'auto',\n before: '-2px',\n },\n right: {\n '': 'auto',\n after: '-2px',\n },\n },\n});\n\n// =============================================================================\n// Tab Selection Indicator (for default type)\n// =============================================================================\n\nexport const TabIndicatorElement = tasty({\n styles: {\n position: 'absolute',\n bottom: '0',\n left: 0,\n height: '$tab-indicator-size',\n fill: '#primary',\n transition:\n 'left $tab-transition ease-in-out, width $tab-transition ease-in-out',\n pointerEvents: 'none',\n },\n});\n\n// =============================================================================\n// Tab Panel\n// =============================================================================\n\nexport const TabPanelElement = tasty({\n as: 'section',\n styles: {\n display: 'contents',\n hide: {\n '': true,\n active: false,\n },\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"styled.js","names":["Item"],"sources":["../../../../src/components/navigation/Tabs/styled.ts"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Item } from '../../content/Item';\n\n// =============================================================================\n// Main Tabs Container\n// =============================================================================\n\nexport const TabsElement = tasty({\n styles: {\n display: 'flex',\n flow: 'row',\n placeItems: {\n '': 'end stretch',\n 'type=radio | type=file': 'stretch',\n },\n overflow: 'visible',\n border: {\n '': 0,\n '(type=default | type=file | type=narrow) & has-panels': 'bottom',\n },\n width: {\n '': '100%',\n 'type=radio': 'max-content',\n },\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n radius: {\n '': 0,\n 'type=radio': '1cr',\n },\n fill: {\n '': '#clear',\n 'type=radio': '#surface-3',\n },\n flexShrink: 0,\n flexGrow: 0,\n\n $transition: '$tab-transition',\n '$tab-indicator-size': {\n '': '2bw',\n 'size=large': '1ow',\n },\n\n Prefix: {\n $: '>',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 0 .5x 1x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n },\n },\n\n Suffix: {\n $: '>',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 1x .5x 0',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'left',\n },\n },\n\n // Wrapper for scroll area and scrollbar (scrollbar is positioned relative to this)\n ScrollWrapper: {\n $: '>',\n position: 'relative',\n display: 'flex',\n flexGrow: 1,\n flexShrink: 1,\n width: 'min 0',\n overflow: {\n '': 'hidden',\n 'type=radio': 'visible',\n },\n },\n\n Scroll: {\n $: '> ScrollWrapper >',\n position: 'relative',\n display: 'block',\n overflow: {\n '': 'auto hidden',\n 'type=radio': 'visible',\n },\n scrollbar: 'none',\n flexGrow: 1,\n width: '100%',\n // Add padding/margin for radio type to allow shadow to render outside\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n margin: {\n '': 0,\n 'type=radio': '-.5x',\n },\n // Use multi-group fade with color tokens for smooth transitions\n fade: '2x left #tabs-fade-left #black, 2x right #tabs-fade-right #black',\n // ##name outputs --name-color (literal CSS property name)\n transition:\n '##tabs-fade-left $tab-transition ease-in, ##tabs-fade-right $tab-transition ease-in',\n\n // Transition transparent color: opaque (no fade) -> transparent (fade visible)\n '#tabs-fade-left': {\n '': 'rgb(0 0 0 / 1)',\n 'fade-left': 'rgb(0 0 0 / 0)',\n },\n '#tabs-fade-right': {\n '': 'rgb(0 0 0 / 1)',\n 'fade-right': 'rgb(0 0 0 / 0)',\n },\n },\n\n TabList: {\n $: '> ScrollWrapper > Scroll >',\n position: 'relative',\n display: 'grid',\n gridAutoFlow: 'column',\n gridAutoColumns: {\n '': 'auto',\n 'type=radio': '1fr',\n },\n gap: {\n '': 0,\n 'type=default': '1x',\n 'type=narrow': '2x',\n 'type=radio': '.5x',\n },\n placeContent: 'start',\n overflow: 'visible',\n width: {\n '': 'max-content',\n 'type=radio': '100%',\n },\n padding: '0 $tablist-padding',\n\n '$tablist-padding': {\n '': '0',\n 'type=default | type=narrow': '1x',\n },\n },\n\n // Size variable for actions (if ItemAction is used instead of TabsAction)\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n },\n\n // Custom horizontal scrollbar (tiny) - positioned relative to ScrollWrapper\n ScrollbarH: {\n $: '> ScrollWrapper >',\n position: 'absolute',\n bottom: '1px',\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n 'focused | scrolling': 1,\n },\n transition: 'opacity 0.15s',\n pointerEvents: 'none',\n },\n },\n});\n\n// =============================================================================\n// Tab Button (extends Item)\n// =============================================================================\n\nexport const TabElement = tasty(Item, {\n as: 'button',\n styles: {\n radius: {\n '': false,\n 'type=radio | type=default': true,\n 'type=narrow': 'top',\n },\n color: {\n '': '#dark-02',\n 'type=narrow & (hovered & !selected)': '#primary-text',\n '(type=default | type=narrow) & selected': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n fill: {\n '': '#clear',\n 'hovered & !type=narrow': '#dark.03',\n 'type=file': '#surface-3',\n 'type=file & hovered': '#surface-3.5',\n 'type=radio & hovered': '#surface.5',\n '(type=file | type=radio) & selected': '#surface',\n },\n border: {\n '': '#clear',\n 'type=file': '0 #clear',\n },\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n },\n shadow: {\n '': '$selection-shadow',\n 'focused & focus-visible':\n 'inset 0 0 0 1bw #primary-text, $selection-shadow',\n editing: 'inset 0 0 0 1bw #primary-text, $selection-shadow',\n 'type=radio & selected': '$item-shadow',\n 'type=radio & selected & focused & focus-visible':\n '$item-shadow, inset 0 0 0 1bw #primary-text',\n },\n placeContent: {\n // extend\n 'type=radio': 'center',\n },\n gridTemplate: {\n // extend\n 'type=radio':\n '\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content',\n },\n '$selection-shadow': {\n '': 'inset 0 0 0 0 #primary',\n 'type=file & selected': 'inset 0 (-1 * $tab-indicator-size) 0 0 #primary',\n '!type=file': 'inset 0 0 0 0 #primary.0',\n },\n // Collapse horizontal padding for narrow type\n '$label-padding-left': {\n '': '$inline-padding',\n 'has-start-content': 0,\n 'type=narrow': 0,\n },\n '$label-padding-right': {\n '': '$inline-padding',\n 'has-end-content': 0,\n 'type=narrow': 0,\n },\n Label: {\n placeSelf: {\n '': 'center start',\n 'type=radio': 'center start',\n 'type=radio & !has-prefix & !has-suffix & !has-icon & !has-right-icon':\n 'center',\n },\n },\n Actions: {\n transition: false,\n },\n },\n});\n\n// =============================================================================\n// Tab Container (wrapper for tab + actions)\n// =============================================================================\n\nexport const TabContainer = tasty({\n styles: {\n position: 'relative',\n display: 'grid',\n margin: {\n '': 0,\n 'type=default': '.5x 0',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n },\n cursor: {\n '': 'default',\n draggable: 'grab',\n dragging: 'grabbing',\n },\n\n // Size variable for actions (same as ItemButton's ActionsWrapper)\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n },\n\n // Actions rendered outside the button for accessibility\n Actions: {\n $: '>',\n position: 'absolute',\n inset: '1bw 1bw auto auto',\n display: 'flex',\n gap: '1bw',\n placeItems: 'center',\n placeContent: 'center end',\n pointerEvents: 'auto',\n height: 'min ($size - 2bw)',\n padding: '0 $side-padding',\n // Simple CSS opacity for show-on-hover\n opacity: {\n '': 1,\n 'auto-hide-actions': 0,\n 'auto-hide-actions & (active | :hover | :focus-within | :has([data-pressed]))': 1,\n },\n transition: 'opacity $transition',\n // Size variables (same as Item)\n '$action-size': 'min(max((2x + 2bw), ($size - 1x - 2bw)), (3x - 2bw))',\n '$side-padding': '(($size - $action-size - 2bw) / 2)',\n },\n },\n});\n\n// =============================================================================\n// Drop Indicator for Drag-and-Drop\n// =============================================================================\n\nexport const DropIndicatorElement = tasty({\n styles: {\n zIndex: 10,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: {\n '': 0,\n 'drop-target': 1,\n },\n fill: '#primary',\n width: '.5x',\n top: 0,\n bottom: 0,\n left: {\n '': 'auto',\n before: '-2px',\n },\n right: {\n '': 'auto',\n after: '-2px',\n },\n },\n});\n\n// =============================================================================\n// Tab Selection Indicator (for default type)\n// =============================================================================\n\nexport const TabIndicatorElement = tasty({\n styles: {\n position: 'absolute',\n bottom: '0',\n left: 0,\n height: '$tab-indicator-size',\n fill: '#primary',\n transition:\n 'left $tab-transition ease-in-out, width $tab-transition ease-in-out',\n pointerEvents: 'none',\n },\n});\n\n// =============================================================================\n// Tab Panel\n// =============================================================================\n\nexport const TabPanelElement = tasty({\n as: 'section',\n styles: {\n display: 'contents',\n hide: {\n '': true,\n active: false,\n },\n },\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  //#region src/components/navigation/Tabs/types.ts
3
3
  /**
4
4
  * Size mapping for radio type tabs.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { useCallback, useState } from "react";
3
3
 
4
4
  //#region src/components/navigation/Tabs/use-tab-editing.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { chainRaf } from "../../../utils/raf.js";
3
3
  import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.137.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.138.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { Block } from "../../Block.js";
4
4
  import { Space } from "../../layout/Space.js";
@@ -72,7 +72,7 @@ const TabElement = tasty(Action, { styles: {
72
72
  fill: {
73
73
  "": "#dark.04",
74
74
  hovered: "#dark.08",
75
- "disabled, disabled & hover": "#white"
75
+ "disabled, disabled & hover": "#surface"
76
76
  },
77
77
  color: {
78
78
  "": "#dark-02",