@cube-dev/ui-kit 0.0.0-canary-57f1bfe → 0.0.0-canary-ffc66c6

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 (471) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +43 -54
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +4 -9
  17. package/dist/components/Root.js.map +1 -1
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  23. package/dist/components/actions/ButtonSplit/context.js +1 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  25. package/dist/components/actions/CommandMenu/styled.js +3 -3
  26. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +5 -5
  39. package/dist/components/actions/Menu/styled.js.map +1 -1
  40. package/dist/components/actions/index.js +1 -1
  41. package/dist/components/actions/use-action.js +1 -1
  42. package/dist/components/actions/use-anchored-menu.js +1 -1
  43. package/dist/components/actions/use-context-menu.js +1 -1
  44. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  45. package/dist/components/content/Alert/Alert.js +1 -1
  46. package/dist/components/content/Alert/use-alert.js +1 -1
  47. package/dist/components/content/Avatar/Avatar.js +1 -1
  48. package/dist/components/content/Badge/Badge.js +1 -1
  49. package/dist/components/content/Card/Card.js +2 -2
  50. package/dist/components/content/Card/Card.js.map +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  53. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/dist/components/content/Disclosure/Disclosure.js +2 -2
  55. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  56. package/dist/components/content/Divider.js +1 -1
  57. package/dist/components/content/Footer.js +1 -1
  58. package/dist/components/content/Header.js +1 -1
  59. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  60. package/dist/components/content/InlineInput/InlineInput.d.ts +25 -0
  61. package/dist/components/content/InlineInput/InlineInput.js +88 -44
  62. package/dist/components/content/InlineInput/InlineInput.js.map +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 +5 -2
  189. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  190. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  191. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  192. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  193. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  194. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  195. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  196. package/dist/components/navigation/Tabs/styled.js +3 -3
  197. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  198. package/dist/components/navigation/Tabs/types.js +1 -1
  199. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  200. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  201. package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
  202. package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
  203. package/dist/components/organisms/StatsCard/StatsCard.js +2 -2
  204. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  205. package/dist/components/other/Calendar/Calendar.js +1 -1
  206. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  207. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  208. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  209. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  210. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  211. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  212. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  213. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  214. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  215. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  216. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  217. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  218. package/dist/components/overlays/Dialog/context.js +1 -1
  219. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -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.js +1 -1
  223. package/dist/components/overlays/Modal/Popover.js +1 -1
  224. package/dist/components/overlays/Modal/Tray.js +1 -1
  225. package/dist/components/overlays/Modal/Underlay.js +1 -1
  226. package/dist/components/overlays/Notifications/Notification.js +1 -1
  227. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  228. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  229. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  230. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  231. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  232. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  233. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  234. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  235. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  236. package/dist/components/overlays/Notifications/index.js +1 -1
  237. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  238. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  239. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  240. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  241. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  242. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  243. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  244. package/dist/components/overlays/Toast/index.js +1 -1
  245. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  246. package/dist/components/overlays/Toast/useToast.js +1 -1
  247. package/dist/components/overlays/Tooltip/Tooltip.js +7 -7
  248. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  249. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  250. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  251. package/dist/components/overlays/Tooltip/context.js +1 -1
  252. package/dist/components/portal/Portal.js +1 -1
  253. package/dist/components/portal/PortalProvider.js +1 -1
  254. package/dist/components/portal/usePortal.js +1 -1
  255. package/dist/components/shared/DraggableCollection.js +1 -1
  256. package/dist/components/shared/InvalidIcon.js +1 -1
  257. package/dist/components/shared/ValidIcon.js +1 -1
  258. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +7 -23
  259. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  260. package/dist/components/status/Spin/Cube.js +1 -1
  261. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  262. package/dist/components/status/Spin/Spin.js +1 -1
  263. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  264. package/dist/data/item-themes.js +115 -114
  265. package/dist/data/item-themes.js.map +1 -1
  266. package/dist/data/themes.d.ts +17 -17
  267. package/dist/data/themes.js +18 -18
  268. package/dist/data/themes.js.map +1 -1
  269. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  270. package/dist/icons/AdjustmentsIcon.js +1 -1
  271. package/dist/icons/AiIcon.js +1 -1
  272. package/dist/icons/AreaChartIcon.js +1 -1
  273. package/dist/icons/BackwardIcon.js +1 -1
  274. package/dist/icons/BarChartIcon.js +1 -1
  275. package/dist/icons/BellFilledIcon.js +1 -1
  276. package/dist/icons/BellIcon.js +1 -1
  277. package/dist/icons/BooleanIcon.js +1 -1
  278. package/dist/icons/CalendarEditIcon.js +1 -1
  279. package/dist/icons/CalendarIcon.js +1 -1
  280. package/dist/icons/CaretDownIcon.js +1 -1
  281. package/dist/icons/CaretUpIcon.js +1 -1
  282. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  283. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  284. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  285. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  286. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  287. package/dist/icons/ChartBarLineIcon.js +1 -1
  288. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  289. package/dist/icons/ChartBarStackedIcon.js +1 -1
  290. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  291. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  292. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  293. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  294. package/dist/icons/ChartBubbleIcon.js +1 -1
  295. package/dist/icons/ChartDonut2Icon.js +1 -1
  296. package/dist/icons/ChartFunnelIcon.js +1 -1
  297. package/dist/icons/ChartHeatmapIcon.js +1 -1
  298. package/dist/icons/ChartKPIIcon.js +1 -1
  299. package/dist/icons/ChartPie2Icon.js +1 -1
  300. package/dist/icons/ChartScatterIcon.js +1 -1
  301. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  302. package/dist/icons/CheckCircleIcon.js +1 -1
  303. package/dist/icons/CheckIcon.js +1 -1
  304. package/dist/icons/CircleFilledIcon.js +1 -1
  305. package/dist/icons/ClearIcon.js +1 -1
  306. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  307. package/dist/icons/CloseCircleIcon.js +1 -1
  308. package/dist/icons/CloseIcon.js +1 -1
  309. package/dist/icons/CodeIcon.js +1 -1
  310. package/dist/icons/ColumnTotalIcon.js +1 -1
  311. package/dist/icons/CopyIcon.js +1 -1
  312. package/dist/icons/CountIcon.js +1 -1
  313. package/dist/icons/CubeIcon.js +1 -1
  314. package/dist/icons/CubePauseIcon.js +1 -1
  315. package/dist/icons/CubePlayIcon.js +1 -1
  316. package/dist/icons/CurrencyDollarIcon.js +1 -1
  317. package/dist/icons/DangerIcon.js +1 -1
  318. package/dist/icons/DashboardIcon.js +1 -1
  319. package/dist/icons/DatabaseIcon.js +1 -1
  320. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  321. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  322. package/dist/icons/DirectionIcon.js +1 -1
  323. package/dist/icons/DonutIcon.js +1 -1
  324. package/dist/icons/DownIcon.js +1 -1
  325. package/dist/icons/EditIcon.js +1 -1
  326. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  327. package/dist/icons/ExclamationCircleIcon.js +1 -1
  328. package/dist/icons/ExclamationIcon.js +1 -1
  329. package/dist/icons/EyeIcon.js +1 -1
  330. package/dist/icons/EyeInvisibleIcon.js +1 -1
  331. package/dist/icons/FilterIcon.js +1 -1
  332. package/dist/icons/FolderFilledIcon.js +1 -1
  333. package/dist/icons/FolderIcon.js +1 -1
  334. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  335. package/dist/icons/FolderOpenIcon.js +1 -1
  336. package/dist/icons/ForwardIcon.js +1 -1
  337. package/dist/icons/GripVerticalIcon.js +1 -1
  338. package/dist/icons/HierarchyIcon.js +1 -1
  339. package/dist/icons/HierarchyOpenIcon.js +1 -1
  340. package/dist/icons/Icon.js +1 -1
  341. package/dist/icons/InfoCircleIcon.js +1 -1
  342. package/dist/icons/InfoIcon.js +1 -1
  343. package/dist/icons/KeyIcon.js +1 -1
  344. package/dist/icons/LeftIcon.js +1 -1
  345. package/dist/icons/LineChartIcon.js +1 -1
  346. package/dist/icons/LoadingIcon.js +1 -1
  347. package/dist/icons/LockFilledIcon.js +1 -1
  348. package/dist/icons/LockIcon.js +1 -1
  349. package/dist/icons/MoreIcon.js +1 -1
  350. package/dist/icons/NotAllowedIcon.js +1 -1
  351. package/dist/icons/Number123Icon.js +1 -1
  352. package/dist/icons/NumberIcon.js +1 -1
  353. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  354. package/dist/icons/PauseCircleIcon.js +1 -1
  355. package/dist/icons/PauseIcon.js +1 -1
  356. package/dist/icons/PercentageIcon.js +1 -1
  357. package/dist/icons/PieChartIcon.js +1 -1
  358. package/dist/icons/PlayCircleIcon.js +1 -1
  359. package/dist/icons/PlayIcon.js +1 -1
  360. package/dist/icons/PlusIcon.js +1 -1
  361. package/dist/icons/ProgressBarIcon.js +1 -1
  362. package/dist/icons/ReloadIcon.js +1 -1
  363. package/dist/icons/ReportIcon.js +1 -1
  364. package/dist/icons/ReturnIcon.js +1 -1
  365. package/dist/icons/RightIcon.js +1 -1
  366. package/dist/icons/RowTotalsIcon.js +1 -1
  367. package/dist/icons/SchemeIcon.js +1 -1
  368. package/dist/icons/SearchIcon.js +1 -1
  369. package/dist/icons/SemanticQueryIcon.js +1 -1
  370. package/dist/icons/SettingsIcon.js +1 -1
  371. package/dist/icons/ShieldFilledIcon.js +1 -1
  372. package/dist/icons/ShieldIcon.js +1 -1
  373. package/dist/icons/SlashIcon.js +1 -1
  374. package/dist/icons/SparklesIcon.js +1 -1
  375. package/dist/icons/SqlIcon.js +1 -1
  376. package/dist/icons/StatsIcon.js +1 -1
  377. package/dist/icons/StopIcon.js +1 -1
  378. package/dist/icons/StringIcon.js +1 -1
  379. package/dist/icons/SubtotalsIcon.js +1 -1
  380. package/dist/icons/SwitchIcon.js +1 -1
  381. package/dist/icons/TableIcon.js +1 -1
  382. package/dist/icons/ThumbsDownIcon.js +1 -1
  383. package/dist/icons/ThumbsUpIcon.js +1 -1
  384. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  385. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  386. package/dist/icons/ThunderboltIcon.js +1 -1
  387. package/dist/icons/TimeIcon.js +1 -1
  388. package/dist/icons/TrashIcon.js +1 -1
  389. package/dist/icons/UnlockIcon.js +1 -1
  390. package/dist/icons/UpIcon.js +1 -1
  391. package/dist/icons/UserGroupIcon.js +1 -1
  392. package/dist/icons/UserIcon.js +1 -1
  393. package/dist/icons/UserLockIcon.js +1 -1
  394. package/dist/icons/ViewIcon.js +1 -1
  395. package/dist/icons/WarningFilledIcon.js +1 -1
  396. package/dist/icons/WarningIcon.js +1 -1
  397. package/dist/icons/wrap-icon.js +1 -1
  398. package/dist/index.js +1 -1
  399. package/dist/provider.js +1 -1
  400. package/dist/providers/TrackingProvider.js +1 -1
  401. package/dist/providers/navigationAdapter.default.js +1 -1
  402. package/dist/tokens/base.js +1 -1
  403. package/dist/tokens/colors.d.ts +3 -4
  404. package/dist/tokens/colors.js +83 -93
  405. package/dist/tokens/colors.js.map +1 -1
  406. package/dist/tokens/index.js +1 -1
  407. package/dist/tokens/layout.js +1 -1
  408. package/dist/tokens/shadows.d.ts +1 -4
  409. package/dist/tokens/shadows.js +6 -9
  410. package/dist/tokens/shadows.js.map +1 -1
  411. package/dist/tokens/sizes.js +1 -1
  412. package/dist/tokens/spacing.js +1 -1
  413. package/dist/tokens/typography.js +1 -1
  414. package/dist/utils/ResizeSensor.js +1 -1
  415. package/dist/utils/is-dev-env.js +1 -1
  416. package/dist/utils/modules.js +1 -1
  417. package/dist/utils/promise.js +1 -1
  418. package/dist/utils/raf.js +1 -1
  419. package/dist/utils/random.js +1 -1
  420. package/dist/utils/range.js +1 -1
  421. package/dist/utils/react/RenderCache.js +1 -1
  422. package/dist/utils/react/Slots.js +1 -1
  423. package/dist/utils/react/chain.js +1 -1
  424. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  425. package/dist/utils/react/index.js +1 -1
  426. package/dist/utils/react/interactions.js +1 -1
  427. package/dist/utils/react/isTextOnly.js +1 -1
  428. package/dist/utils/react/mapProps.js +1 -1
  429. package/dist/utils/react/mergeProps.js +1 -1
  430. package/dist/utils/react/nullableValue.js +1 -1
  431. package/dist/utils/react/resolveIcon.js +1 -1
  432. package/dist/utils/react/sharedStore.js +1 -1
  433. package/dist/utils/react/useCombinedRefs.js +1 -1
  434. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  435. package/dist/utils/react/useEventBus.js +1 -1
  436. package/dist/utils/react/useId.js +1 -1
  437. package/dist/utils/react/useIsDarwin.js +1 -1
  438. package/dist/utils/react/useKeySymbols.js +1 -1
  439. package/dist/utils/react/useLayoutEffect.js +1 -1
  440. package/dist/utils/react/useLocalStorage.js +1 -1
  441. package/dist/utils/react/useMergeStyles.js +1 -1
  442. package/dist/utils/react/usePopoverSync.js +1 -1
  443. package/dist/utils/react/useQaProps.js +1 -1
  444. package/dist/utils/react/useViewportSize.js +1 -1
  445. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  446. package/dist/utils/selection.js +1 -1
  447. package/dist/utils/styles.js +1 -1
  448. package/dist/utils/tree.js +1 -1
  449. package/dist/utils/warnings.js +1 -1
  450. package/dist/version.d.ts +0 -3
  451. package/dist/version.js +5 -13
  452. package/dist/version.js.map +1 -1
  453. package/docs/Usage.md +30 -98
  454. package/docs/components/content/Card.md +1 -1
  455. package/docs/components/content/InlineInput.md +45 -2
  456. package/docs/components/content/PrismCode.md +0 -21
  457. package/docs/components/form/Field.md +1 -1
  458. package/docs/components/layout/ResizablePanel.md +1 -1
  459. package/docs/components/navigation/Tabs.md +2 -0
  460. package/docs/components/organisms/FileTabs.md +1 -1
  461. package/docs/components/organisms/StatsCard.md +1 -1
  462. package/docs/tasty/configuration.md +0 -44
  463. package/docs/tasty/dsl.md +13 -14
  464. package/docs/tasty/methodology.md +0 -26
  465. package/docs/tasty/react-api.md +0 -24
  466. package/docs/tasty/ssr.md +3 -5
  467. package/docs/tasty/styles.md +7 -9
  468. package/docs/tasty/tasty-static.md +0 -15
  469. package/package.json +8 -10
  470. package/dist/tokens/palette.js +0 -364
  471. package/dist/tokens/palette.js.map +0 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { DEFAULT_NEUTRAL_STYLES } from "../../../data/item-themes.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { DEFAULT_BUTTON_STYLES } from "../Button/Button.js";
