@cube-dev/ui-kit 0.199.1 → 0.200.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/dist/CHANGELOG.md +47 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +2 -2
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.d.ts +6 -4
  15. package/dist/components/GridProvider.js +14 -9
  16. package/dist/components/GridProvider.js.map +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.js +17 -17
  19. package/dist/components/Root.js.map +1 -1
  20. package/dist/components/actions/Action/Action.js +1 -1
  21. package/dist/components/actions/Banner/Banner.js +1 -1
  22. package/dist/components/actions/Button/Button.js +7 -9
  23. package/dist/components/actions/Button/Button.js.map +1 -1
  24. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +7 -12
  30. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js +35 -37
  33. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  34. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  35. package/dist/components/actions/Link/Link.js +1 -1
  36. package/dist/components/actions/Menu/Menu.js +1 -1
  37. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuItem.js +1 -1
  39. package/dist/components/actions/Menu/MenuSection.js +1 -1
  40. package/dist/components/actions/Menu/MenuTrigger.js +116 -127
  41. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js +4 -3
  43. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  44. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  45. package/dist/components/actions/Menu/context.js +1 -1
  46. package/dist/components/actions/Menu/styled.js +5 -4
  47. package/dist/components/actions/Menu/styled.js.map +1 -1
  48. package/dist/components/actions/actions-run.js +1 -1
  49. package/dist/components/actions/index.js +1 -1
  50. package/dist/components/actions/use-action.js +1 -1
  51. package/dist/components/actions/use-anchored-menu.js +1 -1
  52. package/dist/components/actions/use-context-menu.js +32 -23
  53. package/dist/components/actions/use-context-menu.js.map +1 -1
  54. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  55. package/dist/components/content/Alert/Alert.js +1 -1
  56. package/dist/components/content/Alert/Alert.js.map +1 -1
  57. package/dist/components/content/Alert/use-alert.js +24 -27
  58. package/dist/components/content/Alert/use-alert.js.map +1 -1
  59. package/dist/components/content/Avatar/Avatar.js +1 -1
  60. package/dist/components/content/Badge/Badge.js +6 -2
  61. package/dist/components/content/Badge/Badge.js.map +1 -1
  62. package/dist/components/content/Card/Card.js +1 -1
  63. package/dist/components/content/Content.js +1 -1
  64. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
  65. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  66. package/dist/components/content/CopySnippet/CopySnippet.js +83 -87
  67. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  68. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  69. package/dist/components/content/Divider.js +1 -1
  70. package/dist/components/content/Footer.js +1 -1
  71. package/dist/components/content/Header.js +1 -1
  72. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  73. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  74. package/dist/components/content/InlineInput/InlineInput.js +6 -13
  75. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  76. package/dist/components/content/Item/Item.js +18 -18
  77. package/dist/components/content/Item/Item.js.map +1 -1
  78. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  79. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  80. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  81. package/dist/components/content/Layout/GridLayout.js +1 -1
  82. package/dist/components/content/Layout/Layout.js +10 -14
  83. package/dist/components/content/Layout/Layout.js.map +1 -1
  84. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  85. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  86. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  87. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  88. package/dist/components/content/Layout/LayoutContent.js +18 -16
  89. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  90. package/dist/components/content/Layout/LayoutContext.js +1 -1
  91. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  92. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  93. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  94. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  95. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  96. package/dist/components/content/Layout/LayoutPane.js +35 -31
  97. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  98. package/dist/components/content/Layout/LayoutPanel.js +31 -27
  99. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  100. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  101. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  102. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  103. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +23 -25
  104. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  105. package/dist/components/content/Layout/index.js +1 -1
  106. package/dist/components/content/Layout/utils.js +1 -1
  107. package/dist/components/content/Paragraph.js +1 -1
  108. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  109. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  110. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  111. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  112. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  113. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  114. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  115. package/dist/components/content/Result/Result.js +1 -1
  116. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  117. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  118. package/dist/components/content/Tag/Tag.js +6 -2
  119. package/dist/components/content/Tag/Tag.js.map +1 -1
  120. package/dist/components/content/Text.js +1 -1
  121. package/dist/components/content/TextItem/TextItem.js +2 -5
  122. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  123. package/dist/components/content/Title.js +1 -1
  124. package/dist/components/content/Tree/Tree.js +11 -21
  125. package/dist/components/content/Tree/Tree.js.map +1 -1
  126. package/dist/components/content/Tree/TreeNode.js +7 -7
  127. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  128. package/dist/components/content/Tree/styled.js +31 -12
  129. package/dist/components/content/Tree/styled.js.map +1 -1
  130. package/dist/components/content/Tree/tree-index.js +1 -1
  131. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  132. package/dist/components/content/Tree/use-load-data.js +1 -1
  133. package/dist/components/content/highlightText.js +1 -1
  134. package/dist/components/content/use-auto-tooltip.js +1 -1
  135. package/dist/components/data/DataTable/DataTable.js +1 -1
  136. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  137. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  138. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  139. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  140. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
  141. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  142. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  143. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  144. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  145. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  146. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  147. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  148. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  149. package/dist/components/data/TableBase/RowCollection.js +1 -1
  150. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  151. package/dist/components/data/TableBase/TableRow.js +1 -1
  152. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  153. package/dist/components/data/TableBase/TableView.js +4 -7
  154. package/dist/components/data/TableBase/TableView.js.map +1 -1
  155. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  156. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
  157. package/dist/components/data/TableBase/column-header.js +1 -1
  158. package/dist/components/data/TableBase/column-menu.js +1 -1
  159. package/dist/components/data/TableBase/column-styles.js +1 -1
  160. package/dist/components/data/TableBase/column-tint.js +1 -1
  161. package/dist/components/data/TableBase/row-menu.js +1 -1
  162. package/dist/components/data/TableBase/styled.js +36 -29
  163. package/dist/components/data/TableBase/styled.js.map +1 -1
  164. package/dist/components/data/TableBase/table-tree.js +1 -1
  165. package/dist/components/data/TableBase/types.js +1 -1
  166. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  167. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  168. package/dist/components/data/TableBase/use-column-order.js +1 -1
  169. package/dist/components/data/TableBase/use-column-window.js +1 -1
  170. package/dist/components/data/TableBase/use-container-width.js +1 -1
  171. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  172. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  173. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  174. package/dist/components/data/TableBase/use-table-search.js +1 -1
  175. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  176. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  177. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  178. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  179. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  180. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  181. package/dist/components/fields/Checkbox/Checkbox.js +3 -3
  182. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  183. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  184. package/dist/components/fields/Checkbox/context.js +1 -1
  185. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  186. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  187. package/dist/components/fields/ColorSwatch/ColorSwatch.d.ts +1 -1
  188. package/dist/components/fields/ColorSwatch/ColorSwatch.js +4 -4
  189. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
  190. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +12 -15
  191. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  192. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  193. package/dist/components/fields/ComboBox/ComboBox.js +174 -183
  194. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  195. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  196. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -1
  197. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  198. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  199. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  200. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  201. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  202. package/dist/components/fields/DatePicker/DateInputBase.js +5 -9
  203. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  204. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  205. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  206. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  207. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  208. package/dist/components/fields/DatePicker/DatePickerSegment.js +49 -39
  209. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  210. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  211. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  212. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  213. package/dist/components/fields/DatePicker/PeriodPicker.js +5 -3
  214. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  215. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  216. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  217. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  218. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  219. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  220. package/dist/components/fields/DatePicker/period.js +1 -1
  221. package/dist/components/fields/DatePicker/props.js +1 -1
  222. package/dist/components/fields/DatePicker/utils.js +1 -1
  223. package/dist/components/fields/FileInput/FileInput.js +2 -2
  224. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  225. package/dist/components/fields/FilterListBox/FilterListBox.js +6 -8
  226. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  227. package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
  228. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  229. package/dist/components/fields/Input/Input.js +1 -1
  230. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  231. package/dist/components/fields/ListBox/ListBox.d.ts +1 -1
  232. package/dist/components/fields/ListBox/ListBox.js +49 -24
  233. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  234. package/dist/components/fields/ListBox/optionId.js +1 -1
  235. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +2 -2
  236. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  237. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  238. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  239. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  240. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  241. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  242. package/dist/components/fields/Picker/Picker.js +2 -2
  243. package/dist/components/fields/Picker/Picker.js.map +1 -1
  244. package/dist/components/fields/RadioGroup/Radio.js +91 -96
  245. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  246. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  247. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  248. package/dist/components/fields/RadioGroup/context.js +1 -1
  249. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +1 -1
  250. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -2
  251. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  252. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  253. package/dist/components/fields/Select/Select.d.ts +1 -1
  254. package/dist/components/fields/Select/Select.js +4 -4
  255. package/dist/components/fields/Select/Select.js.map +1 -1
  256. package/dist/components/fields/Slider/Gradation.js +1 -1
  257. package/dist/components/fields/Slider/HueSlider.js +3 -3
  258. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  259. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  260. package/dist/components/fields/Slider/Slider.js +1 -1
  261. package/dist/components/fields/Slider/SliderBase.js +4 -6
  262. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  263. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  264. package/dist/components/fields/Slider/SliderTrack.js +5 -5
  265. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  266. package/dist/components/fields/Slider/elements.js +7 -6
  267. package/dist/components/fields/Slider/elements.js.map +1 -1
  268. package/dist/components/fields/Slider/index.js +1 -1
  269. package/dist/components/fields/Switch/Switch.js +3 -3
  270. package/dist/components/fields/Switch/Switch.js.map +1 -1
  271. package/dist/components/fields/TagInput/TagInput.d.ts +1 -1
  272. package/dist/components/fields/TagInput/TagInput.js +1 -1
  273. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  274. package/dist/components/fields/TagInput/TagList.js +3 -3
  275. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  276. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  277. package/dist/components/fields/TagInput/useTagError.js +1 -1
  278. package/dist/components/fields/TextArea/TextArea.js +1 -1
  279. package/dist/components/fields/TextInput/TextInput.js +1 -1
  280. package/dist/components/fields/TextInput/TextInputBase.js +3 -6
  281. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  282. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  283. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  284. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  285. package/dist/components/fields/TriggerActions.js +1 -1
  286. package/dist/components/fields/color/ColorPanel.js +7 -7
  287. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  288. package/dist/components/fields/color/channels.js +4 -4
  289. package/dist/components/fields/color/channels.js.map +1 -1
  290. package/dist/components/fields/color/color.js +1 -1
  291. package/dist/components/fields/color/context.js +1 -1
  292. package/dist/components/fields/option-origin-press.js +1 -1
  293. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  294. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  295. package/dist/components/form/Form/Field.js +1 -1
  296. package/dist/components/form/Form/Form.js +1 -1
  297. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  298. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  299. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  300. package/dist/components/form/Form/SubmitError.js +1 -1
  301. package/dist/components/form/Form/backend.js +1 -1
  302. package/dist/components/form/Form/index.js +1 -1
  303. package/dist/components/form/Form/modern/actions.js +1 -1
  304. package/dist/components/form/Form/modern/context.js +1 -1
  305. package/dist/components/form/Form/modern/controller.js +1 -1
  306. package/dist/components/form/Form/modern/field-binding.js +1 -1
  307. package/dist/components/form/Form/modern/field.js +1 -1
  308. package/dist/components/form/Form/modern/react.js +1 -1
  309. package/dist/components/form/Form/modern/store.js +1 -1
  310. package/dist/components/form/Form/modern/validation.js +1 -1
  311. package/dist/components/form/Form/modern/values.js +1 -1
  312. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  313. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  314. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  315. package/dist/components/form/Form/use-field/use-field.js +1 -1
  316. package/dist/components/form/Form/use-form.js +1 -1
  317. package/dist/components/form/Form/validation.js +1 -1
  318. package/dist/components/form/Label.js +11 -8
  319. package/dist/components/form/Label.js.map +1 -1
  320. package/dist/components/form/field-chrome.js +1 -1
  321. package/dist/components/form/legacy-tooltip.js +1 -1
  322. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  323. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  324. package/dist/components/form/validation/use-validation-props.js +1 -1
  325. package/dist/components/form/wrapper.js +1 -1
  326. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  327. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  328. package/dist/components/layout/Flex.js +1 -1
  329. package/dist/components/layout/Flow.js +1 -1
  330. package/dist/components/layout/Grid.js +1 -1
  331. package/dist/components/layout/Panel.js +13 -38
  332. package/dist/components/layout/Panel.js.map +1 -1
  333. package/dist/components/layout/Prefix.js +16 -22
  334. package/dist/components/layout/Prefix.js.map +1 -1
  335. package/dist/components/layout/ResizablePanel.js +30 -25
  336. package/dist/components/layout/ResizablePanel.js.map +1 -1
  337. package/dist/components/layout/Space.js +1 -1
  338. package/dist/components/layout/Suffix.js +16 -22
  339. package/dist/components/layout/Suffix.js.map +1 -1
  340. package/dist/components/navigation/Pagination/Pagination.js +2 -2
  341. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  342. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  343. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  344. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  345. package/dist/components/navigation/Tabs/TabButton.js +2 -1
  346. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  347. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  348. package/dist/components/navigation/Tabs/TabPanel.js +2 -2
  349. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  350. package/dist/components/navigation/Tabs/TabPicker.js +62 -68
  351. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  352. package/dist/components/navigation/Tabs/Tabs.js +6 -9
  353. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  354. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  355. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  356. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  357. package/dist/components/navigation/Tabs/styled.js +20 -17
  358. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  359. package/dist/components/navigation/Tabs/types.js +1 -1
  360. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  361. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  362. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  363. package/dist/components/other/Calendar/Calendar.js +1 -1
  364. package/dist/components/other/Calendar/CalendarCell.js +6 -6
  365. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  366. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  367. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  368. package/dist/components/other/Calendar/CalendarPanel.js +3 -3
  369. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  370. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  371. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  372. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  373. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  374. package/dist/components/other/Calendar/styled.js +4 -4
  375. package/dist/components/other/Calendar/styled.js.map +1 -1
  376. package/dist/components/other/CubeLogo/CubeLogo.js +3 -4
  377. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  378. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  379. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  380. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  381. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  382. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  383. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  384. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  385. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  386. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  387. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  388. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  389. package/dist/components/overlays/Dialog/context.js +1 -1
  390. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  391. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  392. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  393. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  394. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  395. package/dist/components/overlays/Modal/Modal.js +3 -3
  396. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  397. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  398. package/dist/components/overlays/Modal/Overlay.js +1 -1
  399. package/dist/components/overlays/Modal/Popover.js +1 -1
  400. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  401. package/dist/components/overlays/Modal/Tray.js +5 -6
  402. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  403. package/dist/components/overlays/Modal/Underlay.js +2 -2
  404. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  405. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  406. package/dist/components/overlays/Notifications/Notification.js +1 -1
  407. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  408. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  409. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  410. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  411. package/dist/components/overlays/Notifications/OverlayContainer.js +28 -13
  412. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  413. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  414. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  415. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  416. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  417. package/dist/components/overlays/Notifications/index.js +1 -1
  418. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  419. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  420. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  421. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  422. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  423. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  424. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  425. package/dist/components/overlays/Toast/index.js +1 -1
  426. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  427. package/dist/components/overlays/Toast/useToast.js +1 -1
  428. package/dist/components/overlays/Tooltip/Tooltip.js +8 -6
  429. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  430. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  431. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  432. package/dist/components/overlays/Tooltip/context.js +1 -1
  433. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  434. package/dist/components/portal/Portal.js +1 -1
  435. package/dist/components/portal/PortalProvider.js +1 -1
  436. package/dist/components/portal/usePortal.js +1 -1
  437. package/dist/components/shared/DraggableCollection.js +1 -1
  438. package/dist/components/shared/InvalidIcon.js +1 -1
  439. package/dist/components/shared/ValidIcon.js +1 -1
  440. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +58 -57
  441. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  442. package/dist/components/status/Spin/Cube.js +1 -1
  443. package/dist/components/status/Spin/Cube.js.map +1 -1
  444. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  445. package/dist/components/status/Spin/Spin.js +1 -1
  446. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  447. package/dist/data/item-themes.js +153 -188
  448. package/dist/data/item-themes.js.map +1 -1
  449. package/dist/data/themes.js +1 -1
  450. package/dist/eslint-plugin/defaults.generated.js +2 -2
  451. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  452. package/dist/eslint-plugin/index.js +1 -1
  453. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  454. package/dist/i18n/I18nProvider.js +1 -1
  455. package/dist/i18n/createFormatter.js +1 -1
  456. package/dist/i18n/index.js +1 -1
  457. package/dist/i18n/instance.js +1 -1
  458. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  459. package/dist/i18n/locales/en-US/uikit.js +1 -1
  460. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  461. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  462. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  463. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  464. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  465. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  466. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  467. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  468. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  469. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  470. package/dist/i18n/locales.js +1 -1
  471. package/dist/i18n/namespace.js +1 -1
  472. package/dist/i18n/useFormatter.js +1 -1
  473. package/dist/i18n/useI18n.js +1 -1
  474. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  475. package/dist/icons/AdjustmentsIcon.js +1 -1
  476. package/dist/icons/AiIcon.js +1 -1
  477. package/dist/icons/AreaChartIcon.js +1 -1
  478. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  479. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  480. package/dist/icons/BackwardIcon.js +1 -1
  481. package/dist/icons/BarChartIcon.js +1 -1
  482. package/dist/icons/BellFilledIcon.js +1 -1
  483. package/dist/icons/BellIcon.js +1 -1
  484. package/dist/icons/BooleanIcon.js +1 -1
  485. package/dist/icons/CalendarEditIcon.js +1 -1
  486. package/dist/icons/CalendarIcon.js +1 -1
  487. package/dist/icons/CaretDownIcon.js +1 -1
  488. package/dist/icons/CaretUpIcon.js +1 -1
  489. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  490. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  491. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  492. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  493. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  494. package/dist/icons/ChartBarLineIcon.js +1 -1
  495. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  496. package/dist/icons/ChartBarStackedIcon.js +1 -1
  497. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  498. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  499. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  500. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  501. package/dist/icons/ChartBubbleIcon.js +1 -1
  502. package/dist/icons/ChartDonut2Icon.js +1 -1
  503. package/dist/icons/ChartFunnelIcon.js +1 -1
  504. package/dist/icons/ChartHeatmapIcon.js +1 -1
  505. package/dist/icons/ChartKPIIcon.js +1 -1
  506. package/dist/icons/ChartPie2Icon.js +1 -1
  507. package/dist/icons/ChartScatterIcon.js +1 -1
  508. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  509. package/dist/icons/CheckCircleIcon.js +1 -1
  510. package/dist/icons/CheckIcon.js +1 -1
  511. package/dist/icons/CircleFilledIcon.js +1 -1
  512. package/dist/icons/ClearIcon.js +1 -1
  513. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  514. package/dist/icons/CloseCircleIcon.js +1 -1
  515. package/dist/icons/CloseIcon.js +1 -1
  516. package/dist/icons/CodeIcon.js +1 -1
  517. package/dist/icons/ColumnTotalIcon.js +1 -1
  518. package/dist/icons/CopyIcon.js +1 -1
  519. package/dist/icons/CountIcon.js +1 -1
  520. package/dist/icons/CubeIcon.js +1 -1
  521. package/dist/icons/CubePauseIcon.js +1 -1
  522. package/dist/icons/CubePlayIcon.js +1 -1
  523. package/dist/icons/CurrencyDollarIcon.js +1 -1
  524. package/dist/icons/DangerIcon.js +1 -1
  525. package/dist/icons/DashboardIcon.js +1 -1
  526. package/dist/icons/DatabaseIcon.js +1 -1
  527. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  528. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  529. package/dist/icons/DirectionIcon.js +25 -22
  530. package/dist/icons/DirectionIcon.js.map +1 -1
  531. package/dist/icons/DonutIcon.js +1 -1
  532. package/dist/icons/DownIcon.js +1 -1
  533. package/dist/icons/EditIcon.js +1 -1
  534. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  535. package/dist/icons/ExclamationCircleIcon.js +1 -1
  536. package/dist/icons/ExclamationIcon.js +1 -1
  537. package/dist/icons/EyeIcon.js +1 -1
  538. package/dist/icons/EyeInvisibleIcon.js +1 -1
  539. package/dist/icons/FilterIcon.js +1 -1
  540. package/dist/icons/FolderFilledIcon.js +1 -1
  541. package/dist/icons/FolderIcon.js +1 -1
  542. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  543. package/dist/icons/FolderOpenIcon.js +1 -1
  544. package/dist/icons/ForwardIcon.js +1 -1
  545. package/dist/icons/GripVerticalIcon.js +1 -1
  546. package/dist/icons/HierarchyIcon.js +1 -1
  547. package/dist/icons/HierarchyOpenIcon.js +1 -1
  548. package/dist/icons/Icon.js +21 -38
  549. package/dist/icons/Icon.js.map +1 -1
  550. package/dist/icons/InfoCircleIcon.js +1 -1
  551. package/dist/icons/InfoIcon.js +1 -1
  552. package/dist/icons/KeyIcon.js +1 -1
  553. package/dist/icons/LeftIcon.js +1 -1
  554. package/dist/icons/LineChartIcon.js +1 -1
  555. package/dist/icons/LoadingIcon.js +1 -1
  556. package/dist/icons/LockFilledIcon.js +1 -1
  557. package/dist/icons/LockIcon.js +1 -1
  558. package/dist/icons/MoreIcon.js +1 -1
  559. package/dist/icons/NotAllowedIcon.js +1 -1
  560. package/dist/icons/Number123Icon.js +1 -1
  561. package/dist/icons/NumberIcon.js +1 -1
  562. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  563. package/dist/icons/PauseCircleIcon.js +1 -1
  564. package/dist/icons/PauseIcon.js +1 -1
  565. package/dist/icons/PercentageIcon.js +1 -1
  566. package/dist/icons/PieChartIcon.js +1 -1
  567. package/dist/icons/PipetteIcon.js +1 -1
  568. package/dist/icons/PlayCircleIcon.js +7 -2
  569. package/dist/icons/PlayCircleIcon.js.map +1 -1
  570. package/dist/icons/PlayIcon.js +1 -1
  571. package/dist/icons/PlusIcon.js +1 -1
  572. package/dist/icons/ProgressBarIcon.js +1 -1
  573. package/dist/icons/ReloadIcon.js +1 -1
  574. package/dist/icons/ReportIcon.js +1 -1
  575. package/dist/icons/ReturnIcon.js +1 -1
  576. package/dist/icons/RightIcon.js +1 -1
  577. package/dist/icons/RowTotalsIcon.js +1 -1
  578. package/dist/icons/SchemeIcon.js +1 -1
  579. package/dist/icons/SearchIcon.js +1 -1
  580. package/dist/icons/SemanticQueryIcon.js +1 -1
  581. package/dist/icons/SettingsIcon.js +1 -1
  582. package/dist/icons/ShieldFilledIcon.js +1 -1
  583. package/dist/icons/ShieldIcon.js +1 -1
  584. package/dist/icons/SlashIcon.js +1 -1
  585. package/dist/icons/SparklesIcon.js +1 -1
  586. package/dist/icons/SqlIcon.js +1 -1
  587. package/dist/icons/StatsIcon.js +1 -1
  588. package/dist/icons/StopIcon.js +1 -1
  589. package/dist/icons/StringIcon.js +1 -1
  590. package/dist/icons/SubtotalsIcon.js +1 -1
  591. package/dist/icons/SwitchIcon.js +1 -1
  592. package/dist/icons/TableIcon.js +1 -1
  593. package/dist/icons/ThumbsDownIcon.js +1 -1
  594. package/dist/icons/ThumbsUpIcon.js +1 -1
  595. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  596. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  597. package/dist/icons/ThunderboltIcon.js +1 -1
  598. package/dist/icons/TimeIcon.js +1 -1
  599. package/dist/icons/TrashIcon.js +1 -1
  600. package/dist/icons/UnlockIcon.js +1 -1
  601. package/dist/icons/UpIcon.js +1 -1
  602. package/dist/icons/UserGroupIcon.js +1 -1
  603. package/dist/icons/UserIcon.js +1 -1
  604. package/dist/icons/UserLockIcon.js +1 -1
  605. package/dist/icons/ViewIcon.js +1 -1
  606. package/dist/icons/WarningFilledIcon.js +1 -1
  607. package/dist/icons/WarningIcon.js +1 -1
  608. package/dist/icons/wrap-icon.js +1 -1
  609. package/dist/index.js +1 -1
  610. package/dist/probe/canonicalize.js +1 -1
  611. package/dist/probe/css.js +1 -1
  612. package/dist/probe/index.js +1 -1
  613. package/dist/provider.js +1 -1
  614. package/dist/providers/TrackingProvider.js +1 -1
  615. package/dist/providers/navigation-url.js +1 -1
  616. package/dist/providers/navigationAdapter.default.js +1 -1
  617. package/dist/providers/use-navigation.js +1 -1
  618. package/dist/tokens/all-tokens.js +1 -1
  619. package/dist/tokens/base.js +12 -2
  620. package/dist/tokens/base.js.map +1 -1
  621. package/dist/tokens/color-seed.js +1 -1
  622. package/dist/tokens/color-theme.js +1 -1
  623. package/dist/tokens/colors.js +4 -4
  624. package/dist/tokens/colors.js.map +1 -1
  625. package/dist/tokens/layout.js +1 -1
  626. package/dist/tokens/lazy-styles.js +1 -1
  627. package/dist/tokens/legacy-color.js +1 -1
  628. package/dist/tokens/palette-config.js +1 -1
  629. package/dist/tokens/palette.js +1 -1
  630. package/dist/tokens/palette.js.map +1 -1
  631. package/dist/tokens/resolve.js +1 -1
  632. package/dist/tokens/resolve.js.map +1 -1
  633. package/dist/tokens/shadows.d.ts +0 -1
  634. package/dist/tokens/shadows.js +2 -3
  635. package/dist/tokens/shadows.js.map +1 -1
  636. package/dist/tokens/sizes.js +1 -1
  637. package/dist/tokens/spacing.js +1 -1
  638. package/dist/tokens/typography.js +1 -1
  639. package/dist/utils/ResizeSensor.js +1 -1
  640. package/dist/utils/colors.js +1 -1
  641. package/dist/utils/dotize.js +1 -1
  642. package/dist/utils/is-dev-env.js +1 -1
  643. package/dist/utils/modules.js +1 -1
  644. package/dist/utils/promise.js +1 -1
  645. package/dist/utils/raf.js +1 -1
  646. package/dist/utils/random.js +1 -1
  647. package/dist/utils/range.js +1 -1
  648. package/dist/utils/react/RenderCache.js +1 -1
  649. package/dist/utils/react/Slots.js +1 -1
  650. package/dist/utils/react/chain.js +1 -1
  651. package/dist/utils/react/disabledProps.js +1 -1
  652. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  653. package/dist/utils/react/index.js +1 -1
  654. package/dist/utils/react/interactions.js +1 -1
  655. package/dist/utils/react/isTextOnly.js +1 -1
  656. package/dist/utils/react/mapProps.js +1 -1
  657. package/dist/utils/react/mergeProps.js +1 -1
  658. package/dist/utils/react/nullableValue.js +1 -1
  659. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  660. package/dist/utils/react/programmaticFocus.js +1 -1
  661. package/dist/utils/react/resolveIcon.js +1 -1
  662. package/dist/utils/react/sharedStore.js +1 -1
  663. package/dist/utils/react/useBufferedValue.js +1 -1
  664. package/dist/utils/react/useCombinedRefs.js +1 -1
  665. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  666. package/dist/utils/react/useEventBus.js +1 -1
  667. package/dist/utils/react/useId.js +1 -1
  668. package/dist/utils/react/useIsDarwin.js +1 -1
  669. package/dist/utils/react/useKeySymbols.js +1 -1
  670. package/dist/utils/react/useLayoutEffect.js +1 -1
  671. package/dist/utils/react/useLocalStorage.js +1 -1
  672. package/dist/utils/react/useMergeStyles.js +1 -1
  673. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  674. package/dist/utils/react/usePopoverSync.js +1 -1
  675. package/dist/utils/react/useQaProps.js +1 -1
  676. package/dist/utils/react/useScheme.js +1 -1
  677. package/dist/utils/react/useViewportSize.js +1 -1
  678. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  679. package/dist/utils/selection.js +1 -1
  680. package/dist/utils/styles.js +1 -1
  681. package/dist/utils/tree.js +1 -1
  682. package/dist/utils/warnings.js +1 -1
  683. package/dist/version.js +3 -3
  684. package/docs/BaseProperties.md +2 -0
  685. package/docs/ComplexLayout.md +1 -1
  686. package/docs/Usage.md +47 -2
  687. package/docs/Utilities.md +5 -2
  688. package/docs/components/GridProvider.md +3 -3
  689. package/docs/components/content/HotKeys.md +2 -2
  690. package/docs/components/content/InlineInput.md +2 -2
  691. package/docs/components/content/Item.md +5 -5
  692. package/docs/components/content/Layout.md +8 -8
  693. package/docs/components/content/Text.md +1 -1
  694. package/docs/components/fields/ComboBox.md +1 -1
  695. package/docs/components/fields/CommandTextArea.md +1 -1
  696. package/docs/components/fields/FilterListBox.md +1 -1
  697. package/docs/components/fields/FilterPicker.md +1 -1
  698. package/docs/components/fields/ListBox.md +2 -2
  699. package/docs/components/fields/Picker.md +1 -1
  700. package/docs/components/fields/SearchComboBox.md +1 -1
  701. package/docs/components/fields/Select.md +1 -1
  702. package/docs/components/fields/TagInput.md +1 -1
  703. package/docs/tasty/react-api.md +1 -1
  704. package/package.json +3 -3
  705. package/tasty.config.ts +206 -4
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { getWeekNumber } from "../../fields/DatePicker/period.js";
3
3
  import { CalendarCell } from "./CalendarCell.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { Title as _Title } from "../../content/Title.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { RightIcon } from "../../../icons/RightIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { CalendarElement } from "./styled.js";
