@cube-dev/ui-kit 0.0.0-canary-55e23f2 → 0.0.0-canary-21dd9ff

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 (506) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/Item.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +2 -2
  23. package/es/components/actions/Action/Action.js +14 -18
  24. package/es/components/actions/Button/Button.js +2 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  31. package/es/components/actions/ItemButton/index.js +1 -1
  32. package/es/components/actions/Menu/Menu.js +1 -1
  33. package/es/components/actions/Menu/MenuItem.js +1 -1
  34. package/es/components/actions/Menu/MenuSection.js +1 -1
  35. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  36. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  37. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  38. package/es/components/actions/Menu/context.js +1 -1
  39. package/es/components/actions/Menu/index.js +1 -1
  40. package/es/components/actions/Menu/styled.js +1 -1
  41. package/es/components/actions/index.js +1 -1
  42. package/es/components/actions/use-action.js +1 -1
  43. package/es/components/actions/use-anchored-menu.js +1 -1
  44. package/es/components/actions/use-context-menu.js +1 -1
  45. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/es/components/content/Alert/Alert.js +1 -1
  47. package/es/components/content/Alert/index.js +1 -1
  48. package/es/components/content/Alert/types.js +1 -1
  49. package/es/components/content/Alert/use-alert.js +1 -1
  50. package/es/components/content/Avatar/Avatar.js +1 -1
  51. package/es/components/content/Badge/Badge.js +1 -1
  52. package/es/components/content/Card/Card.js +1 -1
  53. package/es/components/content/Content.js +1 -1
  54. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  55. package/es/components/content/CopyPasteBlock/index.js +1 -1
  56. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/es/components/content/CopySnippet/index.js +1 -1
  58. package/es/components/content/Divider.js +1 -1
  59. package/es/components/content/Footer.js +1 -1
  60. package/es/components/content/Header.js +1 -1
  61. package/es/components/content/HotKeys/HotKeys.js +1 -1
  62. package/es/components/content/HotKeys/index.js +1 -1
  63. package/es/components/content/ItemBase/ItemBase.js +5 -4
  64. package/es/components/content/ItemBase/index.js +1 -1
  65. package/es/components/content/List/SectionHeading.js +1 -1
  66. package/es/components/content/List/index.js +1 -1
  67. package/es/components/content/Paragraph.js +1 -1
  68. package/es/components/content/Placeholder/Placeholder.js +1 -1
  69. package/es/components/content/PrismCode/PrismCode.js +1 -1
  70. package/es/components/content/PrismCode/prismSetup.js +1 -1
  71. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  72. package/es/components/content/Result/Result.js +1 -1
  73. package/es/components/content/Skeleton/Skeleton.js +1 -1
  74. package/es/components/content/Tag/Tag.js +1 -1
  75. package/es/components/content/Text.js +3 -3
  76. package/es/components/content/Title.js +3 -3
  77. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  78. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  79. package/es/components/fields/Checkbox/context.js +1 -1
  80. package/es/components/fields/Checkbox/index.js +1 -1
  81. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  82. package/es/components/fields/ComboBox/index.js +1 -1
  83. package/es/components/fields/DatePicker/DateInput.js +1 -1
  84. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  85. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  86. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  87. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  88. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  89. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  90. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  91. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  92. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  93. package/es/components/fields/DatePicker/index.js +1 -1
  94. package/es/components/fields/DatePicker/intl.js +1 -1
  95. package/es/components/fields/DatePicker/parseDate.js +1 -1
  96. package/es/components/fields/DatePicker/props.js +1 -1
  97. package/es/components/fields/DatePicker/types.js +1 -1
  98. package/es/components/fields/DatePicker/utils.js +1 -1
  99. package/es/components/fields/FileInput/FileInput.js +1 -1
  100. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  101. package/es/components/fields/FilterListBox/index.js +1 -1
  102. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  103. package/es/components/fields/FilterPicker/index.js +1 -1
  104. package/es/components/fields/Input/Input.js +1 -1
  105. package/es/components/fields/Input/index.js +1 -1
  106. package/es/components/fields/ListBox/ListBox.js +1 -1
  107. package/es/components/fields/ListBox/index.js +1 -1
  108. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  109. package/es/components/fields/NumberInput/StepButton.js +1 -1
  110. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  111. package/es/components/fields/RadioGroup/Radio.js +1 -1
  112. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  113. package/es/components/fields/RadioGroup/context.js +1 -1
  114. package/es/components/fields/RadioGroup/index.js +1 -1
  115. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  116. package/es/components/fields/SearchInput/index.js +1 -1
  117. package/es/components/fields/Select/Select.js +1 -1
  118. package/es/components/fields/Select/index.js +1 -1
  119. package/es/components/fields/Slider/Gradation.js +1 -1
  120. package/es/components/fields/Slider/Header.js +1 -1
  121. package/es/components/fields/Slider/RangeSlider.js +1 -1
  122. package/es/components/fields/Slider/Slider.js +1 -1
  123. package/es/components/fields/Slider/SliderBase.js +1 -1
  124. package/es/components/fields/Slider/SliderInput.js +1 -1
  125. package/es/components/fields/Slider/SliderThumb.js +1 -1
  126. package/es/components/fields/Slider/SliderTrack.js +1 -1
  127. package/es/components/fields/Slider/elements.js +1 -1
  128. package/es/components/fields/Slider/index.js +1 -1
  129. package/es/components/fields/Slider/types.js +1 -1
  130. package/es/components/fields/Switch/Switch.js +1 -1
  131. package/es/components/fields/Switch/index.js +1 -1
  132. package/es/components/fields/TextArea/TextArea.js +1 -1
  133. package/es/components/fields/TextArea/index.js +1 -1
  134. package/es/components/fields/TextInput/TextInput.js +1 -1
  135. package/es/components/fields/TextInput/TextInputBase.js +3 -2
  136. package/es/components/fields/TextInput/index.js +1 -1
  137. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  138. package/es/components/fields/TextInputMapper/index.js +1 -1
  139. package/es/components/fields/index.js +1 -1
  140. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  141. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  142. package/es/components/form/FieldWrapper/index.js +1 -1
  143. package/es/components/form/FieldWrapper/types.js +1 -1
  144. package/es/components/form/Form/Field.js +1 -1
  145. package/es/components/form/Form/Form.js +1 -1
  146. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  147. package/es/components/form/Form/ResetButton/index.js +1 -1
  148. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  149. package/es/components/form/Form/SubmitButton/index.js +1 -1
  150. package/es/components/form/Form/SubmitError.js +1 -1
  151. package/es/components/form/Form/index.js +1 -1
  152. package/es/components/form/Form/types.js +1 -1
  153. package/es/components/form/Form/use-field/index.js +1 -1
  154. package/es/components/form/Form/use-field/types.js +1 -1
  155. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  156. package/es/components/form/Form/use-field/use-field.js +1 -1
  157. package/es/components/form/Form/use-form.js +1 -1
  158. package/es/components/form/Form/validation.js +1 -1
  159. package/es/components/form/Label.js +1 -1
  160. package/es/components/form/index.js +1 -1
  161. package/es/components/form/wrapper.js +1 -1
  162. package/es/components/layout/Flex.js +1 -1
  163. package/es/components/layout/Flow.js +1 -1
  164. package/es/components/layout/Grid.js +1 -1
  165. package/es/components/layout/Panel.js +1 -1
  166. package/es/components/layout/Prefix.js +1 -1
  167. package/es/components/layout/ResizablePanel.js +1 -1
  168. package/es/components/layout/Space.js +1 -1
  169. package/es/components/layout/Suffix.js +1 -1
  170. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  171. package/es/components/navigation/Link/Link.js +1 -1
  172. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  173. package/es/components/organisms/Modal/Modal.js +1 -1
  174. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  175. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  176. package/es/components/other/Calendar/Calendar.js +1 -1
  177. package/es/components/other/Calendar/CalendarCell.js +1 -1
  178. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  179. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  180. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  181. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  182. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  183. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  184. package/es/components/overlays/AlertDialog/index.js +1 -1
  185. package/es/components/overlays/AlertDialog/types.js +1 -1
  186. package/es/components/overlays/Dialog/Dialog.js +1 -1
  187. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  188. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  189. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  190. package/es/components/overlays/Dialog/context.js +1 -1
  191. package/es/components/overlays/Dialog/index.js +1 -1
  192. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  193. package/es/components/overlays/Modal/Modal.js +1 -1
  194. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  195. package/es/components/overlays/Modal/Overlay.js +1 -1
  196. package/es/components/overlays/Modal/Popover.js +1 -1
  197. package/es/components/overlays/Modal/Tray.js +1 -1
  198. package/es/components/overlays/Modal/Underlay.js +1 -1
  199. package/es/components/overlays/Modal/index.js +1 -1
  200. package/es/components/overlays/Modal/types.js +1 -1
  201. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  202. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  203. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  204. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  205. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  206. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  207. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  208. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  209. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  214. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  218. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  219. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  220. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  221. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  222. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  223. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  224. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  225. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  226. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  227. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  228. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  229. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  230. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  231. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  232. package/es/components/overlays/NewNotifications/index.js +1 -1
  233. package/es/components/overlays/NewNotifications/types.js +1 -1
  234. package/es/components/overlays/Notification/Notification.js +1 -1
  235. package/es/components/overlays/OverlayWrapper.js +1 -1
  236. package/es/components/overlays/Toasts/Toast.js +1 -1
  237. package/es/components/overlays/Toasts/index.js +1 -1
  238. package/es/components/overlays/Toasts/types.js +1 -1
  239. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  240. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  241. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  242. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  243. package/es/components/overlays/Tooltip/context.js +1 -1
  244. package/es/components/overlays/Tooltip/index.js +1 -1
  245. package/es/components/portal/Portal.js +1 -1
  246. package/es/components/portal/PortalProvider.js +1 -1
  247. package/es/components/portal/index.js +1 -1
  248. package/es/components/portal/types.js +1 -1
  249. package/es/components/portal/usePortal.js +1 -1
  250. package/es/components/shared/InvalidIcon.js +1 -1
  251. package/es/components/shared/ValidIcon.js +1 -1
  252. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  253. package/es/components/status/LoadingAnimation/index.js +1 -1
  254. package/es/components/status/Spin/Cube.js +1 -1
  255. package/es/components/status/Spin/InternalSpinner.js +1 -1
  256. package/es/components/status/Spin/Spin.js +1 -1
  257. package/es/components/status/Spin/SpinsContainer.js +1 -1
  258. package/es/components/status/Spin/index.js +1 -1
  259. package/es/components/status/Spin/types.js +1 -1
  260. package/es/components/status/index.js +1 -1
  261. package/es/data/item-themes.js +1 -1
  262. package/es/data/themes.js +1 -1
  263. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  264. package/es/icons/AdjustmentsIcon.js +1 -1
  265. package/es/icons/AiIcon.js +1 -1
  266. package/es/icons/AreaChartIcon.js +1 -1
  267. package/es/icons/BackwardIcon.js +1 -1
  268. package/es/icons/BarChartIcon.js +1 -1
  269. package/es/icons/BellFilledIcon.js +1 -1
  270. package/es/icons/BellIcon.js +1 -1
  271. package/es/icons/BooleanIcon.js +1 -1
  272. package/es/icons/CalendarEditIcon.js +1 -1
  273. package/es/icons/CalendarIcon.js +1 -1
  274. package/es/icons/CaretDownIcon.js +1 -1
  275. package/es/icons/CaretUpIcon.js +1 -1
  276. package/es/icons/ChartAreaStackedIcon.js +1 -1
  277. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  278. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  279. package/es/icons/ChartBarGroupedIcon.js +1 -1
  280. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  281. package/es/icons/ChartBarLineIcon.js +1 -1
  282. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  283. package/es/icons/ChartBarStackedIcon.js +1 -1
  284. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  285. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  286. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  287. package/es/icons/ChartBoxPlotIcon.js +1 -1
  288. package/es/icons/ChartBubbleIcon.js +1 -1
  289. package/es/icons/ChartDonut2Icon.js +1 -1
  290. package/es/icons/ChartFunnelIcon.js +1 -1
  291. package/es/icons/ChartKPIIcon.js +1 -1
  292. package/es/icons/ChartPie2Icon.js +1 -1
  293. package/es/icons/ChartScatterIcon.js +1 -1
  294. package/es/icons/CheckCircleFilledIcon.js +1 -1
  295. package/es/icons/CheckCircleIcon.js +1 -1
  296. package/es/icons/CheckIcon.js +1 -1
  297. package/es/icons/CircleFilledIcon.js +1 -1
  298. package/es/icons/ClearIcon.js +1 -1
  299. package/es/icons/CloseCircleFilledIcon.js +1 -1
  300. package/es/icons/CloseCircleIcon.js +1 -1
  301. package/es/icons/CloseIcon.js +1 -1
  302. package/es/icons/CodeIcon.js +1 -1
  303. package/es/icons/CopyIcon.js +1 -1
  304. package/es/icons/CountIcon.js +1 -1
  305. package/es/icons/CubeIcon.js +1 -1
  306. package/es/icons/DangerIcon.js +1 -1
  307. package/es/icons/DashboardIcon.js +1 -1
  308. package/es/icons/DatabaseIcon.js +1 -1
  309. package/es/icons/DirectionIcon.js +1 -1
  310. package/es/icons/DonutIcon.js +1 -1
  311. package/es/icons/DownIcon.js +1 -1
  312. package/es/icons/EditIcon.js +1 -1
  313. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  314. package/es/icons/ExclamationCircleIcon.js +1 -1
  315. package/es/icons/ExclamationIcon.js +1 -1
  316. package/es/icons/EyeIcon.js +1 -1
  317. package/es/icons/EyeInvisibleIcon.js +1 -1
  318. package/es/icons/FilterIcon.js +1 -1
  319. package/es/icons/FolderFilledIcon.js +1 -1
  320. package/es/icons/FolderIcon.js +1 -1
  321. package/es/icons/FolderOpenFilledIcon.js +1 -1
  322. package/es/icons/FolderOpenIcon.js +1 -1
  323. package/es/icons/ForwardIcon.js +1 -1
  324. package/es/icons/HierarchyIcon.js +1 -1
  325. package/es/icons/Icon.js +1 -1
  326. package/es/icons/InfoCircleIcon.js +1 -1
  327. package/es/icons/InfoIcon.js +1 -1
  328. package/es/icons/KeyIcon.js +1 -1
  329. package/es/icons/LeftIcon.js +1 -1
  330. package/es/icons/LineChartIcon.js +1 -1
  331. package/es/icons/LoadingIcon.js +1 -1
  332. package/es/icons/LockFilledIcon.js +1 -1
  333. package/es/icons/LockIcon.js +1 -1
  334. package/es/icons/MoreIcon.js +1 -1
  335. package/es/icons/NotAllowedIcon.js +1 -1
  336. package/es/icons/NumberIcon.js +1 -1
  337. package/es/icons/PauseCircleFilledIcon.js +1 -1
  338. package/es/icons/PauseCircleIcon.js +1 -1
  339. package/es/icons/PauseIcon.js +1 -1
  340. package/es/icons/PieChartIcon.js +1 -1
  341. package/es/icons/PlayCircleIcon.js +1 -1
  342. package/es/icons/PlayIcon.js +1 -1
  343. package/es/icons/PlusIcon.js +1 -1
  344. package/es/icons/ReloadIcon.js +1 -1
  345. package/es/icons/ReportIcon.js +1 -1
  346. package/es/icons/ReturnIcon.js +1 -1
  347. package/es/icons/RightIcon.js +1 -1
  348. package/es/icons/SchemeIcon.js +1 -1
  349. package/es/icons/SearchIcon.js +1 -1
  350. package/es/icons/SettingsIcon.js +1 -1
  351. package/es/icons/ShieldFilledIcon.js +1 -1
  352. package/es/icons/ShieldIcon.js +1 -1
  353. package/es/icons/SlashIcon.js +1 -1
  354. package/es/icons/SparklesIcon.js +1 -1
  355. package/es/icons/SqlIcon.js +1 -1
  356. package/es/icons/StatsIcon.js +1 -1
  357. package/es/icons/StopIcon.js +1 -1
  358. package/es/icons/StringIcon.js +1 -1
  359. package/es/icons/SwitchIcon.js +1 -1
  360. package/es/icons/TableIcon.js +1 -1
  361. package/es/icons/ThumbsDownIcon.js +1 -1
  362. package/es/icons/ThumbsUpIcon.js +1 -1
  363. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  364. package/es/icons/ThunderboltFilledIcon.js +1 -1
  365. package/es/icons/ThunderboltIcon.js +1 -1
  366. package/es/icons/TimeIcon.js +1 -1
  367. package/es/icons/UnlockIcon.js +1 -1
  368. package/es/icons/UpIcon.js +1 -1
  369. package/es/icons/UserGroupIcon.js +1 -1
  370. package/es/icons/UserIcon.js +1 -1
  371. package/es/icons/UserLockIcon.js +1 -1
  372. package/es/icons/ViewIcon.js +1 -1
  373. package/es/icons/WarningFilledIcon.js +1 -1
  374. package/es/icons/WarningIcon.js +1 -1
  375. package/es/icons/add-new-icon.js +1 -1
  376. package/es/icons/index.js +1 -1
  377. package/es/icons/wrap-icon.js +1 -1
  378. package/es/index.js +1 -1
  379. package/es/provider.js +1 -1
  380. package/es/providers/TrackingProvider.js +1 -1
  381. package/es/services/notification.js +1 -1
  382. package/es/shared/form.js +1 -1
  383. package/es/shared/index.js +1 -1
  384. package/es/stories/Form.legacy-stories.js +1 -1
  385. package/es/stories/FormFieldArgs.js +1 -1
  386. package/es/stories/Layout.stories.js +1 -1
  387. package/es/stories/Tasty.stories.js +1 -1
  388. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  389. package/es/stories/components/DialogFormApp.js +1 -1
  390. package/es/stories/components/StyledButton.js +1 -1
  391. package/es/stories/lists/baseProps.js +1 -2
  392. package/es/tasty/index.js +2 -1
  393. package/es/tasty/injector/flatten.js +350 -0
  394. package/es/tasty/injector/index.js +165 -0
  395. package/es/tasty/injector/injector.js +315 -0
  396. package/es/tasty/injector/sheet-manager.js +518 -0
  397. package/es/tasty/injector/types.js +10 -0
  398. package/es/tasty/parser/classify.js +1 -1
  399. package/es/tasty/parser/const.js +1 -1
  400. package/es/tasty/parser/lru.js +38 -2
  401. package/es/tasty/parser/parser.js +1 -1
  402. package/es/tasty/parser/tokenizer.js +1 -1
  403. package/es/tasty/parser/types.js +1 -1
  404. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  405. package/es/tasty/styles/align.js +1 -1
  406. package/es/tasty/styles/border.js +1 -1
  407. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  408. package/es/tasty/styles/color.js +8 -12
  409. package/es/tasty/styles/createStyle.js +3 -3
  410. package/es/tasty/styles/dimension.js +1 -1
  411. package/es/tasty/styles/display.js +1 -1
  412. package/es/tasty/styles/fade.js +1 -1
  413. package/es/tasty/styles/fill.js +6 -8
  414. package/es/tasty/styles/flow.js +1 -1
  415. package/es/tasty/styles/font.js +1 -1
  416. package/es/tasty/styles/fontStyle.js +1 -1
  417. package/es/tasty/styles/gap.js +1 -1
  418. package/es/tasty/styles/groupRadius.js +1 -1
  419. package/es/tasty/styles/height.js +1 -1
  420. package/es/tasty/styles/index.js +1 -1
  421. package/es/tasty/styles/inset.js +1 -1
  422. package/es/tasty/styles/justify.js +1 -1
  423. package/es/tasty/styles/list.js +1 -1
  424. package/es/tasty/styles/margin.js +1 -1
  425. package/es/tasty/styles/marginBlock.js +1 -1
  426. package/es/tasty/styles/marginInline.js +1 -1
  427. package/es/tasty/styles/outline.js +1 -1
  428. package/es/tasty/styles/padding.js +1 -1
  429. package/es/tasty/styles/paddingBlock.js +1 -1
  430. package/es/tasty/styles/paddingInline.js +1 -1
  431. package/es/tasty/styles/place.js +1 -1
  432. package/es/tasty/styles/predefined.js +1 -3
  433. package/es/tasty/styles/preset.js +1 -1
  434. package/es/tasty/styles/radius.js +1 -1
  435. package/es/tasty/styles/reset.js +40 -44
  436. package/es/tasty/styles/scrollbar.js +1 -1
  437. package/es/tasty/styles/shadow.js +1 -1
  438. package/es/tasty/styles/styledScrollbar.js +1 -1
  439. package/es/tasty/styles/transition.js +1 -1
  440. package/es/tasty/styles/types.js +1 -1
  441. package/es/tasty/styles/width.js +1 -1
  442. package/es/tasty/tasty.js +92 -19
  443. package/es/tasty/types.js +1 -1
  444. package/es/tasty/utils/cache-wrapper.js +1 -1
  445. package/es/tasty/utils/case-converter.js +1 -1
  446. package/es/tasty/utils/colors.js +1 -1
  447. package/es/tasty/utils/dotize.js +1 -1
  448. package/es/tasty/utils/filterBaseProps.js +1 -1
  449. package/es/tasty/utils/getDisplayName.js +1 -1
  450. package/es/tasty/utils/getModCombinations.js +1 -1
  451. package/es/tasty/utils/mergeStyles.js +1 -1
  452. package/es/tasty/utils/modAttrs.js +1 -1
  453. package/es/tasty/utils/renderStyles.js +515 -57
  454. package/es/tasty/utils/responsive.js +1 -1
  455. package/es/tasty/utils/string.js +1 -1
  456. package/es/tasty/utils/styles.js +3 -62
  457. package/es/tasty/utils/warnings.js +1 -1
  458. package/es/tokens.js +1 -1
  459. package/es/type-checks.js +1 -1
  460. package/es/utils/ResizeSensor.js +1 -1
  461. package/es/utils/modules.js +1 -1
  462. package/es/utils/promise.js +1 -1
  463. package/es/utils/random.js +1 -1
  464. package/es/utils/range.js +1 -1
  465. package/es/utils/react/Slots.js +1 -1
  466. package/es/utils/react/chain.js +1 -1
  467. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  468. package/es/utils/react/index.js +1 -1
  469. package/es/utils/react/interactions.js +1 -1
  470. package/es/utils/react/isTextOnly.js +1 -1
  471. package/es/utils/react/mapProps.js +1 -1
  472. package/es/utils/react/mergeProps.js +1 -1
  473. package/es/utils/react/nullableValue.js +1 -1
  474. package/es/utils/react/sharedStore.js +1 -1
  475. package/es/utils/react/useCombinedRefs.js +1 -1
  476. package/es/utils/react/useControlledFocusVisible.js +1 -1
  477. package/es/utils/react/useEventBus.js +1 -1
  478. package/es/utils/react/useId.js +1 -1
  479. package/es/utils/react/useIsDarwin.js +1 -1
  480. package/es/utils/react/useKeySymbols.js +1 -1
  481. package/es/utils/react/useLayoutEffect.js +1 -1
  482. package/es/utils/react/useQaProps.js +1 -1
  483. package/es/utils/react/useViewportSize.js +1 -1
  484. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  485. package/es/utils/transitions.js +1 -1
  486. package/es/utils/tree.js +1 -1
  487. package/es/utils/warnings.js +1 -1
  488. package/es/version.js +2 -2
  489. package/package.json +1 -1
  490. package/types/components/actions/Button/Button.d.ts +1 -0
  491. package/types/components/actions/Menu/styled.d.ts +699 -702
  492. package/types/components/actions/use-action.d.ts +1 -1
  493. package/types/components/content/List/SectionHeading.d.ts +233 -234
  494. package/types/components/fields/DatePicker/DatePickerElement.d.ts +233 -234
  495. package/types/tasty/index.d.ts +1 -0
  496. package/types/tasty/injector/flatten.d.ts +16 -0
  497. package/types/tasty/injector/index.d.ts +64 -0
  498. package/types/tasty/injector/injector.d.ts +82 -0
  499. package/types/tasty/injector/sheet-manager.d.ts +74 -0
  500. package/types/tasty/injector/types.d.ts +71 -0
  501. package/types/tasty/parser/lru.d.ts +5 -1
  502. package/types/tasty/styles/color.d.ts +3 -1
  503. package/types/tasty/styles/reset.d.ts +1 -2
  504. package/types/tasty/types.d.ts +0 -2
  505. package/types/tasty/utils/renderStyles.d.ts +25 -7
  506. package/types/tasty/utils/styles.d.ts +1 -9
