@cube-dev/ui-kit 0.157.1 → 0.157.3

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 (519) hide show
  1. package/dist/CHANGELOG.md +83 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +1 -1
  86. package/dist/components/content/Text.d.ts +14 -14
  87. package/dist/components/content/Text.js +1 -1
  88. package/dist/components/content/TextItem/TextItem.js +1 -1
  89. package/dist/components/content/Title.js +1 -1
  90. package/dist/components/content/Tree/Tree.js +1 -1
  91. package/dist/components/content/Tree/TreeNode.js +1 -1
  92. package/dist/components/content/Tree/styled.js +1 -1
  93. package/dist/components/content/Tree/tree-index.js +1 -1
  94. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  95. package/dist/components/content/Tree/use-load-data.js +1 -1
  96. package/dist/components/content/highlightText.js +1 -1
  97. package/dist/components/content/use-auto-tooltip.js +1 -1
  98. package/dist/components/data/DataTable/DataTable.js +1 -1
  99. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  104. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  105. package/dist/components/data/TableBase/RowCollection.js +1 -1
  106. package/dist/components/data/TableBase/TableRow.js +1 -1
  107. package/dist/components/data/TableBase/TableView.js +1 -1
  108. package/dist/components/data/TableBase/row-menu.js +1 -1
  109. package/dist/components/data/TableBase/styled.js +1 -1
  110. package/dist/components/data/TableBase/types.js +1 -1
  111. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  112. package/dist/components/data/TableBase/use-container-width.js +1 -1
  113. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  114. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  115. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  116. package/dist/components/data/TableBase/use-table-search.js +1 -1
  117. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  118. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  119. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  120. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  121. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  122. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  123. package/dist/components/fields/Checkbox/context.js +1 -1
  124. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  125. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  126. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  127. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  128. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  129. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  130. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  131. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  132. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  133. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  134. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  135. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  136. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  137. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  138. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  139. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  140. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  141. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  142. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  143. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  144. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  145. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  146. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  147. package/dist/components/fields/DatePicker/period.js +1 -1
  148. package/dist/components/fields/DatePicker/props.js +1 -1
  149. package/dist/components/fields/DatePicker/utils.js +1 -1
  150. package/dist/components/fields/FileInput/FileInput.js +1 -1
  151. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  152. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  153. package/dist/components/fields/Input/Input.js +1 -1
  154. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  155. package/dist/components/fields/ListBox/ListBox.js +1 -1
  156. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  157. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  158. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  159. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  160. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  161. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  162. package/dist/components/fields/Picker/Picker.js +1 -1
  163. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  164. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  165. package/dist/components/fields/RadioGroup/context.js +1 -1
  166. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  167. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  168. package/dist/components/fields/Select/Select.js +1 -1
  169. package/dist/components/fields/Slider/Gradation.js +1 -1
  170. package/dist/components/fields/Slider/HueSlider.js +1 -1
  171. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  172. package/dist/components/fields/Slider/Slider.js +1 -1
  173. package/dist/components/fields/Slider/SliderBase.js +1 -1
  174. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  175. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  176. package/dist/components/fields/Slider/elements.js +1 -1
  177. package/dist/components/fields/Slider/index.js +1 -1
  178. package/dist/components/fields/Switch/Switch.js +1 -1
  179. package/dist/components/fields/TextArea/TextArea.js +1 -1
  180. package/dist/components/fields/TextInput/TextInput.js +1 -1
  181. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  182. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  183. package/dist/components/fields/color/ColorPanel.js +1 -1
  184. package/dist/components/fields/color/ColorSwatch.js +1 -1
  185. package/dist/components/fields/color/channels.js +1 -1
  186. package/dist/components/fields/color/color.js +1 -1
  187. package/dist/components/fields/color/context.js +1 -1
  188. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  189. package/dist/components/form/Form/Field.js +1 -1
  190. package/dist/components/form/Form/Form.js +1 -1
  191. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  192. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  193. package/dist/components/form/Form/SubmitError.js +1 -1
  194. package/dist/components/form/Form/index.js +1 -1
  195. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  196. package/dist/components/form/Form/use-field/use-field.js +1 -1
  197. package/dist/components/form/Form/use-form.js +1 -1
  198. package/dist/components/form/Form/validation.js +1 -1
  199. package/dist/components/form/Label.js +1 -1
  200. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  201. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  202. package/dist/components/form/validation/use-validation-props.js +1 -1
  203. package/dist/components/form/wrapper.js +1 -1
  204. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +10 -7
  205. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  206. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  207. package/dist/components/layout/Board/Board.js +1 -1
  208. package/dist/components/layout/Board/BoardProvider.js +1 -1
  209. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  210. package/dist/components/layout/Board/Widget.js +1 -1
  211. package/dist/components/layout/Board/WidgetHost.js +1 -1
  212. package/dist/components/layout/Board/board-context.js +1 -1
  213. package/dist/components/layout/Board/board-store.js +1 -1
  214. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  215. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  216. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  217. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  218. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  219. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  220. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  221. package/dist/components/layout/Board/index.js +1 -1
  222. package/dist/components/layout/Board/responsive-utils.js +1 -1
  223. package/dist/components/layout/Board/use-board-layout.js +1 -1
  224. package/dist/components/layout/Board/use-board-registry.js +1 -1
  225. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  226. package/dist/components/layout/Board/use-board-selection.js +1 -1
  227. package/dist/components/layout/Flex.js +1 -1
  228. package/dist/components/layout/Flow.js +1 -1
  229. package/dist/components/layout/Grid.js +1 -1
  230. package/dist/components/layout/Panel.js +1 -1
  231. package/dist/components/layout/Prefix.js +1 -1
  232. package/dist/components/layout/ResizablePanel.d.ts +8 -1
  233. package/dist/components/layout/ResizablePanel.js +1 -1
  234. package/dist/components/layout/ResizablePanel.js.map +1 -1
  235. package/dist/components/layout/Space.js +1 -1
  236. package/dist/components/layout/Suffix.js +1 -1
  237. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  238. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  239. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  240. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  241. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  242. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  243. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  244. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  245. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  246. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  247. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  248. package/dist/components/navigation/Tabs/styled.js +1 -1
  249. package/dist/components/navigation/Tabs/types.js +1 -1
  250. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  251. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  252. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  253. package/dist/components/other/Calendar/Calendar.js +1 -1
  254. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  255. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  256. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  257. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  258. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  259. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  260. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  261. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  262. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  263. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  264. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  265. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  266. package/dist/components/overlays/Dialog/context.js +1 -1
  267. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  268. package/dist/components/overlays/Modal/Modal.js +1 -1
  269. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  270. package/dist/components/overlays/Modal/Overlay.js +1 -1
  271. package/dist/components/overlays/Modal/Popover.js +1 -1
  272. package/dist/components/overlays/Modal/Tray.js +1 -1
  273. package/dist/components/overlays/Modal/Underlay.js +1 -1
  274. package/dist/components/overlays/Notifications/Notification.js +1 -1
  275. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  276. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  277. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  278. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  279. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  280. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  281. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  282. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  283. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  284. package/dist/components/overlays/Notifications/index.js +1 -1
  285. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  286. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  287. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  288. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  289. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  290. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  291. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  292. package/dist/components/overlays/Toast/index.js +1 -1
  293. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  294. package/dist/components/overlays/Toast/useToast.js +1 -1
  295. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  296. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  297. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  298. package/dist/components/overlays/Tooltip/context.js +1 -1
  299. package/dist/components/portal/Portal.js +1 -1
  300. package/dist/components/portal/PortalProvider.js +1 -1
  301. package/dist/components/portal/usePortal.js +1 -1
  302. package/dist/components/shared/DraggableCollection.js +1 -1
  303. package/dist/components/shared/InvalidIcon.js +1 -1
  304. package/dist/components/shared/ValidIcon.js +1 -1
  305. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  306. package/dist/components/status/Spin/Cube.js +1 -1
  307. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  308. package/dist/components/status/Spin/Spin.js +1 -1
  309. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  310. package/dist/data/item-themes.js +1 -1
  311. package/dist/data/themes.js +1 -1
  312. package/dist/eslint-plugin/defaults.generated.js +216 -34
  313. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  314. package/dist/eslint-plugin/index.js +1 -1
  315. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  316. package/dist/i18n/I18nProvider.js +1 -1
  317. package/dist/i18n/createFormatter.js +1 -1
  318. package/dist/i18n/index.js +1 -1
  319. package/dist/i18n/instance.js +1 -1
  320. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  321. package/dist/i18n/locales/en-US/uikit.js +1 -1
  322. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  323. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  324. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  325. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  326. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  327. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  328. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  329. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  330. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  331. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  332. package/dist/i18n/locales.js +1 -1
  333. package/dist/i18n/useFormatter.js +1 -1
  334. package/dist/i18n/useI18n.js +1 -1
  335. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  336. package/dist/icons/AdjustmentsIcon.js +1 -1
  337. package/dist/icons/AiIcon.js +1 -1
  338. package/dist/icons/AreaChartIcon.js +1 -1
  339. package/dist/icons/BackwardIcon.js +1 -1
  340. package/dist/icons/BarChartIcon.js +1 -1
  341. package/dist/icons/BellFilledIcon.js +1 -1
  342. package/dist/icons/BellIcon.js +1 -1
  343. package/dist/icons/BooleanIcon.js +1 -1
  344. package/dist/icons/CalendarEditIcon.js +1 -1
  345. package/dist/icons/CalendarIcon.js +1 -1
  346. package/dist/icons/CaretDownIcon.js +1 -1
  347. package/dist/icons/CaretUpIcon.js +1 -1
  348. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  349. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  350. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  351. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  352. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  353. package/dist/icons/ChartBarLineIcon.js +1 -1
  354. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  355. package/dist/icons/ChartBarStackedIcon.js +1 -1
  356. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  357. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  358. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  359. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  360. package/dist/icons/ChartBubbleIcon.js +1 -1
  361. package/dist/icons/ChartDonut2Icon.js +1 -1
  362. package/dist/icons/ChartFunnelIcon.js +1 -1
  363. package/dist/icons/ChartHeatmapIcon.js +1 -1
  364. package/dist/icons/ChartKPIIcon.js +1 -1
  365. package/dist/icons/ChartPie2Icon.js +1 -1
  366. package/dist/icons/ChartScatterIcon.js +1 -1
  367. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  368. package/dist/icons/CheckCircleIcon.js +1 -1
  369. package/dist/icons/CheckIcon.js +1 -1
  370. package/dist/icons/CircleFilledIcon.js +1 -1
  371. package/dist/icons/ClearIcon.js +1 -1
  372. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  373. package/dist/icons/CloseCircleIcon.js +1 -1
  374. package/dist/icons/CloseIcon.js +1 -1
  375. package/dist/icons/CodeIcon.js +1 -1
  376. package/dist/icons/ColumnTotalIcon.js +1 -1
  377. package/dist/icons/CopyIcon.js +1 -1
  378. package/dist/icons/CountIcon.js +1 -1
  379. package/dist/icons/CubeIcon.js +1 -1
  380. package/dist/icons/CubePauseIcon.js +1 -1
  381. package/dist/icons/CubePlayIcon.js +1 -1
  382. package/dist/icons/CurrencyDollarIcon.js +1 -1
  383. package/dist/icons/DangerIcon.js +1 -1
  384. package/dist/icons/DashboardIcon.js +1 -1
  385. package/dist/icons/DatabaseIcon.js +1 -1
  386. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  387. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  388. package/dist/icons/DirectionIcon.js +1 -1
  389. package/dist/icons/DonutIcon.js +1 -1
  390. package/dist/icons/DownIcon.js +1 -1
  391. package/dist/icons/EditIcon.js +1 -1
  392. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  393. package/dist/icons/ExclamationCircleIcon.js +1 -1
  394. package/dist/icons/ExclamationIcon.js +1 -1
  395. package/dist/icons/EyeIcon.js +1 -1
  396. package/dist/icons/EyeInvisibleIcon.js +1 -1
  397. package/dist/icons/FilterIcon.js +1 -1
  398. package/dist/icons/FolderFilledIcon.js +1 -1
  399. package/dist/icons/FolderIcon.js +1 -1
  400. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  401. package/dist/icons/FolderOpenIcon.js +1 -1
  402. package/dist/icons/ForwardIcon.js +1 -1
  403. package/dist/icons/GripVerticalIcon.js +1 -1
  404. package/dist/icons/HierarchyIcon.js +1 -1
  405. package/dist/icons/HierarchyOpenIcon.js +1 -1
  406. package/dist/icons/Icon.js +1 -1
  407. package/dist/icons/InfoCircleIcon.js +1 -1
  408. package/dist/icons/InfoIcon.js +1 -1
  409. package/dist/icons/KeyIcon.js +1 -1
  410. package/dist/icons/LeftIcon.js +1 -1
  411. package/dist/icons/LineChartIcon.js +1 -1
  412. package/dist/icons/LoadingIcon.js +1 -1
  413. package/dist/icons/LockFilledIcon.js +1 -1
  414. package/dist/icons/LockIcon.js +1 -1
  415. package/dist/icons/MoreIcon.js +1 -1
  416. package/dist/icons/NotAllowedIcon.js +1 -1
  417. package/dist/icons/Number123Icon.js +1 -1
  418. package/dist/icons/NumberIcon.js +1 -1
  419. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  420. package/dist/icons/PauseCircleIcon.js +1 -1
  421. package/dist/icons/PauseIcon.js +1 -1
  422. package/dist/icons/PercentageIcon.js +1 -1
  423. package/dist/icons/PieChartIcon.js +1 -1
  424. package/dist/icons/PipetteIcon.js +1 -1
  425. package/dist/icons/PlayCircleIcon.js +1 -1
  426. package/dist/icons/PlayIcon.js +1 -1
  427. package/dist/icons/PlusIcon.js +1 -1
  428. package/dist/icons/ProgressBarIcon.js +1 -1
  429. package/dist/icons/ReloadIcon.js +1 -1
  430. package/dist/icons/ReportIcon.js +1 -1
  431. package/dist/icons/ReturnIcon.js +1 -1
  432. package/dist/icons/RightIcon.js +1 -1
  433. package/dist/icons/RowTotalsIcon.js +1 -1
  434. package/dist/icons/SchemeIcon.js +1 -1
  435. package/dist/icons/SearchIcon.js +1 -1
  436. package/dist/icons/SemanticQueryIcon.js +1 -1
  437. package/dist/icons/SettingsIcon.js +1 -1
  438. package/dist/icons/ShieldFilledIcon.js +1 -1
  439. package/dist/icons/ShieldIcon.js +1 -1
  440. package/dist/icons/SlashIcon.js +1 -1
  441. package/dist/icons/SparklesIcon.js +1 -1
  442. package/dist/icons/SqlIcon.js +1 -1
  443. package/dist/icons/StatsIcon.js +1 -1
  444. package/dist/icons/StopIcon.js +1 -1
  445. package/dist/icons/StringIcon.js +1 -1
  446. package/dist/icons/SubtotalsIcon.js +1 -1
  447. package/dist/icons/SwitchIcon.js +1 -1
  448. package/dist/icons/TableIcon.js +1 -1
  449. package/dist/icons/ThumbsDownIcon.js +1 -1
  450. package/dist/icons/ThumbsUpIcon.js +1 -1
  451. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  452. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  453. package/dist/icons/ThunderboltIcon.js +1 -1
  454. package/dist/icons/TimeIcon.js +1 -1
  455. package/dist/icons/TrashIcon.js +1 -1
  456. package/dist/icons/UnlockIcon.js +1 -1
  457. package/dist/icons/UpIcon.js +1 -1
  458. package/dist/icons/UserGroupIcon.js +1 -1
  459. package/dist/icons/UserIcon.js +1 -1
  460. package/dist/icons/UserLockIcon.js +1 -1
  461. package/dist/icons/ViewIcon.js +1 -1
  462. package/dist/icons/WarningFilledIcon.js +1 -1
  463. package/dist/icons/WarningIcon.js +1 -1
  464. package/dist/icons/wrap-icon.js +1 -1
  465. package/dist/index.js +1 -1
  466. package/dist/provider.js +1 -1
  467. package/dist/providers/TrackingProvider.js +1 -1
  468. package/dist/providers/navigationAdapter.default.js +1 -1
  469. package/dist/tokens/base.js +1 -1
  470. package/dist/tokens/colors.js +1 -1
  471. package/dist/tokens/index.js +1 -1
  472. package/dist/tokens/layout.js +1 -1
  473. package/dist/tokens/lazy-styles.js +1 -1
  474. package/dist/tokens/palette-config.js +1 -1
  475. package/dist/tokens/palette.js +1 -1
  476. package/dist/tokens/shadows.js +1 -1
  477. package/dist/tokens/sizes.js +1 -1
  478. package/dist/tokens/spacing.js +1 -1
  479. package/dist/tokens/typography.js +1 -1
  480. package/dist/utils/ResizeSensor.js +1 -1
  481. package/dist/utils/is-dev-env.js +1 -1
  482. package/dist/utils/modules.js +1 -1
  483. package/dist/utils/promise.js +1 -1
  484. package/dist/utils/raf.js +1 -1
  485. package/dist/utils/random.js +1 -1
  486. package/dist/utils/range.js +1 -1
  487. package/dist/utils/react/RenderCache.js +1 -1
  488. package/dist/utils/react/Slots.js +1 -1
  489. package/dist/utils/react/chain.js +1 -1
  490. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  491. package/dist/utils/react/index.js +1 -1
  492. package/dist/utils/react/interactions.js +1 -1
  493. package/dist/utils/react/isTextOnly.js +1 -1
  494. package/dist/utils/react/mapProps.js +1 -1
  495. package/dist/utils/react/mergeProps.js +1 -1
  496. package/dist/utils/react/nullableValue.js +1 -1
  497. package/dist/utils/react/resolveIcon.js +1 -1
  498. package/dist/utils/react/sharedStore.js +1 -1
  499. package/dist/utils/react/useBufferedValue.js +1 -1
  500. package/dist/utils/react/useCombinedRefs.js +1 -1
  501. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  502. package/dist/utils/react/useEventBus.js +1 -1
  503. package/dist/utils/react/useId.js +1 -1
  504. package/dist/utils/react/useIsDarwin.js +1 -1
  505. package/dist/utils/react/useKeySymbols.js +1 -1
  506. package/dist/utils/react/useLayoutEffect.js +1 -1
  507. package/dist/utils/react/useLocalStorage.js +1 -1
  508. package/dist/utils/react/useMergeStyles.js +1 -1
  509. package/dist/utils/react/usePopoverSync.js +1 -1
  510. package/dist/utils/react/useQaProps.js +1 -1
  511. package/dist/utils/react/useViewportSize.js +1 -1
  512. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  513. package/dist/utils/selection.js +1 -1
  514. package/dist/utils/styles.js +1 -1
  515. package/dist/utils/tree.js +1 -1
  516. package/dist/utils/warnings.js +1 -1
  517. package/dist/version.js +2 -2
  518. package/package.json +4 -3
  519. package/tasty.config.ts +390 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayTransition.js","names":[],"sources":["../../../../src/components/helpers/DisplayTransition/DisplayTransition.tsx"],"sourcesContent":["import {\n ReactNode,\n RefCallback,\n useCallback,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nconst AUTO_FALLBACK_DURATION = 500;\n\ntype Phase = 'enter' | 'entered' | 'exit-pending' | 'exit' | 'unmounted';\nexport type ReportedPhase = 'enter' | 'entered' | 'exit' | 'unmounted';\n\nexport type DisplayTransitionProps = {\n /** Desired visibility (driver). */\n isShown: boolean;\n /** Times enter->entered and exit->unmounted. 0 => immediate. If undefined, uses native transition events. */\n duration?: number;\n /** Fires after enter settles or after exit completes (unmount). */\n onRest?: (transition: 'enter' | 'exit') => void;\n /** Fires when phase changes. */\n onPhaseChange?: (phase: ReportedPhase) => void;\n /** Fires when isShown (derived from phase) changes. */\n onToggle?: (isShown: boolean) => void;\n /** Keep calling children during \"unmounted\" (you decide what to render). */\n exposeUnmounted?: boolean;\n /** If false and initially shown, start at \"entered\" (no first-mount animation/SSR pop). */\n animateOnMount?: boolean;\n /** Respect prefers-reduced-motion by collapsing duration to 0. */\n respectReducedMotion?: boolean;\n /** Preserve children content during exit transition. When true, uses stored children from when content was visible. @default true */\n preserveContent?: boolean;\n /** Render-prop gets { phase, isShown, ref }. Bind ref to the transitioned element for native event detection. */\n children: (props: {\n phase: ReportedPhase;\n isShown: boolean;\n ref: RefCallback<HTMLElement>;\n }) => ReactNode;\n};\n\n// Stable callback to avoid stale closures\nfunction useEvent<T extends (...a: any[]) => any>(fn?: T) {\n const ref = useRef(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n return useCallback((...args: Parameters<NonNullable<T>>) => {\n return ref.current?.(...args);\n }, []);\n}\n\nexport function DisplayTransition({\n isShown: targetShown,\n duration,\n onRest,\n onPhaseChange,\n onToggle,\n exposeUnmounted = false,\n animateOnMount = true,\n respectReducedMotion = true,\n preserveContent = true,\n children,\n}: DisplayTransitionProps) {\n // Reduced motion → collapse timing\n const prefersReduced =\n respectReducedMotion &&\n typeof window !== 'undefined' &&\n window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches;\n const dur = prefersReduced ? 0 : duration;\n\n // Store children to preserve content during exit transitions\n const storedChildrenRef = useRef<typeof children>(children);\n\n // For native transition event detection\n const elementRef = useRef<HTMLElement | null>(null);\n const transitionStartedRef = useRef(false);\n const eventListenersRef = useRef<{\n onTransitionStart: (e: TransitionEvent) => void;\n onTransitionEnd: (e: TransitionEvent) => void;\n onTransitionCancel: (e: TransitionEvent) => void;\n } | null>(null);\n\n // Initial phase (optionally skip first-mount animation)\n const [phase, setPhase] = useState<Phase>(\n targetShown ? (animateOnMount ? 'enter' : 'entered') : 'unmounted',\n );\n const phaseRef = useRef(phase);\n phaseRef.current = phase;\n\n // Advance phase synchronously during render so the overlay element\n // exists in the same commit. This lets useOverlayPosition (and similar\n // hooks) find the element on their first layout-effect run.\n if (targetShown && phase === 'unmounted') {\n setPhase('enter');\n }\n\n const onRestEvent = useEvent(onRest);\n const onPhaseChangeEvent = useEvent(onPhaseChange);\n const onToggleEvent = useEvent(onToggle);\n\n // Versioned scheduling (Strict Mode & rapid toggles safe)\n const flowRef = useRef(0);\n const rafRef = useRef<number | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const cancelRAF = () => {\n if (rafRef.current != null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n };\n const clearTimer = () => {\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n\n // Double-rAF ensures at least one paint with \"enter\" before flipping to \"entered\".\n const nextPaint = (cb: () => void) => {\n cancelRAF();\n const flow = flowRef.current;\n rafRef.current = requestAnimationFrame(() => {\n if (flowRef.current !== flow) return;\n rafRef.current = requestAnimationFrame(() => {\n if (flowRef.current !== flow) return;\n rafRef.current = null;\n cb();\n });\n });\n };\n\n const cleanupEventListeners = () => {\n const element = elementRef.current;\n const listeners = eventListenersRef.current;\n if (element && listeners) {\n element.removeEventListener(\n 'transitionstart',\n listeners.onTransitionStart,\n );\n element.removeEventListener('transitionend', listeners.onTransitionEnd);\n element.removeEventListener(\n 'transitioncancel',\n listeners.onTransitionCancel,\n );\n eventListenersRef.current = null;\n }\n };\n\n const afterDuration = (cb: () => void) => {\n const flow = flowRef.current;\n\n // If using native event detection\n if (dur === undefined) {\n const element = elementRef.current;\n\n cleanupEventListeners();\n transitionStartedRef.current = false;\n\n let completed = false;\n const complete = () => {\n if (completed || flowRef.current !== flow) return;\n completed = true;\n clearTimer();\n cleanupEventListeners();\n cb();\n };\n\n if (!element) {\n // No element to listen on - use fallback timer to avoid immediate completion\n clearTimer();\n timerRef.current = setTimeout(() => {\n if (flowRef.current !== flow) return;\n timerRef.current = null;\n complete();\n }, AUTO_FALLBACK_DURATION);\n\n return;\n }\n\n const onTransitionStart = (e: TransitionEvent) => {\n // Ignore bubbled events from children - only react to our own element's transitions\n if (e.target !== element) return;\n if (flowRef.current !== flow) return;\n transitionStartedRef.current = true;\n clearTimer(); // Cancel fallback timer once transition starts\n };\n\n const onTransitionEnd = (e: TransitionEvent) => {\n // Ignore bubbled events from children - only react to our own element's transitions\n if (e.target !== element) return;\n if (flowRef.current !== flow) return;\n complete();\n };\n\n const onTransitionCancel = (e: TransitionEvent) => {\n // Ignore bubbled events from children - only react to our own element's transitions\n if (e.target !== element) return;\n if (flowRef.current !== flow) return;\n complete();\n };\n\n eventListenersRef.current = {\n onTransitionStart,\n onTransitionEnd,\n onTransitionCancel,\n };\n\n element.addEventListener('transitionstart', onTransitionStart);\n element.addEventListener('transitionend', onTransitionEnd);\n element.addEventListener('transitioncancel', onTransitionCancel);\n\n // Fallback: if no transitionstart fires within 150ms, assume no transition\n timerRef.current = setTimeout(() => {\n if (flowRef.current !== flow) return;\n if (!transitionStartedRef.current) {\n complete();\n }\n }, 150);\n\n return;\n }\n\n // If using explicit duration\n if (dur <= 0) {\n cb();\n return;\n }\n clearTimer();\n timerRef.current = setTimeout(() => {\n if (flowRef.current !== flow) return;\n timerRef.current = null;\n cb();\n }, dur);\n };\n\n const ensureEnterFlow = () => {\n if (phaseRef.current !== 'enter') {\n return;\n }\n\n // Element ref is only required for native transition event detection (duration === undefined).\n // When using explicit duration, setTimeout handles timing so no element is needed.\n if (dur === undefined && !elementRef.current) {\n return;\n }\n\n // frame N: \"enter\" (hidden) → frame N+1: \"entered\" (shown) → after dur: onRest(\"enter\")\n nextPaint(() => {\n if (phaseRef.current !== 'enter') return;\n setPhase('entered');\n afterDuration(() => onRestEvent?.('enter'));\n });\n };\n\n const ensureExitFlow = () => {\n // \"exit\" (hidden) → after dur → \"unmounted\" → onRest(\"exit\")\n afterDuration(() => {\n setPhase('unmounted');\n onRestEvent?.('exit');\n });\n };\n\n useLayoutEffect(() => {\n ++flowRef.current; // invalidate any pending work\n const current = phaseRef.current;\n\n if (targetShown) {\n if (current === 'unmounted' || current === 'exit') {\n setPhase('enter');\n ensureEnterFlow();\n } else if (current === 'enter') {\n ensureEnterFlow();\n } else if (current === 'exit-pending') {\n // User toggled back before exit started, cancel and stay entered\n cancelRAF();\n clearTimer();\n setPhase('entered');\n } else {\n // already \"entered\"\n cancelRAF();\n clearTimer();\n }\n } else {\n if (current === 'unmounted') {\n cancelRAF();\n clearTimer();\n } else if (current !== 'exit' && current !== 'exit-pending') {\n // Set intermediate phase to trigger re-render, RAF will be scheduled from layout effect\n setPhase('exit-pending');\n } else if (current === 'exit') {\n ensureExitFlow();\n }\n // 'exit-pending' is handled in useLayoutEffect below\n }\n\n return () => {\n cancelRAF();\n clearTimer();\n cleanupEventListeners();\n };\n }, [targetShown, dur, onRestEvent]);\n\n // Schedule RAF from layout effect for both enter and exit-pending to ensure symmetric timing\n useLayoutEffect(() => {\n if (phaseRef.current === 'enter') {\n ensureEnterFlow();\n } else if (phaseRef.current === 'exit-pending') {\n // Schedule RAF for exit, mirroring the enter flow timing\n nextPaint(() => {\n if (phaseRef.current === 'exit-pending') {\n setPhase('exit');\n ensureExitFlow();\n }\n });\n }\n return cancelRAF;\n }, [phase]);\n\n // Map internal phase to reported phase (exit-pending is reported as 'entered')\n const reportedPhase: ReportedPhase =\n phase === 'exit-pending' ? 'entered' : phase;\n\n // Call onPhaseChange when reported phase changes\n const prevReportedPhaseRef = useRef(reportedPhase);\n useLayoutEffect(() => {\n if (prevReportedPhaseRef.current !== reportedPhase) {\n prevReportedPhaseRef.current = reportedPhase;\n onPhaseChangeEvent?.(reportedPhase);\n }\n }, [reportedPhase, onPhaseChangeEvent]);\n\n // Render-time boolean (true only when visually shown)\n const isShownNow = phase === 'entered' || phase === 'exit-pending';\n const prevIsShownRef = useRef(isShownNow);\n\n // Call onToggle when isShown changes\n useLayoutEffect(() => {\n if (prevIsShownRef.current !== isShownNow) {\n prevIsShownRef.current = isShownNow;\n onToggleEvent?.(isShownNow);\n }\n }, [isShownNow, onToggleEvent]);\n\n // Ref callback to attach to transitioned element\n // MUST be memoized so React doesn't re-call it on re-renders,\n // which would cleanup event listeners mid-transition\n const refCallback: RefCallback<HTMLElement> = useCallback((node) => {\n if (node) {\n elementRef.current = node;\n // Don't call ensureEnterFlow() here - useLayoutEffect handles RAF scheduling\n // to ensure symmetric timing with exit flow\n } else {\n cleanupEventListeners();\n elementRef.current = null;\n }\n }, []);\n\n // Update stored children only when showing (enter/entered phase and targetShown is true)\n // This prevents overwriting during exit transitions, preserving content for the animation\n const isShowingContent =\n (phase === 'enter' || phase === 'entered') && targetShown;\n\n if (isShowingContent) {\n storedChildrenRef.current = children;\n }\n\n // When preserveContent is enabled, always use stored children:\n // - During show: stored is updated above, so it equals current children\n // - During hide: stored keeps the last shown content for the exit animation\n const effectiveChildren = preserveContent\n ? storedChildrenRef.current\n : children;\n\n if (phase === 'unmounted' && !exposeUnmounted) return null;\n return effectiveChildren({\n phase:\n reportedPhase === 'enter' && duration !== undefined && !duration\n ? 'entered'\n : reportedPhase,\n isShown: isShownNow,\n ref: refCallback,\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DisplayTransition.js","names":[],"sources":["../../../../src/components/helpers/DisplayTransition/DisplayTransition.tsx"],"sourcesContent":["import {\n ReactNode,\n RefCallback,\n useCallback,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nconst AUTO_FALLBACK_DURATION = 500;\n\ntype Phase = 'enter' | 'entered' | 'exit-pending' | 'exit' | 'unmounted';\nexport type ReportedPhase = 'enter' | 'entered' | 'exit' | 'unmounted';\n\nexport type DisplayTransitionProps = {\n /** Desired visibility (driver). */\n isShown: boolean;\n /** Times enter->entered and exit->unmounted. 0 => immediate. If undefined, uses native transition events. */\n duration?: number;\n /** Fires after enter settles or after exit completes (unmount). */\n onRest?: (transition: 'enter' | 'exit') => void;\n /** Fires when phase changes. */\n onPhaseChange?: (phase: ReportedPhase) => void;\n /** Fires when isShown (derived from phase) changes. */\n onToggle?: (isShown: boolean) => void;\n /** Keep calling children during \"unmounted\" (you decide what to render). */\n exposeUnmounted?: boolean;\n /** If false and initially shown, start at \"entered\" (no first-mount animation/SSR pop). */\n animateOnMount?: boolean;\n /** Respect prefers-reduced-motion by collapsing duration to 0. */\n respectReducedMotion?: boolean;\n /** Preserve children content during exit transition. When true, uses stored children from when content was visible. @default true */\n preserveContent?: boolean;\n /** Render-prop gets { phase, isShown, ref }. Bind ref to the transitioned element for native event detection. */\n children: (props: {\n phase: ReportedPhase;\n isShown: boolean;\n ref: RefCallback<HTMLElement>;\n }) => ReactNode;\n};\n\n// Stable callback to avoid stale closures\nfunction useEvent<T extends (...a: any[]) => any>(fn?: T) {\n const ref = useRef(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n }, [fn]);\n return useCallback((...args: Parameters<NonNullable<T>>) => {\n return ref.current?.(...args);\n }, []);\n}\n\nexport function DisplayTransition({\n isShown: targetShown,\n duration,\n onRest,\n onPhaseChange,\n onToggle,\n exposeUnmounted = false,\n animateOnMount = true,\n respectReducedMotion = true,\n preserveContent = true,\n children,\n}: DisplayTransitionProps) {\n // Reduced motion → collapse timing\n const prefersReduced =\n respectReducedMotion &&\n typeof window !== 'undefined' &&\n window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches;\n const dur = prefersReduced ? 0 : duration;\n\n // Store children to preserve content during exit transitions\n const storedChildrenRef = useRef<typeof children>(children);\n\n // For native transition event detection\n const elementRef = useRef<HTMLElement | null>(null);\n const transitionStartedRef = useRef(false);\n const eventListenersRef = useRef<{\n onTransitionStart: (e: TransitionEvent) => void;\n onTransitionEnd: (e: TransitionEvent) => void;\n onTransitionCancel: (e: TransitionEvent) => void;\n } | null>(null);\n\n // Initial phase (optionally skip first-mount animation)\n const [phase, setPhase] = useState<Phase>(\n targetShown ? (animateOnMount ? 'enter' : 'entered') : 'unmounted',\n );\n const phaseRef = useRef(phase);\n phaseRef.current = phase;\n\n // Advance phase synchronously during render so the overlay element\n // exists in the same commit. This lets useOverlayPosition (and similar\n // hooks) find the element on their first layout-effect run.\n if (targetShown && phase === 'unmounted') {\n setPhase('enter');\n }\n\n const onRestEvent = useEvent(onRest);\n const onPhaseChangeEvent = useEvent(onPhaseChange);\n const onToggleEvent = useEvent(onToggle);\n\n // Versioned scheduling (Strict Mode & rapid toggles safe)\n const flowRef = useRef(0);\n const rafRef = useRef<number | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const cancelRAF = () => {\n if (rafRef.current != null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n };\n const clearTimer = () => {\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n\n // Double-rAF ensures at least one paint with \"enter\" before flipping to \"entered\".\n const nextPaint = (cb: () => void) => {\n cancelRAF();\n const flow = flowRef.current;\n rafRef.current = requestAnimationFrame(() => {\n if (flowRef.current !== flow) return;\n rafRef.current = requestAnimationFrame(() => {\n if (flowRef.current !== flow) return;\n rafRef.current = null;\n cb();\n });\n });\n };\n\n const cleanupEventListeners = () => {\n const element = elementRef.current;\n const listeners = eventListenersRef.current;\n if (element && listeners) {\n element.removeEventListener(\n 'transitionstart',\n listeners.onTransitionStart,\n );\n element.removeEventListener('transitionend', listeners.onTransitionEnd);\n element.removeEventListener(\n 'transitioncancel',\n listeners.onTransitionCancel,\n );\n eventListenersRef.current = null;\n }\n };\n\n const afterDuration = (cb: () => void) => {\n const flow = flowRef.current;\n\n // If using native event detection\n if (dur === undefined) {\n const element = elementRef.current;\n\n cleanupEventListeners();\n transitionStartedRef.current = false;\n\n let completed = false;\n const complete = () => {\n if (completed || flowRef.current !== flow) return;\n completed = true;\n clearTimer();\n cleanupEventListeners();\n cb();\n };\n\n if (!element) {\n // No element to listen on - use fallback timer to avoid immediate completion\n clearTimer();\n timerRef.current = setTimeout(() => {\n if (flowRef.current !== flow) return;\n timerRef.current = null;\n complete();\n }, AUTO_FALLBACK_DURATION);\n\n return;\n }\n\n const onTransitionStart = (e: TransitionEvent) => {\n // Ignore bubbled events from children - only react to our own element's transitions\n if (e.target !== element) return;\n if (flowRef.current !== flow) return;\n transitionStartedRef.current = true;\n clearTimer(); // Cancel fallback timer once transition starts\n };\n\n const onTransitionEnd = (e: TransitionEvent) => {\n // Ignore bubbled events from children - only react to our own element's transitions\n if (e.target !== element) return;\n if (flowRef.current !== flow) return;\n complete();\n };\n\n const onTransitionCancel = (e: TransitionEvent) => {\n // Ignore bubbled events from children - only react to our own element's transitions\n if (e.target !== element) return;\n if (flowRef.current !== flow) return;\n complete();\n };\n\n eventListenersRef.current = {\n onTransitionStart,\n onTransitionEnd,\n onTransitionCancel,\n };\n\n element.addEventListener('transitionstart', onTransitionStart);\n element.addEventListener('transitionend', onTransitionEnd);\n element.addEventListener('transitioncancel', onTransitionCancel);\n\n // Fallback: if no transitionstart fires within 150ms, assume no transition\n timerRef.current = setTimeout(() => {\n if (flowRef.current !== flow) return;\n if (!transitionStartedRef.current) {\n complete();\n }\n }, 150);\n\n return;\n }\n\n // If using explicit duration\n if (dur <= 0) {\n cb();\n return;\n }\n clearTimer();\n timerRef.current = setTimeout(() => {\n if (flowRef.current !== flow) return;\n timerRef.current = null;\n cb();\n }, dur);\n };\n\n const ensureEnterFlow = () => {\n if (phaseRef.current !== 'enter') {\n return;\n }\n\n // Element ref is only required for native transition event detection (duration === undefined).\n // When using explicit duration, setTimeout handles timing so no element is needed.\n if (dur === undefined && !elementRef.current) {\n return;\n }\n\n // frame N: \"enter\" (hidden) → frame N+1: \"entered\" (shown) → after dur: onRest(\"enter\")\n nextPaint(() => {\n if (phaseRef.current !== 'enter') return;\n setPhase('entered');\n afterDuration(() => onRestEvent?.('enter'));\n });\n };\n\n const ensureExitFlow = () => {\n // \"exit\" (hidden) → after dur → \"unmounted\" → onRest(\"exit\")\n afterDuration(() => {\n setPhase('unmounted');\n onRestEvent?.('exit');\n });\n };\n\n // frame N: \"exit-pending\" (still shown) → frame N+1: \"exit\" (hidden) → ensureExitFlow.\n // Idempotent and re-callable, mirroring ensureEnterFlow: whoever cancels the\n // pending rAF is responsible for re-arming it.\n const ensureExitPendingFlow = () => {\n nextPaint(() => {\n if (phaseRef.current !== 'exit-pending') return;\n setPhase('exit');\n ensureExitFlow();\n });\n };\n\n useLayoutEffect(() => {\n ++flowRef.current; // invalidate any pending work\n const current = phaseRef.current;\n\n if (targetShown) {\n if (current === 'unmounted' || current === 'exit') {\n setPhase('enter');\n ensureEnterFlow();\n } else if (current === 'enter') {\n ensureEnterFlow();\n } else if (current === 'exit-pending') {\n // User toggled back before exit started, cancel and stay entered\n cancelRAF();\n clearTimer();\n setPhase('entered');\n } else {\n // already \"entered\"\n cancelRAF();\n clearTimer();\n }\n } else {\n if (current === 'unmounted') {\n cancelRAF();\n clearTimer();\n } else if (current !== 'exit' && current !== 'exit-pending') {\n // Set intermediate phase to trigger re-render, RAF will be scheduled from layout effect\n setPhase('exit-pending');\n } else if (current === 'exit') {\n ensureExitFlow();\n } else {\n // Still \"exit-pending\": our own cleanup just cancelled the rAF the\n // [phase] effect scheduled, and that effect will not re-run because\n // `phase` did not change. Re-arm it here or the content stays visible\n // forever while the driver reports hidden.\n ensureExitPendingFlow();\n }\n }\n\n return () => {\n cancelRAF();\n clearTimer();\n cleanupEventListeners();\n };\n }, [targetShown, dur, onRestEvent]);\n\n // Schedule RAF from layout effect for both enter and exit-pending to ensure symmetric timing\n useLayoutEffect(() => {\n if (phaseRef.current === 'enter') {\n ensureEnterFlow();\n } else if (phaseRef.current === 'exit-pending') {\n // Schedule RAF for exit, mirroring the enter flow timing\n ensureExitPendingFlow();\n }\n return cancelRAF;\n }, [phase]);\n\n // Map internal phase to reported phase (exit-pending is reported as 'entered')\n const reportedPhase: ReportedPhase =\n phase === 'exit-pending' ? 'entered' : phase;\n\n // Call onPhaseChange when reported phase changes\n const prevReportedPhaseRef = useRef(reportedPhase);\n useLayoutEffect(() => {\n if (prevReportedPhaseRef.current !== reportedPhase) {\n prevReportedPhaseRef.current = reportedPhase;\n onPhaseChangeEvent?.(reportedPhase);\n }\n }, [reportedPhase, onPhaseChangeEvent]);\n\n // Render-time boolean (true only when visually shown)\n const isShownNow = phase === 'entered' || phase === 'exit-pending';\n const prevIsShownRef = useRef(isShownNow);\n\n // Call onToggle when isShown changes\n useLayoutEffect(() => {\n if (prevIsShownRef.current !== isShownNow) {\n prevIsShownRef.current = isShownNow;\n onToggleEvent?.(isShownNow);\n }\n }, [isShownNow, onToggleEvent]);\n\n // Ref callback to attach to transitioned element\n // MUST be memoized so React doesn't re-call it on re-renders,\n // which would cleanup event listeners mid-transition\n const refCallback: RefCallback<HTMLElement> = useCallback((node) => {\n if (node) {\n elementRef.current = node;\n // Don't call ensureEnterFlow() here - useLayoutEffect handles RAF scheduling\n // to ensure symmetric timing with exit flow\n } else {\n cleanupEventListeners();\n elementRef.current = null;\n }\n }, []);\n\n // Update stored children only when showing (enter/entered phase and targetShown is true)\n // This prevents overwriting during exit transitions, preserving content for the animation\n const isShowingContent =\n (phase === 'enter' || phase === 'entered') && targetShown;\n\n if (isShowingContent) {\n storedChildrenRef.current = children;\n }\n\n // When preserveContent is enabled, always use stored children:\n // - During show: stored is updated above, so it equals current children\n // - During hide: stored keeps the last shown content for the exit animation\n const effectiveChildren = preserveContent\n ? storedChildrenRef.current\n : children;\n\n if (phase === 'unmounted' && !exposeUnmounted) return null;\n return effectiveChildren({\n phase:\n reportedPhase === 'enter' && duration !== undefined && !duration\n ? 'entered'\n : reportedPhase,\n isShown: isShownNow,\n ref: refCallback,\n });\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { DisplayTransition } from "../DisplayTransition/DisplayTransition.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { isValidElement, useCallback, useLayoutEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | 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 { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { BoardDragActiveContext, BoardRegistryContext } from "./board-context.js";
3
3
  import { useBoardRegistry } from "./use-board-registry.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { getCompactor } from "./grid-core/compactors.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { useBoardRegistry } from "./board-context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | 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 { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/layout/Board/board-context.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/layout/Board/board-store.ts
3
3
  /**
4
4
  * A tiny external store mapping widget id -> registration.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/calculate.ts
3
3
  /** Calculate the width of a single grid column in pixels. */
4
4
  function calcGridColWidth(positionParams) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/collision.ts
3
3
  /**
4
4
  * Check if two layout items collide (overlap).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { collides, getFirstCollision } from "./collision.js";
3
3
  import { sortLayoutItemsByColRow, sortLayoutItemsByRowCol } from "./sort.js";
4
4
  import { bottom, cloneLayout, cloneLayoutItem, getStatics } from "./layout.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/constraints.ts
3
3
  function clamp(value, min, max) {
4
4
  return Math.max(min, Math.min(max, value));
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { collides, getFirstCollision } from "./collision.js";
3
3
  import { sortLayoutItemsByColRow, sortLayoutItemsByRowCol } from "./sort.js";
4
4
  import { bottom, cloneLayout, cloneLayoutItem, getStatics } from "./layout.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { getAllCollisions, getFirstCollision } from "./collision.js";
3
3
  import { sortLayoutItems } from "./sort.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/sort.ts
3
3
  /**
4
4
  * Sort layout items based on the compaction type.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { getCompactor, horizontalCompactor, noCompactor, verticalCompactor } from "./grid-core/compactors.js";
3
3
  import { aspectRatio, boundedX, boundedY, containerBounds, gridBounds, maxSize, minMaxSize, minSize, snapToGrid } from "./grid-core/constraints.js";
4
4
  import { BoardProvider } from "./BoardProvider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { cloneLayout, correctBounds } from "./grid-core/layout.js";
3
3
 
4
4
  //#region src/components/layout/Board/responsive-utils.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { cloneLayout } from "./grid-core/layout.js";
4
4
  import { useCallback, useEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { BoardWidgetStore } from "./board-store.js";
4
4
  import { collides } from "./grid-core/collision.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useIsDarwin } from "../../../utils/react/useIsDarwin.js";
3
3
 
4
4
  //#region src/components/layout/Board/use-board-select-modifier-key.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { useEffect, useMemo, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { BASE_STYLES, BLOCK_STYLES, COLOR_STYLES, DIMENSION_STYLES, OUTER_STYLES, tasty } from "@tenphi/tasty";
3
3
  import { forwardRef, useMemo } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
4
4
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
@@ -7,7 +7,14 @@ import * as react from "react";
7
7
  type Direction = 'top' | 'right' | 'bottom' | 'left';
8
8
  interface CubeResizablePanelProps extends CubePanelProps {
9
9
  handlerStyles?: Styles;
10
- direction: Direction;
10
+ /**
11
+ * Optional because both `ResizablePanel` and `Handler` destructure it as
12
+ * `direction = 'right'`. Declaring it required contradicted that default and
13
+ * made `no-redundant-default-prop` unusable: the rule reads the same `'right'`
14
+ * default out of the generated registry and strips an explicit
15
+ * `direction="right"`, which then fails to typecheck.
16
+ */
17
+ direction?: Direction;
11
18
  size?: number;
12
19
  onSizeChange?: (size: number) => void;
13
20
  minSize?: string | number;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ResizablePanel.js","names":["mergeProps","Panel"],"sources":["../../../src/components/layout/ResizablePanel.tsx"],"sourcesContent":["import { useResizeObserver } from '@react-aria/utils';\nimport { BasePropsWithoutChildren, Styles, tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue, useEvent } from '../../_internal/hooks';\nimport { mergeProps, useCombinedRefs } from '../../utils/react';\n\nimport { CubePanelProps, Panel } from './Panel';\n\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface CubeResizablePanelProps extends CubePanelProps {\n handlerStyles?: Styles;\n direction: Direction;\n size?: number;\n onSizeChange?: (size: number) => void;\n minSize?: string | number;\n maxSize?: string | number;\n isDisabled?: boolean;\n}\n\nconst HandlerElement = tasty({\n qa: 'ResizeHandler',\n styles: {\n // The real size is slightly bigger than the visual one.\n width: {\n '': 'initial',\n horizontal: '9px',\n 'disabled & horizontal': '1bw',\n },\n height: {\n '': '9px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1bw',\n },\n top: {\n '': 0,\n '[data-direction=\"top\"]': 'initial',\n },\n bottom: {\n '': 0,\n '[data-direction=\"bottom\"]': 'initial',\n },\n right: {\n '': 0,\n '[data-direction=\"right\"]': 'initial',\n },\n left: {\n '': 0,\n '[data-direction=\"left\"]': 'initial',\n },\n // Transform requires a separate visual size property to respect size boundaries\n transform: {\n '': 'translate(0, 0)',\n '[data-direction=\"top\"]':\n 'translate(0, ($size-compensation - $visual-size))',\n '[data-direction=\"right\"]':\n 'translate(($visual-size - $size-compensation), 0)',\n '[data-direction=\"bottom\"]':\n 'translate(0, ($visual-size - $size-compensation))',\n '[data-direction=\"left\"]':\n 'translate(($size-compensation - $visual-size), 0)',\n },\n position: 'absolute',\n zIndex: 1,\n cursor: {\n '': 'row-resize',\n horizontal: 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n '--size-compensation': {\n '': '6px',\n disabled: '1bw',\n },\n\n Track: {\n width: {\n '': 'initial',\n horizontal: '3px',\n 'disabled & horizontal': '1px',\n },\n height: {\n '': '3px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1px',\n },\n position: 'absolute',\n inset: {\n '': '3px 0',\n horizontal: '0 3px',\n disabled: '0 0',\n },\n fill: {\n '': '#border',\n '(hovered | drag) & !disabled': '#purple-03',\n },\n transition: 'theme',\n outline: {\n '': '1bw #primary-text.0',\n drag: '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n flow: {\n '': 'row',\n horizontal: 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n horizontal: 'auto',\n },\n gridRows: {\n '': 'auto',\n horizontal: '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n horizontal: '1px',\n },\n height: {\n '': '1px',\n horizontal: 'auto',\n },\n inset: {\n '': '4px 50% auto auto',\n horizontal: '50% 4px auto auto',\n },\n transform: {\n '': 'translate(-50%, 0)',\n horizontal: 'translate(0, -50%)',\n },\n position: 'absolute',\n transition: 'theme',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'hovered | drag': '#dark-02',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\ninterface HandlerProps extends BasePropsWithoutChildren {\n direction: Direction;\n}\n\nconst Handler = (props: HandlerProps) => {\n const { direction = 'right', isDisabled, ...otherProps } = props;\n const { hoverProps, isHovered } = useHover({});\n const isHorizontal = direction === 'left' || direction === 'right';\n const localIsHovered = useDebouncedValue(isHovered, 150);\n\n return (\n <HandlerElement\n {...mergeProps(\n hoverProps,\n {\n mods: {\n hovered: localIsHovered,\n horizontal: isHorizontal,\n disabled: isDisabled,\n },\n 'data-direction': direction,\n },\n otherProps,\n )}\n >\n <div data-element=\"Track\" />\n {!isDisabled ? (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n ) : null}\n </HandlerElement>\n );\n};\n\nconst StyledPanel = tasty(Panel, {\n styles: {\n flexGrow: 0,\n width: {\n '': '$min-size $size $max-size',\n '[data-direction=\"top\"] | [data-direction=\"bottom\"]': 'initial',\n },\n height: {\n '': '$min-size $size $max-size',\n '[data-direction=\"left\"] | [data-direction=\"right\"]': 'initial',\n },\n placeSelf: 'stretch',\n touchAction: 'none',\n\n '$indent-compensation': {\n '': '3px',\n disabled: '1bw',\n },\n },\n});\n\nfunction ResizablePanel(\n props: CubeResizablePanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const timerRef = useRef<ReturnType<typeof setTimeout>>(null);\n const isControllable = typeof props.size === 'number';\n const {\n isDisabled,\n direction = 'right',\n size: providedSize,\n onSizeChange,\n minSize = 200,\n maxSize = isControllable ? undefined : 'min(50%, 400px)',\n ...restProps\n } = props;\n const [isDragging, setIsDragging] = useState(false);\n const isHorizontal = direction === 'left' || direction === 'right';\n\n ref = useCombinedRefs(ref);\n\n const onResize = useEvent(() => {\n if (ref?.current) {\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n const containerSize = ref.current[offsetProp];\n\n if (Math.abs(containerSize - size) < 1 && !isDisabled) {\n setVisualSize(size);\n } else {\n setVisualSize(containerSize);\n }\n }\n });\n\n useResizeObserver({\n ref,\n onResize,\n });\n\n function clamp(size: number) {\n if (typeof maxSize === 'number') {\n size = Math.min(maxSize, size);\n }\n\n if (typeof minSize === 'number' || !minSize) {\n size = Math.max((minSize as number) || 0, size);\n }\n\n return Math.max(size, 0);\n }\n\n let [size, setSize] = useState<number>(\n providedSize != null ? clamp(providedSize) : 200,\n );\n let [visualSize, setVisualSize] = useState<number | null>(null);\n\n let { moveProps } = useMove({\n onMoveStart(e) {\n if (isDisabled) {\n return;\n }\n\n setIsDragging(true);\n\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n\n if (ref.current && Math.abs(ref.current[offsetProp] - size) >= 1) {\n setSize(Math.round(ref.current[offsetProp]));\n }\n },\n onMove(e) {\n setSize((size) => {\n if (isDisabled) {\n return size;\n }\n\n if (e.pointerType === 'keyboard') {\n return size;\n }\n\n size += isHorizontal\n ? e.deltaX * (direction === 'right' ? 1 : -1)\n : e.deltaY * (direction === 'bottom' ? 1 : -1);\n\n return size;\n });\n },\n onMoveEnd(e) {\n setIsDragging(false);\n setSize((size) => clamp(Math.round(size)));\n },\n });\n\n // Since we sync provided size and the local one in two ways,\n // we need a way to prevent infinite loop in some cases.\n // We will run this in setTimeout and make sure it will get the most recent state.\n const notifyChange = useEvent(() => {\n setSize((size) => {\n if (providedSize && Math.abs(providedSize - size) > 0.5) {\n return providedSize;\n }\n\n return size;\n });\n });\n\n useEffect(() => {\n onResize();\n }, [size, isDisabled]);\n\n useEffect(() => {\n if (\n !isDragging &&\n visualSize != null &&\n (providedSize == null || Math.abs(providedSize - visualSize) > 0.5)\n ) {\n onSizeChange?.(Math.round(visualSize));\n }\n }, [visualSize, isDragging]);\n\n useEffect(() => {\n timerRef.current = setTimeout(notifyChange, 500);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [providedSize]);\n\n const mods = useMemo(() => {\n return {\n drag: isDragging,\n horizontal: isHorizontal,\n disabled: isDisabled,\n };\n }, [isDragging, isHorizontal, isDisabled]);\n\n return (\n <StyledPanel\n ref={ref}\n data-direction={direction}\n mods={mods}\n extra={\n <Handler\n isDisabled={isDisabled || visualSize == null}\n direction={direction}\n {...moveProps}\n mods={mods}\n />\n }\n {...mergeProps(restProps, {\n style: {\n // We set the current size further via width/min-width/max-width styles to respect size boundaries\n '--size': `${size}px`,\n // We use a separate visual size to paint the handler for a smoother experience\n '--visual-size': `${visualSize}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': typeof maxSize === 'number' ? `${maxSize}px` : maxSize,\n },\n innerStyles: {\n // The panel inner space compensation for the handler\n margin: `$indent-compensation ${direction}`,\n },\n })}\n />\n );\n}\n\nconst _ResizablePanel = forwardRef(ResizablePanel);\n\n_ResizablePanel.displayName = 'ResizablePanel';\n\nexport { _ResizablePanel as ResizablePanel };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ResizablePanel.js","names":["mergeProps","Panel"],"sources":["../../../src/components/layout/ResizablePanel.tsx"],"sourcesContent":["import { useResizeObserver } from '@react-aria/utils';\nimport { BasePropsWithoutChildren, Styles, tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue, useEvent } from '../../_internal/hooks';\nimport { mergeProps, useCombinedRefs } from '../../utils/react';\n\nimport { CubePanelProps, Panel } from './Panel';\n\ntype Direction = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface CubeResizablePanelProps extends CubePanelProps {\n handlerStyles?: Styles;\n /**\n * Optional because both `ResizablePanel` and `Handler` destructure it as\n * `direction = 'right'`. Declaring it required contradicted that default and\n * made `no-redundant-default-prop` unusable: the rule reads the same `'right'`\n * default out of the generated registry and strips an explicit\n * `direction=\"right\"`, which then fails to typecheck.\n */\n direction?: Direction;\n size?: number;\n onSizeChange?: (size: number) => void;\n minSize?: string | number;\n maxSize?: string | number;\n isDisabled?: boolean;\n}\n\nconst HandlerElement = tasty({\n qa: 'ResizeHandler',\n styles: {\n // The real size is slightly bigger than the visual one.\n width: {\n '': 'initial',\n horizontal: '9px',\n 'disabled & horizontal': '1bw',\n },\n height: {\n '': '9px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1bw',\n },\n top: {\n '': 0,\n '[data-direction=\"top\"]': 'initial',\n },\n bottom: {\n '': 0,\n '[data-direction=\"bottom\"]': 'initial',\n },\n right: {\n '': 0,\n '[data-direction=\"right\"]': 'initial',\n },\n left: {\n '': 0,\n '[data-direction=\"left\"]': 'initial',\n },\n // Transform requires a separate visual size property to respect size boundaries\n transform: {\n '': 'translate(0, 0)',\n '[data-direction=\"top\"]':\n 'translate(0, ($size-compensation - $visual-size))',\n '[data-direction=\"right\"]':\n 'translate(($visual-size - $size-compensation), 0)',\n '[data-direction=\"bottom\"]':\n 'translate(0, ($visual-size - $size-compensation))',\n '[data-direction=\"left\"]':\n 'translate(($size-compensation - $visual-size), 0)',\n },\n position: 'absolute',\n zIndex: 1,\n cursor: {\n '': 'row-resize',\n horizontal: 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n '--size-compensation': {\n '': '6px',\n disabled: '1bw',\n },\n\n Track: {\n width: {\n '': 'initial',\n horizontal: '3px',\n 'disabled & horizontal': '1px',\n },\n height: {\n '': '3px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1px',\n },\n position: 'absolute',\n inset: {\n '': '3px 0',\n horizontal: '0 3px',\n disabled: '0 0',\n },\n fill: {\n '': '#border',\n '(hovered | drag) & !disabled': '#purple-03',\n },\n transition: 'theme',\n outline: {\n '': '1bw #primary-text.0',\n drag: '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n flow: {\n '': 'row',\n horizontal: 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n horizontal: 'auto',\n },\n gridRows: {\n '': 'auto',\n horizontal: '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n horizontal: '1px',\n },\n height: {\n '': '1px',\n horizontal: 'auto',\n },\n inset: {\n '': '4px 50% auto auto',\n horizontal: '50% 4px auto auto',\n },\n transform: {\n '': 'translate(-50%, 0)',\n horizontal: 'translate(0, -50%)',\n },\n position: 'absolute',\n transition: 'theme',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'hovered | drag': '#dark-02',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\ninterface HandlerProps extends BasePropsWithoutChildren {\n direction?: Direction;\n}\n\nconst Handler = (props: HandlerProps) => {\n const { direction = 'right', isDisabled, ...otherProps } = props;\n const { hoverProps, isHovered } = useHover({});\n const isHorizontal = direction === 'left' || direction === 'right';\n const localIsHovered = useDebouncedValue(isHovered, 150);\n\n return (\n <HandlerElement\n {...mergeProps(\n hoverProps,\n {\n mods: {\n hovered: localIsHovered,\n horizontal: isHorizontal,\n disabled: isDisabled,\n },\n 'data-direction': direction,\n },\n otherProps,\n )}\n >\n <div data-element=\"Track\" />\n {!isDisabled ? (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n ) : null}\n </HandlerElement>\n );\n};\n\nconst StyledPanel = tasty(Panel, {\n styles: {\n flexGrow: 0,\n width: {\n '': '$min-size $size $max-size',\n '[data-direction=\"top\"] | [data-direction=\"bottom\"]': 'initial',\n },\n height: {\n '': '$min-size $size $max-size',\n '[data-direction=\"left\"] | [data-direction=\"right\"]': 'initial',\n },\n placeSelf: 'stretch',\n touchAction: 'none',\n\n '$indent-compensation': {\n '': '3px',\n disabled: '1bw',\n },\n },\n});\n\nfunction ResizablePanel(\n props: CubeResizablePanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const timerRef = useRef<ReturnType<typeof setTimeout>>(null);\n const isControllable = typeof props.size === 'number';\n const {\n isDisabled,\n direction = 'right',\n size: providedSize,\n onSizeChange,\n minSize = 200,\n maxSize = isControllable ? undefined : 'min(50%, 400px)',\n ...restProps\n } = props;\n const [isDragging, setIsDragging] = useState(false);\n const isHorizontal = direction === 'left' || direction === 'right';\n\n ref = useCombinedRefs(ref);\n\n const onResize = useEvent(() => {\n if (ref?.current) {\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n const containerSize = ref.current[offsetProp];\n\n if (Math.abs(containerSize - size) < 1 && !isDisabled) {\n setVisualSize(size);\n } else {\n setVisualSize(containerSize);\n }\n }\n });\n\n useResizeObserver({\n ref,\n onResize,\n });\n\n function clamp(size: number) {\n if (typeof maxSize === 'number') {\n size = Math.min(maxSize, size);\n }\n\n if (typeof minSize === 'number' || !minSize) {\n size = Math.max((minSize as number) || 0, size);\n }\n\n return Math.max(size, 0);\n }\n\n let [size, setSize] = useState<number>(\n providedSize != null ? clamp(providedSize) : 200,\n );\n let [visualSize, setVisualSize] = useState<number | null>(null);\n\n let { moveProps } = useMove({\n onMoveStart(e) {\n if (isDisabled) {\n return;\n }\n\n setIsDragging(true);\n\n const offsetProp = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n\n if (ref.current && Math.abs(ref.current[offsetProp] - size) >= 1) {\n setSize(Math.round(ref.current[offsetProp]));\n }\n },\n onMove(e) {\n setSize((size) => {\n if (isDisabled) {\n return size;\n }\n\n if (e.pointerType === 'keyboard') {\n return size;\n }\n\n size += isHorizontal\n ? e.deltaX * (direction === 'right' ? 1 : -1)\n : e.deltaY * (direction === 'bottom' ? 1 : -1);\n\n return size;\n });\n },\n onMoveEnd(e) {\n setIsDragging(false);\n setSize((size) => clamp(Math.round(size)));\n },\n });\n\n // Since we sync provided size and the local one in two ways,\n // we need a way to prevent infinite loop in some cases.\n // We will run this in setTimeout and make sure it will get the most recent state.\n const notifyChange = useEvent(() => {\n setSize((size) => {\n if (providedSize && Math.abs(providedSize - size) > 0.5) {\n return providedSize;\n }\n\n return size;\n });\n });\n\n useEffect(() => {\n onResize();\n }, [size, isDisabled]);\n\n useEffect(() => {\n if (\n !isDragging &&\n visualSize != null &&\n (providedSize == null || Math.abs(providedSize - visualSize) > 0.5)\n ) {\n onSizeChange?.(Math.round(visualSize));\n }\n }, [visualSize, isDragging]);\n\n useEffect(() => {\n timerRef.current = setTimeout(notifyChange, 500);\n\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n };\n }, [providedSize]);\n\n const mods = useMemo(() => {\n return {\n drag: isDragging,\n horizontal: isHorizontal,\n disabled: isDisabled,\n };\n }, [isDragging, isHorizontal, isDisabled]);\n\n return (\n <StyledPanel\n ref={ref}\n data-direction={direction}\n mods={mods}\n extra={\n <Handler\n isDisabled={isDisabled || visualSize == null}\n direction={direction}\n {...moveProps}\n mods={mods}\n />\n }\n {...mergeProps(restProps, {\n style: {\n // We set the current size further via width/min-width/max-width styles to respect size boundaries\n '--size': `${size}px`,\n // We use a separate visual size to paint the handler for a smoother experience\n '--visual-size': `${visualSize}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': typeof maxSize === 'number' ? `${maxSize}px` : maxSize,\n },\n innerStyles: {\n // The panel inner space compensation for the handler\n margin: `$indent-compensation ${direction}`,\n },\n })}\n />\n );\n}\n\nconst _ResizablePanel = forwardRef(ResizablePanel);\n\n_ResizablePanel.displayName = 'ResizablePanel';\n\nexport { _ResizablePanel as ResizablePanel };\n"],"mappings":";;;;;;;;;;;;;AAoCA,MAAM,iBAAiB,MAAM;CAC3B,IAAI;CACJ,QAAQ;EAEN,OAAO;GACL,IAAI;GACJ,YAAY;GACZ,yBAAyB;GAC1B;EACD,QAAQ;GACN,IAAI;GACJ,YAAY;GACZ,0BAA0B;GAC3B;EACD,KAAK;GACH,IAAI;GACJ,4BAA0B;GAC3B;EACD,QAAQ;GACN,IAAI;GACJ,+BAA6B;GAC9B;EACD,OAAO;GACL,IAAI;GACJ,8BAA4B;GAC7B;EACD,MAAM;GACJ,IAAI;GACJ,6BAA2B;GAC5B;EAED,WAAW;GACT,IAAI;GACJ,4BACE;GACF,8BACE;GACF,+BACE;GACF,6BACE;GACH;EACD,UAAU;EACV,QAAQ;EACR,QAAQ;GACN,IAAI;GACJ,YAAY;GACZ,UAAU;GACX;EACD,SAAS;EACT,WAAW;EACX,YAAY;EACZ,uBAAuB;GACrB,IAAI;GACJ,UAAU;GACX;EAED,OAAO;GACL,OAAO;IACL,IAAI;IACJ,YAAY;IACZ,yBAAyB;IAC1B;GACD,QAAQ;IACN,IAAI;IACJ,YAAY;IACZ,0BAA0B;IAC3B;GACD,UAAU;GACV,OAAO;IACL,IAAI;IACJ,YAAY;IACZ,UAAU;IACX;GACD,MAAM;IACJ,IAAI;IACJ,gCAAgC;IACjC;GACD,YAAY;GACZ,SAAS;IACP,IAAI;IACJ,MAAM;IACP;GACD,eAAe;GAChB;EAED,MAAM;GACJ,SAAS;GACT,KAAK;GACL,MAAM;IACJ,IAAI;IACJ,YAAY;IACb;GACD,aAAa;IACX,IAAI;IACJ,YAAY;IACb;GACD,UAAU;IACR,IAAI;IACJ,YAAY;IACb;GACD,OAAO;IACL,IAAI;IACJ,YAAY;IACb;GACD,QAAQ;IACN,IAAI;IACJ,YAAY;IACb;GACD,OAAO;IACL,IAAI;IACJ,YAAY;IACb;GACD,WAAW;IACT,IAAI;IACJ,YAAY;IACb;GACD,UAAU;GACV,YAAY;GACb;EAED,UAAU;GACR,QAAQ;GACR,MAAM;IACJ,IAAI;IACJ,kBAAkB;IAClB,UAAU;IACX;GACF;EACF;CACF,CAAC;AAMF,MAAM,WAAW,UAAwB;CACvC,MAAM,EAAE,YAAY,SAAS,YAAY,GAAG,eAAe;CAC3D,MAAM,EAAE,YAAY,cAAc,SAAS,EAAE,CAAC;CAC9C,MAAM,eAAe,cAAc,UAAU,cAAc;AAG3D,QACE,qBAAC;EACC,GAAIA,aACF,YACA;GACE,MAAM;IACJ,SARa,kBAAkB,WAAW,IAAI;IAS9C,YAAY;IACZ,UAAU;IACX;GACD,kBAAkB;GACnB,EACD,WACD;aAED,oBAAC,SAAI,gBAAa,UAAU,EAC3B,CAAC,aACA,qBAAC;GAAI,gBAAa;;IAChB,oBAAC,SAAI,gBAAa,aAAa;IAC/B,oBAAC,SAAI,gBAAa,aAAa;IAC/B,oBAAC,SAAI,gBAAa,aAAa;IAC/B,oBAAC,SAAI,gBAAa,aAAa;IAC/B,oBAAC,SAAI,gBAAa,aAAa;;IAC3B,GACJ;GACW;;AAIrB,MAAM,cAAc,MAAMC,QAAO,EAC/B,QAAQ;CACN,UAAU;CACV,OAAO;EACL,IAAI;EACJ,0DAAsD;EACvD;CACD,QAAQ;EACN,IAAI;EACJ,0DAAsD;EACvD;CACD,WAAW;CACX,aAAa;CAEb,wBAAwB;EACtB,IAAI;EACJ,UAAU;EACX;CACF,EACF,CAAC;AAEF,SAAS,eACP,OACA,KACA;CACA,MAAM,WAAW,OAAsC,KAAK;CAC5D,MAAM,iBAAiB,OAAO,MAAM,SAAS;CAC7C,MAAM,EACJ,YACA,YAAY,SACZ,MAAM,cACN,cACA,UAAU,KACV,UAAU,iBAAiB,SAAY,mBACvC,GAAG,cACD;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;CACnD,MAAM,eAAe,cAAc,UAAU,cAAc;AAE3D,OAAM,gBAAgB,IAAI;CAE1B,MAAM,WAAW,eAAe;AAC9B,MAAI,KAAK,SAAS;GAChB,MAAM,aAAa,eAAe,gBAAgB;GAClD,MAAM,gBAAgB,IAAI,QAAQ;AAElC,OAAI,KAAK,IAAI,gBAAgB,KAAK,GAAG,KAAK,CAAC,WACzC,eAAc,KAAK;OAEnB,eAAc,cAAc;;GAGhC;AAEF,mBAAkB;EAChB;EACA;EACD,CAAC;CAEF,SAAS,MAAM,MAAc;AAC3B,MAAI,OAAO,YAAY,SACrB,QAAO,KAAK,IAAI,SAAS,KAAK;AAGhC,MAAI,OAAO,YAAY,YAAY,CAAC,QAClC,QAAO,KAAK,IAAK,WAAsB,GAAG,KAAK;AAGjD,SAAO,KAAK,IAAI,MAAM,EAAE;;CAG1B,IAAI,CAAC,MAAM,WAAW,SACpB,gBAAgB,OAAO,MAAM,aAAa,GAAG,IAC9C;CACD,IAAI,CAAC,YAAY,iBAAiB,SAAwB,KAAK;CAE/D,IAAI,EAAE,cAAc,QAAQ;EAC1B,YAAY,GAAG;AACb,OAAI,WACF;AAGF,iBAAc,KAAK;GAEnB,MAAM,aAAa,eAAe,gBAAgB;AAElD,OAAI,IAAI,WAAW,KAAK,IAAI,IAAI,QAAQ,cAAc,KAAK,IAAI,EAC7D,SAAQ,KAAK,MAAM,IAAI,QAAQ,YAAY,CAAC;;EAGhD,OAAO,GAAG;AACR,YAAS,SAAS;AAChB,QAAI,WACF,QAAO;AAGT,QAAI,EAAE,gBAAgB,WACpB,QAAO;AAGT,YAAQ,eACJ,EAAE,UAAU,cAAc,UAAU,IAAI,MACxC,EAAE,UAAU,cAAc,WAAW,IAAI;AAE7C,WAAO;KACP;;EAEJ,UAAU,GAAG;AACX,iBAAc,MAAM;AACpB,YAAS,SAAS,MAAM,KAAK,MAAM,KAAK,CAAC,CAAC;;EAE7C,CAAC;CAKF,MAAM,eAAe,eAAe;AAClC,WAAS,SAAS;AAChB,OAAI,gBAAgB,KAAK,IAAI,eAAe,KAAK,GAAG,GAClD,QAAO;AAGT,UAAO;IACP;GACF;AAEF,iBAAgB;AACd,YAAU;IACT,CAAC,MAAM,WAAW,CAAC;AAEtB,iBAAgB;AACd,MACE,CAAC,cACD,cAAc,SACb,gBAAgB,QAAQ,KAAK,IAAI,eAAe,WAAW,GAAG,IAE/D,gBAAe,KAAK,MAAM,WAAW,CAAC;IAEvC,CAAC,YAAY,WAAW,CAAC;AAE5B,iBAAgB;AACd,WAAS,UAAU,WAAW,cAAc,IAAI;AAEhD,eAAa;AACX,OAAI,SAAS,QACX,cAAa,SAAS,QAAQ;;IAGjC,CAAC,aAAa,CAAC;CAElB,MAAM,OAAO,cAAc;AACzB,SAAO;GACL,MAAM;GACN,YAAY;GACZ,UAAU;GACX;IACA;EAAC;EAAY;EAAc;EAAW,CAAC;AAE1C,QACE,oBAAC;EACM;EACL,kBAAgB;EACV;EACN,OACE,oBAAC;GACC,YAAY,cAAc,cAAc;GAC7B;GACX,GAAI;GACE;IACN;EAEJ,GAAID,aAAW,WAAW;GACxB,OAAO;IAEL,UAAU,GAAG,KAAK;IAElB,iBAAiB,GAAG,WAAW;IAC/B,cAAc,OAAO,YAAY,WAAW,GAAG,QAAQ,MAAM;IAC7D,cAAc,OAAO,YAAY,WAAW,GAAG,QAAQ,MAAM;IAC9D;GACD,aAAa,EAEX,QAAQ,wBAAwB,aACjC;GACF,CAAC;GACF;;AAIN,MAAM,kBAAkB,WAAW,eAAe;AAElD,gBAAgB,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { CONTAINER_STYLES, filterBaseProps, parseStyle, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useMemo } from "react";
4
4
  import { useControlledState } from "@react-stately/utils";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { DraggableCollection } from "../../shared/DraggableCollection.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { DropIndicatorElement } from "./styled.js";
3
3
  import { useTabsContext } from "./TabsContext.js";
4
4
  import { useEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { TabPanelElement } from "./styled.js";
3
3
  import { useEffect, useMemo, useRef } from "react";
4
4
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { CloseIcon } from "../../../icons/CloseIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { _ItemButton } from "../../actions/ItemButton/ItemButton.js";
3
3
  import { useOptionalTabsContext } from "./TabsContext.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/navigation/Tabs/popover-placement.ts
3
3
  /**
4
4
  * Maps the parent Tabs `placement` to the popover placement for menus and
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { _Item } from "../../content/Item/Item.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  //#region src/components/navigation/Tabs/types.ts
3
3
  /**
4
4
  * Size mapping for radio type tabs.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { useCallback, useState } from "react";
3
3
 
4
4
  //#region src/components/navigation/Tabs/use-tab-editing.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { chainRaf } from "../../../utils/raf.js";
3
3
  import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { _Text } from "../../content/Text.js";
3
3
  import { _Title } from "../../content/Title.js";
4
4
  import { Card } from "../../content/Card/Card.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { _Title } from "../../content/Title.js";
3
3
  import { useProviderProps } from "../../../provider.js";
4
4
  import { Space } from "../../layout/Space.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { useRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { getWeekNumber } from "../../fields/DatePicker/period.js";
3
3
  import { CalendarCell } from "./CalendarCell.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { _Title } from "../../content/Title.js";
3
3
  import { useProviderProps } from "../../../provider.js";
4
4
  import { Space } from "../../layout/Space.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { _Title } from "../../content/Title.js";
3
3
  import { useProviderProps } from "../../../provider.js";
4
4
  import { Space } from "../../layout/Space.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { Icon } from "../../../icons/Icon.js";
3
3
  import { mergeStyles, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { Paragraph } from "../../content/Paragraph.js";
4
4
  import { _Title } from "../../content/Title.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { AlertDialogZone } from "./AlertDialogZone.js";
3
3
  import { createContext, useContext, useMemo, useRef, useState } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | Cube Dev Team */
2
2
  import { Portal } from "../../portal/Portal.js";
3
3
  import { DialogContainer } from "../Dialog/DialogContainer.js";
4
4
  import { _AlertDialog } from "./AlertDialog.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.157.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.3 | 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 { SlotProvider } from "../../../utils/react/Slots.js";