@@ -16,10 +16,10 @@ const YEAR_CELLS = 12;
16
16
  const MONTH_COLUMNS = 3;
17
17
  const YEAR_COLUMNS = 3;
18
18
  /**
19
- * Exactly as wide as seven day cells (`3x` cell + a `2bw` gutter), so switching
19
+ * Exactly as wide as seven day cells (`3x` cell + a `$cell-gap` gutter), so switching
20
20
  * between the day, month and year panels keeps the popover roughly in place.
21
21
  */
22
- const PERIOD_GRID_STYLES = { width: "(7 * (3x + 2bw))" };
22
+ const PERIOD_GRID_STYLES = { width: "(7 * (3x + $cell-gap))" };
23
23
  /**
24
24
  * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three
25
25
  * panels. The month and year panels only *navigate* — they move the focused
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarPanel.js","names":["CalendarDate","endOfMonth","endOfYear","isSameMonth","startOfMonth","startOfYear","toCalendar","today","KeyboardEvent","ReactElement","Ref","useState","DateValue","useDateFormatter","CalendarState","RangeCalendarState","useI18n","mergeProps","CalendarGrid","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","Props","CubeCalendarView","YEAR_CELLS","MONTH_COLUMNS","YEAR_COLUMNS","PERIOD_GRID_STYLES","width","const","Formatter","format","date","Date","CubeCalendarPanelProps","state","title","calendarProps","prevButtonProps","nextButtonProps","hasMonthYearNavigation","selectedRange","start","end","pickerMode","elementRef","HTMLElement","CalendarPanel","props","$","_c","t","t0","undefined","view","setView","anchor","setAnchor","focusedDate","visibleStart","visibleRange","calendar","timeZone","calendarId","identifier","t1","month","monthFormatter","t2","shortMonthFormatter","t3","year","yearFormatter","body","header","onKeyDown","todayDate","t4","formatter","toDate","t5","isDisabled","maxValue","minValue","compare","isPeriodDisabled","t6","hasNavigation","t7","next","openView","t8","e","key","preventDefault","stopPropagation","setFocused","t9","set","monthDate","monthCount","getMonthsInYear","cells","Array","from","length","_","index","date_0","label","isSelected","isCurrent","T0","nextYear","t10","t11","t12","t13","prevYear","subtract","years","add","t14","t15","Symbol","for","onPress","t16","t17","t18","t19","index_0","setFocusedDate","t20","t21","t22","index_1","delta","months","delta_0","t23","yearDate","decadeStart","Math","floor","firstYear","cells_0","__0","index_2","year_0","date_1","isOutside","t24","t25","index_3","index_4","t26","t27","delta_1","delta_2","t28","_c","mergeProps"],"sources":["../../../../src/components/other/Calendar/CalendarPanel.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n isSameMonth,\n startOfMonth,\n startOfYear,\n toCalendar,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, Ref, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\n\nimport { CalendarGrid } from './CalendarGrid';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\nimport type { Props } from '../../../props';\n\n/** Which panel the calendar currently shows. */\nexport type CubeCalendarView = 'day' | 'month' | 'year';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\nconst MONTH_COLUMNS = 3;\nconst YEAR_COLUMNS = 3;\n\n/**\n * Exactly as wide as seven day cells (`3x` cell + a `2bw` gutter), so switching\n * between the day, month and year panels keeps the popover roughly in place.\n */\nconst PERIOD_GRID_STYLES = { width: '(7 * (3x + 2bw))' } as const;\n\ninterface Formatter {\n format(date: Date): string;\n}\n\nexport interface CubeCalendarPanelProps {\n state: CalendarState | RangeCalendarState;\n /** The visible range title provided by React Aria. */\n title: string;\n calendarProps: Props;\n prevButtonProps: Props;\n nextButtonProps: Props;\n /**\n * Whether the header lets the user jump straight to a month or a year.\n * @default true\n */\n hasMonthYearNavigation?: boolean;\n selectedRange?: { start: DateValue; end: DateValue };\n pickerMode?: 'day' | 'week';\n elementRef?: Ref<HTMLElement>;\n}\n\n/**\n * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three\n * panels. The month and year panels only *navigate* — they move the focused\n * date and never select a value, so a range selection in progress survives a\n * jump to another month.\n */\nexport function CalendarPanel(props: CubeCalendarPanelProps) {\n const { t } = useI18n();\n\n let {\n state,\n title,\n calendarProps,\n prevButtonProps,\n nextButtonProps,\n hasMonthYearNavigation = true,\n selectedRange,\n pickerMode,\n elementRef,\n } = props;\n\n let [view, setView] = useState<CubeCalendarView>('day');\n // The period the month / year panels navigate around. Seeded from the\n // focused date every time the user leaves the day panel.\n let [anchor, setAnchor] = useState<CalendarDate>(state.focusedDate);\n\n let visibleStart = state.visibleRange.start;\n let calendar = visibleStart.calendar;\n let timeZone = state.timeZone;\n let calendarId = calendar.identifier;\n\n let monthFormatter = useDateFormatter({\n month: 'long',\n timeZone,\n calendar: calendarId,\n });\n let shortMonthFormatter = useDateFormatter({\n month: 'short',\n timeZone,\n calendar: calendarId,\n });\n let yearFormatter = useDateFormatter({\n year: 'numeric',\n timeZone,\n calendar: calendarId,\n });\n\n let todayDate = toCalendar(today(timeZone), calendar);\n\n let format = (formatter: Formatter, date: CalendarDate) =>\n formatter.format(date.toDate(timeZone));\n\n /** Whether a whole period lies outside the calendar's allowed range. */\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) =>\n state.isDisabled ||\n (state.minValue != null && end.compare(state.minValue) < 0) ||\n (state.maxValue != null && start.compare(state.maxValue) > 0);\n\n // A multi-month view has no single month or year to drill into.\n let hasNavigation =\n hasMonthYearNavigation && isSameMonth(visibleStart, state.visibleRange.end);\n\n let openView = (next: CubeCalendarView) => {\n setAnchor(state.focusedDate);\n setView(next);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Step back to the day panel rather than closing the surrounding popover.\n if (view !== 'day' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setView('day');\n // The grid the user was in is about to unmount. Claim focus for the day\n // cell, or it falls out of the popover and the next `Escape` is lost.\n state.setFocused(true);\n }\n };\n\n let header: ReactElement;\n let body: ReactElement;\n\n if (view === 'month') {\n let monthDate = (month: number) => startOfMonth(anchor.set({ month }));\n let monthCount = calendar.getMonthsInYear(anchor);\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: monthCount },\n (_, index) => {\n let date = monthDate(index + 1);\n\n return {\n key: `month-${index + 1}`,\n label: format(shortMonthFormatter, date),\n isSelected: isSameMonth(date, visibleStart),\n isCurrent: isSameMonth(date, todayDate),\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n },\n );\n\n let prevYear = anchor.subtract({ years: 1 });\n let nextYear = anchor.add({ years: 1 });\n\n header = (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: format(yearFormatter, anchor),\n isDisabled: state.isDisabled,\n onPress: () => setView('year'),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n startOfYear(prevYear),\n endOfYear(prevYear),\n ),\n onPress: () => setAnchor(prevYear),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n startOfYear(nextYear),\n endOfYear(nextYear),\n ),\n onPress: () => setAnchor(nextYear),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key=\"month\"\n autoFocus\n aria-label={t('calendar.months', 'Months')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={MONTH_COLUMNS}\n focusedIndex={anchor.month - 1}\n onCellPress={(index) => {\n state.setFocusedDate(anchor.set({ month: index + 1 }));\n setView('day');\n }}\n onCellFocus={(index) => setAnchor(anchor.set({ month: index + 1 }))}\n onMoveFocus={(delta) => setAnchor(anchor.add({ months: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta }))}\n />\n );\n } else if (view === 'year') {\n let yearDate = (year: number) => startOfYear(anchor.set({ year }));\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: YEAR_CELLS },\n (_, index) => {\n let year = firstYear + index;\n let date = yearDate(year);\n\n return {\n key: `year-${year}`,\n label: format(yearFormatter, date),\n isSelected: year === visibleStart.year,\n isCurrent: year === todayDate.year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n },\n );\n\n header = (\n <CalendarHeader\n title={`${format(yearFormatter, yearDate(decadeStart))} – ${format(\n yearFormatter,\n yearDate(decadeStart + 9),\n )}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart - 10),\n endOfYear(yearDate(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart + 10),\n endOfYear(yearDate(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n key=\"year\"\n autoFocus\n aria-label={t('calendar.years', 'Years')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={YEAR_COLUMNS}\n focusedIndex={anchor.year - firstYear}\n onCellPress={(index) => {\n setAnchor(anchor.set({ year: firstYear + index }));\n setView('month');\n }}\n onCellFocus={(index) =>\n setAnchor(anchor.set({ year: firstYear + index }))\n }\n onMoveFocus={(delta) => setAnchor(anchor.add({ years: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta * 10 }))}\n />\n );\n } else {\n header = (\n <CalendarHeader\n title={title}\n segments={\n hasNavigation\n ? [\n {\n key: 'month',\n label: format(monthFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('month'),\n },\n {\n key: 'year',\n label: format(yearFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('year'),\n },\n ]\n : undefined\n }\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n />\n );\n\n body = (\n <CalendarGrid\n state={state}\n selectedRange={selectedRange}\n pickerMode={pickerMode}\n />\n );\n }\n\n return (\n <CalendarElement\n ref={elementRef}\n {...mergeProps(calendarProps, { onKeyDown })}\n >\n {header}\n {body}\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarPanel.js","names":["CalendarDate","endOfMonth","endOfYear","isSameMonth","startOfMonth","startOfYear","toCalendar","today","KeyboardEvent","ReactElement","Ref","useState","DateValue","useDateFormatter","CalendarState","RangeCalendarState","useI18n","mergeProps","CalendarGrid","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","Props","CubeCalendarView","YEAR_CELLS","MONTH_COLUMNS","YEAR_COLUMNS","PERIOD_GRID_STYLES","width","const","Formatter","format","date","Date","CubeCalendarPanelProps","state","title","calendarProps","prevButtonProps","nextButtonProps","hasMonthYearNavigation","selectedRange","start","end","pickerMode","elementRef","HTMLElement","CalendarPanel","props","$","_c","t","t0","undefined","view","setView","anchor","setAnchor","focusedDate","visibleStart","visibleRange","calendar","timeZone","calendarId","identifier","t1","month","monthFormatter","t2","shortMonthFormatter","t3","year","yearFormatter","body","header","onKeyDown","todayDate","t4","formatter","toDate","t5","isDisabled","maxValue","minValue","compare","isPeriodDisabled","t6","hasNavigation","t7","next","openView","t8","e","key","preventDefault","stopPropagation","setFocused","t9","set","monthDate","monthCount","getMonthsInYear","cells","Array","from","length","_","index","date_0","label","isSelected","isCurrent","T0","nextYear","t10","t11","t12","t13","prevYear","subtract","years","add","t14","t15","Symbol","for","onPress","t16","t17","t18","t19","index_0","setFocusedDate","t20","t21","t22","index_1","delta","months","delta_0","t23","yearDate","decadeStart","Math","floor","firstYear","cells_0","__0","index_2","year_0","date_1","isOutside","t24","t25","index_3","index_4","t26","t27","delta_1","delta_2","t28","_c","mergeProps"],"sources":["../../../../src/components/other/Calendar/CalendarPanel.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n isSameMonth,\n startOfMonth,\n startOfYear,\n toCalendar,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, Ref, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\n\nimport { CalendarGrid } from './CalendarGrid';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\nimport type { Props } from '../../../props';\n\n/** Which panel the calendar currently shows. */\nexport type CubeCalendarView = 'day' | 'month' | 'year';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\nconst MONTH_COLUMNS = 3;\nconst YEAR_COLUMNS = 3;\n\n/**\n * Exactly as wide as seven day cells (`3x` cell + a `$cell-gap` gutter), so switching\n * between the day, month and year panels keeps the popover roughly in place.\n */\nconst PERIOD_GRID_STYLES = { width: '(7 * (3x + $cell-gap))' } as const;\n\ninterface Formatter {\n format(date: Date): string;\n}\n\nexport interface CubeCalendarPanelProps {\n state: CalendarState | RangeCalendarState;\n /** The visible range title provided by React Aria. */\n title: string;\n calendarProps: Props;\n prevButtonProps: Props;\n nextButtonProps: Props;\n /**\n * Whether the header lets the user jump straight to a month or a year.\n * @default true\n */\n hasMonthYearNavigation?: boolean;\n selectedRange?: { start: DateValue; end: DateValue };\n pickerMode?: 'day' | 'week';\n elementRef?: Ref<HTMLElement>;\n}\n\n/**\n * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three\n * panels. The month and year panels only *navigate* — they move the focused\n * date and never select a value, so a range selection in progress survives a\n * jump to another month.\n */\nexport function CalendarPanel(props: CubeCalendarPanelProps) {\n const { t } = useI18n();\n\n let {\n state,\n title,\n calendarProps,\n prevButtonProps,\n nextButtonProps,\n hasMonthYearNavigation = true,\n selectedRange,\n pickerMode,\n elementRef,\n } = props;\n\n let [view, setView] = useState<CubeCalendarView>('day');\n // The period the month / year panels navigate around. Seeded from the\n // focused date every time the user leaves the day panel.\n let [anchor, setAnchor] = useState<CalendarDate>(state.focusedDate);\n\n let visibleStart = state.visibleRange.start;\n let calendar = visibleStart.calendar;\n let timeZone = state.timeZone;\n let calendarId = calendar.identifier;\n\n let monthFormatter = useDateFormatter({\n month: 'long',\n timeZone,\n calendar: calendarId,\n });\n let shortMonthFormatter = useDateFormatter({\n month: 'short',\n timeZone,\n calendar: calendarId,\n });\n let yearFormatter = useDateFormatter({\n year: 'numeric',\n timeZone,\n calendar: calendarId,\n });\n\n let todayDate = toCalendar(today(timeZone), calendar);\n\n let format = (formatter: Formatter, date: CalendarDate) =>\n formatter.format(date.toDate(timeZone));\n\n /** Whether a whole period lies outside the calendar's allowed range. */\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) =>\n state.isDisabled ||\n (state.minValue != null && end.compare(state.minValue) < 0) ||\n (state.maxValue != null && start.compare(state.maxValue) > 0);\n\n // A multi-month view has no single month or year to drill into.\n let hasNavigation =\n hasMonthYearNavigation && isSameMonth(visibleStart, state.visibleRange.end);\n\n let openView = (next: CubeCalendarView) => {\n setAnchor(state.focusedDate);\n setView(next);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Step back to the day panel rather than closing the surrounding popover.\n if (view !== 'day' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setView('day');\n // The grid the user was in is about to unmount. Claim focus for the day\n // cell, or it falls out of the popover and the next `Escape` is lost.\n state.setFocused(true);\n }\n };\n\n let header: ReactElement;\n let body: ReactElement;\n\n if (view === 'month') {\n let monthDate = (month: number) => startOfMonth(anchor.set({ month }));\n let monthCount = calendar.getMonthsInYear(anchor);\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: monthCount },\n (_, index) => {\n let date = monthDate(index + 1);\n\n return {\n key: `month-${index + 1}`,\n label: format(shortMonthFormatter, date),\n isSelected: isSameMonth(date, visibleStart),\n isCurrent: isSameMonth(date, todayDate),\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n },\n );\n\n let prevYear = anchor.subtract({ years: 1 });\n let nextYear = anchor.add({ years: 1 });\n\n header = (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: format(yearFormatter, anchor),\n isDisabled: state.isDisabled,\n onPress: () => setView('year'),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n startOfYear(prevYear),\n endOfYear(prevYear),\n ),\n onPress: () => setAnchor(prevYear),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n startOfYear(nextYear),\n endOfYear(nextYear),\n ),\n onPress: () => setAnchor(nextYear),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key=\"month\"\n autoFocus\n aria-label={t('calendar.months', 'Months')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={MONTH_COLUMNS}\n focusedIndex={anchor.month - 1}\n onCellPress={(index) => {\n state.setFocusedDate(anchor.set({ month: index + 1 }));\n setView('day');\n }}\n onCellFocus={(index) => setAnchor(anchor.set({ month: index + 1 }))}\n onMoveFocus={(delta) => setAnchor(anchor.add({ months: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta }))}\n />\n );\n } else if (view === 'year') {\n let yearDate = (year: number) => startOfYear(anchor.set({ year }));\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: YEAR_CELLS },\n (_, index) => {\n let year = firstYear + index;\n let date = yearDate(year);\n\n return {\n key: `year-${year}`,\n label: format(yearFormatter, date),\n isSelected: year === visibleStart.year,\n isCurrent: year === todayDate.year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n },\n );\n\n header = (\n <CalendarHeader\n title={`${format(yearFormatter, yearDate(decadeStart))} – ${format(\n yearFormatter,\n yearDate(decadeStart + 9),\n )}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart - 10),\n endOfYear(yearDate(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart + 10),\n endOfYear(yearDate(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n key=\"year\"\n autoFocus\n aria-label={t('calendar.years', 'Years')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={YEAR_COLUMNS}\n focusedIndex={anchor.year - firstYear}\n onCellPress={(index) => {\n setAnchor(anchor.set({ year: firstYear + index }));\n setView('month');\n }}\n onCellFocus={(index) =>\n setAnchor(anchor.set({ year: firstYear + index }))\n }\n onMoveFocus={(delta) => setAnchor(anchor.add({ years: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta * 10 }))}\n />\n );\n } else {\n header = (\n <CalendarHeader\n title={title}\n segments={\n hasNavigation\n ? [\n {\n key: 'month',\n label: format(monthFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('month'),\n },\n {\n key: 'year',\n label: format(yearFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('year'),\n },\n ]\n : undefined\n }\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n />\n );\n\n body = (\n <CalendarGrid\n state={state}\n selectedRange={selectedRange}\n pickerMode={pickerMode}\n />\n );\n }\n\n return (\n <CalendarElement\n ref={elementRef}\n {...mergeProps(calendarProps, { onKeyDown })}\n >\n {header}\n {body}\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { useProviderProps } from "../../../provider.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { getQuarter } from "../../fields/DatePicker/period.js";
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { CALENDAR_CELL_STYLES } from "./styled.js";
3
- import { tasty } from "@tenphi/tasty";
3
+ import { mergeStyles, tasty } from "@tenphi/tasty";
4
4
  import { useLayoutEffect, useRef } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/components/other/Calendar/PeriodGrid.tsx
@@ -10,6 +10,7 @@ const PeriodGridElement = tasty({
10
10
  styles: {
11
11
  borderCollapse: "collapse",
12
12
  borderSpacing: 0,
13
+ "$cell-gap": "2px",
13
14
  tableLayout: "fixed"
14
15
  }
15
16
  });
@@ -18,18 +19,17 @@ const PeriodGridCellElement = tasty({
18
19
  role: "gridcell",
19
20
  styles: {
20
21
  margin: 0,
21
- padding: "2bw right bottom"
22
+ padding: "$cell-gap right bottom"
22
23
  }
23
24
  });
24
25
  const PeriodGridButtonElement = tasty({
25
26
  as: "button",
26
27
  "data-popover-keep": true,
27
- styles: {
28
- ...CALENDAR_CELL_STYLES,
28
+ styles: mergeStyles(CALENDAR_CELL_STYLES, {
29
29
  width: "100%",
30
30
  height: "4x",
31
31
  padding: "0 .5x"
32
- }
32
+ })
33
33
  });
34
34
  /**
35
35
  * A keyboard-navigable grid of calendar periods (months, quarters or years).
@@ -1 +1 @@
1
- {"version":3,"file":"PeriodGrid.js","names":["Styles","tasty","KeyboardEvent","useLayoutEffect","useRef","CALENDAR_CELL_STYLES","PeriodGridElement","as","role","styles","borderCollapse","borderSpacing","tableLayout","PeriodGridCellElement","margin","padding","PeriodGridButtonElement","width","height","CubePeriodGridCell","key","label","ariaLabel","isSelected","isCurrent","isDisabled","isOutside","CubePeriodGridProps","cells","columns","focusedIndex","autoFocus","onCellPress","index","onCellFocus","onMoveFocus","delta","onMovePage","PeriodGrid","props","cellRefs","Array","HTMLButtonElement","shouldFocusRef","safeIndex","Math","max","min","length","current","focus","moveFocus","next","focusEdge","edge","step","onKeyDown","e","preventDefault","stopPropagation","rows","i","push","slice","map","row","rowIndex","cell","columnIndex","element","selected","outside","disabled"],"sources":["../../../../src/components/other/Calendar/PeriodGrid.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { KeyboardEvent, useLayoutEffect, useRef } from 'react';\n\nimport { CALENDAR_CELL_STYLES } from './styled';\n\nconst PeriodGridElement = tasty({\n as: 'table',\n role: 'grid',\n styles: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n // Columns share the width evenly. The owner passes that width explicitly —\n // a percentage here would resolve against the popover's `max-content` box.\n tableLayout: 'fixed',\n },\n});\n\nconst PeriodGridCellElement = tasty({\n as: 'td',\n role: 'gridcell',\n styles: {\n margin: 0,\n padding: '2bw right bottom',\n },\n});\n\nconst PeriodGridButtonElement = tasty({\n as: 'button',\n 'data-popover-keep': true,\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- cell base shared with CalendarCell\n ...CALENDAR_CELL_STYLES,\n width: '100%',\n height: '4x',\n padding: '0 .5x',\n },\n});\n\nexport interface CubePeriodGridCell {\n /** Stable identity of the cell, also used as the React key. */\n key: string;\n label: string;\n /** Overrides the accessible name when the visible label is ambiguous. */\n ariaLabel?: string;\n isSelected?: boolean;\n /** Whether the cell contains today. */\n isCurrent?: boolean;\n isDisabled?: boolean;\n /** Whether the cell belongs to a neighbouring page (e.g. an adjacent decade). */\n isOutside?: boolean;\n}\n\nexport interface CubePeriodGridProps {\n cells: CubePeriodGridCell[];\n columns: number;\n /** Index of the cell that holds the roving tab stop. */\n focusedIndex: number;\n autoFocus?: boolean;\n 'aria-label'?: string;\n styles?: Styles;\n onCellPress: (index: number) => void;\n /** Focus moved to another cell of the current page. */\n onCellFocus: (index: number) => void;\n /**\n * Focus moved past the edge of the current page by `delta` periods. The owner\n * moves its anchor, which in turn flips the page and the focused index.\n */\n onMoveFocus: (delta: number) => void;\n /** `PageUp` / `PageDown` — one page back or forward. */\n onMovePage: (delta: -1 | 1) => void;\n}\n\n/**\n * A keyboard-navigable grid of calendar periods (months, quarters or years).\n *\n * The grid owns rendering, the roving tab stop and DOM focus; the owner owns\n * the periods themselves. Arrow keys that leave the page are reported through\n * `onMoveFocus` so the owner can page and keep focus on the adjacent period.\n */\nexport function PeriodGrid(props: CubePeriodGridProps) {\n let {\n cells,\n columns,\n focusedIndex,\n autoFocus,\n styles,\n onCellPress,\n onCellFocus,\n onMoveFocus,\n onMovePage,\n } = props;\n\n let cellRefs = useRef<Array<HTMLButtonElement | null>>([]);\n // Set by the grid's own keyboard handling and by `autoFocus`, so paging with\n // the header buttons never steals focus into the grid.\n let shouldFocusRef = useRef(!!autoFocus);\n\n let safeIndex = Math.max(0, Math.min(cells.length - 1, focusedIndex));\n\n cellRefs.current.length = cells.length;\n\n useLayoutEffect(() => {\n if (shouldFocusRef.current) {\n shouldFocusRef.current = false;\n cellRefs.current[safeIndex]?.focus();\n }\n });\n\n let moveFocus = (delta: number) => {\n shouldFocusRef.current = true;\n\n let next = safeIndex + delta;\n\n // Disabled cells can't hold DOM focus, so step over them instead of\n // stranding the caret on an unreachable period.\n while (next >= 0 && next < cells.length && cells[next].isDisabled) {\n next += delta;\n }\n\n if (next < 0 || next >= cells.length) {\n onMoveFocus(delta);\n } else {\n onCellFocus(next);\n }\n };\n\n let focusEdge = (edge: 'start' | 'end') => {\n let step = edge === 'start' ? 1 : -1;\n let index = edge === 'start' ? 0 : cells.length - 1;\n\n while (index >= 0 && index < cells.length && cells[index].isDisabled) {\n index += step;\n }\n\n if (index < 0 || index >= cells.length) return;\n\n shouldFocusRef.current = true;\n onCellFocus(index);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowRight':\n moveFocus(1);\n break;\n case 'ArrowLeft':\n moveFocus(-1);\n break;\n case 'ArrowDown':\n moveFocus(columns);\n break;\n case 'ArrowUp':\n moveFocus(-columns);\n break;\n case 'Home':\n focusEdge('start');\n break;\n case 'End':\n focusEdge('end');\n break;\n case 'PageUp':\n shouldFocusRef.current = true;\n onMovePage(-1);\n break;\n case 'PageDown':\n shouldFocusRef.current = true;\n onMovePage(1);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n let rows: CubePeriodGridCell[][] = [];\n\n for (let i = 0; i < cells.length; i += columns) {\n rows.push(cells.slice(i, i + columns));\n }\n\n return (\n <PeriodGridElement\n aria-label={props['aria-label']}\n styles={styles}\n onKeyDown={onKeyDown}\n >\n <tbody data-element=\"Body\">\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex} role=\"row\" data-element=\"Row\">\n {row.map((cell, columnIndex) => {\n let index = rowIndex * columns + columnIndex;\n\n return (\n <PeriodGridCellElement\n key={cell.key}\n aria-selected={!!cell.isSelected}\n >\n <PeriodGridButtonElement\n ref={(element: HTMLButtonElement | null) => {\n cellRefs.current[index] = element;\n }}\n type=\"button\"\n tabIndex={index === safeIndex ? 0 : -1}\n disabled={cell.isDisabled}\n aria-label={cell.ariaLabel}\n mods={{\n selected: cell.isSelected,\n current: cell.isCurrent,\n outside: cell.isOutside,\n disabled: cell.isDisabled,\n }}\n onFocus={() => onCellFocus(index)}\n onClick={() => onCellPress(index)}\n >\n {cell.label}\n </PeriodGridButtonElement>\n </PeriodGridCellElement>\n );\n })}\n </tr>\n ))}\n </tbody>\n </PeriodGridElement>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PeriodGrid.js","names":["mergeStyles","Styles","tasty","KeyboardEvent","useLayoutEffect","useRef","CALENDAR_CELL_STYLES","PeriodGridElement","as","role","styles","borderCollapse","borderSpacing","tableLayout","PeriodGridCellElement","margin","padding","PeriodGridButtonElement","width","height","CubePeriodGridCell","key","label","ariaLabel","isSelected","isCurrent","isDisabled","isOutside","CubePeriodGridProps","cells","columns","focusedIndex","autoFocus","onCellPress","index","onCellFocus","onMoveFocus","delta","onMovePage","PeriodGrid","props","cellRefs","Array","HTMLButtonElement","shouldFocusRef","safeIndex","Math","max","min","length","current","focus","moveFocus","next","focusEdge","edge","step","onKeyDown","e","preventDefault","stopPropagation","rows","i","push","slice","map","row","rowIndex","cell","columnIndex","element","selected","outside","disabled"],"sources":["../../../../src/components/other/Calendar/PeriodGrid.tsx"],"sourcesContent":["import { mergeStyles, Styles, tasty } from '@tenphi/tasty';\nimport { KeyboardEvent, useLayoutEffect, useRef } from 'react';\n\nimport { CALENDAR_CELL_STYLES } from './styled';\n\nconst PeriodGridElement = tasty({\n as: 'table',\n role: 'grid',\n styles: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n // Cells sit two device pixels apart. The owner's width counts it too.\n '$cell-gap': '2px',\n // Columns share the width evenly. The owner passes that width explicitly —\n // a percentage here would resolve against the popover's `max-content` box.\n tableLayout: 'fixed',\n },\n});\n\nconst PeriodGridCellElement = tasty({\n as: 'td',\n role: 'gridcell',\n styles: {\n margin: 0,\n padding: '$cell-gap right bottom',\n },\n});\n\nconst PeriodGridButtonElement = tasty({\n as: 'button',\n 'data-popover-keep': true,\n styles: mergeStyles(CALENDAR_CELL_STYLES, {\n width: '100%',\n height: '4x',\n padding: '0 .5x',\n }),\n});\n\nexport interface CubePeriodGridCell {\n /** Stable identity of the cell, also used as the React key. */\n key: string;\n label: string;\n /** Overrides the accessible name when the visible label is ambiguous. */\n ariaLabel?: string;\n isSelected?: boolean;\n /** Whether the cell contains today. */\n isCurrent?: boolean;\n isDisabled?: boolean;\n /** Whether the cell belongs to a neighbouring page (e.g. an adjacent decade). */\n isOutside?: boolean;\n}\n\nexport interface CubePeriodGridProps {\n cells: CubePeriodGridCell[];\n columns: number;\n /** Index of the cell that holds the roving tab stop. */\n focusedIndex: number;\n autoFocus?: boolean;\n 'aria-label'?: string;\n styles?: Styles;\n onCellPress: (index: number) => void;\n /** Focus moved to another cell of the current page. */\n onCellFocus: (index: number) => void;\n /**\n * Focus moved past the edge of the current page by `delta` periods. The owner\n * moves its anchor, which in turn flips the page and the focused index.\n */\n onMoveFocus: (delta: number) => void;\n /** `PageUp` / `PageDown` — one page back or forward. */\n onMovePage: (delta: -1 | 1) => void;\n}\n\n/**\n * A keyboard-navigable grid of calendar periods (months, quarters or years).\n *\n * The grid owns rendering, the roving tab stop and DOM focus; the owner owns\n * the periods themselves. Arrow keys that leave the page are reported through\n * `onMoveFocus` so the owner can page and keep focus on the adjacent period.\n */\nexport function PeriodGrid(props: CubePeriodGridProps) {\n let {\n cells,\n columns,\n focusedIndex,\n autoFocus,\n styles,\n onCellPress,\n onCellFocus,\n onMoveFocus,\n onMovePage,\n } = props;\n\n let cellRefs = useRef<Array<HTMLButtonElement | null>>([]);\n // Set by the grid's own keyboard handling and by `autoFocus`, so paging with\n // the header buttons never steals focus into the grid.\n let shouldFocusRef = useRef(!!autoFocus);\n\n let safeIndex = Math.max(0, Math.min(cells.length - 1, focusedIndex));\n\n cellRefs.current.length = cells.length;\n\n useLayoutEffect(() => {\n if (shouldFocusRef.current) {\n shouldFocusRef.current = false;\n cellRefs.current[safeIndex]?.focus();\n }\n });\n\n let moveFocus = (delta: number) => {\n shouldFocusRef.current = true;\n\n let next = safeIndex + delta;\n\n // Disabled cells can't hold DOM focus, so step over them instead of\n // stranding the caret on an unreachable period.\n while (next >= 0 && next < cells.length && cells[next].isDisabled) {\n next += delta;\n }\n\n if (next < 0 || next >= cells.length) {\n onMoveFocus(delta);\n } else {\n onCellFocus(next);\n }\n };\n\n let focusEdge = (edge: 'start' | 'end') => {\n let step = edge === 'start' ? 1 : -1;\n let index = edge === 'start' ? 0 : cells.length - 1;\n\n while (index >= 0 && index < cells.length && cells[index].isDisabled) {\n index += step;\n }\n\n if (index < 0 || index >= cells.length) return;\n\n shouldFocusRef.current = true;\n onCellFocus(index);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowRight':\n moveFocus(1);\n break;\n case 'ArrowLeft':\n moveFocus(-1);\n break;\n case 'ArrowDown':\n moveFocus(columns);\n break;\n case 'ArrowUp':\n moveFocus(-columns);\n break;\n case 'Home':\n focusEdge('start');\n break;\n case 'End':\n focusEdge('end');\n break;\n case 'PageUp':\n shouldFocusRef.current = true;\n onMovePage(-1);\n break;\n case 'PageDown':\n shouldFocusRef.current = true;\n onMovePage(1);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n let rows: CubePeriodGridCell[][] = [];\n\n for (let i = 0; i < cells.length; i += columns) {\n rows.push(cells.slice(i, i + columns));\n }\n\n return (\n <PeriodGridElement\n aria-label={props['aria-label']}\n styles={styles}\n onKeyDown={onKeyDown}\n >\n <tbody data-element=\"Body\">\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex} role=\"row\" data-element=\"Row\">\n {row.map((cell, columnIndex) => {\n let index = rowIndex * columns + columnIndex;\n\n return (\n <PeriodGridCellElement\n key={cell.key}\n aria-selected={!!cell.isSelected}\n >\n <PeriodGridButtonElement\n ref={(element: HTMLButtonElement | null) => {\n cellRefs.current[index] = element;\n }}\n type=\"button\"\n tabIndex={index === safeIndex ? 0 : -1}\n disabled={cell.isDisabled}\n aria-label={cell.ariaLabel}\n mods={{\n selected: cell.isSelected,\n current: cell.isCurrent,\n outside: cell.isOutside,\n disabled: cell.isDisabled,\n }}\n onFocus={() => onCellFocus(index)}\n onClick={() => onCellPress(index)}\n >\n {cell.label}\n </PeriodGridButtonElement>\n </PeriodGridCellElement>\n );\n })}\n </tr>\n ))}\n </tbody>\n </PeriodGridElement>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { useProviderProps } from "../../../provider.js";
3
3
  import { CalendarPanel } from "./CalendarPanel.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  //#region src/components/other/Calendar/styled.tsx
4
4
  /**
@@ -47,10 +47,10 @@ const CALENDAR_CELL_STYLES = {
47
47
  "selected & (disabled | unavailable)": "#white"
48
48
  },
49
49
  outline: {
50
- "": "1bw #primary-text.0",
51
- focused: "1bw #primary-text"
50
+ "": "$ring-width #primary-text.0",
51
+ focused: "$ring-width #primary-text"
52
52
  },
53
- outlineOffset: .5,
53
+ outlineOffset: "($outline-offset / 2)",
54
54
  radius: true,
55
55
  cursor: {
56
56
  "": "$pointer",
@@ -1 +1 @@
1
- {"version":3,"file":"styled.js","names":["Styles","tasty","CalendarElement","styles","display","width","padding","gap","CalendarHeaderElement","placeContent","placeItems","CALENDAR_CELL_STYLES","preset","border","fill","rangeHover","pressed","selected","color","outside","outline","focused","outlineOffset","radius","cursor"],"sources":["../../../../src/components/other/Calendar/styled.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\n\n/**\n * Every calendar flavour (day, range, period) shares the same shell so the\n * popover keeps a stable size and rhythm when the user switches between the\n * day grid and the month / year panels.\n */\nexport const CalendarElement = tasty({\n styles: {\n display: 'grid',\n // Shrink-wrap the grid so a standalone calendar doesn't stretch its cells\n // across whatever container it lands in.\n width: 'max-content',\n padding: '1x',\n gap: '1x',\n },\n});\n\nexport const CalendarHeaderElement = tasty({\n styles: {\n display: 'flex',\n placeContent: 'center space-between',\n placeItems: 'center',\n gap: '1.5x',\n },\n});\n\n/**\n * The interactive states shared by day cells and period (month / quarter /\n * year) cells. Kept in one place so a day and a month never drift apart.\n */\nexport const CALENDAR_CELL_STYLES: Styles = {\n preset: 't3m',\n display: 'grid',\n placeItems: 'center',\n border: 0,\n fill: {\n '': '#primary.0',\n ':hover': '#primary.16',\n rangeHover: '#primary.16',\n pressed: '#primary.10',\n\n selected: '#primary',\n 'selected & :hover': '#primary-text',\n 'selected & pressed': '#primary',\n\n 'disabled | unavailable': '#primary.0',\n // A disabled calendar still has to show what is selected.\n 'selected & (disabled | unavailable)': '#primary.30',\n },\n color: {\n '': '#dark',\n outside: '#dark.30',\n // The cell that contains today — a hint, not a selection.\n 'current & !selected': '#primary-text',\n selected: '#white',\n 'disabled | unavailable': '#dark.30',\n 'selected & (disabled | unavailable)': '#white',\n },\n outline: {\n '': '1bw #primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 0.5,\n radius: true,\n cursor: {\n '': '$pointer',\n 'disabled | unavailable': 'default',\n },\n};\n"],"mappings":";;;;;;;;AAOA,MAAaE,kBAAkBD,MAAM,EACnCE,QAAQ;CACNC,SAAS;CAGTC,OAAO;CACPC,SAAS;CACTC,KAAK;AACP,EACF,CAAC;AAED,MAAaC,wBAAwBP,MAAM,EACzCE,QAAQ;CACNC,SAAS;CACTK,cAAc;CACdC,YAAY;CACZH,KAAK;AACP,EACF,CAAC;;;;;AAMD,MAAaI,uBAA+B;CAC1CC,QAAQ;CACRR,SAAS;CACTM,YAAY;CACZG,QAAQ;CACRC,MAAM;EACJ,IAAI;EACJ,UAAU;EACVC,YAAY;EACZC,SAAS;EAETC,UAAU;EACV,qBAAqB;EACrB,sBAAsB;EAEtB,0BAA0B;EAE1B,uCAAuC;CACzC;CACAC,OAAO;EACL,IAAI;EACJC,SAAS;EAET,uBAAuB;EACvBF,UAAU;EACV,0BAA0B;EAC1B,uCAAuC;CACzC;CACAG,SAAS;EACP,IAAI;EACJC,SAAS;CACX;CACAC,eAAe;CACfC,QAAQ;CACRC,QAAQ;EACN,IAAI;EACJ,0BAA0B;CAC5B;AACF"}
1
+ {"version":3,"file":"styled.js","names":["Styles","tasty","CalendarElement","styles","display","width","padding","gap","CalendarHeaderElement","placeContent","placeItems","CALENDAR_CELL_STYLES","preset","border","fill","rangeHover","pressed","selected","color","outside","outline","focused","outlineOffset","radius","cursor"],"sources":["../../../../src/components/other/Calendar/styled.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\n\n/**\n * Every calendar flavour (day, range, period) shares the same shell so the\n * popover keeps a stable size and rhythm when the user switches between the\n * day grid and the month / year panels.\n */\nexport const CalendarElement = tasty({\n styles: {\n display: 'grid',\n // Shrink-wrap the grid so a standalone calendar doesn't stretch its cells\n // across whatever container it lands in.\n width: 'max-content',\n padding: '1x',\n gap: '1x',\n },\n});\n\nexport const CalendarHeaderElement = tasty({\n styles: {\n display: 'flex',\n placeContent: 'center space-between',\n placeItems: 'center',\n gap: '1.5x',\n },\n});\n\n/**\n * The interactive states shared by day cells and period (month / quarter /\n * year) cells. Kept in one place so a day and a month never drift apart.\n */\nexport const CALENDAR_CELL_STYLES: Styles = {\n preset: 't3m',\n display: 'grid',\n placeItems: 'center',\n border: 0,\n fill: {\n '': '#primary.0',\n ':hover': '#primary.16',\n rangeHover: '#primary.16',\n pressed: '#primary.10',\n\n selected: '#primary',\n 'selected & :hover': '#primary-text',\n 'selected & pressed': '#primary',\n\n 'disabled | unavailable': '#primary.0',\n // A disabled calendar still has to show what is selected.\n 'selected & (disabled | unavailable)': '#primary.30',\n },\n color: {\n '': '#dark',\n outside: '#dark.30',\n // The cell that contains today — a hint, not a selection.\n 'current & !selected': '#primary-text',\n selected: '#white',\n 'disabled | unavailable': '#dark.30',\n 'selected & (disabled | unavailable)': '#white',\n },\n outline: {\n '': '$ring-width #primary-text.0',\n focused: '$ring-width #primary-text',\n },\n outlineOffset: '($outline-offset / 2)',\n radius: true,\n cursor: {\n '': '$pointer',\n 'disabled | unavailable': 'default',\n },\n};\n"],"mappings":";;;;;;;;AAOA,MAAaE,kBAAkBD,MAAM,EACnCE,QAAQ;CACNC,SAAS;CAGTC,OAAO;CACPC,SAAS;CACTC,KAAK;AACP,EACF,CAAC;AAED,MAAaC,wBAAwBP,MAAM,EACzCE,QAAQ;CACNC,SAAS;CACTK,cAAc;CACdC,YAAY;CACZH,KAAK;AACP,EACF,CAAC;;;;;AAMD,MAAaI,uBAA+B;CAC1CC,QAAQ;CACRR,SAAS;CACTM,YAAY;CACZG,QAAQ;CACRC,MAAM;EACJ,IAAI;EACJ,UAAU;EACVC,YAAY;EACZC,SAAS;EAETC,UAAU;EACV,qBAAqB;EACrB,sBAAsB;EAEtB,0BAA0B;EAE1B,uCAAuC;CACzC;CACAC,OAAO;EACL,IAAI;EACJC,SAAS;EAET,uBAAuB;EACvBF,UAAU;EACV,0BAA0B;EAC1B,uCAAuC;CACzC;CACAG,SAAS;EACP,IAAI;EACJC,SAAS;CACX;CACAC,eAAe;CACfC,QAAQ;CACRC,QAAQ;EACN,IAAI;EACJ,0BAA0B;CAC5B;AACF"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { Icon } from "../../../icons/Icon.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { mergeStyles, tasty } from "@tenphi/tasty";
@@ -145,8 +145,7 @@ const CubeLogo = forwardRef(function CubeLogo(props, ref) {
145
145
  */
146
146
  const CubeFullLogoElement = tasty(Icon, {
147
147
  qa: "CubeFullLogo",
148
- styles: {
149
- ...SCHEME_SWAP,
148
+ styles: mergeStyles(SCHEME_SWAP, {
150
149
  width: "auto",
151
150
  aspectRatio: FULL_ASPECT_RATIO,
152
151
  Svg: {
@@ -154,7 +153,7 @@ const CubeFullLogoElement = tasty(Icon, {
154
153
  height: "1em 1em",
155
154
  aspectRatio: FULL_ASPECT_RATIO
156
155
  }
157
- }
156
+ })
158
157
  });
159
158
  const CubeFullLogo = forwardRef(function CubeFullLogo(props, ref) {
160
159
  const $ = c(9);
@@ -1 +1 @@
1
- {"version":3,"file":"CubeLogo.js","names":["mergeStyles","tasty","ForwardedRef","forwardRef","CubeIconProps","Icon","MARK_LIGHT_PATH","MARK_DARK_PATH","WORDMARK_PATH","MARK_VIEW_BOX","FULL_VIEW_BOX","FULL_ASPECT_RATIO","MarkPaths","$","_c","t0","Symbol","for","SCHEME_SWAP","LightMark","display","DarkMark","const","FORCED_SCHEME","light","dark","CubeLogoProps","scheme","resolveLogoStyles","styles","CubeLogoElement","qa","CubeLogo","props","ref","rest","t1","t2","CubeFullLogoElement","width","aspectRatio","Svg","height","CubeFullLogo","_c"],"sources":["../../../../src/components/other/CubeLogo/CubeLogo.tsx"],"sourcesContent":["import { mergeStyles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef } from 'react';\n\nimport { CubeIconProps, Icon } from '../../../icons/Icon';\n\n/**\n * Cube logo marks.\n *\n * The mark is two *different drawings*, not one drawing recoloured: the light\n * variant is an outlined cube, the dark variant is filled differently so it keeps\n * its weight against a dark surface. Both are rendered and swapped by the global\n * `@dark` state rather than picked in JS, so the logo follows the scheme without a\n * re-render and works in SSR.\n *\n * Both marks are drawn with `currentColor`, so colour comes from the surrounding\n * text colour (or an explicit `color` prop) — never a baked-in hex. That is the\n * whole reason the previous `CloudLogo` had to go: it hard-coded the old brand\n * hexes and could not adapt.\n */\n\nconst MARK_LIGHT_PATH =\n 'M12.3428 0.468443C13.3139 -0.0982146 14.5153 -0.0984244 15.4863 0.468443L25.7051 6.43426C26.1063 6.66852 26.3535 7.09853 26.3535 7.56317V11.9008C26.3534 12.1325 26.2301 12.347 26.0303 12.4642L23.8356 13.8389L25.7109 14.8737C26.1088 15.1088 26.3534 15.5366 26.3535 15.9987V20.4352C26.3535 20.8999 26.1063 21.3298 25.7051 21.5641L15.4834 27.53C14.5123 28.0967 13.3119 28.0968 12.3408 27.53L2.11914 21.5641C1.71803 21.3298 1.47168 20.8998 1.47168 20.4352V7.56317C1.47178 7.09851 1.71879 6.66848 2.12012 6.43426L12.3428 0.468443ZM14.7002 1.77118C14.2147 1.4878 13.6144 1.48791 13.1289 1.77118L3.18164 7.57587C3.06086 7.64635 2.98649 7.77589 2.98633 7.91571V20.0085L12.873 14.3005C13.5161 13.9292 14.3091 13.9292 14.9521 14.3005L24.8389 20.0095V16.3513C24.8388 16.2116 24.764 16.082 24.6436 16.0114L14.6982 10.197C14.2129 9.91323 13.6117 9.91297 13.126 10.196L6.38477 14.1247C6.13553 14.2695 5.82263 14.0897 5.82227 13.8015V10.3942C5.82238 10.188 5.93134 9.99713 6.1084 9.89129L12.8613 5.85614C13.5101 5.46859 14.3183 5.4637 14.9717 5.84344L24.8389 11.5788V7.91571C24.8387 7.77604 24.7641 7.64643 24.6436 7.57587L14.7002 1.77118Z';\n\nconst MARK_DARK_PATH =\n 'M25.9002 6.65073C26.2344 6.84455 26.44 7.20162 26.44 7.5879L26.4396 11.3066C26.4395 11.6899 26.2369 12.0447 25.9067 12.2395L22.6916 14.1362L25.9094 16.0449C26.2383 16.24 26.44 16.5941 26.44 16.9766V20.6864C26.44 21.0743 26.2326 21.4327 25.8961 21.6258L15.6128 27.5294C14.6148 28.1023 13.387 28.0996 12.3914 27.5223L2.09765 21.5528C1.7635 21.359 1.55781 21.002 1.55781 20.6157V7.58789C1.55781 7.20162 1.76349 6.84457 2.09764 6.65079L13.049 0.299736C13.6372 -0.0413849 14.363 -0.0413542 14.9512 0.299815L25.9002 6.65073ZM3.08936 20.3607C2.9078 20.4649 2.90801 20.7268 3.08974 20.8307L13.0565 26.5279C13.641 26.8619 14.3587 26.861 14.9423 26.5254L24.821 20.8447C25.0017 20.7408 25.0022 20.4802 24.8218 20.3756L14.9425 14.6505C14.3571 14.3112 13.6353 14.3097 13.0485 14.6464L3.08936 20.3607ZM5.55497 9.75456C5.3906 9.85215 5.28984 10.0292 5.28984 10.2203V13.6284C5.28984 13.8379 5.51738 13.968 5.69791 13.8619L13.0363 9.54766C13.631 9.19804 14.3687 9.19907 14.9624 9.55035L21.2322 13.26C21.4021 13.3605 21.6131 13.3607 21.7831 13.2604L24.8318 11.4632C25.0105 11.3579 25.0093 11.0991 24.8297 10.9954L14.9614 5.29588C14.3677 4.95297 13.6351 4.95738 13.0455 5.3074L5.55497 9.75456Z';\n\nconst WORDMARK_PATH =\n 'M52.1689 16.0085C52.1689 18.0202 53.5876 19.2742 55.3838 19.2742C57.1215 19.274 58.5107 18.02 58.5107 16.0085V7.46362H61.5527V15.7761C61.5526 19.6552 58.8592 22.1041 55.3857 22.1042C51.8518 22.1042 49.1584 19.6553 49.1582 15.7761V7.46362H52.1689V16.0085ZM68.2725 9.2146C69.3445 7.90193 71.0524 7.14436 73.0215 7.14429C77.0745 7.14226 79.999 10.3792 79.999 14.6375C79.999 18.8957 77.0747 22.1042 73.0498 22.1042C70.964 22.1042 69.1394 21.26 68.0693 19.8015V21.7849H65.2314V0.6521H68.2725V9.2146ZM90.0576 7.14233C93.851 7.14255 96.6309 9.94205 96.6309 13.7039C96.6308 14.4918 96.4859 15.2518 96.3994 15.6306H85.8008C86.2072 17.9925 88.0019 19.3923 90.4336 19.3923C92.0849 19.3923 93.3865 18.7502 94.5752 17.7009L96.0234 19.8015C94.5169 21.2297 92.6055 22.1042 90.3467 22.1042C85.9457 22.1042 82.7012 18.8673 82.7012 14.6375C82.7012 10.438 85.9161 7.14233 90.0576 7.14233ZM40.5293 7.14233C43.2224 7.14248 45.3056 8.45506 46.5225 10.4666L44.3809 12.158C43.4536 10.8452 42.2663 9.97046 40.5586 9.97046C37.952 9.97067 36.0996 12.0122 36.0996 14.6072C36.0996 17.2608 37.952 19.272 40.5586 19.2722C42.2381 19.2722 43.4254 18.4277 44.3809 17.115L46.5225 18.7781C45.2774 20.7896 43.1922 22.1021 40.5293 22.1023C36.3314 22.1043 33 18.837 33 14.6091C33 10.4096 36.3314 7.14233 40.5293 7.14233ZM72.5273 9.94409C70.3852 9.94409 68.2403 11.4022 68.2402 14.6394C68.2402 17.905 70.4133 19.3044 72.5273 19.3044C74.9891 19.3042 76.872 17.3803 76.8721 14.6091C76.8721 11.838 74.961 9.9443 72.5273 9.94409ZM89.9424 9.73706C87.9431 9.73916 86.322 11.109 85.8594 13.238H93.5908C93.5325 10.9914 91.8834 9.73706 89.9424 9.73706Z';\n\n/** Mark artwork is square. */\nconst MARK_VIEW_BOX = '0 0 28 28';\n/**\n * Full logo = mark (x 0–28) + wordmark (x 33–98) on one canvas, so the 5-unit\n * gap between them is part of the artwork rather than a layout concern.\n */\nconst FULL_VIEW_BOX = '0 0 98 28';\n/** 98 / 28 — used to let width follow height automatically. */\nconst FULL_ASPECT_RATIO = '98 / 28';\n\nconst MarkPaths = () => (\n <>\n <path\n clipRule=\"evenodd\"\n d={MARK_LIGHT_PATH}\n data-element=\"LightMark\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d={MARK_DARK_PATH}\n data-element=\"DarkMark\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </>\n);\n\nconst SCHEME_SWAP = {\n LightMark: {\n display: { '': 'block', '@dark': 'none' },\n },\n DarkMark: {\n display: { '': 'none', '@dark': 'block' },\n },\n} as const;\n\n/**\n * Pin one mark instead of letting the `@dark` state choose.\n *\n * Needed wherever the background is known but the *document* scheme does not\n * describe it: a fixed-dark panel in a light app (`#surface-inverse`, the\n * `special` theme), an exported image, or a themed region — `tokens` overrides\n * token *values*, and `@dark` is a state, so a region preview cannot reach the\n * swap on its own.\n */\nconst FORCED_SCHEME = {\n light: {\n LightMark: { display: 'block' },\n DarkMark: { display: 'none' },\n },\n dark: {\n LightMark: { display: 'none' },\n DarkMark: { display: 'block' },\n },\n} as const;\n\nexport interface CubeLogoProps extends CubeIconProps {\n /**\n * Force the light or dark mark. Omit it — the default — to follow the document\n * scheme in CSS, which costs no re-render and is correct during SSR.\n */\n scheme?: 'light' | 'dark';\n}\n\n/** Caller styles win; a forced scheme only overrides the swap itself. */\nfunction resolveLogoStyles({ scheme, styles }: CubeLogoProps) {\n return scheme ? mergeStyles(FORCED_SCHEME[scheme], styles) : styles;\n}\n\n/**\n * Square Cube mark, sized through `Icon` — pass `size` (or any `Icon` style prop)\n * and both axes follow it.\n */\nconst CubeLogoElement = tasty(Icon, {\n qa: 'CubeLogo',\n styles: SCHEME_SWAP,\n});\n\nexport const CubeLogo = forwardRef(function CubeLogo(\n props: CubeLogoProps,\n ref: ForwardedRef<HTMLSpanElement>,\n) {\n const { scheme, styles, ...rest } = props;\n\n return (\n <CubeLogoElement\n aria-label=\"Cube\"\n role=\"img\"\n {...rest}\n styles={resolveLogoStyles(props)}\n ref={ref}\n >\n <svg\n fill=\"none\"\n viewBox={MARK_VIEW_BOX}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <MarkPaths />\n </svg>\n </CubeLogoElement>\n );\n});\n\n/**\n * Cube mark + wordmark.\n *\n * `size` sets the **height** only; the width follows the artwork's aspect ratio.\n * `Icon` is square by default (`width: '1em 1em'`), so both the wrapper and the\n * inner `svg` have their width released to `auto` and the ratio pinned with\n * `aspectRatio` — otherwise the wordmark would be squashed into a 1em box.\n */\nconst CubeFullLogoElement = tasty(Icon, {\n qa: 'CubeFullLogo',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- light/dark mark swap shared with CubeLogo\n ...SCHEME_SWAP,\n // Height still comes from `$icon-size` via `Icon`; width must not.\n width: 'auto',\n aspectRatio: FULL_ASPECT_RATIO,\n\n Svg: {\n width: 'auto',\n height: '1em 1em',\n aspectRatio: FULL_ASPECT_RATIO,\n },\n },\n});\n\nexport const CubeFullLogo = forwardRef(function CubeFullLogo(\n props: CubeLogoProps,\n ref: ForwardedRef<HTMLSpanElement>,\n) {\n const { scheme, styles, ...rest } = props;\n\n return (\n <CubeFullLogoElement\n aria-label=\"Cube\"\n role=\"img\"\n {...rest}\n styles={resolveLogoStyles(props)}\n ref={ref}\n >\n <svg\n fill=\"none\"\n viewBox={FULL_VIEW_BOX}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <MarkPaths />\n <path d={WORDMARK_PATH} fill=\"currentColor\" />\n </svg>\n </CubeFullLogoElement>\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"CubeLogo.js","names":["mergeStyles","tasty","ForwardedRef","forwardRef","CubeIconProps","Icon","MARK_LIGHT_PATH","MARK_DARK_PATH","WORDMARK_PATH","MARK_VIEW_BOX","FULL_VIEW_BOX","FULL_ASPECT_RATIO","MarkPaths","$","_c","t0","Symbol","for","SCHEME_SWAP","LightMark","display","DarkMark","const","FORCED_SCHEME","light","dark","CubeLogoProps","scheme","resolveLogoStyles","styles","CubeLogoElement","qa","CubeLogo","props","ref","rest","t1","t2","CubeFullLogoElement","width","aspectRatio","Svg","height","CubeFullLogo","_c"],"sources":["../../../../src/components/other/CubeLogo/CubeLogo.tsx"],"sourcesContent":["import { mergeStyles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef } from 'react';\n\nimport { CubeIconProps, Icon } from '../../../icons/Icon';\n\n/**\n * Cube logo marks.\n *\n * The mark is two *different drawings*, not one drawing recoloured: the light\n * variant is an outlined cube, the dark variant is filled differently so it keeps\n * its weight against a dark surface. Both are rendered and swapped by the global\n * `@dark` state rather than picked in JS, so the logo follows the scheme without a\n * re-render and works in SSR.\n *\n * Both marks are drawn with `currentColor`, so colour comes from the surrounding\n * text colour (or an explicit `color` prop) — never a baked-in hex. That is the\n * whole reason the previous `CloudLogo` had to go: it hard-coded the old brand\n * hexes and could not adapt.\n */\n\nconst MARK_LIGHT_PATH =\n 'M12.3428 0.468443C13.3139 -0.0982146 14.5153 -0.0984244 15.4863 0.468443L25.7051 6.43426C26.1063 6.66852 26.3535 7.09853 26.3535 7.56317V11.9008C26.3534 12.1325 26.2301 12.347 26.0303 12.4642L23.8356 13.8389L25.7109 14.8737C26.1088 15.1088 26.3534 15.5366 26.3535 15.9987V20.4352C26.3535 20.8999 26.1063 21.3298 25.7051 21.5641L15.4834 27.53C14.5123 28.0967 13.3119 28.0968 12.3408 27.53L2.11914 21.5641C1.71803 21.3298 1.47168 20.8998 1.47168 20.4352V7.56317C1.47178 7.09851 1.71879 6.66848 2.12012 6.43426L12.3428 0.468443ZM14.7002 1.77118C14.2147 1.4878 13.6144 1.48791 13.1289 1.77118L3.18164 7.57587C3.06086 7.64635 2.98649 7.77589 2.98633 7.91571V20.0085L12.873 14.3005C13.5161 13.9292 14.3091 13.9292 14.9521 14.3005L24.8389 20.0095V16.3513C24.8388 16.2116 24.764 16.082 24.6436 16.0114L14.6982 10.197C14.2129 9.91323 13.6117 9.91297 13.126 10.196L6.38477 14.1247C6.13553 14.2695 5.82263 14.0897 5.82227 13.8015V10.3942C5.82238 10.188 5.93134 9.99713 6.1084 9.89129L12.8613 5.85614C13.5101 5.46859 14.3183 5.4637 14.9717 5.84344L24.8389 11.5788V7.91571C24.8387 7.77604 24.7641 7.64643 24.6436 7.57587L14.7002 1.77118Z';\n\nconst MARK_DARK_PATH =\n 'M25.9002 6.65073C26.2344 6.84455 26.44 7.20162 26.44 7.5879L26.4396 11.3066C26.4395 11.6899 26.2369 12.0447 25.9067 12.2395L22.6916 14.1362L25.9094 16.0449C26.2383 16.24 26.44 16.5941 26.44 16.9766V20.6864C26.44 21.0743 26.2326 21.4327 25.8961 21.6258L15.6128 27.5294C14.6148 28.1023 13.387 28.0996 12.3914 27.5223L2.09765 21.5528C1.7635 21.359 1.55781 21.002 1.55781 20.6157V7.58789C1.55781 7.20162 1.76349 6.84457 2.09764 6.65079L13.049 0.299736C13.6372 -0.0413849 14.363 -0.0413542 14.9512 0.299815L25.9002 6.65073ZM3.08936 20.3607C2.9078 20.4649 2.90801 20.7268 3.08974 20.8307L13.0565 26.5279C13.641 26.8619 14.3587 26.861 14.9423 26.5254L24.821 20.8447C25.0017 20.7408 25.0022 20.4802 24.8218 20.3756L14.9425 14.6505C14.3571 14.3112 13.6353 14.3097 13.0485 14.6464L3.08936 20.3607ZM5.55497 9.75456C5.3906 9.85215 5.28984 10.0292 5.28984 10.2203V13.6284C5.28984 13.8379 5.51738 13.968 5.69791 13.8619L13.0363 9.54766C13.631 9.19804 14.3687 9.19907 14.9624 9.55035L21.2322 13.26C21.4021 13.3605 21.6131 13.3607 21.7831 13.2604L24.8318 11.4632C25.0105 11.3579 25.0093 11.0991 24.8297 10.9954L14.9614 5.29588C14.3677 4.95297 13.6351 4.95738 13.0455 5.3074L5.55497 9.75456Z';\n\nconst WORDMARK_PATH =\n 'M52.1689 16.0085C52.1689 18.0202 53.5876 19.2742 55.3838 19.2742C57.1215 19.274 58.5107 18.02 58.5107 16.0085V7.46362H61.5527V15.7761C61.5526 19.6552 58.8592 22.1041 55.3857 22.1042C51.8518 22.1042 49.1584 19.6553 49.1582 15.7761V7.46362H52.1689V16.0085ZM68.2725 9.2146C69.3445 7.90193 71.0524 7.14436 73.0215 7.14429C77.0745 7.14226 79.999 10.3792 79.999 14.6375C79.999 18.8957 77.0747 22.1042 73.0498 22.1042C70.964 22.1042 69.1394 21.26 68.0693 19.8015V21.7849H65.2314V0.6521H68.2725V9.2146ZM90.0576 7.14233C93.851 7.14255 96.6309 9.94205 96.6309 13.7039C96.6308 14.4918 96.4859 15.2518 96.3994 15.6306H85.8008C86.2072 17.9925 88.0019 19.3923 90.4336 19.3923C92.0849 19.3923 93.3865 18.7502 94.5752 17.7009L96.0234 19.8015C94.5169 21.2297 92.6055 22.1042 90.3467 22.1042C85.9457 22.1042 82.7012 18.8673 82.7012 14.6375C82.7012 10.438 85.9161 7.14233 90.0576 7.14233ZM40.5293 7.14233C43.2224 7.14248 45.3056 8.45506 46.5225 10.4666L44.3809 12.158C43.4536 10.8452 42.2663 9.97046 40.5586 9.97046C37.952 9.97067 36.0996 12.0122 36.0996 14.6072C36.0996 17.2608 37.952 19.272 40.5586 19.2722C42.2381 19.2722 43.4254 18.4277 44.3809 17.115L46.5225 18.7781C45.2774 20.7896 43.1922 22.1021 40.5293 22.1023C36.3314 22.1043 33 18.837 33 14.6091C33 10.4096 36.3314 7.14233 40.5293 7.14233ZM72.5273 9.94409C70.3852 9.94409 68.2403 11.4022 68.2402 14.6394C68.2402 17.905 70.4133 19.3044 72.5273 19.3044C74.9891 19.3042 76.872 17.3803 76.8721 14.6091C76.8721 11.838 74.961 9.9443 72.5273 9.94409ZM89.9424 9.73706C87.9431 9.73916 86.322 11.109 85.8594 13.238H93.5908C93.5325 10.9914 91.8834 9.73706 89.9424 9.73706Z';\n\n/** Mark artwork is square. */\nconst MARK_VIEW_BOX = '0 0 28 28';\n/**\n * Full logo = mark (x 0–28) + wordmark (x 33–98) on one canvas, so the 5-unit\n * gap between them is part of the artwork rather than a layout concern.\n */\nconst FULL_VIEW_BOX = '0 0 98 28';\n/** 98 / 28 — used to let width follow height automatically. */\nconst FULL_ASPECT_RATIO = '98 / 28';\n\nconst MarkPaths = () => (\n <>\n <path\n clipRule=\"evenodd\"\n d={MARK_LIGHT_PATH}\n data-element=\"LightMark\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n <path\n clipRule=\"evenodd\"\n d={MARK_DARK_PATH}\n data-element=\"DarkMark\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </>\n);\n\nconst SCHEME_SWAP = {\n LightMark: {\n display: { '': 'block', '@dark': 'none' },\n },\n DarkMark: {\n display: { '': 'none', '@dark': 'block' },\n },\n} as const;\n\n/**\n * Pin one mark instead of letting the `@dark` state choose.\n *\n * Needed wherever the background is known but the *document* scheme does not\n * describe it: a fixed-dark panel in a light app (`#surface-inverse`, the\n * `special` theme), an exported image, or a themed region — `tokens` overrides\n * token *values*, and `@dark` is a state, so a region preview cannot reach the\n * swap on its own.\n */\nconst FORCED_SCHEME = {\n light: {\n LightMark: { display: 'block' },\n DarkMark: { display: 'none' },\n },\n dark: {\n LightMark: { display: 'none' },\n DarkMark: { display: 'block' },\n },\n} as const;\n\nexport interface CubeLogoProps extends CubeIconProps {\n /**\n * Force the light or dark mark. Omit it — the default — to follow the document\n * scheme in CSS, which costs no re-render and is correct during SSR.\n */\n scheme?: 'light' | 'dark';\n}\n\n/** Caller styles win; a forced scheme only overrides the swap itself. */\nfunction resolveLogoStyles({ scheme, styles }: CubeLogoProps) {\n return scheme ? mergeStyles(FORCED_SCHEME[scheme], styles) : styles;\n}\n\n/**\n * Square Cube mark, sized through `Icon` — pass `size` (or any `Icon` style prop)\n * and both axes follow it.\n */\nconst CubeLogoElement = tasty(Icon, {\n qa: 'CubeLogo',\n styles: SCHEME_SWAP,\n});\n\nexport const CubeLogo = forwardRef(function CubeLogo(\n props: CubeLogoProps,\n ref: ForwardedRef<HTMLSpanElement>,\n) {\n const { scheme, styles, ...rest } = props;\n\n return (\n <CubeLogoElement\n aria-label=\"Cube\"\n role=\"img\"\n {...rest}\n styles={resolveLogoStyles(props)}\n ref={ref}\n >\n <svg\n fill=\"none\"\n viewBox={MARK_VIEW_BOX}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <MarkPaths />\n </svg>\n </CubeLogoElement>\n );\n});\n\n/**\n * Cube mark + wordmark.\n *\n * `size` sets the **height** only; the width follows the artwork's aspect ratio.\n * `Icon` is square by default (`width: '1em 1em'`), so both the wrapper and the\n * inner `svg` have their width released to `auto` and the ratio pinned with\n * `aspectRatio` — otherwise the wordmark would be squashed into a 1em box.\n */\nconst CubeFullLogoElement = tasty(Icon, {\n qa: 'CubeFullLogo',\n styles: mergeStyles(SCHEME_SWAP, {\n // Height still comes from `$icon-size` via `Icon`; width must not.\n width: 'auto',\n aspectRatio: FULL_ASPECT_RATIO,\n\n Svg: {\n width: 'auto',\n height: '1em 1em',\n aspectRatio: FULL_ASPECT_RATIO,\n },\n }),\n});\n\nexport const CubeFullLogo = forwardRef(function CubeFullLogo(\n props: CubeLogoProps,\n ref: ForwardedRef<HTMLSpanElement>,\n) {\n const { scheme, styles, ...rest } = props;\n\n return (\n <CubeFullLogoElement\n aria-label=\"Cube\"\n role=\"img\"\n {...rest}\n styles={resolveLogoStyles(props)}\n ref={ref}\n >\n <svg\n fill=\"none\"\n viewBox={FULL_VIEW_BOX}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <MarkPaths />\n <path d={WORDMARK_PATH} fill=\"currentColor\" />\n </svg>\n </CubeFullLogoElement>\n );\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { wrapIcon } from "../../../icons/wrap-icon.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/other/NoDataIcon/NoDataIcon.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { Paragraph } from "../../content/Paragraph.js";
4
4
  import { Title as _Title } from "../../content/Title.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { AlertDialogZone } from "./AlertDialogZone.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { Portal } from "../../portal/Portal.js";
3
3
  import { DialogContainer } from "../Dialog/DialogContainer.js";
4
4
  import { AlertDialog as _AlertDialog } from "./AlertDialog.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { SlotProvider } from "../../../utils/react/Slots.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["createFocusManager","getFocusableTreeWalker","focusSafely","getInteractionModality","focusWithoutScrolling","isFocusable","runAfterTransition","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","FocusEvent","forwardRef","ReactElement","Ref","useEffect","useRef","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","trapsFocus","useDialogContext","useContentOverflow","useRetainedDialogFocus","STYLES_LIST","DialogElement","as","styles","display","flow","fill","pointerEvents","outline","position","width","height","gap","border","radius","shadow","top","CloseButton","qa","type","right","sizeMap","S","M","L","sizePxMap","small","medium","large","CubeDialogProps","Omit","size","isDismissable","onDismiss","arg","closeIcon","closeButtonStyles","role","findPriorityFocusElement","dialog","HTMLElement","marked","querySelectorAll","element","Array","from","reverse","target","tabbable","nextNode","button","getAttribute","querySelector","Dialog","props","ref","$","_c","transitionState","isShown","context","t0","content","t1","isOpen","shouldContainFocus","t2","shouldRestoreFocus","t3","DialogContent","HTMLDivElement","contextProps","children","undefined","onClose","tokens","style","otherProps","toUpperCase","t","domRef","isFocusInTreeRef","isRetained","isTrapping","isRefocusingRef","mountedAtRef","current","Date","now","dialogProps","titleProps","contentProps","dismissButton","timer","ReturnType","setTimeout","isClosed","contains","document","activeElement","body","blur","isFocusOutsideDialog","isFocusOnDialogShell","priorityElement","focus","focused","focusManager","focusFirst","clearTimeout","contentOverflows","slots","title","level","preset","id","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","onFocus","onBlur","event","stopPropagation","dismissable","ItemButton","_c","mergeProps"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager, getFocusableTreeWalker } from '@react-aria/focus';\nimport { focusSafely, getInteractionModality } from '@react-aria/interactions';\nimport {\n focusWithoutScrolling,\n isFocusable,\n runAfterTransition,\n useObjectRef,\n} from '@react-aria/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n FLOW_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n FocusEvent,\n forwardRef,\n ReactElement,\n Ref,\n useEffect,\n useRef,\n} from 'react';\nimport {\n AriaDialogProps,\n DismissButton,\n FocusScope,\n useDialog,\n} from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { mergeProps, SlotProvider } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions/ItemButton/ItemButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { trapsFocus, useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\nimport { useRetainedDialogFocus } from './use-retained-dialog-focus';\n\nconst STYLES_LIST = [\n ...BASE_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n];\n\nconst DialogElement = tasty({\n as: 'section',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n pointerEvents: 'auto',\n outline: 0,\n position: {\n '': 'relative',\n 'type=panel': 'absolute',\n },\n // The widest the dialog gets, also under a `width`. A tray is held by its\n // shell, whose own `styles` widen it; a takeover and a panel may span the\n // viewport.\n '$dialog-width-limit': {\n '': '$dialog-max-size',\n 'type=tray': '100%',\n 'type=fullscreenTakeover | type=panel': '100dvw',\n },\n width: {\n '': '$min-dialog-size $dialog-size $dialog-width-limit',\n 'type=fullscreen': '$dialog-max-size $dialog-max-size',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n // A `width` is the preferred width in `$dialog-size`: it keeps the\n // limit, and replaces the floor.\n 'custom-width': 'initial $dialog-size $dialog-width-limit',\n },\n height: {\n '': 'auto (100dvh - 8x)',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=popover': 'initial initial (50dvh - 5x)',\n },\n gap: 0,\n border: {\n '': false,\n 'type=popover': true,\n },\n radius: {\n '': '1cr',\n 'type=tray': '1cr top',\n 'type=fullscreenTakeover': '0r',\n },\n shadow: {\n '': '$dialog-shadow',\n 'type=popover | type=panel': '$shadow',\n },\n top: {\n '': false,\n 'type=modal': '((50vh - 50%) / -3)',\n 'type=panel': 'auto',\n },\n '$dialog-title-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-padding-h': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-footer-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-gap': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n\n // A `Form` placed directly here (`Dialog > Form > Content + Footer`) lays\n // itself out as this flex column — see `FormElement`. It is the form's own\n // state rather than a rule here, so the form's `styles` still win.\n },\n});\n\nconst CloseButton = tasty(ItemButton, {\n qa: 'ModalCloseButton',\n type: 'clear',\n styles: {\n position: 'absolute',\n top: '1x',\n right: '1x',\n },\n});\n\nconst sizeMap = {\n S: 'small',\n M: 'medium',\n L: 'large',\n};\nconst sizePxMap = {\n small: 360,\n medium: 479,\n large: 798,\n};\n\nexport interface CubeDialogProps\n extends\n Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n Omit<DimensionStyleProps, 'width'> {\n /**\n * The dialog's preferred width, one value (`520px`, `65x`, `600`). It keeps\n * the type's maximum, so the dialog still fits a phone, and replaces\n * `$min-dialog-size`. To clamp the width yourself, set `styles.width`.\n */\n width?: string | number;\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /**\n * Whether the dialog shows its close button. Defaults to its DialogTrigger's\n * or DialogContainer's `isDismissable`, except in a popover.\n */\n isDismissable?: boolean;\n /** Trigger when the dialog is dismissed */\n onDismiss?: (arg?: any) => void;\n /** That you can replace the close icon with */\n closeIcon?: ReactElement;\n closeButtonStyles?: Styles;\n role?: 'dialog' | 'alertdialog';\n}\n\n/**\n * The control a dialog focuses when it opens: the last one marked\n * `data-autofocus` that can take focus, as kit controls mark themselves for\n * `autoFocus` (the last of several takes focus as they mount), or the first\n * control of a marked field (a date field's first segment). Otherwise a\n * submit or primary button, which in an alert dialog is never a destructive\n * (`danger`) one: a reflexive Enter would run it.\n */\nfunction findPriorityFocusElement(dialog: HTMLElement) {\n const marked = dialog.querySelectorAll<HTMLElement>('[data-autofocus]');\n\n for (const element of Array.from(marked).reverse()) {\n const target = isFocusable(element)\n ? element\n : getFocusableTreeWalker(element, { tabbable: true }).nextNode();\n\n if (target) return target as HTMLElement;\n }\n\n const button =\n dialog.getAttribute('role') === 'alertdialog'\n ? 'button:not([data-theme=\"danger\"])'\n : 'button';\n\n return dialog.querySelector<HTMLElement>(\n `${button}[type=\"submit\"], ${button}[data-type=\"primary\"]`,\n );\n}\n\n/**\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.\n * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n */\nexport const Dialog = forwardRef(function Dialog(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n const transitionState = useOpenTransitionContext()?.transitionState;\n\n // From the first frame of the enter transition, not only once it has\n // ended: a Tab pressed while the dialog animates in would otherwise land on\n // the page behind it, and nothing would pull it back. Released as soon as\n // the dialog closes, so focus can return to the trigger during the exit.\n const isShown = transitionState === 'enter' || transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = <DialogContent key=\"content\" {...props} ref={ref} />;\n\n const shouldContainFocus = isShown && !!context.isOpen && trapsFocus(context);\n\n return (\n // This component traps the focus inside the dialog and restores it when\n // it unmounts (a retained dialog never does, so `DialogContent` moves\n // focus for that one). The restore is the one that matters for popover-type dialogs\n // — `DialogTrigger`'s own restore is a no-op there — so\n // `shouldRestoreFocus` has to reach it. Containment is unaffected either way.\n <FocusScope\n restoreFocus={context.shouldRestoreFocus ?? true}\n contain={shouldContainFocus}\n >\n {content}\n </FocusScope>\n );\n});\n\nconst DialogContent = forwardRef(function DialogContent(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n let { type = 'modal', ...contextProps } = useDialogContext();\n\n let {\n qa,\n children,\n size = 'M',\n // A popover shows a close button only when its `Dialog` asks for one: its\n // trigger's `isDismissable` decides whether an outside press closes it.\n isDismissable = type === 'popover' ? undefined : contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n width,\n tokens,\n style,\n ...otherProps\n } = props;\n\n size = sizeMap[size.toUpperCase()] || size;\n\n const styles: Styles = extractStyles(otherProps, STYLES_LIST);\n\n const { t } = useI18n();\n\n let domRef = useObjectRef(ref);\n\n // Whether focus is in the dialog or in anything opened from it, portals\n // included: React focus events bubble through the component tree.\n const isFocusInTreeRef = useRef(false);\n const isRetained = useRetainedDialogFocus(domRef, isFocusInTreeRef);\n const isTrapping = trapsFocus({ ...contextProps, type });\n\n // Set while the dialog refocuses itself, so the blur in between does not\n // reach overlays that close when focus leaves them.\n const isRefocusingRef = useRef(false);\n\n // When the dialog mounted: `useDialog` refocuses it half a second later.\n const mountedAtRef = useRef(0);\n\n useEffect(() => {\n mountedAtRef.current = Date.now();\n }, []);\n\n // `contentProps` carries an id only for `role=\"alertdialog\"` without an\n // explicit `aria-describedby`: an alert is described by its message, while a\n // plain dialog links nothing, so opening a form does not read it aloud.\n let { dialogProps, titleProps, contentProps } = useDialog(\n mergeProps(contextProps, props),\n domRef,\n );\n\n // If rendered in a popover or tray there won't be a visible dismiss button,\n // so we render a hidden one for screen readers.\n let dismissButton;\n if (type === 'popover' || type === 'tray') {\n dismissButton = <DismissButton onDismiss={onDismiss} />;\n }\n\n // Focus the first focusable element in the dialog when it opens.\n //\n // We also re-run the priority focus logic when the dialog <section>\n // itself is the active element. This recovers from a race that occurs\n // when a popover-based component (FilterPicker, Picker, Select, …) opens\n // inside another contained Dialog: React's native `autoFocus` on the\n // inner control fires during the mutation phase, before the popover's\n // FocusScope registers in react-aria's focus-scope tree, so the outer\n // FocusScope yanks focus back. useDialog then defaults focus to the\n // dialog <section>; without re-promoting it here, the priority element\n // (e.g. the search input) is never focused.\n useEffect(() => {\n // The pending timer: this one, then the refocus it may start.\n let timer: ReturnType<typeof setTimeout> | undefined;\n let isClosed = false;\n\n if (contextProps.isOpen) {\n timer = setTimeout(() => {\n if (!domRef.current) return;\n\n // `useDialog` focuses the dialog itself when it mounts, without\n // scrolling, unless focus is already inside. A retained dialog opens\n // without remounting, so do the same here: the rules below then run as\n // for a fresh dialog, and kept content keeps its scroll.\n if (isRetained && !domRef.current.contains(document.activeElement)) {\n focusSafely(domRef.current);\n\n // As `useDialog` does next: VoiceOver on iOS announces a dialog only\n // once it has rendered, so blur and refocus it half a second later\n // if focus is still on it or lost to `<body>`. Unless the refocus\n // `useDialog` set up when the dialog mounted is still to come.\n if (Date.now() - mountedAtRef.current >= 500) {\n timer = setTimeout(() => {\n const dialog = domRef.current;\n const activeElement = document.activeElement;\n\n if (\n !dialog ||\n (activeElement !== dialog && activeElement !== document.body)\n ) {\n return;\n }\n\n isRefocusingRef.current = true;\n dialog.blur();\n focusSafely(dialog);\n isRefocusingRef.current = false;\n }, 500);\n }\n }\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: an autofocused control, or a submit or primary button\n const priorityElement = findPriorityFocusElement(domRef.current);\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog && getInteractionModality() === 'virtual') {\n // A screen reader's cursor: the dialog itself takes focus once the\n // open transition ends, as `focusSafely` does it. Then also when\n // something moved focus meanwhile, as a closing menu returns it to\n // its trigger, unless a dialog that leaves the page usable lost it\n // to a control there.\n runAfterTransition(() => {\n const dialog = domRef.current;\n const focused = document.activeElement;\n\n if (\n isClosed ||\n !dialog ||\n dialog.contains(focused) ||\n (!isTrapping &&\n focused !== document.body &&\n focused !== activeElement)\n ) {\n return;\n }\n\n focusWithoutScrolling(dialog);\n });\n } else if (isFocusOutsideDialog) {\n // Fallback: focus first tabbable element, or dialog itself\n const focusManager = createFocusManager(domRef);\n\n if (!focusManager.focusFirst({ tabbable: true })) {\n domRef.current.focus();\n }\n }\n });\n }\n\n return () => {\n isClosed = true;\n clearTimeout(timer);\n };\n }, [contextProps.isOpen, isRetained, isTrapping]);\n\n // let hasHeader = useHasChild('[data-id=\"Header\"]', domRef);\n // let hasFooter = useHasChild('[data-id=\"Footer\"]', domRef);\n\n const contentOverflows = useContentOverflow(domRef);\n\n let slots = {\n title: {\n level: 2,\n preset: 'h4',\n ...titleProps,\n },\n content: {\n // `null` rather than `undefined` when there is none: slots reach nested\n // slot providers, and `undefined` does not override, so a dialog opened\n // inside an alert dialog would repeat the alert's message id.\n id: contentProps.id ?? null,\n styles: {\n flexGrow: 1,\n padding: '$dialog-content-padding-v $dialog-padding-h',\n gap: '$dialog-content-gap',\n height: {\n '': 'max (100% - (2 * $dialog-content-padding-v))',\n ':last-child': 'max (100% - $dialog-content-padding-v)',\n },\n },\n },\n header: {\n ellipsis: true,\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center stretch',\n placeContent: 'space-between',\n padding: `$dialog-title-padding-v ${\n isDismissable ? '($dialog-padding-h + 4x)' : '$dialog-padding-h'\n } $dialog-title-padding-v $dialog-padding-h`,\n border: 'bottom',\n },\n },\n footer: {\n mods: { 'content-overflow': contentOverflows },\n styles: {\n display: 'flex',\n gap: '1x',\n flow: 'row-reverse',\n placeItems: 'baseline stretch',\n placeContent: 'space-between',\n padding: '$dialog-footer-v $dialog-padding-h',\n // A line only while the body scrolls: the footer then sits over\n // content that carries on beneath it, and the line is what says so.\n // Under a body that fits, the actions simply end it and a rule there\n // reads as clutter.\n border: {\n '': false,\n 'content-overflow': 'top',\n },\n },\n },\n buttonGroup: {\n styles: {\n flow: 'row-reverse',\n },\n },\n };\n\n return (\n <DialogElement\n ref={domRef}\n data-id=\"Dialog\"\n data-qa={qa || 'Dialog'}\n styles={styles}\n as=\"section\"\n {...mergeProps(dialogProps, {\n onFocus() {\n isFocusInTreeRef.current = true;\n },\n onBlur(event: FocusEvent) {\n isFocusInTreeRef.current = false;\n\n if (isRefocusingRef.current) event.stopPropagation();\n },\n })}\n mods={{ dismissable: isDismissable, 'custom-width': width != null }}\n tokens={{\n '$dialog-size':\n width == null\n ? `${sizePxMap[size] || sizePxMap.small}px`\n : typeof width === 'number'\n ? `${width}px`\n : width,\n ...tokens,\n }}\n style={style}\n data-type={type}\n data-size={size}\n >\n {dismissButton}\n\n <SlotProvider slots={slots}>\n {isDismissable && (\n <CloseButton\n icon={closeIcon || <CloseIcon size={20} />}\n aria-label={t('dialog.dismiss', 'Dismiss')}\n onPress={() => onDismiss && onDismiss()}\n />\n )}\n {children}\n </SlotProvider>\n </DialogElement>\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","names":["createFocusManager","getFocusableTreeWalker","focusSafely","getInteractionModality","focusWithoutScrolling","isFocusable","runAfterTransition","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","FocusEvent","forwardRef","ReactElement","Ref","useEffect","useRef","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","trapsFocus","useDialogContext","useContentOverflow","useRetainedDialogFocus","STYLES_LIST","DialogElement","as","styles","display","flow","fill","pointerEvents","outline","position","width","height","gap","border","radius","shadow","top","CloseButton","qa","type","right","sizeMap","S","M","L","sizePxMap","small","medium","large","CubeDialogProps","Omit","size","isDismissable","onDismiss","arg","closeIcon","closeButtonStyles","role","findPriorityFocusElement","dialog","HTMLElement","marked","querySelectorAll","element","Array","from","reverse","target","tabbable","nextNode","button","getAttribute","querySelector","Dialog","props","ref","$","_c","transitionState","isShown","context","t0","content","t1","isOpen","shouldContainFocus","t2","shouldRestoreFocus","t3","DialogContent","HTMLDivElement","contextProps","children","undefined","onClose","tokens","style","otherProps","toUpperCase","t","domRef","isFocusInTreeRef","isRetained","isTrapping","isRefocusingRef","mountedAtRef","current","Date","now","dialogProps","titleProps","contentProps","dismissButton","timer","ReturnType","setTimeout","isClosed","contains","document","activeElement","body","blur","isFocusOutsideDialog","isFocusOnDialogShell","priorityElement","focus","focused","focusManager","focusFirst","clearTimeout","contentOverflows","slots","title","level","preset","id","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","onFocus","onBlur","event","stopPropagation","dismissable","ItemButton","_c","mergeProps"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager, getFocusableTreeWalker } from '@react-aria/focus';\nimport { focusSafely, getInteractionModality } from '@react-aria/interactions';\nimport {\n focusWithoutScrolling,\n isFocusable,\n runAfterTransition,\n useObjectRef,\n} from '@react-aria/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n FLOW_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n FocusEvent,\n forwardRef,\n ReactElement,\n Ref,\n useEffect,\n useRef,\n} from 'react';\nimport {\n AriaDialogProps,\n DismissButton,\n FocusScope,\n useDialog,\n} from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { mergeProps, SlotProvider } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions/ItemButton/ItemButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { trapsFocus, useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\nimport { useRetainedDialogFocus } from './use-retained-dialog-focus';\n\nconst STYLES_LIST = [\n ...BASE_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n];\n\nconst DialogElement = tasty({\n as: 'section',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n pointerEvents: 'auto',\n outline: 0,\n position: {\n '': 'relative',\n 'type=panel': 'absolute',\n },\n // The widest the dialog gets, also under a `width`. A tray is held by its\n // shell, whose own `styles` widen it; a takeover and a panel may span the\n // viewport.\n '$dialog-width-limit': {\n '': '$dialog-max-size',\n 'type=tray': '100%',\n 'type=fullscreenTakeover | type=panel': '100dvw',\n },\n width: {\n '': '$min-dialog-size $dialog-size $dialog-width-limit',\n 'type=fullscreen': '$dialog-max-size $dialog-max-size',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n // A `width` is the preferred width in `$dialog-size`: it keeps the\n // limit, and replaces the floor.\n 'custom-width': 'initial $dialog-size $dialog-width-limit',\n },\n height: {\n '': 'auto (100dvh - 8x)',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=popover': 'initial initial (50dvh - 5x)',\n },\n gap: 0,\n border: {\n '': false,\n 'type=popover': true,\n },\n radius: {\n '': '1cr',\n 'type=tray': '1cr top',\n 'type=fullscreenTakeover': '0r',\n },\n shadow: {\n '': '$dialog-shadow',\n 'type=popover | type=panel': '$shadow',\n },\n top: {\n '': false,\n 'type=modal': '((50vh - 50%) / -3)',\n 'type=panel': 'auto',\n },\n '$dialog-title-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-padding-h': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-footer-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-gap': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n\n // A `Form` placed directly here (`Dialog > Form > Content + Footer`) lays\n // itself out as this flex column — see `FormElement`. It is the form's own\n // state rather than a rule here, so the form's `styles` still win.\n },\n});\n\nconst CloseButton = tasty(ItemButton, {\n qa: 'ModalCloseButton',\n type: 'clear',\n styles: {\n position: 'absolute',\n top: '1x',\n right: '1x',\n },\n});\n\nconst sizeMap = {\n S: 'small',\n M: 'medium',\n L: 'large',\n};\nconst sizePxMap = {\n small: 360,\n medium: 479,\n large: 798,\n};\n\nexport interface CubeDialogProps\n extends\n Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n Omit<DimensionStyleProps, 'width'> {\n /**\n * The dialog's preferred width, one value (`520px`, `65x`, `600`). It keeps\n * the type's maximum, so the dialog still fits a phone, and replaces\n * `$min-dialog-size`. To clamp the width yourself, set `styles.width`.\n */\n width?: string | number;\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /**\n * Whether the dialog shows its close button. Defaults to its DialogTrigger's\n * or DialogContainer's `isDismissable`, except in a popover.\n */\n isDismissable?: boolean;\n /** Trigger when the dialog is dismissed */\n onDismiss?: (arg?: any) => void;\n /** That you can replace the close icon with */\n closeIcon?: ReactElement;\n closeButtonStyles?: Styles;\n role?: 'dialog' | 'alertdialog';\n}\n\n/**\n * The control a dialog focuses when it opens: the last one marked\n * `data-autofocus` that can take focus, as kit controls mark themselves for\n * `autoFocus` (the last of several takes focus as they mount), or the first\n * control of a marked field (a date field's first segment). Otherwise a\n * submit or primary button, which in an alert dialog is never a destructive\n * (`danger`) one: a reflexive Enter would run it.\n */\nfunction findPriorityFocusElement(dialog: HTMLElement) {\n const marked = dialog.querySelectorAll<HTMLElement>('[data-autofocus]');\n\n for (const element of Array.from(marked).reverse()) {\n const target = isFocusable(element)\n ? element\n : getFocusableTreeWalker(element, { tabbable: true }).nextNode();\n\n if (target) return target as HTMLElement;\n }\n\n const button =\n dialog.getAttribute('role') === 'alertdialog'\n ? 'button:not([data-theme=\"danger\"])'\n : 'button';\n\n return dialog.querySelector<HTMLElement>(\n `${button}[type=\"submit\"], ${button}[data-type=\"primary\"]`,\n );\n}\n\n/**\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.\n * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n */\nexport const Dialog = forwardRef(function Dialog(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n const transitionState = useOpenTransitionContext()?.transitionState;\n\n // From the first frame of the enter transition, not only once it has\n // ended: a Tab pressed while the dialog animates in would otherwise land on\n // the page behind it, and nothing would pull it back. Released as soon as\n // the dialog closes, so focus can return to the trigger during the exit.\n const isShown = transitionState === 'enter' || transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = <DialogContent key=\"content\" {...props} ref={ref} />;\n\n const shouldContainFocus = isShown && !!context.isOpen && trapsFocus(context);\n\n return (\n // This component traps the focus inside the dialog and restores it when\n // it unmounts (a retained dialog never does, so `DialogContent` moves\n // focus for that one). The restore is the one that matters for popover-type dialogs\n // — `DialogTrigger`'s own restore is a no-op there — so\n // `shouldRestoreFocus` has to reach it. Containment is unaffected either way.\n <FocusScope\n restoreFocus={context.shouldRestoreFocus ?? true}\n contain={shouldContainFocus}\n >\n {content}\n </FocusScope>\n );\n});\n\nconst DialogContent = forwardRef(function DialogContent(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n let { type = 'modal', ...contextProps } = useDialogContext();\n\n let {\n qa,\n children,\n size = 'M',\n // A popover shows a close button only when its `Dialog` asks for one: its\n // trigger's `isDismissable` decides whether an outside press closes it.\n isDismissable = type === 'popover' ? undefined : contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n width,\n tokens,\n style,\n ...otherProps\n } = props;\n\n size = sizeMap[size.toUpperCase()] || size;\n\n const styles: Styles = extractStyles(otherProps, STYLES_LIST);\n\n const { t } = useI18n();\n\n let domRef = useObjectRef(ref);\n\n // Whether focus is in the dialog or in anything opened from it, portals\n // included: React focus events bubble through the component tree.\n const isFocusInTreeRef = useRef(false);\n const isRetained = useRetainedDialogFocus(domRef, isFocusInTreeRef);\n const isTrapping = trapsFocus({ ...contextProps, type });\n\n // Set while the dialog refocuses itself, so the blur in between does not\n // reach overlays that close when focus leaves them.\n const isRefocusingRef = useRef(false);\n\n // When the dialog mounted: `useDialog` refocuses it half a second later.\n const mountedAtRef = useRef(0);\n\n useEffect(() => {\n mountedAtRef.current = Date.now();\n }, []);\n\n // `contentProps` carries an id only for `role=\"alertdialog\"` without an\n // explicit `aria-describedby`: an alert is described by its message, while a\n // plain dialog links nothing, so opening a form does not read it aloud.\n let { dialogProps, titleProps, contentProps } = useDialog(\n mergeProps(contextProps, props),\n domRef,\n );\n\n // If rendered in a popover or tray there won't be a visible dismiss button,\n // so we render a hidden one for screen readers.\n let dismissButton;\n if (type === 'popover' || type === 'tray') {\n dismissButton = <DismissButton onDismiss={onDismiss} />;\n }\n\n // Focus the first focusable element in the dialog when it opens.\n //\n // We also re-run the priority focus logic when the dialog <section>\n // itself is the active element. This recovers from a race that occurs\n // when a popover-based component (FilterPicker, Picker, Select, …) opens\n // inside another contained Dialog: React's native `autoFocus` on the\n // inner control fires during the mutation phase, before the popover's\n // FocusScope registers in react-aria's focus-scope tree, so the outer\n // FocusScope yanks focus back. useDialog then defaults focus to the\n // dialog <section>; without re-promoting it here, the priority element\n // (e.g. the search input) is never focused.\n useEffect(() => {\n // The pending timer: this one, then the refocus it may start.\n let timer: ReturnType<typeof setTimeout> | undefined;\n let isClosed = false;\n\n if (contextProps.isOpen) {\n timer = setTimeout(() => {\n if (!domRef.current) return;\n\n // `useDialog` focuses the dialog itself when it mounts, without\n // scrolling, unless focus is already inside. A retained dialog opens\n // without remounting, so do the same here: the rules below then run as\n // for a fresh dialog, and kept content keeps its scroll.\n if (isRetained && !domRef.current.contains(document.activeElement)) {\n focusSafely(domRef.current);\n\n // As `useDialog` does next: VoiceOver on iOS announces a dialog only\n // once it has rendered, so blur and refocus it half a second later\n // if focus is still on it or lost to `<body>`. Unless the refocus\n // `useDialog` set up when the dialog mounted is still to come.\n if (Date.now() - mountedAtRef.current >= 500) {\n timer = setTimeout(() => {\n const dialog = domRef.current;\n const activeElement = document.activeElement;\n\n if (\n !dialog ||\n (activeElement !== dialog && activeElement !== document.body)\n ) {\n return;\n }\n\n isRefocusingRef.current = true;\n dialog.blur();\n focusSafely(dialog);\n isRefocusingRef.current = false;\n }, 500);\n }\n }\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: an autofocused control, or a submit or primary button\n const priorityElement = findPriorityFocusElement(domRef.current);\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog && getInteractionModality() === 'virtual') {\n // A screen reader's cursor: the dialog itself takes focus once the\n // open transition ends, as `focusSafely` does it. Then also when\n // something moved focus meanwhile, as a closing menu returns it to\n // its trigger, unless a dialog that leaves the page usable lost it\n // to a control there.\n runAfterTransition(() => {\n const dialog = domRef.current;\n const focused = document.activeElement;\n\n if (\n isClosed ||\n !dialog ||\n dialog.contains(focused) ||\n (!isTrapping &&\n focused !== document.body &&\n focused !== activeElement)\n ) {\n return;\n }\n\n focusWithoutScrolling(dialog);\n });\n } else if (isFocusOutsideDialog) {\n // Fallback: focus first tabbable element, or dialog itself\n const focusManager = createFocusManager(domRef);\n\n if (!focusManager.focusFirst({ tabbable: true })) {\n domRef.current.focus();\n }\n }\n });\n }\n\n return () => {\n isClosed = true;\n clearTimeout(timer);\n };\n }, [contextProps.isOpen, isRetained, isTrapping]);\n\n // let hasHeader = useHasChild('[data-id=\"Header\"]', domRef);\n // let hasFooter = useHasChild('[data-id=\"Footer\"]', domRef);\n\n const contentOverflows = useContentOverflow(domRef);\n\n let slots = {\n title: {\n level: 2,\n preset: 'h4',\n ...titleProps,\n },\n content: {\n // `null` rather than `undefined` when there is none: slots reach nested\n // slot providers, and `undefined` does not override, so a dialog opened\n // inside an alert dialog would repeat the alert's message id.\n id: contentProps.id ?? null,\n styles: {\n flexGrow: 1,\n padding: '$dialog-content-padding-v $dialog-padding-h',\n gap: '$dialog-content-gap',\n height: {\n '': 'max (100% - (2 * $dialog-content-padding-v))',\n ':last-child': 'max (100% - $dialog-content-padding-v)',\n },\n },\n },\n header: {\n ellipsis: true,\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center stretch',\n placeContent: 'space-between',\n padding: `$dialog-title-padding-v ${\n isDismissable ? '($dialog-padding-h + 4x)' : '$dialog-padding-h'\n } $dialog-title-padding-v $dialog-padding-h`,\n border: 'bottom',\n },\n },\n footer: {\n mods: { 'content-overflow': contentOverflows },\n styles: {\n display: 'flex',\n gap: '1x',\n flow: 'row-reverse',\n placeItems: 'baseline stretch',\n placeContent: 'space-between',\n padding: '$dialog-footer-v $dialog-padding-h',\n // A line only while the body scrolls: the footer then sits over\n // content that carries on beneath it, and the line is what says so.\n // Under a body that fits, the actions simply end it and a rule there\n // reads as clutter.\n border: {\n '': false,\n 'content-overflow': 'top',\n },\n },\n },\n buttonGroup: {\n styles: {\n flow: 'row-reverse',\n },\n },\n };\n\n return (\n <DialogElement\n ref={domRef}\n data-id=\"Dialog\"\n data-qa={qa || 'Dialog'}\n styles={styles}\n as=\"section\"\n {...mergeProps(dialogProps, {\n onFocus() {\n isFocusInTreeRef.current = true;\n },\n onBlur(event: FocusEvent) {\n isFocusInTreeRef.current = false;\n\n if (isRefocusingRef.current) event.stopPropagation();\n },\n })}\n mods={{ dismissable: isDismissable, 'custom-width': width != null }}\n tokens={{\n '$dialog-size':\n width == null\n ? `${sizePxMap[size] || sizePxMap.small}px`\n : typeof width === 'number'\n ? `${width}px`\n : width,\n ...tokens,\n }}\n // oxlint-disable-next-line tasty/no-style-prop -- forwards the consumer's public `style` prop\n style={style}\n data-type={type}\n data-size={size}\n >\n {dismissButton}\n\n <SlotProvider slots={slots}>\n {isDismissable && (\n <CloseButton\n icon={closeIcon || <CloseIcon size={20} />}\n aria-label={t('dialog.dismiss', 'Dismiss')}\n onPress={() => onDismiss && onDismiss()}\n />\n )}\n {children}\n </SlotProvider>\n </DialogElement>\n );\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { Modal as _Modal } from "../Modal/Modal.js";
3
3
  import { Tray as _Tray } from "../Modal/Tray.js";
4
4
  import { DialogContext } from "./context.js";