@cube-dev/ui-kit 0.138.6 → 0.140.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 (485) hide show
  1. package/dist/CHANGELOG.md +67 -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 +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.d.ts +2 -2
  20. package/dist/components/actions/Button/Button.js +11 -17
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.d.ts +2 -2
  28. package/dist/components/actions/ItemAction/ItemAction.js +8 -22
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +2 -2
  31. package/dist/components/actions/ItemActionContext.js.map +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +3 -3
  33. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuItem.js +1 -1
  37. package/dist/components/actions/Menu/MenuSection.js +1 -1
  38. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/dist/components/actions/Menu/context.js +1 -1
  42. package/dist/components/actions/Menu/styled.js +3 -3
  43. package/dist/components/actions/Menu/styled.js.map +1 -1
  44. package/dist/components/actions/index.js +1 -1
  45. package/dist/components/actions/use-action.js +1 -1
  46. package/dist/components/actions/use-anchored-menu.js +1 -1
  47. package/dist/components/actions/use-context-menu.js +1 -1
  48. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/dist/components/content/Alert/Alert.js +1 -1
  50. package/dist/components/content/Alert/use-alert.js +1 -1
  51. package/dist/components/content/Avatar/Avatar.js +1 -1
  52. package/dist/components/content/Badge/Badge.js +1 -1
  53. package/dist/components/content/Card/Card.js +1 -1
  54. package/dist/components/content/Content.js +1 -1
  55. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  56. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/dist/components/content/Disclosure/Disclosure.js +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.d.ts +3 -3
  64. package/dist/components/content/Item/Item.js +19 -25
  65. package/dist/components/content/Item/Item.js.map +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.d.ts +2 -2
  67. package/dist/components/content/ItemBadge/ItemBadge.js +12 -18
  68. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  69. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  70. package/dist/components/content/Layout/GridLayout.js +1 -1
  71. package/dist/components/content/Layout/Layout.js +1 -1
  72. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  73. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  74. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  75. package/dist/components/content/Layout/LayoutContent.js +1 -1
  76. package/dist/components/content/Layout/LayoutContext.js +1 -1
  77. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  78. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  79. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  80. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  81. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  82. package/dist/components/content/Layout/LayoutPane.js +1 -1
  83. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  84. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  85. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  86. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  87. package/dist/components/content/Layout/index.js +1 -1
  88. package/dist/components/content/Layout/utils.js +1 -1
  89. package/dist/components/content/Paragraph.js +1 -1
  90. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  91. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  92. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  93. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  94. package/dist/components/content/Result/Result.js +1 -1
  95. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  96. package/dist/components/content/Tag/Tag.js +1 -1
  97. package/dist/components/content/Text.js +1 -1
  98. package/dist/components/content/TextItem/TextItem.js +1 -1
  99. package/dist/components/content/Title.js +1 -1
  100. package/dist/components/content/Tree/Tree.js +1 -1
  101. package/dist/components/content/Tree/TreeNode.js +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  109. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  110. package/dist/components/fields/Checkbox/context.js +1 -1
  111. package/dist/components/fields/ComboBox/ComboBox.js +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 +1 -1
  127. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  128. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +8 -0
  129. package/dist/components/fields/FilterPicker/FilterPicker.js +14 -10
  130. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  131. package/dist/components/fields/Input/Input.js +1 -1
  132. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  133. package/dist/components/fields/ListBox/ListBox.js +1 -1
  134. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  135. package/dist/components/fields/NumberInput/StepButton.js +3 -3
  136. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  137. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  138. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  139. package/dist/components/fields/Picker/Picker.js +12 -8
  140. package/dist/components/fields/Picker/Picker.js.map +1 -1
  141. package/dist/components/fields/RadioGroup/Radio.d.ts +1 -1
  142. package/dist/components/fields/RadioGroup/Radio.js +40 -12
  143. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  144. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -1
  145. package/dist/components/fields/RadioGroup/RadioGroup.js +15 -5
  146. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  147. package/dist/components/fields/RadioGroup/context.js +1 -1
  148. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  149. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  150. package/dist/components/fields/Select/Select.d.ts +1 -1
  151. package/dist/components/fields/Select/Select.js +11 -7
  152. package/dist/components/fields/Select/Select.js.map +1 -1
  153. package/dist/components/fields/Slider/Gradation.js +1 -1
  154. package/dist/components/fields/Slider/HueSlider.js +1 -1
  155. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  156. package/dist/components/fields/Slider/Slider.js +1 -1
  157. package/dist/components/fields/Slider/SliderBase.js +1 -1
  158. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  159. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  160. package/dist/components/fields/Slider/elements.js +1 -1
  161. package/dist/components/fields/Slider/index.js +1 -1
  162. package/dist/components/fields/Switch/Switch.js +1 -1
  163. package/dist/components/fields/TextArea/TextArea.js +1 -1
  164. package/dist/components/fields/TextInput/TextInput.js +1 -1
  165. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  166. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  167. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  168. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  169. package/dist/components/form/Form/Field.js +1 -1
  170. package/dist/components/form/Form/Form.js +1 -1
  171. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  172. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  173. package/dist/components/form/Form/SubmitError.js +1 -1
  174. package/dist/components/form/Form/index.js +1 -1
  175. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  176. package/dist/components/form/Form/use-field/use-field.js +1 -1
  177. package/dist/components/form/Form/use-form.js +1 -1
  178. package/dist/components/form/Form/validation.js +1 -1
  179. package/dist/components/form/Label.js +1 -1
  180. package/dist/components/form/wrapper.js +1 -1
  181. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  182. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  183. package/dist/components/layout/Flex.js +1 -1
  184. package/dist/components/layout/Flow.js +1 -1
  185. package/dist/components/layout/Grid.js +1 -1
  186. package/dist/components/layout/Panel.js +1 -1
  187. package/dist/components/layout/Prefix.js +1 -1
  188. package/dist/components/layout/ResizablePanel.js +1 -1
  189. package/dist/components/layout/Space.js +1 -1
  190. package/dist/components/layout/Suffix.js +1 -1
  191. package/dist/components/navigation/Tabs/DraggableTabList.js +6 -4
  192. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  193. package/dist/components/navigation/Tabs/TabButton.js +12 -7
  194. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  195. package/dist/components/navigation/Tabs/TabDropIndicator.js +9 -4
  196. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  197. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  198. package/dist/components/navigation/Tabs/TabPicker.js +11 -6
  199. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  200. package/dist/components/navigation/Tabs/Tabs.js +137 -104
  201. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  202. package/dist/components/navigation/Tabs/TabsAction.js +14 -6
  203. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  204. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  205. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  206. package/dist/components/navigation/Tabs/popover-placement.js +21 -0
  207. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -0
  208. package/dist/components/navigation/Tabs/styled.js +201 -70
  209. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  210. package/dist/components/navigation/Tabs/types.d.ts +16 -2
  211. package/dist/components/navigation/Tabs/types.js +1 -1
  212. package/dist/components/navigation/Tabs/types.js.map +1 -1
  213. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  214. package/dist/components/navigation/Tabs/use-tab-indicator.js +26 -14
  215. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  216. package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
  217. package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
  218. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  219. package/dist/components/other/Calendar/Calendar.js +1 -1
  220. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  221. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  222. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  223. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  224. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  225. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  226. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  227. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  228. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  229. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  230. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  231. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  232. package/dist/components/overlays/Dialog/context.js +1 -1
  233. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  234. package/dist/components/overlays/Modal/Modal.js +1 -1
  235. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  236. package/dist/components/overlays/Modal/Overlay.js +1 -1
  237. package/dist/components/overlays/Modal/Popover.js +1 -1
  238. package/dist/components/overlays/Modal/Tray.js +1 -1
  239. package/dist/components/overlays/Modal/Underlay.js +1 -1
  240. package/dist/components/overlays/Notifications/Notification.js +1 -1
  241. package/dist/components/overlays/Notifications/NotificationAction.d.ts +1 -1
  242. package/dist/components/overlays/Notifications/NotificationAction.js +4 -3
  243. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  244. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  245. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  246. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  247. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  248. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  249. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  250. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  251. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  252. package/dist/components/overlays/Notifications/index.js +1 -1
  253. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  254. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  255. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  256. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  257. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  258. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  259. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  260. package/dist/components/overlays/Toast/index.js +1 -1
  261. package/dist/components/overlays/Toast/useProgressToast.js +3 -2
  262. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  263. package/dist/components/overlays/Toast/useToast.js +1 -1
  264. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  265. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  266. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  267. package/dist/components/overlays/Tooltip/context.js +1 -1
  268. package/dist/components/portal/Portal.js +1 -1
  269. package/dist/components/portal/PortalProvider.js +1 -1
  270. package/dist/components/portal/usePortal.js +1 -1
  271. package/dist/components/shared/DraggableCollection.js +9 -3
  272. package/dist/components/shared/DraggableCollection.js.map +1 -1
  273. package/dist/components/shared/InvalidIcon.js +1 -1
  274. package/dist/components/shared/ValidIcon.js +1 -1
  275. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  276. package/dist/components/status/Spin/Cube.js +1 -1
  277. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  278. package/dist/components/status/Spin/Spin.js +1 -1
  279. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  280. package/dist/data/item-themes.d.ts +1 -1
  281. package/dist/data/item-themes.js +377 -467
  282. package/dist/data/item-themes.js.map +1 -1
  283. package/dist/data/themes.js +1 -1
  284. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  285. package/dist/icons/AdjustmentsIcon.js +1 -1
  286. package/dist/icons/AiIcon.js +1 -1
  287. package/dist/icons/AreaChartIcon.js +1 -1
  288. package/dist/icons/BackwardIcon.js +1 -1
  289. package/dist/icons/BarChartIcon.js +1 -1
  290. package/dist/icons/BellFilledIcon.js +1 -1
  291. package/dist/icons/BellIcon.js +1 -1
  292. package/dist/icons/BooleanIcon.js +1 -1
  293. package/dist/icons/CalendarEditIcon.js +1 -1
  294. package/dist/icons/CalendarIcon.js +1 -1
  295. package/dist/icons/CaretDownIcon.js +1 -1
  296. package/dist/icons/CaretUpIcon.js +1 -1
  297. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  298. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  299. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  300. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  301. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  302. package/dist/icons/ChartBarLineIcon.js +1 -1
  303. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  304. package/dist/icons/ChartBarStackedIcon.js +1 -1
  305. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  306. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  307. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  308. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  309. package/dist/icons/ChartBubbleIcon.js +1 -1
  310. package/dist/icons/ChartDonut2Icon.js +1 -1
  311. package/dist/icons/ChartFunnelIcon.js +1 -1
  312. package/dist/icons/ChartHeatmapIcon.js +1 -1
  313. package/dist/icons/ChartKPIIcon.js +1 -1
  314. package/dist/icons/ChartPie2Icon.js +1 -1
  315. package/dist/icons/ChartScatterIcon.js +1 -1
  316. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  317. package/dist/icons/CheckCircleIcon.js +1 -1
  318. package/dist/icons/CheckIcon.js +1 -1
  319. package/dist/icons/CircleFilledIcon.js +1 -1
  320. package/dist/icons/ClearIcon.js +1 -1
  321. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  322. package/dist/icons/CloseCircleIcon.js +1 -1
  323. package/dist/icons/CloseIcon.js +1 -1
  324. package/dist/icons/CodeIcon.js +1 -1
  325. package/dist/icons/ColumnTotalIcon.js +1 -1
  326. package/dist/icons/CopyIcon.js +1 -1
  327. package/dist/icons/CountIcon.js +1 -1
  328. package/dist/icons/CubeIcon.js +1 -1
  329. package/dist/icons/CubePauseIcon.js +1 -1
  330. package/dist/icons/CubePlayIcon.js +1 -1
  331. package/dist/icons/CurrencyDollarIcon.js +1 -1
  332. package/dist/icons/DangerIcon.js +1 -1
  333. package/dist/icons/DashboardIcon.js +1 -1
  334. package/dist/icons/DatabaseIcon.js +1 -1
  335. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  336. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  337. package/dist/icons/DirectionIcon.js +1 -1
  338. package/dist/icons/DonutIcon.js +1 -1
  339. package/dist/icons/DownIcon.js +1 -1
  340. package/dist/icons/EditIcon.js +1 -1
  341. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  342. package/dist/icons/ExclamationCircleIcon.js +1 -1
  343. package/dist/icons/ExclamationIcon.js +1 -1
  344. package/dist/icons/EyeIcon.js +1 -1
  345. package/dist/icons/EyeInvisibleIcon.js +1 -1
  346. package/dist/icons/FilterIcon.js +1 -1
  347. package/dist/icons/FolderFilledIcon.js +1 -1
  348. package/dist/icons/FolderIcon.js +1 -1
  349. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  350. package/dist/icons/FolderOpenIcon.js +1 -1
  351. package/dist/icons/ForwardIcon.js +1 -1
  352. package/dist/icons/GripVerticalIcon.js +1 -1
  353. package/dist/icons/HierarchyIcon.js +1 -1
  354. package/dist/icons/HierarchyOpenIcon.js +1 -1
  355. package/dist/icons/Icon.js +1 -1
  356. package/dist/icons/InfoCircleIcon.js +1 -1
  357. package/dist/icons/InfoIcon.js +1 -1
  358. package/dist/icons/KeyIcon.js +1 -1
  359. package/dist/icons/LeftIcon.js +1 -1
  360. package/dist/icons/LineChartIcon.js +1 -1
  361. package/dist/icons/LoadingIcon.js +1 -1
  362. package/dist/icons/LockFilledIcon.js +1 -1
  363. package/dist/icons/LockIcon.js +1 -1
  364. package/dist/icons/MoreIcon.js +1 -1
  365. package/dist/icons/NotAllowedIcon.js +1 -1
  366. package/dist/icons/Number123Icon.js +1 -1
  367. package/dist/icons/NumberIcon.js +1 -1
  368. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  369. package/dist/icons/PauseCircleIcon.js +1 -1
  370. package/dist/icons/PauseIcon.js +1 -1
  371. package/dist/icons/PercentageIcon.js +1 -1
  372. package/dist/icons/PieChartIcon.js +1 -1
  373. package/dist/icons/PlayCircleIcon.js +1 -1
  374. package/dist/icons/PlayIcon.js +1 -1
  375. package/dist/icons/PlusIcon.js +1 -1
  376. package/dist/icons/ProgressBarIcon.js +1 -1
  377. package/dist/icons/ReloadIcon.js +1 -1
  378. package/dist/icons/ReportIcon.js +1 -1
  379. package/dist/icons/ReturnIcon.js +1 -1
  380. package/dist/icons/RightIcon.js +1 -1
  381. package/dist/icons/RowTotalsIcon.js +1 -1
  382. package/dist/icons/SchemeIcon.js +1 -1
  383. package/dist/icons/SearchIcon.js +1 -1
  384. package/dist/icons/SemanticQueryIcon.js +1 -1
  385. package/dist/icons/SettingsIcon.js +1 -1
  386. package/dist/icons/ShieldFilledIcon.js +1 -1
  387. package/dist/icons/ShieldIcon.js +1 -1
  388. package/dist/icons/SlashIcon.js +1 -1
  389. package/dist/icons/SparklesIcon.js +1 -1
  390. package/dist/icons/SqlIcon.js +1 -1
  391. package/dist/icons/StatsIcon.js +1 -1
  392. package/dist/icons/StopIcon.js +1 -1
  393. package/dist/icons/StringIcon.js +1 -1
  394. package/dist/icons/SubtotalsIcon.js +1 -1
  395. package/dist/icons/SwitchIcon.js +1 -1
  396. package/dist/icons/TableIcon.js +1 -1
  397. package/dist/icons/ThumbsDownIcon.js +1 -1
  398. package/dist/icons/ThumbsUpIcon.js +1 -1
  399. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  400. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  401. package/dist/icons/ThunderboltIcon.js +1 -1
  402. package/dist/icons/TimeIcon.js +1 -1
  403. package/dist/icons/TrashIcon.js +1 -1
  404. package/dist/icons/UnlockIcon.js +1 -1
  405. package/dist/icons/UpIcon.js +1 -1
  406. package/dist/icons/UserGroupIcon.js +1 -1
  407. package/dist/icons/UserIcon.js +1 -1
  408. package/dist/icons/UserLockIcon.js +1 -1
  409. package/dist/icons/ViewIcon.js +1 -1
  410. package/dist/icons/WarningFilledIcon.js +1 -1
  411. package/dist/icons/WarningIcon.js +1 -1
  412. package/dist/icons/wrap-icon.js +1 -1
  413. package/dist/index.js +1 -1
  414. package/dist/provider.js +1 -1
  415. package/dist/providers/TrackingProvider.js +1 -1
  416. package/dist/providers/navigationAdapter.default.js +1 -1
  417. package/dist/tokens/base.js +1 -1
  418. package/dist/tokens/colors.js +1 -1
  419. package/dist/tokens/index.js +1 -1
  420. package/dist/tokens/layout.js +1 -1
  421. package/dist/tokens/palette.js +52 -22
  422. package/dist/tokens/palette.js.map +1 -1
  423. package/dist/tokens/shadows.js +1 -1
  424. package/dist/tokens/sizes.js +1 -1
  425. package/dist/tokens/spacing.js +1 -1
  426. package/dist/tokens/typography.js +1 -1
  427. package/dist/utils/ResizeSensor.js +1 -1
  428. package/dist/utils/is-dev-env.js +1 -1
  429. package/dist/utils/modules.js +1 -1
  430. package/dist/utils/promise.js +1 -1
  431. package/dist/utils/raf.js +1 -1
  432. package/dist/utils/random.js +1 -1
  433. package/dist/utils/range.js +1 -1
  434. package/dist/utils/react/RenderCache.js +1 -1
  435. package/dist/utils/react/Slots.js +1 -1
  436. package/dist/utils/react/chain.js +1 -1
  437. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  438. package/dist/utils/react/index.js +1 -1
  439. package/dist/utils/react/interactions.js +1 -1
  440. package/dist/utils/react/isTextOnly.js +1 -1
  441. package/dist/utils/react/mapProps.js +1 -1
  442. package/dist/utils/react/mergeProps.js +1 -1
  443. package/dist/utils/react/nullableValue.js +1 -1
  444. package/dist/utils/react/resolveIcon.js +1 -1
  445. package/dist/utils/react/sharedStore.js +1 -1
  446. package/dist/utils/react/useCombinedRefs.js +1 -1
  447. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  448. package/dist/utils/react/useEventBus.js +1 -1
  449. package/dist/utils/react/useId.js +1 -1
  450. package/dist/utils/react/useIsDarwin.js +1 -1
  451. package/dist/utils/react/useKeySymbols.js +1 -1
  452. package/dist/utils/react/useLayoutEffect.js +1 -1
  453. package/dist/utils/react/useLocalStorage.js +1 -1
  454. package/dist/utils/react/useMergeStyles.js +1 -1
  455. package/dist/utils/react/usePopoverSync.js +1 -1
  456. package/dist/utils/react/useQaProps.js +1 -1
  457. package/dist/utils/react/useViewportSize.js +1 -1
  458. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  459. package/dist/utils/selection.js +1 -1
  460. package/dist/utils/styles.js +1 -1
  461. package/dist/utils/tree.js +1 -1
  462. package/dist/utils/warnings.js +1 -1
  463. package/dist/version.js +2 -2
  464. package/docs/ComplexLayout.md +2 -2
  465. package/docs/components/CollectionItem.md +1 -1
  466. package/docs/components/actions/Banner.md +1 -1
  467. package/docs/components/actions/Button.md +3 -5
  468. package/docs/components/actions/ButtonGroup.md +1 -1
  469. package/docs/components/actions/ButtonSplit.md +1 -2
  470. package/docs/components/actions/ItemAction.md +5 -5
  471. package/docs/components/actions/ItemButton.md +4 -6
  472. package/docs/components/content/Item.md +9 -10
  473. package/docs/components/content/ItemBadge.md +4 -4
  474. package/docs/components/content/ItemCard.md +1 -1
  475. package/docs/components/content/Layout.md +2 -2
  476. package/docs/components/content/Tag.md +1 -1
  477. package/docs/components/fields/FilterListBox.md +1 -1
  478. package/docs/components/fields/FilterPicker.md +3 -5
  479. package/docs/components/fields/ListBox.md +1 -1
  480. package/docs/components/fields/Picker.md +3 -5
  481. package/docs/components/fields/RadioGroup.md +7 -9
  482. package/docs/components/fields/Select.md +2 -4
  483. package/docs/components/navigation/Tabs.md +33 -8
  484. package/docs/components/organisms/FileTabs.md +2 -2
  485. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-placement.js","names":[],"sources":["../../../../src/components/navigation/Tabs/popover-placement.ts"],"sourcesContent":["import type { Placement } from 'react-aria';\nimport type { TabPlacement } from './types';\n\n/**\n * Maps the parent Tabs `placement` to the popover placement for menus and\n * pickers anchored to the strip (tab overflow menu, context menu, TabPicker).\n *\n * The popover always opens **toward the panel area** so it never covers the\n * bar itself and stays inside the visible Tabs region. Tooltips are the only\n * surface that opens on the outer-edge side; menus and pickers must flow into\n * the content side instead.\n */\nexport const POPOVER_PLACEMENT_BY_TABS_PLACEMENT: Record<\n TabPlacement,\n Placement\n> = {\n top: 'bottom start',\n bottom: 'top start',\n left: 'right top',\n right: 'left top',\n};\n"],"mappings":";;;;;;;;;;;AAYA,MAAa,sCAGT;CACF,KAAK;CACL,QAAQ;CACR,MAAM;CACN,OAAO;CACR"}