@@ -1,15 +1,35 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-55e23f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-21dd9ff
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
+ /**
9
+ * Style rendering that works with structured style objects
10
+ * Eliminates CSS string parsing for better performance
11
+ */
8
12
  import { createStyle, STYLE_HANDLER_MAP } from '../styles';
9
- import { mediaWrapper, normalizeStyleZones } from './responsive';
13
+ import { mediaWrapper, normalizeStyleZones, pointsToZones, } from './responsive';
14
+ import { computeState, getModSelector, styleStateMapToStyleStateDataList, } from './styles';
15
+ // Normalize selector suffixes coming from `$` in style handler results.
16
+ // Some legacy handlers return suffixes starting with `&` (e.g. '& > *').
17
+ // The renderer expects suffixes without the ampersand because it adds
18
+ // the parent selector during materialization.
19
+ function normalizeDollarSelectorSuffix(suffix) {
20
+ if (!suffix)
21
+ return '';
22
+ return suffix.startsWith('&') ? suffix.slice(1) : suffix;
23
+ }
24
+ /**
25
+ * Check if a key represents a CSS selector
26
+ */
10
27
  export function isSelector(key) {
11
- return key.startsWith('&') || key.startsWith('.') || key.match(/^[A-Z]/);
28
+ return (key.startsWith('&') || key.startsWith('.') || key.match(/^[A-Z]/) !== null);
12
29
  }