@@ -10,7 +10,7 @@ const StyledMenuWrapper = tasty({
10
10
  styles: {
11
11
  display: "grid",
12
12
  gridRows: "max-content 1sf max-content",
13
- fill: "#surface",
13
+ fill: "#white",
14
14
  margin: 0,
15
15
  padding: 0,
16
16
  border: true,
@@ -21,7 +21,7 @@ const StyledMenuWrapper = tasty({
21
21
  },
22
22
  shadow: {
23
23
  "": "",
24
- "popover | tray": "$shadow"
24
+ "popover | tray": "0px 5px 15px #dark.05"
25
25
  },
26
26
  height: {
27
27
  "": "initial",
@@ -120,7 +120,7 @@ const StyledSection = tasty({
120
120
  margin: "0",
121
121
  padding: "0",
122
122
  listStyle: "none",
123
- fill: "#surface"
123
+ fill: "#white"
124
124
  }
125
125
  });
126
126
  const StyledItem = tasty({
@@ -151,7 +151,7 @@ const StyledItem = tasty({
151
151
  color: {
152
152
  "": "#dark-02",
153
153
  "selected | pressed": "#dark",
154
- disabled: "#disabled-surface-text"
154
+ disabled: "#dark-04"
155
155
  },
156
156
  cursor: {
157
157
  "": "default",
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","names":[],"sources":["../../../../src/components/actions/Menu/styled.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { DEFAULT_NEUTRAL_STYLES } from '../../../data/item-themes';\nimport { Space } from '../../layout/Space';\nimport { DEFAULT_BUTTON_STYLES } from '../Button/Button';\n\nexport const StyledMenuWrapper = tasty({\n qa: 'Menu',\n styles: {\n display: 'grid',\n gridRows: 'max-content 1sf max-content',\n fill: '#surface',\n margin: 0,\n padding: 0,\n border: true,\n radius: '(1cr + 1bw)',\n width: {\n '': 'auto',\n popover: 'max-content',\n },\n shadow: {\n '': '',\n // Use the design-system `$shadow` token (resolves to\n // `0 .5x 2x #shadow-md`) so the popover shadow follows the\n // scheme-aware Glaze `#shadow-md` color. The previous literal\n // `0px 5px 15px #dark.05` baked in `#dark` (now aliased to the\n // adaptive `#surface-text`) which inverts to a *light* shadow on\n // dark surfaces.\n 'popover | tray': '$shadow',\n },\n height: {\n '': 'initial',\n popover: 'initial max-content (50vh - 4x)',\n tray: 'initial max-content (100vh - 4x)',\n },\n boxSizing: 'border-box',\n },\n});\n\nexport const StyledMenu = tasty({\n as: 'ul',\n qa: 'MenuList',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: {\n '': '1bw',\n sections: false,\n },\n boxSizing: 'border-box',\n margin: 0,\n padding: {\n '': '0.5x',\n section: 0, // section menu\n },\n overflow: {\n '': 'auto',\n section: '',\n },\n scrollbar: 'styled',\n },\n});\n\nexport const StyledDivider = tasty({\n qa: 'Divider',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '.5x',\n listStyle: 'none',\n fill: '#border',\n height: '1bw',\n flexShrink: 0,\n },\n});\n\nexport const StyledHeader = tasty(Space, {\n qa: 'Header',\n as: 'div',\n role: 'heading',\n 'aria-level': 3,\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: 'min $size',\n boxSizing: 'border-box',\n border: 'bottom',\n radius: '1cr top',\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n },\n});\n\nexport const StyledFooter = tasty(Space, {\n qa: 'Footer',\n as: 'div',\n role: 'footer',\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n boxSizing: 'border-box',\n border: 'top',\n radius: '1cr bottom',\n },\n});\n\nexport const StyledSection = tasty({\n qa: 'Section',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '0',\n padding: '0',\n listStyle: 'none',\n fill: '#surface',\n },\n});\n\nexport const StyledItem = tasty({\n qa: 'Item',\n as: 'li',\n styles: {\n // Base button-like styles merged from Action/Button defaults\n ...DEFAULT_BUTTON_STYLES,\n ...DEFAULT_NEUTRAL_STYLES,\n\n // Override specifics for menu context\n display: 'flex',\n flow: 'row',\n justifyContent: 'stretch',\n listStyle: 'none',\n flexShrink: 0,\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n border: false,\n boxSizing: 'border-box',\n fill: {\n '': '#clear',\n focused: '#dark.03',\n selected: '#dark.09',\n 'selected & focused': '#dark.12',\n pressed: '#dark.09',\n disabled: '#clear',\n },\n color: {\n '': '#dark-02',\n 'selected | pressed': '#dark',\n disabled: '#disabled-surface-text',\n },\n cursor: {\n '': 'default',\n disabled: 'not-allowed',\n },\n shadow: '#clear',\n padding: {\n '': '.5x 1x',\n 'selectionIcon & selectable & !selected': '.5x 1x .5x (1x + 3x)',\n },\n gap: '.75x',\n outline: false,\n\n Description: {\n preset: 't4',\n color: '#dark-03',\n },\n },\n});\n\nexport const StyledSectionHeading = tasty(Space, {\n qa: 'SectionHeading',\n as: 'div',\n styles: {\n color: '#dark-04',\n preset: 'c2',\n height: '3x',\n placeContent: 'center space-between',\n padding: {\n '': '.5x .75x',\n prefix: '0 .75x 0 .5x',\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});\n"],"mappings":";;;;;;;AAMA,MAAa,oBAAoB,MAAM;CACrC,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,QAAQ;EACR,OAAO;GACL,IAAI;GACJ,SAAS;GACV;EACD,QAAQ;GACN,IAAI;GAOJ,kBAAkB;GACnB;EACD,QAAQ;GACN,IAAI;GACJ,SAAS;GACT,MAAM;GACP;EACD,WAAW;EACZ;CACF,CAAC;AAEF,MAAa,aAAa,MAAM;CAC9B,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,KAAK;GACH,IAAI;GACJ,UAAU;GACX;EACD,WAAW;EACX,QAAQ;EACR,SAAS;GACP,IAAI;GACJ,SAAS;GACV;EACD,UAAU;GACR,IAAI;GACJ,SAAS;GACV;EACD,WAAW;EACZ;CACF,CAAC;AAEF,MAAa,gBAAgB,MAAM;CACjC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,WAAW;EACX,MAAM;EACN,QAAQ;EACR,YAAY;EACb;CACF,CAAC;AAEF,MAAa,eAAe,MAAM,OAAO;CACvC,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,cAAc;CACd,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,SAAS;EACT,QAAQ;EACR,WAAW;EACX,QAAQ;EACR,QAAQ;EAER,OAAO;GACL,IAAI;GACJ,cAAc;GACd,eAAe;GACf,cAAc;GACf;EACF;CACF,CAAC;AAEF,MAAa,eAAe,MAAM,OAAO;CACvC,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,SAAS;EACT,QAAQ;GACN,IAAI;GACJ,cAAc;GACf;EACD,WAAW;EACX,QAAQ;EACR,QAAQ;EACT;CACF,CAAC;AAEF,MAAa,gBAAgB,MAAM;CACjC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACT,WAAW;EACX,MAAM;EACP;CACF,CAAC;AAEF,MAAa,aAAa,MAAM;CAC9B,IAAI;CACJ,IAAI;CACJ,QAAQ;EAEN,GAAG;EACH,GAAG;EAGH,SAAS;EACT,MAAM;EACN,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,QAAQ;GACN,IAAI;GACJ,cAAc;GACf;EACD,QAAQ;EACR,WAAW;EACX,MAAM;GACJ,IAAI;GACJ,SAAS;GACT,UAAU;GACV,sBAAsB;GACtB,SAAS;GACT,UAAU;GACX;EACD,OAAO;GACL,IAAI;GACJ,sBAAsB;GACtB,UAAU;GACX;EACD,QAAQ;GACN,IAAI;GACJ,UAAU;GACX;EACD,QAAQ;EACR,SAAS;GACP,IAAI;GACJ,0CAA0C;GAC3C;EACD,KAAK;EACL,SAAS;EAET,aAAa;GACX,QAAQ;GACR,OAAO;GACR;EACF;CACF,CAAC;AAEF,MAAa,uBAAuB,MAAM,OAAO;CAC/C,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,cAAc;EACd,SAAS;GACP,IAAI;GACJ,QAAQ;GACT;EAED,OAAO;GACL,IAAI;GACJ,cAAc;GACd,eAAe;GACf,cAAc;GACf;EACF;CACF,CAAC"}
1
+ {"version":3,"file":"styled.js","names":[],"sources":["../../../../src/components/actions/Menu/styled.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { DEFAULT_NEUTRAL_STYLES } from '../../../data/item-themes';\nimport { Space } from '../../layout/Space';\nimport { DEFAULT_BUTTON_STYLES } from '../Button/Button';\n\nexport const StyledMenuWrapper = tasty({\n qa: 'Menu',\n styles: {\n display: 'grid',\n gridRows: 'max-content 1sf max-content',\n fill: '#white',\n margin: 0,\n padding: 0,\n border: true,\n radius: '(1cr + 1bw)',\n width: {\n '': 'auto',\n popover: 'max-content',\n },\n shadow: {\n '': '',\n 'popover | tray': '0px 5px 15px #dark.05',\n },\n height: {\n '': 'initial',\n popover: 'initial max-content (50vh - 4x)',\n tray: 'initial max-content (100vh - 4x)',\n },\n boxSizing: 'border-box',\n },\n});\n\nexport const StyledMenu = tasty({\n as: 'ul',\n qa: 'MenuList',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: {\n '': '1bw',\n sections: false,\n },\n boxSizing: 'border-box',\n margin: 0,\n padding: {\n '': '0.5x',\n section: 0, // section menu\n },\n overflow: {\n '': 'auto',\n section: '',\n },\n scrollbar: 'styled',\n },\n});\n\nexport const StyledDivider = tasty({\n qa: 'Divider',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '.5x',\n listStyle: 'none',\n fill: '#border',\n height: '1bw',\n flexShrink: 0,\n },\n});\n\nexport const StyledHeader = tasty(Space, {\n qa: 'Header',\n as: 'div',\n role: 'heading',\n 'aria-level': 3,\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: 'min $size',\n boxSizing: 'border-box',\n border: 'bottom',\n radius: '1cr top',\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n },\n});\n\nexport const StyledFooter = tasty(Space, {\n qa: 'Footer',\n as: 'div',\n role: 'footer',\n styles: {\n color: '#dark-02',\n preset: 't3',\n placeContent: 'space-between',\n placeItems: 'center',\n whiteSpace: 'nowrap',\n padding: '.5x 1.5x',\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n boxSizing: 'border-box',\n border: 'top',\n radius: '1cr bottom',\n },\n});\n\nexport const StyledSection = tasty({\n qa: 'Section',\n as: 'li',\n styles: {\n display: 'flex',\n flow: 'column',\n margin: '0',\n padding: '0',\n listStyle: 'none',\n fill: '#white',\n },\n});\n\nexport const StyledItem = tasty({\n qa: 'Item',\n as: 'li',\n styles: {\n // Base button-like styles merged from Action/Button defaults\n ...DEFAULT_BUTTON_STYLES,\n ...DEFAULT_NEUTRAL_STYLES,\n\n // Override specifics for menu context\n display: 'flex',\n flow: 'row',\n justifyContent: 'stretch',\n listStyle: 'none',\n flexShrink: 0,\n height: {\n '': 'min $size-md',\n 'size=large': 'min $size-lg',\n },\n border: false,\n boxSizing: 'border-box',\n fill: {\n '': '#clear',\n focused: '#dark.03',\n selected: '#dark.09',\n 'selected & focused': '#dark.12',\n pressed: '#dark.09',\n disabled: '#clear',\n },\n color: {\n '': '#dark-02',\n 'selected | pressed': '#dark',\n disabled: '#dark-04',\n },\n cursor: {\n '': 'default',\n disabled: 'not-allowed',\n },\n shadow: '#clear',\n padding: {\n '': '.5x 1x',\n 'selectionIcon & selectable & !selected': '.5x 1x .5x (1x + 3x)',\n },\n gap: '.75x',\n outline: false,\n\n Description: {\n preset: 't4',\n color: '#dark-03',\n },\n },\n});\n\nexport const StyledSectionHeading = tasty(Space, {\n qa: 'SectionHeading',\n as: 'div',\n styles: {\n color: '#dark-04',\n preset: 'c2',\n height: '3x',\n placeContent: 'center space-between',\n padding: {\n '': '.5x .75x',\n prefix: '0 .75x 0 .5x',\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});\n"],"mappings":";;;;;;;AAMA,MAAa,oBAAoB,MAAM;CACrC,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,QAAQ;EACR,OAAO;GACL,IAAI;GACJ,SAAS;GACV;EACD,QAAQ;GACN,IAAI;GACJ,kBAAkB;GACnB;EACD,QAAQ;GACN,IAAI;GACJ,SAAS;GACT,MAAM;GACP;EACD,WAAW;EACZ;CACF,CAAC;AAEF,MAAa,aAAa,MAAM;CAC9B,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,KAAK;GACH,IAAI;GACJ,UAAU;GACX;EACD,WAAW;EACX,QAAQ;EACR,SAAS;GACP,IAAI;GACJ,SAAS;GACV;EACD,UAAU;GACR,IAAI;GACJ,SAAS;GACV;EACD,WAAW;EACZ;CACF,CAAC;AAEF,MAAa,gBAAgB,MAAM;CACjC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,WAAW;EACX,MAAM;EACN,QAAQ;EACR,YAAY;EACb;CACF,CAAC;AAEF,MAAa,eAAe,MAAM,OAAO;CACvC,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,cAAc;CACd,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,SAAS;EACT,QAAQ;EACR,WAAW;EACX,QAAQ;EACR,QAAQ;EAER,OAAO;GACL,IAAI;GACJ,cAAc;GACd,eAAe;GACf,cAAc;GACf;EACF;CACF,CAAC;AAEF,MAAa,eAAe,MAAM,OAAO;CACvC,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,SAAS;EACT,QAAQ;GACN,IAAI;GACJ,cAAc;GACf;EACD,WAAW;EACX,QAAQ;EACR,QAAQ;EACT;CACF,CAAC;AAEF,MAAa,gBAAgB,MAAM;CACjC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,SAAS;EACT,WAAW;EACX,MAAM;EACP;CACF,CAAC;AAEF,MAAa,aAAa,MAAM;CAC9B,IAAI;CACJ,IAAI;CACJ,QAAQ;EAEN,GAAG;EACH,GAAG;EAGH,SAAS;EACT,MAAM;EACN,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,QAAQ;GACN,IAAI;GACJ,cAAc;GACf;EACD,QAAQ;EACR,WAAW;EACX,MAAM;GACJ,IAAI;GACJ,SAAS;GACT,UAAU;GACV,sBAAsB;GACtB,SAAS;GACT,UAAU;GACX;EACD,OAAO;GACL,IAAI;GACJ,sBAAsB;GACtB,UAAU;GACX;EACD,QAAQ;GACN,IAAI;GACJ,UAAU;GACX;EACD,QAAQ;EACR,SAAS;GACP,IAAI;GACJ,0CAA0C;GAC3C;EACD,KAAK;EACL,SAAS;EAET,aAAa;GACX,QAAQ;GACR,OAAO;GACR;EACF;CACF,CAAC;AAEF,MAAa,uBAAuB,MAAM,OAAO;CAC/C,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,cAAc;EACd,SAAS;GACP,IAAI;GACJ,QAAQ;GACT;EAED,OAAO;GACL,IAAI;GACJ,cAAc;GACd,eAAe;GACf,cAAc;GACf;EACF;CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { ItemActionProvider, useItemActionContext } from "./ItemActionContext.js";
3
3
  import { openLink, parseTo, performClickHandler, useAction } from "./use-action.js";
4
4
  import { ItemAction } from "./ItemAction/ItemAction.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | 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 { useFocus as useFocus$1 } from "../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | 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 { generateRandomId } from "../../utils/random.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | 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 { generateRandomId } from "../../utils/random.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | 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 { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import themes_default from "../../../data/themes.js";
3
3
  import { useAlert } from "./use-alert.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useDeprecationWarning } from "../../../_internal/hooks/use-deprecation-warning.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, Element, filterBaseProps } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import themes_default from "../../../data/themes.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | 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";
@@ -11,7 +11,7 @@ const CardElement = tasty({
11
11
  display: "block",
12
12
  flow: "column",
13
13
  radius: "(1cr + 1bw)",
14
- fill: "#surface",
14
+ fill: "#white",
15
15
  border: "#border",
16
16
  padding: "1.5x",
17
17
  preset: "t3"
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","names":[],"sources":["../../../../src/components/content/Card/Card.tsx"],"sourcesContent":["import {\n AllBaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { extractStyles } from '../../../utils/styles';\n\nconst CardElement = tasty({\n role: 'region',\n styles: {\n display: 'block',\n flow: 'column',\n radius: '(1cr + 1bw)',\n fill: '#surface',\n border: '#border',\n padding: '1.5x',\n preset: 't3',\n },\n styleProps: CONTAINER_STYLES,\n});\n\nexport interface CubeCardProps\n extends Omit<AllBaseProps, 'title' | 'value' | 'placeholder' | 'text'>,\n ContainerStyleProps {}\n\nexport const Card = forwardRef(function Card(props: CubeCardProps, ref) {\n const styles = extractStyles(props, CONTAINER_STYLES);\n\n return (\n <CardElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n"],"mappings":";;;;;;;AAWA,MAAM,cAAc,MAAM;CACxB,MAAM;CACN,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,QAAQ;EACR,SAAS;EACT,QAAQ;EACT;CACD,YAAY;CACb,CAAC;AAMF,MAAa,OAAO,WAAW,SAAS,KAAK,OAAsB,KAAK;CACtE,MAAM,SAAS,cAAc,OAAO,iBAAiB;AAErD,QACE,oBAAC;EACC,GAAI,gBAAgB,OAAO,EAAE,YAAY,MAAM,CAAC;EAC3C;EACG;GACR;EAEJ"}
1
+ {"version":3,"file":"Card.js","names":[],"sources":["../../../../src/components/content/Card/Card.tsx"],"sourcesContent":["import {\n AllBaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { extractStyles } from '../../../utils/styles';\n\nconst CardElement = tasty({\n role: 'region',\n styles: {\n display: 'block',\n flow: 'column',\n radius: '(1cr + 1bw)',\n fill: '#white',\n border: '#border',\n padding: '1.5x',\n preset: 't3',\n },\n styleProps: CONTAINER_STYLES,\n});\n\nexport interface CubeCardProps\n extends Omit<AllBaseProps, 'title' | 'value' | 'placeholder' | 'text'>,\n ContainerStyleProps {}\n\nexport const Card = forwardRef(function Card(props: CubeCardProps, ref) {\n const styles = extractStyles(props, CONTAINER_STYLES);\n\n return (\n <CardElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n"],"mappings":";;;;;;;AAWA,MAAM,cAAc,MAAM;CACxB,MAAM;CACN,QAAQ;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,QAAQ;EACR,SAAS;EACT,QAAQ;EACT;CACD,YAAY;CACb,CAAC;AAMF,MAAa,OAAO,WAAW,SAAS,KAAK,OAAsB,KAAK;CACtE,MAAM,SAAS,cAAc,OAAO,iBAAiB;AAErD,QACE,oBAAC;EACC,GAAI,gBAAgB,OAAO,EAAE,YAAY,MAAM,CAAC;EAC3C;EACG;GACR;EAEJ"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
4
4
  import { CopyIcon } from "../../../icons/CopyIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
3
3
  import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.js";
4
4
  import { CopyIcon } from "../../../icons/CopyIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
@@ -39,7 +39,7 @@ const DisclosureRoot = tasty({
39
39
  },
40
40
  fill: {
41
41
  "": false,
42
- "shape=card": "#surface"
42
+ "shape=card": "#white"
43
43
  }
44
44
  }
45
45
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Disclosure.js","names":["ItemButton","useId"],"sources":["../../../../src/components/content/Disclosure/Disclosure.tsx"],"sourcesContent":["import {\n BaseProps,\n BasePropsWithoutChildren,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n createContext,\n forwardRef,\n Key,\n ReactNode,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport { mergeProps, useDisclosure, useId } from 'react-aria';\nimport {\n DisclosureGroupState,\n DisclosureState,\n useDisclosureGroupState,\n useDisclosureState,\n} from 'react-stately';\n\nimport { RightIcon } from '../../../icons';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { CubeItemButtonProps, ItemButton } from '../../actions/ItemButton';\nimport { DisplayTransition } from '../../helpers';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DisclosureStateContext {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n}\n\ninterface DisclosureContextValue {\n state: DisclosureState;\n buttonProps: Record<string, unknown>;\n panelProps: Record<string, unknown>;\n panelRef: RefObject<HTMLDivElement | null>;\n isDisabled: boolean;\n isExpanded: boolean;\n shape: 'default' | 'card' | 'sharp';\n transitionDuration?: number;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\ninterface DisclosureGroupContextValue {\n groupState: DisclosureGroupState;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\nexport interface CubeDisclosureProps\n extends BasePropsWithoutChildren,\n OuterStyleProps {\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Render-prop alternative to achieve custom trigger markup */\n children?: ReactNode | ((state: DisclosureStateContext) => ReactNode);\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n /** Duration for DisplayTransition animation in milliseconds */\n transitionDuration?: number;\n}\n\nexport interface CubeDisclosureTriggerProps\n extends Omit<CubeItemButtonProps, 'onPress' | 'isDisabled'> {\n /** Children content for the trigger */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureContentProps extends BaseProps {\n /** Children content for the panel */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureGroupProps extends BaseProps, OuterStyleProps {\n /** Allow more than one disclosure to be open */\n allowsMultipleExpanded?: boolean;\n /** Controlled expanded keys */\n expandedKeys?: Iterable<Key>;\n /** Uncontrolled default expanded keys */\n defaultExpandedKeys?: Iterable<Key>;\n /** Change handler providing the full expanded keys Set */\n onExpandedChange?: (keys: Set<Key>) => void;\n /** Disable all disclosures within group and force-close their content */\n isDisabled?: boolean;\n /** Props forwarded to all ItemButton triggers in the group */\n triggerProps?: Partial<CubeItemButtonProps>;\n /** Optional panel styles applied to all Content panels in the group */\n contentStyles?: Styles;\n children: ReactNode;\n}\n\nexport interface CubeDisclosureItemProps\n extends Omit<BasePropsWithoutChildren, 'id'>,\n OuterStyleProps {\n /** Unique identifier for the disclosure item in a group */\n id?: Key;\n /** Children content */\n children?: ReactNode;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n}\n\n// ============================================================================\n// Contexts\n// ============================================================================\n\nconst DisclosureContext = createContext<DisclosureContextValue | null>(null);\nconst DisclosureGroupContext =\n createContext<DisclosureGroupContextValue | null>(null);\n\nfunction useDisclosureContext(): DisclosureContextValue {\n const context = useContext(DisclosureContext);\n\n if (!context) {\n throw new Error(\n 'Disclosure.Trigger and Disclosure.Content must be used within a Disclosure',\n );\n }\n\n return context;\n}\n\nfunction useDisclosureGroupContext(): DisclosureGroupContextValue | null {\n return useContext(DisclosureGroupContext);\n}\n\n// ============================================================================\n// Styled Components\n// ============================================================================\n\nconst DisclosureRoot = tasty({\n qa: 'Disclosure',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: 0,\n position: 'relative',\n border: {\n '': 'none',\n 'shape=card': '1bw solid #border',\n },\n radius: {\n '': '1r',\n 'shape=card': '1cr',\n 'shape=sharp': '0',\n },\n fill: {\n '': false,\n 'shape=card': '#surface',\n },\n },\n});\n\nconst ContentWrapperElement = tasty({\n qa: 'DisclosureContentWrapper',\n styles: {\n display: 'block',\n overflow: 'hidden',\n interpolateSize: 'allow-keywords',\n height: {\n '': 0,\n shown: 'max-content',\n },\n transition: 'height $disclosure-transition',\n },\n});\n\nconst ContentElement = tasty({\n qa: 'DisclosureContent',\n styles: {\n display: 'block',\n flow: 'column',\n contentVisibility: 'auto',\n },\n});\n\nconst GroupRoot = tasty({\n qa: 'DisclosureGroup',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: '0',\n },\n});\n\nconst TriggerIcon = tasty(RightIcon, {\n styles: {\n transition: 'rotate',\n rotate: {\n '': '0deg',\n expanded: '90deg',\n },\n },\n});\n\nconst StyledTrigger = tasty(ItemButton, {\n qa: 'DisclosureTrigger',\n type: 'header',\n styles: {\n radius: {\n '': '1r',\n 'expanded & shape=card': '(1cr - 1bw) (1cr - 1bw) 0 0',\n 'shape=sharp': '0',\n },\n border: '#clear',\n },\n});\n\n// ============================================================================\n// Disclosure Component\n// ============================================================================\n\nconst DisclosureComponent = forwardRef<HTMLDivElement, CubeDisclosureProps>(\n function Disclosure(props, ref) {\n const {\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n isDisabled = false,\n children,\n shape = 'default',\n transitionDuration,\n qa,\n mods,\n ...otherProps\n } = props;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled ? false : controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange: isDisabled ? undefined : onExpandedChange,\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const stateContext = useMemo<DisclosureStateContext>(\n () => ({\n isExpanded,\n toggle: state.toggle,\n expand: state.expand,\n collapse: state.collapse,\n }),\n [isExpanded, state.toggle, state.expand, state.collapse],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n const content =\n typeof children === 'function' ? children(stateContext) : children;\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot ref={ref} qa={qa} mods={finalMods} styles={outerStyles}>\n {content}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Trigger Component\n// ============================================================================\n\nconst DisclosureTrigger = forwardRef<\n HTMLButtonElement,\n CubeDisclosureTriggerProps\n>(function DisclosureTrigger(props, ref) {\n const { children, icon, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const { buttonProps, isDisabled, isExpanded, shape, triggerProps } = context;\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n selected: false,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n // Default icon is a rotating chevron\n const defaultIcon = <TriggerIcon mods={{ expanded: isExpanded }} />;\n\n return (\n <StyledTrigger\n ref={ref}\n icon={icon ?? defaultIcon}\n isDisabled={isDisabled}\n isSelected={isExpanded}\n {...triggerProps}\n {...(mergeProps(otherProps, buttonProps as any) as any)}\n mods={finalMods}\n >\n {children}\n </StyledTrigger>\n );\n});\n\n// ============================================================================\n// Disclosure.Content Component\n// ============================================================================\n\nconst DisclosureContent = forwardRef<\n HTMLDivElement,\n CubeDisclosureContentProps\n>(function DisclosureContent(props, ref) {\n const { children, styles, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const {\n panelProps,\n panelRef,\n isExpanded,\n transitionDuration,\n contentStyles,\n } = context;\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...contentStyles,\n ...styles,\n }),\n [contentStyles, styles],\n );\n\n // Filter out hidden attribute from panelProps since we manage visibility via CSS height animation\n const { hidden, ...filteredPanelProps } = panelProps as Record<\n string,\n unknown\n >;\n\n return (\n <DisplayTransition\n isShown={isExpanded}\n duration={transitionDuration}\n animateOnMount={false}\n >\n {({ phase, isShown, ref: transitionRef }) => (\n <ContentWrapperElement\n ref={transitionRef}\n mods={{ shown: isShown, phase }}\n tokens={\n transitionDuration != null\n ? { '$disclosure-transition': `${transitionDuration}ms` }\n : undefined\n }\n >\n <ContentElement\n ref={mergeRefs(ref, panelRef)}\n mods={mods}\n styles={mergedStyles}\n {...filteredPanelProps}\n {...otherProps}\n >\n {children}\n </ContentElement>\n </ContentWrapperElement>\n )}\n </DisplayTransition>\n );\n});\n\n// ============================================================================\n// Disclosure.Group Component\n// ============================================================================\n\nconst DisclosureGroup = forwardRef<HTMLDivElement, CubeDisclosureGroupProps>(\n function DisclosureGroup(props, ref) {\n const {\n allowsMultipleExpanded = false,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled = false,\n triggerProps,\n contentStyles,\n children,\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const groupState = useDisclosureGroupState({\n allowsMultipleExpanded,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled,\n });\n\n const contextValue = useMemo<DisclosureGroupContextValue>(\n () => ({\n groupState,\n triggerProps,\n contentStyles,\n }),\n [groupState, triggerProps, contentStyles],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n return (\n <DisclosureGroupContext.Provider value={contextValue}>\n <GroupRoot ref={ref} qa={qa} mods={mods} styles={finalStyles}>\n {children}\n </GroupRoot>\n </DisclosureGroupContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Item Component\n// ============================================================================\n\nconst DisclosureItem = forwardRef<HTMLDivElement, CubeDisclosureItemProps>(\n function DisclosureItem(props, ref) {\n const {\n id: providedId,\n children,\n isDisabled: itemDisabled = false,\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n shape = 'default',\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const defaultId = useId();\n const id = providedId ?? defaultId;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // Determine if disabled from group or item\n const isDisabled =\n itemDisabled || groupContext?.groupState?.isDisabled || false;\n\n // Determine expanded state from group or local props\n const groupIsExpanded = groupContext\n ? groupContext.groupState.expandedKeys.has(id)\n : undefined;\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled\n ? false\n : groupIsExpanded ?? controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange(expanded) {\n if (isDisabled) return;\n\n if (groupContext) {\n groupContext.groupState.toggleKey(id);\n }\n onExpandedChange?.(expanded);\n },\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration: undefined,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot\n ref={ref}\n qa={qa}\n mods={finalMods}\n styles={finalStyles}\n data-key={id}\n >\n {children}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nconst _Disclosure = Object.assign(DisclosureComponent, {\n Trigger: DisclosureTrigger,\n Content: DisclosureContent,\n Group: DisclosureGroup,\n Item: DisclosureItem,\n});\n\nexport { _Disclosure as Disclosure };\nexport type {\n CubeDisclosureProps as DisclosureProps,\n CubeDisclosureTriggerProps as DisclosureTriggerProps,\n CubeDisclosureContentProps as DisclosureContentProps,\n CubeDisclosureGroupProps as DisclosureGroupProps,\n CubeDisclosureItemProps as DisclosureItemProps,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Disclosure.js","names":["ItemButton","useId"],"sources":["../../../../src/components/content/Disclosure/Disclosure.tsx"],"sourcesContent":["import {\n BaseProps,\n BasePropsWithoutChildren,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n createContext,\n forwardRef,\n Key,\n ReactNode,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport { mergeProps, useDisclosure, useId } from 'react-aria';\nimport {\n DisclosureGroupState,\n DisclosureState,\n useDisclosureGroupState,\n useDisclosureState,\n} from 'react-stately';\n\nimport { RightIcon } from '../../../icons';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { CubeItemButtonProps, ItemButton } from '../../actions/ItemButton';\nimport { DisplayTransition } from '../../helpers';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DisclosureStateContext {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n}\n\ninterface DisclosureContextValue {\n state: DisclosureState;\n buttonProps: Record<string, unknown>;\n panelProps: Record<string, unknown>;\n panelRef: RefObject<HTMLDivElement | null>;\n isDisabled: boolean;\n isExpanded: boolean;\n shape: 'default' | 'card' | 'sharp';\n transitionDuration?: number;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\ninterface DisclosureGroupContextValue {\n groupState: DisclosureGroupState;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\nexport interface CubeDisclosureProps\n extends BasePropsWithoutChildren,\n OuterStyleProps {\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Render-prop alternative to achieve custom trigger markup */\n children?: ReactNode | ((state: DisclosureStateContext) => ReactNode);\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n /** Duration for DisplayTransition animation in milliseconds */\n transitionDuration?: number;\n}\n\nexport interface CubeDisclosureTriggerProps\n extends Omit<CubeItemButtonProps, 'onPress' | 'isDisabled'> {\n /** Children content for the trigger */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureContentProps extends BaseProps {\n /** Children content for the panel */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureGroupProps extends BaseProps, OuterStyleProps {\n /** Allow more than one disclosure to be open */\n allowsMultipleExpanded?: boolean;\n /** Controlled expanded keys */\n expandedKeys?: Iterable<Key>;\n /** Uncontrolled default expanded keys */\n defaultExpandedKeys?: Iterable<Key>;\n /** Change handler providing the full expanded keys Set */\n onExpandedChange?: (keys: Set<Key>) => void;\n /** Disable all disclosures within group and force-close their content */\n isDisabled?: boolean;\n /** Props forwarded to all ItemButton triggers in the group */\n triggerProps?: Partial<CubeItemButtonProps>;\n /** Optional panel styles applied to all Content panels in the group */\n contentStyles?: Styles;\n children: ReactNode;\n}\n\nexport interface CubeDisclosureItemProps\n extends Omit<BasePropsWithoutChildren, 'id'>,\n OuterStyleProps {\n /** Unique identifier for the disclosure item in a group */\n id?: Key;\n /** Children content */\n children?: ReactNode;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n}\n\n// ============================================================================\n// Contexts\n// ============================================================================\n\nconst DisclosureContext = createContext<DisclosureContextValue | null>(null);\nconst DisclosureGroupContext =\n createContext<DisclosureGroupContextValue | null>(null);\n\nfunction useDisclosureContext(): DisclosureContextValue {\n const context = useContext(DisclosureContext);\n\n if (!context) {\n throw new Error(\n 'Disclosure.Trigger and Disclosure.Content must be used within a Disclosure',\n );\n }\n\n return context;\n}\n\nfunction useDisclosureGroupContext(): DisclosureGroupContextValue | null {\n return useContext(DisclosureGroupContext);\n}\n\n// ============================================================================\n// Styled Components\n// ============================================================================\n\nconst DisclosureRoot = tasty({\n qa: 'Disclosure',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: 0,\n position: 'relative',\n border: {\n '': 'none',\n 'shape=card': '1bw solid #border',\n },\n radius: {\n '': '1r',\n 'shape=card': '1cr',\n 'shape=sharp': '0',\n },\n fill: {\n '': false,\n 'shape=card': '#white',\n },\n },\n});\n\nconst ContentWrapperElement = tasty({\n qa: 'DisclosureContentWrapper',\n styles: {\n display: 'block',\n overflow: 'hidden',\n interpolateSize: 'allow-keywords',\n height: {\n '': 0,\n shown: 'max-content',\n },\n transition: 'height $disclosure-transition',\n },\n});\n\nconst ContentElement = tasty({\n qa: 'DisclosureContent',\n styles: {\n display: 'block',\n flow: 'column',\n contentVisibility: 'auto',\n },\n});\n\nconst GroupRoot = tasty({\n qa: 'DisclosureGroup',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: '0',\n },\n});\n\nconst TriggerIcon = tasty(RightIcon, {\n styles: {\n transition: 'rotate',\n rotate: {\n '': '0deg',\n expanded: '90deg',\n },\n },\n});\n\nconst StyledTrigger = tasty(ItemButton, {\n qa: 'DisclosureTrigger',\n type: 'header',\n styles: {\n radius: {\n '': '1r',\n 'expanded & shape=card': '(1cr - 1bw) (1cr - 1bw) 0 0',\n 'shape=sharp': '0',\n },\n border: '#clear',\n },\n});\n\n// ============================================================================\n// Disclosure Component\n// ============================================================================\n\nconst DisclosureComponent = forwardRef<HTMLDivElement, CubeDisclosureProps>(\n function Disclosure(props, ref) {\n const {\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n isDisabled = false,\n children,\n shape = 'default',\n transitionDuration,\n qa,\n mods,\n ...otherProps\n } = props;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled ? false : controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange: isDisabled ? undefined : onExpandedChange,\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const stateContext = useMemo<DisclosureStateContext>(\n () => ({\n isExpanded,\n toggle: state.toggle,\n expand: state.expand,\n collapse: state.collapse,\n }),\n [isExpanded, state.toggle, state.expand, state.collapse],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n const content =\n typeof children === 'function' ? children(stateContext) : children;\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot ref={ref} qa={qa} mods={finalMods} styles={outerStyles}>\n {content}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Trigger Component\n// ============================================================================\n\nconst DisclosureTrigger = forwardRef<\n HTMLButtonElement,\n CubeDisclosureTriggerProps\n>(function DisclosureTrigger(props, ref) {\n const { children, icon, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const { buttonProps, isDisabled, isExpanded, shape, triggerProps } = context;\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n selected: false,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n // Default icon is a rotating chevron\n const defaultIcon = <TriggerIcon mods={{ expanded: isExpanded }} />;\n\n return (\n <StyledTrigger\n ref={ref}\n icon={icon ?? defaultIcon}\n isDisabled={isDisabled}\n isSelected={isExpanded}\n {...triggerProps}\n {...(mergeProps(otherProps, buttonProps as any) as any)}\n mods={finalMods}\n >\n {children}\n </StyledTrigger>\n );\n});\n\n// ============================================================================\n// Disclosure.Content Component\n// ============================================================================\n\nconst DisclosureContent = forwardRef<\n HTMLDivElement,\n CubeDisclosureContentProps\n>(function DisclosureContent(props, ref) {\n const { children, styles, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const {\n panelProps,\n panelRef,\n isExpanded,\n transitionDuration,\n contentStyles,\n } = context;\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...contentStyles,\n ...styles,\n }),\n [contentStyles, styles],\n );\n\n // Filter out hidden attribute from panelProps since we manage visibility via CSS height animation\n const { hidden, ...filteredPanelProps } = panelProps as Record<\n string,\n unknown\n >;\n\n return (\n <DisplayTransition\n isShown={isExpanded}\n duration={transitionDuration}\n animateOnMount={false}\n >\n {({ phase, isShown, ref: transitionRef }) => (\n <ContentWrapperElement\n ref={transitionRef}\n mods={{ shown: isShown, phase }}\n tokens={\n transitionDuration != null\n ? { '$disclosure-transition': `${transitionDuration}ms` }\n : undefined\n }\n >\n <ContentElement\n ref={mergeRefs(ref, panelRef)}\n mods={mods}\n styles={mergedStyles}\n {...filteredPanelProps}\n {...otherProps}\n >\n {children}\n </ContentElement>\n </ContentWrapperElement>\n )}\n </DisplayTransition>\n );\n});\n\n// ============================================================================\n// Disclosure.Group Component\n// ============================================================================\n\nconst DisclosureGroup = forwardRef<HTMLDivElement, CubeDisclosureGroupProps>(\n function DisclosureGroup(props, ref) {\n const {\n allowsMultipleExpanded = false,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled = false,\n triggerProps,\n contentStyles,\n children,\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const groupState = useDisclosureGroupState({\n allowsMultipleExpanded,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled,\n });\n\n const contextValue = useMemo<DisclosureGroupContextValue>(\n () => ({\n groupState,\n triggerProps,\n contentStyles,\n }),\n [groupState, triggerProps, contentStyles],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n return (\n <DisclosureGroupContext.Provider value={contextValue}>\n <GroupRoot ref={ref} qa={qa} mods={mods} styles={finalStyles}>\n {children}\n </GroupRoot>\n </DisclosureGroupContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Item Component\n// ============================================================================\n\nconst DisclosureItem = forwardRef<HTMLDivElement, CubeDisclosureItemProps>(\n function DisclosureItem(props, ref) {\n const {\n id: providedId,\n children,\n isDisabled: itemDisabled = false,\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n shape = 'default',\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const defaultId = useId();\n const id = providedId ?? defaultId;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // Determine if disabled from group or item\n const isDisabled =\n itemDisabled || groupContext?.groupState?.isDisabled || false;\n\n // Determine expanded state from group or local props\n const groupIsExpanded = groupContext\n ? groupContext.groupState.expandedKeys.has(id)\n : undefined;\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled\n ? false\n : groupIsExpanded ?? controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange(expanded) {\n if (isDisabled) return;\n\n if (groupContext) {\n groupContext.groupState.toggleKey(id);\n }\n onExpandedChange?.(expanded);\n },\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration: undefined,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot\n ref={ref}\n qa={qa}\n mods={finalMods}\n styles={finalStyles}\n data-key={id}\n >\n {children}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nconst _Disclosure = Object.assign(DisclosureComponent, {\n Trigger: DisclosureTrigger,\n Content: DisclosureContent,\n Group: DisclosureGroup,\n Item: DisclosureItem,\n});\n\nexport { _Disclosure as Disclosure };\nexport type {\n CubeDisclosureProps as DisclosureProps,\n CubeDisclosureTriggerProps as DisclosureTriggerProps,\n CubeDisclosureContentProps as DisclosureContentProps,\n CubeDisclosureGroupProps as DisclosureGroupProps,\n CubeDisclosureItemProps as DisclosureItemProps,\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../utils/react/Slots.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { _Text } from "../Text.js";
4
4
  import { useKeySymbols } from "../../../utils/react/useKeySymbols.js";
@@ -1,7 +1,9 @@
1
1
 
2
+ import { AutoTooltipValue } from "../use-auto-tooltip.js";
2
3
  import { BaseProps, BlockStyleProps, ColorStyleProps, OuterStyleProps, Styles } from "@tenphi/tasty";
3
4
  import * as react from "react";
4
5
  import { ReactNode } from "react";
6
+ import { OverlayProps } from "react-aria";
5
7
 
6
8
  //#region src/components/content/InlineInput/InlineInput.d.ts
7
9
  type CubeInlineInputEditTrigger = 'dblclick' | 'click' | 'none';
@@ -35,6 +37,17 @@ interface CubeInlineInputProps extends BaseProps, BlockStyleProps, OuterStylePro
35
37
  onCancel?: () => void;
36
38
  /** How edit mode is activated from the display element. Default: `'dblclick'`. */
37
39
  editTrigger?: CubeInlineInputEditTrigger;
40
+ /**
41
+ * When true (default) the display element is keyboard-focusable and
42
+ * responds to `Enter`, `F2` and `Space` by entering edit mode. Set to
43
+ * `false` when a host (e.g. an editable tab inside a button) already
44
+ * routes keyboard activation through `ref.startEditing()` — exposing the
45
+ * display element as a separate tab stop would create a nested keyboard
46
+ * focus inside the host.
47
+ *
48
+ * @default true
49
+ */
50
+ keyboardActivation?: boolean;
38
51
  /** Whether to submit when focus leaves the input. Default: `true`. */
39
52
  submitOnBlur?: boolean;
40
53
  /** Whether to trim the value on submit. Default: `true`. */
@@ -53,6 +66,18 @@ interface CubeInlineInputProps extends BaseProps, BlockStyleProps, OuterStylePro
53
66
  'aria-label'?: string;
54
67
  /** ARIA labelledby for the input. */
55
68
  'aria-labelledby'?: string;
69
+ /**
70
+ * Tooltip behaviour for the display value:
71
+ * - `true` (default): auto-tooltip — show the full value when the text is truncated.
72
+ * - `false`: never show a tooltip.
73
+ * - `string`: always show this tooltip text.
74
+ * - object: full `TooltipProvider` configuration (with optional `auto`).
75
+ *
76
+ * The tooltip is automatically suppressed while editing and when `renderDisplay` is used.
77
+ */
78
+ tooltip?: AutoTooltipValue;
79
+ /** Default tooltip placement. @default 'top' */
80
+ tooltipPlacement?: OverlayProps['placement'];
56
81
  /** Convenience prop for styling the `Input` sub-element. Merged into `styles.Input`. */
57
82
  inputStyles?: Styles;
58
83
  }
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-57f1bfe | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ffc66c6 | 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";
5
+ import { useAutoTooltip } from "../use-auto-tooltip.js";
5
6
  import { BLOCK_STYLES, COLOR_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
6
7
  import { forwardRef, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
7
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -12,9 +13,19 @@ import { useControlledState } from "@react-stately/utils";
12
13
  const InlineInputRoot = tasty({
13
14
  as: "span",
14
15
  styles: {
15
- display: "inline-flex",
16
+ display: "inline-block",
16
17
  verticalAlign: "baseline",
17
18
  position: "relative",
19
+ maxWidth: "100%",
20
+ whiteSpace: {
21
+ "": "nowrap",
22
+ editing: "normal"
23
+ },
24
+ overflow: {
25
+ "": "hidden",
26
+ editing: "visible"
27
+ },
28
+ textOverflow: "ellipsis",
18
29
  color: "inherit",
19
30
  preset: "inherit",
20
31
  cursor: {
@@ -63,7 +74,7 @@ const STYLE_PROPS = [
63
74
  * works regardless of `editTrigger`.
64
75
  */
65
76
  const InlineInput = forwardRef(function InlineInput(allProps, ref) {
66
- const { value: valueProp, defaultValue, onChange, isEditing: isEditingProp, defaultIsEditing, onEditingChange, onSubmit, onCancel, editTrigger = "dblclick", submitOnBlur = true, trimOnSubmit = true, allowEmpty = false, isDisabled = false, isReadOnly = false, placeholder, renderDisplay, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, qa, qaVal, styles: stylesProp, inputStyles, mods: customMods, tokens: customTokens, ...otherProps } = allProps;
77
+ const { value: valueProp, defaultValue, onChange, isEditing: isEditingProp, defaultIsEditing, onEditingChange, onSubmit, onCancel, editTrigger = "dblclick", keyboardActivation = true, submitOnBlur = true, trimOnSubmit = true, allowEmpty = false, isDisabled = false, isReadOnly = false, placeholder, renderDisplay, tooltip = true, tooltipPlacement = "top", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, qa, qaVal, styles: stylesProp, inputStyles, mods: customMods, tokens: customTokens, ...otherProps } = allProps;
67
78
  const isControlled = valueProp !== void 0;
68
79
  const inputRef = useRef(null);
69
80
  const measureRef = useRef(null);
@@ -76,7 +87,9 @@ const InlineInput = forwardRef(function InlineInput(allProps, ref) {
76
87
  const [inputWidth, setInputWidth] = useState(null);
77
88
  const submitTokenRef = useRef(0);
78
89
  const isEditingRef = useRef(isEditing);
79
- isEditingRef.current = isEditing;
90
+ useLayoutEffect(() => {
91
+ isEditingRef.current = isEditing;
92
+ }, [isEditing]);
80
93
  useEffect(() => {
81
94
  setOptimisticValue(null);
82
95
  }, [value]);
@@ -154,26 +167,31 @@ const InlineInput = forwardRef(function InlineInput(allProps, ref) {
154
167
  }
155
168
  });
156
169
  const handleDblClick = useEvent((e) => {
157
- if (editTrigger !== "dblclick") return;
158
170
  e.preventDefault();
159
171
  e.stopPropagation();
160
172
  enterEditing();
161
173
  });
162
174
  const handleClick = useEvent((e) => {
163
- if (editTrigger !== "click") return;
164
175
  e.preventDefault();
165
176
  e.stopPropagation();
166
177
  enterEditing();
167
178
  });
179
+ const handleRootKeyDown = useEvent((e) => {
180
+ if (e.key === "Enter" || e.key === "F2" || e.key === " ") {
181
+ e.preventDefault();
182
+ e.stopPropagation();
183
+ enterEditing();
184
+ }
185
+ });
168
186
  useImperativeHandle(ref, () => ({
169
187
  startEditing: () => enterEditing(),
170
188
  stopEditing: (submit = true) => {
171
- if (!isEditing) return;
189
+ if (!isEditingRef.current) return;
172
190
  if (submit) commit(draft);
173
191
  else cancel();
174
192
  },
175
193
  focus: () => {
176
- if (isEditing) inputRef.current?.focus();
194
+ if (isEditingRef.current) inputRef.current?.focus();
177
195
  else rootRef.current?.focus();
178
196
  },
179
197
  getValue: () => displayedValue
@@ -182,8 +200,7 @@ const InlineInput = forwardRef(function InlineInput(allProps, ref) {
182
200
  commit,
183
201
  cancel,
184
202
  draft,
185
- displayedValue,
186
- isEditing
203
+ displayedValue
187
204
  ]);
188
205
  const isEditable = editTrigger !== "none" && !isDisabled && !isReadOnly;
189
206
  const mods = useMemo(() => ({
@@ -222,41 +239,68 @@ const InlineInput = forwardRef(function InlineInput(allProps, ref) {
222
239
  children: placeholder
223
240
  }) : "");
224
241
  const baseProps = filterBaseProps(otherProps, { eventProps: true });
225
- return /* @__PURE__ */ jsx(InlineInputRoot, {
226
- ref: rootRef,
227
- qa: qa ?? "InlineInput",
228
- qaVal,
229
- mods,
230
- tokens,
231
- styles: extractedStyles,
232
- ...mergeProps$1(baseProps, focusWithinProps, {
233
- onDoubleClick: isEditing ? void 0 : handleDblClick,
234
- onClick: isEditing ? void 0 : handleClick
235
- }),
236
- children: isEditing ? /* @__PURE__ */ jsxs(FocusScope, {
237
- autoFocus: true,
238
- restoreFocus: false,
239
- contain: false,
240
- children: [/* @__PURE__ */ jsx("span", {
241
- ref: measureRef,
242
- "data-element": "Measure",
243
- "aria-hidden": "true",
244
- children: draft || placeholder || " "
245
- }), /* @__PURE__ */ jsx("input", {
246
- ref: inputRef,
247
- "data-element": "Input",
248
- type: "text",
249
- value: draft,
250
- placeholder,
251
- disabled: isDisabled,
252
- readOnly: isReadOnly,
253
- "aria-label": ariaLabel,
254
- "aria-labelledby": ariaLabelledby,
255
- onChange: handleInputChange,
256
- onKeyDown: handleKeyDown
257
- })]
258
- }) : displayContent
242
+ const { labelRef: tooltipLabelRef, renderWithTooltip } = useAutoTooltip({
243
+ tooltip: isEditing || renderDisplay ? false : tooltip,
244
+ children: displayedValue
259
245
  });
246
+ const wantsClick = !isEditing && isEditable && editTrigger === "click";
247
+ const wantsDblClick = !isEditing && isEditable && editTrigger === "dblclick";
248
+ const wantsKeyboard = !isEditing && isEditable && keyboardActivation;
249
+ const renderRoot = (triggerProps, tooltipRef) => {
250
+ const handleRootRef = (element) => {
251
+ rootRef.current = element;
252
+ if (tooltipRef) tooltipRef.current = element;
253
+ tooltipLabelRef(element);
254
+ };
255
+ const a11yProps = {};
256
+ if (wantsKeyboard) {
257
+ a11yProps.tabIndex = 0;
258
+ a11yProps.role = "button";
259
+ a11yProps["aria-roledescription"] = "editable text";
260
+ if (ariaLabel) a11yProps["aria-label"] = ariaLabel;
261
+ if (ariaLabelledby) a11yProps["aria-labelledby"] = ariaLabelledby;
262
+ }
263
+ if (isDisabled) a11yProps["aria-disabled"] = true;
264
+ if (isReadOnly) a11yProps["aria-readonly"] = true;
265
+ return /* @__PURE__ */ jsx(InlineInputRoot, {
266
+ ref: handleRootRef,
267
+ qa: qa ?? "InlineInput",
268
+ qaVal,
269
+ mods,
270
+ tokens,
271
+ styles: extractedStyles,
272
+ ...mergeProps$1(baseProps, focusWithinProps, triggerProps ?? {}, {
273
+ onDoubleClick: wantsDblClick ? handleDblClick : void 0,
274
+ onClick: wantsClick ? handleClick : void 0,
275
+ onKeyDown: wantsKeyboard ? handleRootKeyDown : void 0,
276
+ ...a11yProps
277
+ }),
278
+ children: isEditing ? /* @__PURE__ */ jsxs(FocusScope, {
279
+ autoFocus: true,
280
+ restoreFocus: false,
281
+ contain: false,
282
+ children: [/* @__PURE__ */ jsx("span", {
283
+ ref: measureRef,
284
+ "data-element": "Measure",
285
+ "aria-hidden": "true",
286
+ children: draft || placeholder || " "
287
+ }), /* @__PURE__ */ jsx("input", {
288
+ ref: inputRef,
289
+ "data-element": "Input",
290
+ type: "text",
291
+ value: draft,
292
+ placeholder,
293
+ disabled: isDisabled,
294
+ readOnly: isReadOnly,
295
+ "aria-label": ariaLabel,
296
+ "aria-labelledby": ariaLabelledby,
297
+ onChange: handleInputChange,
298
+ onKeyDown: handleKeyDown
299
+ })]
300
+ }) : displayContent
301
+ });
302
+ };
303
+ return renderWithTooltip(renderRoot, tooltipPlacement);
260
304
  });
261
305
 
262
306
  //#endregion