@@ -1,45 +1,75 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _Item } from "../../content/Item/Item.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
 
5
5
  //#region src/components/navigation/Tabs/styled.ts
6
6
  const TabsElement = tasty({ styles: {
7
7
  display: "flex",
8
- flow: "row",
9
- placeItems: {
10
- "": "end stretch",
11
- "type=radio | type=file": "stretch"
8
+ flow: {
9
+ "": "column",
10
+ "placement=bottom": "column-reverse",
11
+ "placement=left": "row",
12
+ "placement=right": "row-reverse"
12
13
  },
14
+ flexShrink: 1,
15
+ flexGrow: 1,
16
+ width: "min 0",
17
+ height: "min 0",
13
18
  overflow: "visible",
14
- border: {
15
- "": 0,
16
- "(type=default | type=file | type=narrow) & has-panels": "bottom"
17
- },
18
- width: {
19
- "": "100%",
20
- "type=radio": "max-content"
21
- },
22
- padding: {
23
- "": 0,
24
- "type=radio": ".5x"
25
- },
26
- radius: {
27
- "": 0,
28
- "type=radio": "1cr"
29
- },
30
- fill: {
31
- "": "#clear",
32
- "type=radio": "#surface-4"
33
- },
34
- flexShrink: 0,
35
- flexGrow: 0,
36
- $transition: "$tab-transition",
37
- "$tab-indicator-size": {
38
- "": "2bw",
39
- "size=large": "1ow"
19
+ Bar: {
20
+ $: ">",
21
+ display: "flex",
22
+ flow: {
23
+ "": "row",
24
+ "placement=left | placement=right": "column"
25
+ },
26
+ placeItems: {
27
+ "": "end stretch",
28
+ "placement=bottom": "start stretch",
29
+ "placement=left": "stretch end",
30
+ "placement=right": "stretch start",
31
+ "type=radio | type=file": "stretch"
32
+ },
33
+ overflow: "visible",
34
+ border: {
35
+ "": 0,
36
+ "(type=default | type=file | type=narrow) & has-panels": "bottom",
37
+ "(type=default | type=file | type=narrow) & has-panels & placement=bottom": "top",
38
+ "(type=default | type=file | type=narrow) & has-panels & placement=left": "right",
39
+ "(type=default | type=file | type=narrow) & has-panels & placement=right": "left"
40
+ },
41
+ width: {
42
+ "": "100%",
43
+ "placement=left | placement=right": "auto",
44
+ "type=radio & (placement=left | placement=right)": "max-content"
45
+ },
46
+ height: {
47
+ "": "auto",
48
+ "placement=left | placement=right": "100%",
49
+ "type=radio & (placement=left | placement=right)": "max-content"
50
+ },
51
+ padding: {
52
+ "": 0,
53
+ "type=radio": ".5x"
54
+ },
55
+ radius: {
56
+ "": 0,
57
+ "type=radio": "1cr"
58
+ },
59
+ fill: {
60
+ "": "#clear",
61
+ "type=radio": "#surface-4"
62
+ },
63
+ flexShrink: 0,
64
+ flexGrow: 0,
65
+ $transition: "$tab-transition",
66
+ "$tab-indicator-size": {
67
+ "": "2bw",
68
+ "size=large": "1ow"
69
+ }
40
70
  },
41
71
  Prefix: {
42
- $: ">",
72
+ $: "> Bar >",
43
73
  display: "flex",
44
74
  placeItems: "center",
45
75
  placeContent: "center",
@@ -47,7 +77,8 @@ const TabsElement = tasty({ styles: {
47
77
  placeSelf: "stretch",
48
78
  padding: {
49
79
  "": 0,
50
- "type=default": ".5x 0 .5x 1x"
80
+ "type=default": ".5x 0 .5x 1x",
81
+ "type=default & (placement=left | placement=right)": "1x .5x 0 .5x"
51
82
  },
52
83
  gap: {
53
84
  "": 0,
@@ -55,11 +86,12 @@ const TabsElement = tasty({ styles: {
55
86
  },
56
87
  border: {
57
88
  "": 0,
58
- "type=file": "right"
89
+ "type=file": "right",
90
+ "type=file & (placement=left | placement=right)": "bottom"
59
91
  }
60
92
  },
61
93
  Suffix: {
62
- $: ">",
94
+ $: "> Bar >",
63
95
  display: "flex",
64
96
  placeItems: "center",
65
97
  placeContent: "center",
@@ -67,7 +99,8 @@ const TabsElement = tasty({ styles: {
67
99
  placeSelf: "stretch",
68
100
  padding: {
69
101
  "": 0,
70
- "type=default": ".5x 1x .5x 0"
102
+ "type=default": ".5x 1x .5x 0",
103
+ "type=default & (placement=left | placement=right)": "0 .5x 1x .5x"
71
104
  },
72
105
  gap: {
73
106
  "": 0,
@@ -75,27 +108,36 @@ const TabsElement = tasty({ styles: {
75
108
  },
76
109
  border: {
77
110
  "": 0,
78
- "type=file": "left"
111
+ "type=file": "left",
112
+ "type=file & (placement=left | placement=right)": "top"
79
113
  }
80
114
  },
81
115
  ScrollWrapper: {
82
- $: ">",
116
+ $: "> Bar >",
83
117
  position: "relative",
84
118
  display: "flex",
85
119
  flexGrow: 1,
86
120
  flexShrink: 1,
87
- width: "min 0",
121
+ width: {
122
+ "": "min 0",
123
+ "placement=left | placement=right": "auto"
124
+ },
125
+ height: {
126
+ "": "auto",
127
+ "placement=left | placement=right": "min 0"
128
+ },
88
129
  overflow: {
89
130
  "": "hidden",
90
131
  "type=radio": "visible"
91
132
  }
92
133
  },
93
134
  Scroll: {
94
- $: "> ScrollWrapper >",
135
+ $: "> Bar > ScrollWrapper >",
95
136
  position: "relative",
96
137
  display: "block",
97
138
  overflow: {
98
139
  "": "auto hidden",
140
+ "placement=left | placement=right": "hidden auto",
99
141
  "type=radio": "visible"
100
142
  },
101
143
  scrollbar: "none",
@@ -109,42 +151,64 @@ const TabsElement = tasty({ styles: {
109
151
  "": 0,
110
152
  "type=radio": "-.5x"
111
153
  },
112
- fade: "2x left #tabs-fade-left #black, 2x right #tabs-fade-right #black",
113
- transition: "##tabs-fade-left $tab-transition ease-in, ##tabs-fade-right $tab-transition ease-in",
114
- "#tabs-fade-left": {
154
+ fade: {
155
+ "": "2x left #tabs-fade-start #black, 2x right #tabs-fade-end #black",
156
+ "placement=left | placement=right": "2x top #tabs-fade-start #black, 2x bottom #tabs-fade-end #black"
157
+ },
158
+ transition: "##tabs-fade-start $tab-transition ease-in, ##tabs-fade-end $tab-transition ease-in",
159
+ "#tabs-fade-start": {
115
160
  "": "rgb(0 0 0 / 1)",
116
- "fade-left": "rgb(0 0 0 / 0)"
161
+ "fade-start": "rgb(0 0 0 / 0)"
117
162
  },
118
- "#tabs-fade-right": {
163
+ "#tabs-fade-end": {
119
164
  "": "rgb(0 0 0 / 1)",
120
- "fade-right": "rgb(0 0 0 / 0)"
165
+ "fade-end": "rgb(0 0 0 / 0)"
121
166
  }
122
167
  },
123
168
  TabList: {
124
- $: "> ScrollWrapper > Scroll >",
169
+ $: "> Bar > ScrollWrapper > Scroll >",
125
170
  position: "relative",
126
171
  display: "grid",
127
- gridAutoFlow: "column",
172
+ boxSizing: "border-box",
173
+ gridAutoFlow: {
174
+ "": "column",
175
+ "placement=left | placement=right": "row"
176
+ },
128
177
  gridAutoColumns: {
129
178
  "": "auto",
130
179
  "type=radio": "1fr"
131
180
  },
181
+ gridAutoRows: {
182
+ "": "auto",
183
+ "type=radio & (placement=left | placement=right)": "1fr"
184
+ },
132
185
  gap: {
133
186
  "": 0,
134
187
  "type=default": "1x",
135
188
  "type=narrow": "2x",
136
- "type=radio": ".5x"
189
+ "type=radio": ".5x",
190
+ "(type=default | type=narrow) & (placement=left | placement=right)": "1bw"
137
191
  },
138
192
  placeContent: "start",
139
193
  overflow: "visible",
140
194
  width: {
141
195
  "": "max-content",
142
- "type=radio": "100%"
196
+ "type=radio": "100%",
197
+ "placement=left | placement=right": "100%"
198
+ },
199
+ height: {
200
+ "": "auto",
201
+ "placement=left | placement=right": "max-content"
202
+ },
203
+ padding: {
204
+ "": "0 $tablist-padding",
205
+ "placement=left | placement=right": "$tablist-padding 0",
206
+ "(type=default | type=narrow) & (placement=left | placement=right)": "$tablist-padding"
143
207
  },
144
- padding: "0 $tablist-padding",
145
208
  "$tablist-padding": {
146
209
  "": "0",
147
- "type=default | type=narrow": "1x"
210
+ "type=default | type=narrow": "1x",
211
+ "(type=default | type=narrow) & (placement=left | placement=right)": ".5x"
148
212
  }
149
213
  },
150
214
  $size: {
@@ -155,13 +219,33 @@ const TabsElement = tasty({ styles: {
155
219
  "size=large": "$size-lg",
156
220
  "size=xlarge": "$size-xl"
157
221
  },
158
- ScrollbarH: {
159
- $: "> ScrollWrapper >",
222
+ Scrollbar: {
223
+ $: "> Bar > ScrollWrapper >",
160
224
  position: "absolute",
161
- bottom: "1px",
162
- left: "$scrollbar-h-left",
163
- height: "1ow",
164
- width: "$scrollbar-h-width",
225
+ bottom: {
226
+ "": "1px",
227
+ "placement=left | placement=right": "auto"
228
+ },
229
+ top: {
230
+ "": "auto",
231
+ "placement=left | placement=right": "$scrollbar-v-top"
232
+ },
233
+ left: {
234
+ "": "$scrollbar-h-left",
235
+ "placement=left | placement=right": "auto"
236
+ },
237
+ right: {
238
+ "": "auto",
239
+ "placement=left | placement=right": "1px"
240
+ },
241
+ height: {
242
+ "": "1ow",
243
+ "placement=left | placement=right": "$scrollbar-v-height"
244
+ },
245
+ width: {
246
+ "": "$scrollbar-h-width",
247
+ "placement=left | placement=right": "1ow"
248
+ },
165
249
  radius: "round",
166
250
  fill: "#dark.35",
167
251
  opacity: {
@@ -178,7 +262,10 @@ const TabElement = tasty(_Item, {
178
262
  radius: {
179
263
  "": false,
180
264
  "type=radio | type=default": true,
181
- "type=narrow": "top"
265
+ "type=narrow": "top",
266
+ "type=narrow & placement=bottom": "bottom",
267
+ "type=narrow & placement=left": "left",
268
+ "type=narrow & placement=right": "right"
182
269
  },
183
270
  color: {
184
271
  "": "#dark-02",
@@ -209,11 +296,15 @@ const TabElement = tasty(_Item, {
209
296
  "type=radio & selected": "$item-shadow",
210
297
  "type=radio & selected & focused & focus-visible": "$item-shadow, inset 0 0 0 1bw #primary-text"
211
298
  },
299
+ outline: "none",
212
300
  placeContent: { "type=radio": "center" },
213
301
  gridTemplate: { "type=radio": "\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content" },
214
302
  "$selection-shadow": {
215
303
  "": "inset 0 0 0 0 #primary",
216
304
  "type=file & selected": "inset 0 (-1 * $tab-indicator-size) 0 0 #primary",
305
+ "type=file & selected & placement=bottom": "inset 0 $tab-indicator-size 0 0 #primary",
306
+ "type=file & selected & placement=left": "inset (-1 * $tab-indicator-size) 0 0 0 #primary",
307
+ "type=file & selected & placement=right": "inset $tab-indicator-size 0 0 0 #primary",
217
308
  "!type=file": "inset 0 0 0 0 #primary.0"
218
309
  },
219
310
  "$label-padding-left": {
@@ -239,11 +330,13 @@ const TabContainer = tasty({ styles: {
239
330
  display: "grid",
240
331
  margin: {
241
332
  "": 0,
242
- "type=default": ".5x 0"
333
+ "type=default": ".5x 0",
334
+ "type=default & (placement=left | placement=right)": 0
243
335
  },
244
336
  border: {
245
337
  "": 0,
246
- "type=file": "right"
338
+ "type=file": "right",
339
+ "type=file & (placement=left | placement=right)": "bottom"
247
340
  },
248
341
  cursor: {
249
342
  "": "default",
@@ -288,25 +381,63 @@ const DropIndicatorElement = tasty({ styles: {
288
381
  "drop-target": 1
289
382
  },
290
383
  fill: "#primary",
291
- width: ".5x",
292
- top: 0,
293
- bottom: 0,
384
+ width: {
385
+ "": ".5x",
386
+ "placement=left | placement=right": "auto"
387
+ },
388
+ height: {
389
+ "": "auto",
390
+ "placement=left | placement=right": ".5x"
391
+ },
392
+ top: {
393
+ "": 0,
394
+ "placement=left | placement=right": "auto",
395
+ "(placement=left | placement=right) & before": "-2px"
396
+ },
397
+ bottom: {
398
+ "": 0,
399
+ "placement=left | placement=right": "auto",
400
+ "(placement=left | placement=right) & after": "-2px"
401
+ },
294
402
  left: {
295
403
  "": "auto",
296
- before: "-2px"
404
+ "before & !(placement=left | placement=right)": "-2px",
405
+ "placement=left | placement=right": 0
297
406
  },
298
407
  right: {
299
408
  "": "auto",
300
- after: "-2px"
409
+ "after & !(placement=left | placement=right)": "-2px",
410
+ "placement=left | placement=right": 0
301
411
  }
302
412
  } });
303
413
  const TabIndicatorElement = tasty({ styles: {
304
414
  position: "absolute",
305
- bottom: "0",
306
- left: 0,
307
- height: "$tab-indicator-size",
415
+ bottom: {
416
+ "": "0",
417
+ "placement=bottom | placement=left | placement=right": "auto"
418
+ },
419
+ top: {
420
+ "": "auto",
421
+ "placement=bottom": "0"
422
+ },
423
+ left: {
424
+ "": "auto",
425
+ "placement=right": "0"
426
+ },
427
+ right: {
428
+ "": "auto",
429
+ "placement=left": "0"
430
+ },
431
+ height: {
432
+ "": "$tab-indicator-size",
433
+ "placement=left | placement=right": "auto"
434
+ },
435
+ width: {
436
+ "": "auto",
437
+ "placement=left | placement=right": "$tab-indicator-size"
438
+ },
308
439
  fill: "#primary",
309
- transition: "left $tab-transition ease-in-out, width $tab-transition ease-in-out",
440
+ transition: "left $tab-transition ease-in-out, width $tab-transition ease-in-out, top $tab-transition ease-in-out, height $tab-transition ease-in-out",
310
441
  pointerEvents: "none"
311
442
  } });
312
443
  const TabPanelElement = tasty({
@@ -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': '#surface-4',\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
+ {"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 — flex wrapper holding the tab Bar and the panels.\n// `placement` mod drives `flex-direction` so DOM order stays \"bar then panels\"\n// and visual order is controlled with `column / column-reverse / row / row-reverse`.\n// =============================================================================\n\nexport const TabsElement = tasty({\n styles: {\n display: 'flex',\n flow: {\n '': 'column',\n 'placement=bottom': 'column-reverse',\n 'placement=left': 'row',\n 'placement=right': 'row-reverse',\n },\n // Participate in parent flex layouts; allow shrinking on both axes so we\n // never force the parent into overflow. The Bar keeps `flex-shrink: 0`,\n // which makes the practical minimum of the wrapper along the main axis\n // equal to the tablist's intrinsic size.\n flexShrink: 1,\n flexGrow: 1,\n width: 'min 0',\n height: 'min 0',\n overflow: 'visible',\n\n // ============================================\n // Bar — the tab strip (Prefix + ScrollWrapper + Suffix).\n // ============================================\n Bar: {\n $: '>',\n display: 'flex',\n flow: {\n '': 'row',\n 'placement=left | placement=right': 'column',\n },\n placeItems: {\n '': 'end stretch',\n 'placement=bottom': 'start stretch',\n 'placement=left': 'stretch end',\n 'placement=right': 'stretch start',\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 '(type=default | type=file | type=narrow) & has-panels & placement=bottom':\n 'top',\n '(type=default | type=file | type=narrow) & has-panels & placement=left':\n 'right',\n '(type=default | type=file | type=narrow) & has-panels & placement=right':\n 'left',\n },\n // Bar sizing — always follow the outer wrapper along the main axis so\n // `width` / `height` props on `<Tabs>` apply to the strip as they did\n // before the wrapper was introduced.\n // - horizontal placements: main-axis = wrapper width (100%), cross-axis intrinsic (auto)\n // - vertical placements: main-axis = wrapper height (100%), cross-axis intrinsic (auto / max-content for radio)\n width: {\n '': '100%',\n 'placement=left | placement=right': 'auto',\n 'type=radio & (placement=left | placement=right)': 'max-content',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': '100%',\n 'type=radio & (placement=left | placement=right)': '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-4',\n },\n // Never let the Bar shrink/grow within the outer wrapper — this is what\n // gives the wrapper its effective \"tablist-size minimum\" on the main axis.\n flexShrink: 0,\n flexGrow: 0,\n\n $transition: '$tab-transition',\n '$tab-indicator-size': {\n '': '2bw',\n 'size=large': '1ow',\n },\n },\n\n // ============================================\n // Prefix — slot before the scroll area.\n // ============================================\n Prefix: {\n $: '> Bar >',\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 'type=default & (placement=left | placement=right)': '1x .5x 0 .5x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n 'type=file & (placement=left | placement=right)': 'bottom',\n },\n },\n\n // ============================================\n // Suffix — slot after the scroll area.\n // ============================================\n Suffix: {\n $: '> Bar >',\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 'type=default & (placement=left | placement=right)': '0 .5x 1x .5x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'left',\n 'type=file & (placement=left | placement=right)': 'top',\n },\n },\n\n // Wrapper for scroll area and scrollbar (scrollbar is positioned relative to this)\n ScrollWrapper: {\n $: '> Bar >',\n position: 'relative',\n display: 'flex',\n flexGrow: 1,\n flexShrink: 1,\n width: {\n '': 'min 0',\n 'placement=left | placement=right': 'auto',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': 'min 0',\n },\n overflow: {\n '': 'hidden',\n 'type=radio': 'visible',\n },\n },\n\n Scroll: {\n $: '> Bar > ScrollWrapper >',\n position: 'relative',\n display: 'block',\n overflow: {\n '': 'auto hidden',\n 'placement=left | placement=right': 'hidden auto',\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 // Multi-group fade with axis-neutral color tokens for smooth transitions.\n // Direction flips based on placement.\n fade: {\n '': '2x left #tabs-fade-start #black, 2x right #tabs-fade-end #black',\n 'placement=left | placement=right':\n '2x top #tabs-fade-start #black, 2x bottom #tabs-fade-end #black',\n },\n // ##name outputs --name-color (literal CSS property name)\n transition:\n '##tabs-fade-start $tab-transition ease-in, ##tabs-fade-end $tab-transition ease-in',\n\n // Transition transparent color: opaque (no fade) -> transparent (fade visible)\n '#tabs-fade-start': {\n '': 'rgb(0 0 0 / 1)',\n 'fade-start': 'rgb(0 0 0 / 0)',\n },\n '#tabs-fade-end': {\n '': 'rgb(0 0 0 / 1)',\n 'fade-end': 'rgb(0 0 0 / 0)',\n },\n },\n\n TabList: {\n $: '> Bar > ScrollWrapper > Scroll >',\n position: 'relative',\n display: 'grid',\n // `border-box` is required because we set `width: 100%` for vertical\n // placements AND apply padding. With the default `content-box`, the\n // TabList's outer box would be `100% + padding × 2` and overflow Scroll\n // horizontally — and the side selection indicator (positioned at\n // `right: 0` / `left: 0` of TabList) would land in that overflow region\n // and get clipped by Scroll's `overflow-x: hidden`.\n boxSizing: 'border-box',\n gridAutoFlow: {\n '': 'column',\n 'placement=left | placement=right': 'row',\n },\n gridAutoColumns: {\n '': 'auto',\n 'type=radio': '1fr',\n },\n gridAutoRows: {\n '': 'auto',\n 'type=radio & (placement=left | placement=right)': '1fr',\n },\n gap: {\n '': 0,\n 'type=default': '1x',\n 'type=narrow': '2x',\n 'type=radio': '.5x',\n // Tabs stack vertically — collapse the gap so the strip reads as a\n // single column. `narrow` is coerced to `default` in vertical, but we\n // keep the rule defensive in case the styled element is consumed\n // directly with a `type=narrow` mod set.\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '1bw',\n },\n placeContent: 'start',\n overflow: 'visible',\n width: {\n '': 'max-content',\n 'type=radio': '100%',\n 'placement=left | placement=right': '100%',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': 'max-content',\n },\n // For vertical default/narrow we apply `$tablist-padding` on ALL sides\n // (instead of only the parallel axis) so the breathing room around the\n // tabs and the selection indicator can be tuned via the `tabListPadding`\n // prop — the same prop that controls horizontal start/end padding.\n padding: {\n '': '0 $tablist-padding',\n 'placement=left | placement=right': '$tablist-padding 0',\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '$tablist-padding',\n },\n\n // Default `$tablist-padding` per type. Vertical default/narrow gets the\n // smaller `.5x` default since it applies to all four sides; the\n // `tabListPadding` prop overrides this via inline CSS variable.\n '$tablist-padding': {\n '': '0',\n 'type=default | type=narrow': '1x',\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '.5x',\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 tiny scrollbar — positioned relative to ScrollWrapper. Switches\n // edges and dimensions based on placement; the driving CSS custom\n // properties come from `useTinyScrollbar.handleHStyle` / `handleVStyle`.\n Scrollbar: {\n $: '> Bar > ScrollWrapper >',\n position: 'absolute',\n bottom: {\n '': '1px',\n 'placement=left | placement=right': 'auto',\n },\n top: {\n '': 'auto',\n 'placement=left | placement=right': '$scrollbar-v-top',\n },\n left: {\n '': '$scrollbar-h-left',\n 'placement=left | placement=right': 'auto',\n },\n right: {\n '': 'auto',\n 'placement=left | placement=right': '1px',\n },\n height: {\n '': '1ow',\n 'placement=left | placement=right': '$scrollbar-v-height',\n },\n width: {\n '': '$scrollbar-h-width',\n 'placement=left | placement=right': '1ow',\n },\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 'type=narrow & placement=bottom': 'bottom',\n 'type=narrow & placement=left': 'left',\n 'type=narrow & placement=right': 'right',\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 outline: 'none',\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 // File-type selection indicator: an inset shadow on the edge that faces\n // the panel area. Flips with placement so the highlight always sits on\n // the edge adjacent to the content.\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 & selected & placement=bottom':\n 'inset 0 $tab-indicator-size 0 0 #primary',\n 'type=file & selected & placement=left':\n 'inset (-1 * $tab-indicator-size) 0 0 0 #primary',\n 'type=file & selected & placement=right':\n 'inset $tab-indicator-size 0 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 // Horizontal strip: .5x top/bottom creates space between the tab and the\n // bottom-edge indicator (which sits at `bottom: 0` of TabList).\n 'type=default': '.5x 0',\n // Vertical strip: the breathing room around the tabs and the gap from\n // the side indicator is provided by the TabList's own `.5x` padding —\n // don't add per-tab horizontal margin on top of it.\n 'type=default & (placement=left | placement=right)': 0,\n },\n border: {\n '': 0,\n 'type=file': 'right',\n 'type=file & (placement=left | placement=right)': 'bottom',\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// Geometry flips based on placement: a vertical bar between horizontal tabs,\n// a horizontal bar between vertical tabs. `before`/`after` mods come from\n// `TabDropIndicator` and decide which edge inset is applied.\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: {\n '': '.5x',\n 'placement=left | placement=right': 'auto',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': '.5x',\n },\n top: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & before': '-2px',\n },\n bottom: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & after': '-2px',\n },\n left: {\n '': 'auto',\n 'before & !(placement=left | placement=right)': '-2px',\n 'placement=left | placement=right': 0,\n },\n right: {\n '': 'auto',\n 'after & !(placement=left | placement=right)': '-2px',\n 'placement=left | placement=right': 0,\n },\n },\n});\n\n// =============================================================================\n// Tab Selection Indicator (for default/narrow type)\n// Position flips with placement; the dynamic axis dimensions (left/width for\n// horizontal, top/height for vertical) are populated via inline `style` from\n// `useTabIndicator` in `Tabs.tsx`.\n// =============================================================================\n\nexport const TabIndicatorElement = tasty({\n styles: {\n position: 'absolute',\n bottom: {\n '': '0',\n 'placement=bottom | placement=left | placement=right': 'auto',\n },\n top: {\n '': 'auto',\n 'placement=bottom': '0',\n },\n left: {\n '': 'auto',\n 'placement=right': '0',\n },\n right: {\n '': 'auto',\n 'placement=left': '0',\n },\n height: {\n '': '$tab-indicator-size',\n 'placement=left | placement=right': 'auto',\n },\n width: {\n '': 'auto',\n 'placement=left | placement=right': '$tab-indicator-size',\n },\n fill: '#primary',\n // Transition all four properties unconditionally — only the two relevant\n // ones change per render, the others stay constant.\n transition:\n 'left $tab-transition ease-in-out, width $tab-transition ease-in-out, top $tab-transition ease-in-out, height $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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"}
@@ -11,6 +11,12 @@ import { ReactNode } from "react";
11
11
  //#region src/components/navigation/Tabs/types.d.ts
12
12
  /** Visual appearance type for tabs */
13
13
  type TabType = 'default' | 'narrow' | 'file' | 'radio';
14
+ /**
15
+ * Where the tab bar sits relative to its panels.
16
+ * - `'top'` / `'bottom'` keep the bar horizontal.
17
+ * - `'left'` / `'right'` switch it to a vertical strip.
18
+ */
19
+ type TabPlacement = 'top' | 'bottom' | 'left' | 'right';
14
20
  /** Position for TabPicker and scroll arrows */
15
21
  type TabsActionPosition = 'prefix' | 'suffix';
16
22
  /**
@@ -44,8 +50,6 @@ interface TabStyleProps extends Omit<CubeItemProps, OmittedItemProps> {
44
50
  * mapped to Item button sizes medium (32px) and xsmall (24px).
45
51
  */
46
52
  size?: TabSize;
47
- /** Visual appearance type. */
48
- type?: TabType;
49
53
  /** Whether to show actions only on hover. */
50
54
  autoHideActions?: boolean;
51
55
  }
@@ -65,6 +69,14 @@ interface CubeTabsProps extends BaseProps, OuterStyleProps, PanelBehaviorProps {
65
69
  * @default 'default'
66
70
  */
67
71
  type?: TabType;
72
+ /**
73
+ * Where the tab bar sits relative to its panels.
74
+ * `'top'` / `'bottom'` keep the bar horizontal; `'left'` / `'right'`
75
+ * switch it to a vertical strip. The selection indicator, scroll behavior,
76
+ * fades, and per-type visuals all adapt automatically.
77
+ * @default 'top'
78
+ */
79
+ placement?: TabPlacement;
68
80
  /**
69
81
  * Tab size. Supports 'xsmall', 'small', 'medium', 'large'.
70
82
  * Radio type supports 'large' (default, 40px) and 'medium' (32px),
@@ -199,6 +211,8 @@ interface CubeTabsProps extends BaseProps, OuterStyleProps, PanelBehaviorProps {
199
211
  * Sets horizontal padding only (e.g., "2x" → padding: "0 2x").
200
212
  */
201
213
  tabListPadding?: string;
214
+ /** Custom tasty styles for the tab bar (Bar sub-element). */
215
+ barStyles?: Styles;
202
216
  /** Custom tasty styles for the TabList sub-element. */
203
217
  tabListStyles?: Styles;
204
218
  /** Custom tasty styles for the Prefix sub-element. */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  //#region src/components/navigation/Tabs/types.ts
3
3
  /**
4
4
  * Size mapping for radio type tabs.