30
+ /**
31
+ * Get the selector suffix for a key
32
+ */
13
33
  function getSelector(key) {
14
34
  if (key.startsWith('&')) {
15
35
  return key.slice(1);
@@ -22,41 +42,191 @@ function getSelector(key) {
22
42
  }
23
43
  return null;
24
44
  }
25
- /** Props level cache for `renderStyles` function. */
26
- let STYLE_CACHE = {};
27
- /** Current size of the cache. */
28
- let STYLE_CACHE_COUNT = 0;
29
- /** Cache limit. */
30
- const CACHE_LIMIT = 1000;
31
45
  /**
32
- * Render style props to complete Styled Components CSS.
33
- * @param styles - Complete style props.
34
- * @param responsive - A list of responsive zones
35
- * @param {string} [suffix]
36
- * @return {string}
46
+ * Explode a style handler result into logical rules with proper mapping
47
+ * Phase 1: Handler fan-out ($ selectors, arrays)
48
+ * Phase 2: Responsive fan-out (breakpoint arrays)
49
+ * Phase 3: Rule materialization
37
50
  */
38
- export function renderStyles(styles, responsive = [], suffix) {
39
- const zones = responsive;
40
- const responsiveStyles = Array.from(Array(zones.length)).map(() => '');
41
- const cacheKey = JSON.stringify({ s: styles, r: responsive, suffix });
42
- let rawStyles = '';
43
- const handlerQueue = [];
44
- if (!STYLE_CACHE[cacheKey]) {
45
- STYLE_CACHE_COUNT++;
46
- // clear cache if size is more that the limit
47
- if (STYLE_CACHE_COUNT > CACHE_LIMIT) {
48
- STYLE_CACHE_COUNT = 0;
49
- STYLE_CACHE = {};
51
+ function explodeHandlerResult(result, zones, selectorSuffix = '', forceBreakpointIdx, responsiveOrigin = false) {
52
+ if (!result)
53
+ return [];
54
+ // Phase 1: Handler fan-out - normalize to array
55
+ const resultArray = Array.isArray(result) ? result : [result];
56
+ const logicalRules = [];
57
+ for (const item of resultArray) {
58
+ if (!item || typeof item !== 'object')
59
+ continue;
60
+ const { $, css, ...styleProps } = item;
61
+ // Phase 2: Responsive fan-out - handle array values
62
+ const breakpointGroups = new Map();
63
+ if (forceBreakpointIdx !== undefined) {
64
+ // When breakpoint is forced (from responsive processing), use all props for that breakpoint
65
+ const group = {};
66
+ for (const [prop, value] of Object.entries(styleProps)) {
67
+ if (value != null && value !== '') {
68
+ group[prop] = String(value);
69
+ }
70
+ }
71
+ if (Object.keys(group).length > 0) {
72
+ breakpointGroups.set(forceBreakpointIdx, group);
73
+ }
74
+ }
75
+ else {
76
+ // Normal processing - handle responsive arrays
77
+ const responsiveProps = [];
78
+ for (const [prop, value] of Object.entries(styleProps)) {
79
+ if (Array.isArray(value)) {
80
+ // Responsive array - create entry for each breakpoint
81
+ value.forEach((val, idx) => {
82
+ if (val != null && val !== '' && idx < zones.length) {
83
+ responsiveProps.push({ prop, value: val, breakpointIdx: idx });
84
+ }
85
+ });
86
+ }
87
+ else if (value != null && value !== '') {
88
+ // Single value - goes to base breakpoint
89
+ responsiveProps.push({ prop, value, breakpointIdx: 0 });
90
+ }
91
+ }
92
+ // Group by breakpoint index
93
+ for (const { prop, value, breakpointIdx } of responsiveProps) {
94
+ const group = breakpointGroups.get(breakpointIdx) || {};
95
+ group[prop] = String(value);
96
+ breakpointGroups.set(breakpointIdx, group);
97
+ }
98
+ }
99
+ // Handle raw CSS if present (add to base breakpoint)
100
+ if (css && typeof css === 'string') {
101
+ const baseGroup = breakpointGroups.get(0) || {};
102
+ // For now, we'll add raw CSS as a special property
103
+ // This is a limitation - raw CSS should be parsed properly
104
+ baseGroup['--raw-css'] = css;
105
+ breakpointGroups.set(0, baseGroup);
106
+ }
107
+ // Phase 3: Selector fan-out - handle $ suffixes
108
+ // IMPORTANT: If we are already in a pseudo-element context (contains '::'),
109
+ // CSS does not allow further descendant/child selectors (e.g., '>*') after
110
+ // a pseudo-element. In such cases we must ignore the entire style handler
111
+ // result since the styles become unapplicable and would produce invalid
112
+ // selectors like `.t0::before>*`.
113
+ const inPseudoElementContext = selectorSuffix.includes('::');
114
+ if (inPseudoElementContext && $) {
115
+ // Skip this entire handler result - styles with $ selectors are not applicable in pseudo-element context
116
+ return [];
117
+ }
118
+ const suffixes = $
119
+ ? (Array.isArray($) ? $ : [$]).map((s) => selectorSuffix + normalizeDollarSelectorSuffix(String(s)))
120
+ : [selectorSuffix];
121
+ // Create logical rules for each breakpoint × selector combination
122
+ for (const [breakpointIdx, declarations] of breakpointGroups) {
123
+ if (Object.keys(declarations).length === 0)
124
+ continue;
125
+ for (const suffix of suffixes) {
126
+ logicalRules.push({
127
+ selectorSuffix: suffix,
128
+ breakpointIdx,
129
+ declarations,
130
+ responsiveSource: responsiveOrigin || forceBreakpointIdx !== undefined,
131
+ });
132
+ }
133
+ }
134
+ }
135
+ return logicalRules;
136
+ }
137
+ /**
138
+ * Convert handler result (CSSMap) to CSS string for global injection
139
+ */
140
+ function convertHandlerResultToCSS(result, selectorSuffix = '') {
141
+ if (!result)
142
+ return '';
143
+ if (Array.isArray(result)) {
144
+ return result.reduce((css, item) => {
145
+ return css + convertHandlerResultToCSS(item, selectorSuffix);
146
+ }, '');
147
+ }
148
+ const { $, css, ...styleProps } = result;
149
+ let renderedStyles = Object.keys(styleProps).reduce((styleList, styleName) => {
150
+ const value = styleProps[styleName];
151
+ if (Array.isArray(value)) {
152
+ return (styleList +
153
+ value.reduce((css, val) => {
154
+ if (val) {
155
+ return css + `${styleName}: ${val};\n`;
156
+ }
157
+ return css;
158
+ }, ''));
159
+ }
160
+ if (value) {
161
+ return `${styleList}${styleName}: ${value};\n`;
50
162
  }
51
- const keys = styles ? Object.keys(styles) : [];
163
+ return styleList;
164
+ }, '');
165
+ if (css) {
166
+ renderedStyles = css + '\n' + renderedStyles;
167
+ }
168
+ if (!renderedStyles) {
169
+ return '';
170
+ }
171
+ const finalSelectorSuffix = selectorSuffix || '';
172
+ if (Array.isArray($)) {
173
+ return $.reduce((rend, suffix) => {
174
+ const normalized = suffix
175
+ ? normalizeDollarSelectorSuffix(String(suffix))
176
+ : '';
177
+ return (rend + `&${finalSelectorSuffix}${normalized}{\n${renderedStyles}}\n`);
178
+ }, '');
179
+ }
180
+ const normalizedSingle = $ ? normalizeDollarSelectorSuffix(String($)) : '';
181
+ return `&${finalSelectorSuffix}${normalizedSingle}{\n${renderedStyles}}\n`;
182
+ }
183
+ /**
184
+ * Convert logical rules to final StyleResult format
185
+ */
186
+ function materializeRules(logicalRules, className, zones) {
187
+ return logicalRules.map((rule) => {
188
+ const selector = `.${className}${rule.selectorSuffix}`;
189
+ const declarations = Object.entries(rule.declarations)
190
+ .filter(([key]) => key !== '--raw-css') // Skip raw CSS for now
191
+ .map(([prop, value]) => `${prop}: ${value};`)
192
+ .join(' ');
193
+ const q = rule.breakpointIdx > 0
194
+ ? zones[rule.breakpointIdx]?.mediaQuery
195
+ : rule.responsiveSource
196
+ ? zones[0]?.mediaQuery
197
+ : undefined;
198
+ const atRules = q ? [`@media ${q}`] : undefined;
199
+ return {
200
+ selector,
201
+ declarations,
202
+ atRules,
203
+ };
204
+ });
205
+ }
206
+ /**
207
+ * Render styles without CSS string conversion
208
+ * This is a performance-optimized version of renderStyles
209
+ */
210
+ export function renderStyles(styles, responsive = [], className = 'unknown') {
211
+ if (!styles) {
212
+ return { rules: [] };
213
+ }
214
+ const zones = pointsToZones(responsive || []);
215
+ // Collect all logical rules
216
+ const allLogicalRules = [];
217
+ // Process styles recursively, preserving mod selectors and combining with nested selector suffixes
218
+ function processStyles(currentStyles, parentSuffix = '') {
219
+ const keys = Object.keys(currentStyles || {});
52
220
  const selectorKeys = keys.filter((key) => isSelector(key));
53
- let innerStyles = '';
54
- if (selectorKeys.length) {
55
- selectorKeys.forEach((key) => {
56
- const addSuffix = getSelector(key);
57
- innerStyles += renderStyles(styles?.[key], responsive, addSuffix);
58
- });
221
+ // Recurse into nested selectors first to compute proper suffix chaining
222
+ for (const key of selectorKeys) {
223
+ const suffix = getSelector(key);
224
+ if (suffix && currentStyles[key]) {
225
+ processStyles(currentStyles[key], `${parentSuffix}${suffix}`);
226
+ }
59
227
  }
228
+ // Build handler queue for style properties at this level
229
+ const handlerQueue = [];
60
230
  keys.forEach((styleName) => {
61
231
  if (isSelector(styleName))
62
232
  return;
@@ -64,40 +234,45 @@ export function renderStyles(styles, responsive = [], suffix) {
64
234
  if (!handlers) {
65
235
  handlers = STYLE_HANDLER_MAP[styleName] = [createStyle(styleName)];
66
236
  }
67
- handlers.forEach((STYLE) => {
68
- if (handlerQueue.find((queueItem) => queueItem.handler === STYLE))
237
+ handlers.forEach((handler) => {
238
+ if (handlerQueue.find((queueItem) => queueItem.handler === handler)) {
69
239
  return;
240
+ }
70
241
  let isResponsive = false;
71
- const lookupStyles = STYLE.__lookupStyles;
242
+ const lookupStyles = handler.__lookupStyles;
72
243
  const filteredStyleMap = lookupStyles.reduce((map, name) => {
73
- map[name] = styles?.[name];
74
- if (Array.isArray(map[name])) {
75
- if (map[name].length === 0) {
76
- delete map[name];
77
- }
78
- else {
79
- if (map[name].length === 1) {
80
- map[name] = map[name][0];
244
+ const value = currentStyles?.[name];
245
+ if (value !== undefined) {
246
+ map[name] = value;
247
+ if (Array.isArray(value)) {
248
+ if (value.length === 0) {
249
+ delete map[name];
250
+ }
251
+ else {
252
+ // Keep arrays for responsive processing - don't flatten to single value
253
+ isResponsive = true;
81
254
  }
82
- isResponsive = true;
83
255
  }
84
256
  }
85
257
  return map;
86
258
  }, {});
87
259
  handlerQueue.push({
88
- handler: STYLE,
260
+ handler,
89
261
  styleMap: filteredStyleMap,
90
262
  isResponsive,
91
263
  });
92
264
  });
93
265
  });
266
+ // Process handlers using the three-phase approach
94
267
  handlerQueue.forEach(({ handler, styleMap, isResponsive }) => {
95
268
  const lookupStyles = handler.__lookupStyles;
96
269
  if (isResponsive) {
270
+ // For responsive styles, resolve arrays using normalizeStyleZones
97
271
  const valueMap = lookupStyles.reduce((map, style) => {
98
272
  map[style] = normalizeStyleZones(styleMap[style], zones.length);
99
273
  return map;
100
274
  }, {});
275
+ // Create props for each breakpoint
101
276
  const propsByPoint = zones.map((zone, i) => {
102
277
  const pointProps = {};
103
278
  lookupStyles.forEach((style) => {
@@ -107,23 +282,306 @@ export function renderStyles(styles, responsive = [], suffix) {
107
282
  });
108
283
  return pointProps;
109
284
  });
110
- const rulesByPoint = propsByPoint.map((props) => handler(props, suffix));
111
- rulesByPoint.forEach((rules, i) => {
112
- responsiveStyles[i] += rules || '';
285
+ // Call handler for each breakpoint
286
+ propsByPoint.forEach((props, breakpointIdx) => {
287
+ const result = handler(props);
288
+ if (result) {
289
+ const logicalRules = explodeHandlerResult(result, zones || [], parentSuffix, breakpointIdx, true);
290
+ allLogicalRules.push(...logicalRules);
291
+ }
113
292
  });
114
293
  }
115
294
  else {
116
- rawStyles +=
117
- handler(styleMap, suffix) || '';
295
+ // For non-responsive styles, check if any values have state maps
296
+ const hasStateMaps = lookupStyles.some((style) => {
297
+ const value = styleMap[style];
298
+ return value && typeof value === 'object' && !Array.isArray(value);
299
+ });
300
+ if (hasStateMaps) {
301
+ // Process each style property individually for state resolution
302
+ const allMods = new Set();
303
+ const styleStates = {};
304
+ lookupStyles.forEach((style) => {
305
+ const value = styleMap[style];
306
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
307
+ const { states, mods } = styleStateMapToStyleStateDataList(value);
308
+ styleStates[style] = states;
309
+ mods.forEach((mod) => allMods.add(mod));
310
+ }
311
+ else {
312
+ // Simple value, create a single state
313
+ styleStates[style] = [{ mods: [], notMods: [], value }];
314
+ }
315
+ });
316
+ // Generate all possible mod combinations
317
+ const allModsArray = Array.from(allMods);
318
+ const combinations = [[]]; // Start with empty combination
319
+ // Generate all combinations (including empty)
320
+ for (let i = 0; i < allModsArray.length; i++) {
321
+ const currentLength = combinations.length;
322
+ for (let j = 0; j < currentLength; j++) {
323
+ combinations.push([...combinations[j], allModsArray[i]]);
324
+ }
325
+ }
326
+ combinations.forEach((modCombination) => {
327
+ const stateProps = {};
328
+ lookupStyles.forEach((style) => {
329
+ const states = styleStates[style];
330
+ // Find the matching state for this mod combination
331
+ const matchingState = states.find((state) => {
332
+ return computeState(state.model, (mod) => modCombination.includes(mod));
333
+ });
334
+ if (matchingState) {
335
+ stateProps[style] = matchingState.value;
336
+ }
337
+ });
338
+ const result = handler(stateProps);
339
+ if (!result)
340
+ return;
341
+ const notMods = allModsArray.filter((mod) => !modCombination.includes(mod));
342
+ const modsSelectors = `${modCombination
343
+ .map(getModSelector)
344
+ .join('')}${notMods
345
+ .map((mod) => {
346
+ const sel = getModSelector(mod);
347
+ return sel.startsWith(':not(')
348
+ ? sel.slice(5, -1)
349
+ : `:not(${sel})`;
350
+ })
351
+ .join('')}`;
352
+ const logical = explodeHandlerResult(result, zones || [], `${modsSelectors}${parentSuffix}`);
353
+ allLogicalRules.push(...logical);
354
+ });
355
+ }
356
+ else {
357
+ // Simple case: no state maps, call handler directly
358
+ const result = handler(styleMap);
359
+ if (result) {
360
+ const logical = explodeHandlerResult(result, zones || [], parentSuffix);
361
+ allLogicalRules.push(...logical);
362
+ }
363
+ }
118
364
  }
119
365
  });
120
- STYLE_CACHE[cacheKey] = `&${suffix || ''}{outline: none;\n&[hidden]{display: none !important;}}${rawStyles}${responsive &&
121
- responsive.length &&
122
- responsiveStyles.filter((s) => s).length
123
- ? mediaWrapper(responsiveStyles, zones)
124
- : ''}${innerStyles}`;
125
366
  }
126
- return STYLE_CACHE[cacheKey];
367
+ // Kick off processing from the root styles with empty suffix
368
+ processStyles(styles, '');
369
+ // Materialize all logical rules into final format
370
+ const finalRulesRaw = materializeRules(allLogicalRules, className, zones || []);
371
+ // De-duplicate identical rules (same selector, declarations, and at-rules)
372
+ const seen = new Set();
373
+ const finalRules = finalRulesRaw.filter((rule) => {
374
+ const at = rule.atRules && rule.atRules.length ? `@${rule.atRules.join('|')}` : '';
375
+ const key = `${rule.selector}|${rule.declarations}|${at}`;
376
+ if (seen.has(key))
377
+ return false;
378
+ seen.add(key);
379
+ return true;
380
+ });
381
+ return {
382
+ rules: finalRules,
383
+ className,
384
+ };
385
+ }
386
+ /**
387
+ * Render styles for global injection (without class names)
388
+ * Returns CSS with & selectors that injectGlobal can process
389
+ */
390
+ export function renderStylesForGlobal(styles, responsive = []) {
391
+ if (!styles) {
392
+ return '';
393
+ }
394
+ const zones = pointsToZones(responsive || []);
395
+ const handlerQueue = [];
396
+ const keys = Object.keys(styles);
397
+ const selectorKeys = keys.filter((key) => isSelector(key));
398
+ const declarations = [];
399
+ const responsiveStyles = Array.from(Array(zones.length)).map(() => '');
400
+ let innerStyles = '';
401
+ // Handle nested selectors (like &:hover, .SubElement)
402
+ for (const key of selectorKeys) {
403
+ const selectorSuffix = getSelector(key);
404
+ if (selectorSuffix && styles[key]) {
405
+ const nestedStyles = styles[key];
406
+ innerStyles += renderStylesForGlobal(nestedStyles, responsive).replace(/&/g, `&${selectorSuffix}`);
407
+ }
408
+ }
409
+ // Build handler queue for base styles
410
+ keys.forEach((styleName) => {
411
+ if (isSelector(styleName))
412
+ return;
413
+ let handlers = STYLE_HANDLER_MAP[styleName];
414
+ if (!handlers) {
415
+ handlers = STYLE_HANDLER_MAP[styleName] = [createStyle(styleName)];
416
+ }
417
+ handlers.forEach((handler) => {
418
+ if (handlerQueue.find((queueItem) => queueItem.handler === handler)) {
419
+ return;
420
+ }
421
+ let isResponsive = false;
422
+ const lookupStyles = handler.__lookupStyles;
423
+ const filteredStyleMap = lookupStyles.reduce((map, name) => {
424
+ const value = styles?.[name];
425
+ if (value !== undefined) {
426
+ map[name] = value;
427
+ if (Array.isArray(value)) {
428
+ if (value.length === 0) {
429
+ delete map[name];
430
+ }
431
+ else {
432
+ isResponsive = true;
433
+ }
434
+ }
435
+ }
436
+ return map;
437
+ }, {});
438
+ handlerQueue.push({
439
+ handler,
440
+ styleMap: filteredStyleMap,
441
+ isResponsive,
442
+ });
443
+ });
444
+ });
445
+ // Process handlers using approach
446
+ handlerQueue.forEach(({ handler, styleMap, isResponsive }) => {
447
+ const lookupStyles = handler.__lookupStyles;
448
+ if (isResponsive) {
449
+ // For responsive styles, resolve arrays using normalizeStyleZones
450
+ const valueMap = lookupStyles.reduce((map, style) => {
451
+ map[style] = normalizeStyleZones(styleMap[style], zones.length);
452
+ return map;
453
+ }, {});
454
+ // Create props for each breakpoint
455
+ const propsByPoint = zones.map((zone, i) => {
456
+ const pointProps = {};
457
+ lookupStyles.forEach((style) => {
458
+ if (valueMap != null && valueMap[style] != null) {
459
+ pointProps[style] = valueMap[style][i];
460
+ }
461
+ });
462
+ return pointProps;
463
+ });
464
+ // Call handler for each breakpoint and convert to CSS
465
+ const rulesByPoint = propsByPoint.map((props) => {
466
+ const result = handler(props);
467
+ if (!result)
468
+ return '';
469
+ // Convert handler result to CSS string for global injection
470
+ return convertHandlerResultToCSS(result);
471
+ });
472
+ rulesByPoint.forEach((rules, i) => {
473
+ responsiveStyles[i] += rules || '';
474
+ });
475
+ }
476
+ else {
477
+ // For non-responsive styles, check if any values have state maps
478
+ const hasStateMaps = lookupStyles.some((style) => {
479
+ const value = styleMap[style];
480
+ return value && typeof value === 'object' && !Array.isArray(value);
481
+ });
482
+ if (hasStateMaps) {
483
+ // Process each style property individually for state resolution
484
+ const allMods = new Set();
485
+ const styleStates = {};
486
+ lookupStyles.forEach((style) => {
487
+ const value = styleMap[style];
488
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
489
+ const { states, mods } = styleStateMapToStyleStateDataList(value);
490
+ styleStates[style] = states;
491
+ mods.forEach((mod) => allMods.add(mod));
492
+ }
493
+ else {
494
+ // Simple value, create a single state
495
+ styleStates[style] = [{ mods: [], notMods: [], value }];
496
+ }
497
+ });
498
+ // Generate all possible mod combinations
499
+ const allModsArray = Array.from(allMods);
500
+ const combinations = [[]]; // Start with empty combination
501
+ // Generate all combinations (including empty)
502
+ for (let i = 0; i < allModsArray.length; i++) {
503
+ const currentLength = combinations.length;
504
+ for (let j = 0; j < currentLength; j++) {
505
+ combinations.push([...combinations[j], allModsArray[i]]);
506
+ }
507
+ }
508
+ combinations.forEach((modCombination) => {
509
+ const stateProps = {};
510
+ lookupStyles.forEach((style) => {
511
+ const states = styleStates[style];
512
+ // Find the matching state for this mod combination
513
+ const matchingState = states.find((state) => {
514
+ return computeState(state.model, (mod) => modCombination.includes(mod));
515
+ });
516
+ if (matchingState) {
517
+ stateProps[style] = matchingState.value;
518
+ }
519
+ });
520
+ const result = handler(stateProps);
521
+ if (!result)
522
+ return;
523
+ const notMods = allModsArray.filter((mod) => !modCombination.includes(mod));
524
+ const modsSelectors = `${modCombination
525
+ .map(getModSelector)
526
+ .join('')}${notMods
527
+ .map((mod) => {
528
+ const sel = getModSelector(mod);
529
+ return sel.startsWith(':not(')
530
+ ? sel.slice(5, -1)
531
+ : `:not(${sel})`;
532
+ })
533
+ .join('')}`;
534
+ // Convert to CSS with proper selectors
535
+ const cssResult = convertHandlerResultToCSS(result, modsSelectors);
536
+ if (cssResult) {
537
+ if (cssResult.startsWith('& {') && !cssResult.includes('&', 2)) {
538
+ // Simple rule: "& { declarations }"
539
+ const declarationBlock = cssResult.slice(3, -1).trim();
540
+ if (declarationBlock) {
541
+ declarations.push(declarationBlock);
542
+ }
543
+ }
544
+ else {
545
+ // Complex rule with nested selectors or state modifiers
546
+ innerStyles += cssResult;
547
+ }
548
+ }
549
+ });
550
+ }
551
+ else {
552
+ // Simple case: no state maps, call handler directly
553
+ const result = handler(styleMap);
554
+ if (result) {
555
+ const cssResult = convertHandlerResultToCSS(result);
556
+ if (cssResult) {
557
+ if (cssResult.startsWith('& {') && !cssResult.includes('&', 2)) {
558
+ // Simple rule: "& { declarations }"
559
+ const declarationBlock = cssResult.slice(3, -1).trim();
560
+ if (declarationBlock) {
561
+ declarations.push(declarationBlock);
562
+ }
563
+ }
564
+ else {
565
+ // Complex rule with nested selectors or state modifiers
566
+ innerStyles += cssResult;
567
+ }
568
+ }
569
+ }
570
+ }
571
+ }
572
+ });
573
+ // Build final CSS similar to original renderStyles
574
+ // Merge all declarations into a single rule
575
+ const baseRule = declarations.length > 0 ? `& { ${declarations.join('\n')} }` : '';
576
+ const mediaRules = responsive && responsive.length && responsiveStyles.some((s) => s)
577
+ ? mediaWrapper(responsiveStyles, zones)
578
+ : '';
579
+ // Ensure we always separate the base rule, inner complex selectors and media rules with
580
+ // a newline so the selector replacement step ( & -> actual selector ) cannot accidentally
581
+ // concatenate two selectors and create the invalid form "..selector selector".
582
+ const parts = [baseRule, innerStyles, mediaRules].filter(Boolean);
583
+ const result = parts.join('\n');
584
+ return result;
127
585
  }
128
586
 
129
587
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-55e23f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-21dd9ff
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-55e23f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-21dd9ff
5
5
  * Released under the MIT license.
6
6
  */
7
7