@cube-dev/ui-kit 0.74.3 → 0.76.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 (512) hide show
  1. package/CHANGELOG.md +28 -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 +10 -15
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +25 -24
  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 +15 -19
  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 +3 -8
  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 +9 -3
  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 +46 -41
  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 +3 -7
  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 +3 -3
  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 +2 -2
  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 +59 -68
  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/debug.js +703 -0
  393. package/es/tasty/index.js +3 -1
  394. package/es/tasty/injector/index.js +187 -0
  395. package/es/tasty/injector/injector.js +678 -0
  396. package/es/tasty/injector/sheet-manager.js +912 -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 +19 -4
  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 +2 -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 +120 -35
  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 +26 -30
  451. package/es/tasty/utils/isDevEnv.js +36 -0
  452. package/es/tasty/utils/mergeStyles.js +1 -1
  453. package/es/tasty/utils/modAttrs.js +1 -1
  454. package/es/tasty/utils/renderStyles.js +710 -58
  455. package/es/tasty/utils/responsive.js +1 -7
  456. package/es/tasty/utils/string.js +1 -1
  457. package/es/tasty/utils/styles.js +100 -235
  458. package/es/tasty/utils/warnings.js +1 -1
  459. package/es/tokens.js +1 -12
  460. package/es/type-checks.js +1 -1
  461. package/es/utils/ResizeSensor.js +1 -1
  462. package/es/utils/modules.js +1 -1
  463. package/es/utils/promise.js +1 -1
  464. package/es/utils/random.js +1 -1
  465. package/es/utils/range.js +1 -1
  466. package/es/utils/react/Slots.js +1 -1
  467. package/es/utils/react/chain.js +1 -1
  468. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  469. package/es/utils/react/index.js +1 -1
  470. package/es/utils/react/interactions.js +1 -1
  471. package/es/utils/react/isTextOnly.js +1 -1
  472. package/es/utils/react/mapProps.js +1 -1
  473. package/es/utils/react/mergeProps.js +1 -1
  474. package/es/utils/react/nullableValue.js +1 -1
  475. package/es/utils/react/sharedStore.js +1 -1
  476. package/es/utils/react/useCombinedRefs.js +1 -1
  477. package/es/utils/react/useControlledFocusVisible.js +1 -1
  478. package/es/utils/react/useEventBus.js +1 -1
  479. package/es/utils/react/useId.js +1 -1
  480. package/es/utils/react/useIsDarwin.js +1 -1
  481. package/es/utils/react/useKeySymbols.js +1 -1
  482. package/es/utils/react/useLayoutEffect.js +1 -1
  483. package/es/utils/react/useQaProps.js +1 -1
  484. package/es/utils/react/useViewportSize.js +1 -1
  485. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  486. package/es/utils/transitions.js +1 -1
  487. package/es/utils/tree.js +1 -1
  488. package/es/utils/warnings.js +1 -1
  489. package/es/version.js +2 -2
  490. package/package.json +1 -1
  491. package/types/components/HiddenInput.d.ts +1 -3
  492. package/types/components/actions/Button/Button.d.ts +1 -0
  493. package/types/components/actions/Menu/styled.d.ts +762 -765
  494. package/types/components/actions/use-action.d.ts +1 -1
  495. package/types/components/content/List/SectionHeading.d.ts +254 -255
  496. package/types/components/fields/DatePicker/DatePickerElement.d.ts +254 -255
  497. package/types/tasty/debug.d.ts +163 -0
  498. package/types/tasty/index.d.ts +2 -0
  499. package/types/tasty/injector/index.d.ts +87 -0
  500. package/types/tasty/injector/injector.d.ts +111 -0
  501. package/types/tasty/injector/sheet-manager.d.ts +98 -0
  502. package/types/tasty/injector/types.d.ts +106 -0
  503. package/types/tasty/parser/lru.d.ts +5 -1
  504. package/types/tasty/styles/color.d.ts +3 -1
  505. package/types/tasty/styles/reset.d.ts +1 -2
  506. package/types/tasty/types.d.ts +0 -2
  507. package/types/tasty/utils/getModCombinations.d.ts +9 -1
  508. package/types/tasty/utils/isDevEnv.d.ts +6 -0
  509. package/types/tasty/utils/renderStyles.d.ts +30 -7
  510. package/types/tasty/utils/responsive.d.ts +0 -1
  511. package/types/tasty/utils/styles.d.ts +7 -90
  512. package/types/tokens.d.ts +0 -11
@@ -1,74 +1,69 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { parseStyle } from '../utils/styles';
9
+ const AUTOFILL_STYLES = {
10
+ 'caret-color': 'var(--purple-color)',
11
+ '-webkit-text-fill-color': 'var(--purple-color)',
12
+ '-webkit-box-shadow': '0 0 0px 9999rem var(--white-color) inset',
13
+ 'box-shadow': '0 0 0px 9999rem var(--white-color) inset',
14
+ 'font-family': 'inherit',
15
+ 'font-size': 'inherit',
16
+ 'line-height': 'inherit',
17
+ };
9
18
  const RESET_MAP = {
10
19
  input: [
11
20
  {
12
- css: `
13
- -webkit-appearance: none;
14
- word-spacing: initial;
15
- -webkit-text-fill-color: currentColor;
16
- `,
21
+ '-webkit-appearance': 'none',
22
+ 'word-spacing': 'initial',
23
+ '-webkit-text-fill-color': 'currentColor',
17
24
  },
18
25
  {
19
26
  $: '::-webkit-search-cancel-button',
20
- css: 'display: none',
27
+ display: 'none',
28
+ },
29
+ {
30
+ $: ':-webkit-autofill',
31
+ ...AUTOFILL_STYLES,
32
+ },
33
+ {
34
+ $: ':-webkit-autofill:hover',
35
+ ...AUTOFILL_STYLES,
21
36
  },
22
37
  {
23
- $: [
24
- ':-webkit-autofill',
25
- ':-webkit-autofill:hover',
26
- ':-webkit-autofill:focus',
27
- ],
28
- css: `
29
- caret-color: var(--purple-color);
30
- -webkit-text-fill-color: var(--purple-color);
31
- -webkit-box-shadow: 0 0 0px 9999rem var(--white-color) inset;
32
- box-shadow: 0 0 0px 9999rem var(--white-color) inset;
33
- font-family: inherit;
34
- font-size: inherit;
35
- line-height: inherit;
36
- `,
38
+ $: ':-webkit-autofill:focus',
39
+ ...AUTOFILL_STYLES,
37
40
  },
38
41
  {
39
42
  $: '[disabled]',
40
- css: `
41
- -webkit-opacity: 1;
42
- `,
43
+ '-webkit-opacity': '1',
43
44
  },
44
45
  {
45
46
  $: '::placeholder',
46
- css: `
47
- -webkit-text-fill-color: var(--local-placeholder-color);
48
- color: var(--local-placeholder-color);
49
- filter: saturate(.33);
50
- `,
47
+ '-webkit-text-fill-color': 'var(--local-placeholder-color)',
48
+ color: 'var(--local-placeholder-color)',
49
+ filter: 'saturate(.33)',
51
50
  },
52
51
  {
53
52
  $: '::-webkit-search-cancel-button',
54
- css: `
55
- display: none;
56
- -webkit-appearance: none;
57
- `,
53
+ display: 'none',
54
+ '-webkit-appearance': 'none',
58
55
  },
59
56
  {
60
57
  $: ':not([disabled])::placeholder',
61
- css: '--local-placeholder-color: var(--placeholder-color, rgb(var(--dark-color-rgb) / .3));\n',
58
+ '--local-placeholder-color': 'var(--placeholder-color, rgb(var(--dark-color-rgb) / .3))',
62
59
  },
63
60
  ],
64
61
  button: [
65
62
  {
66
- css: `
67
- appearance: none;
68
- touch-action: manipulation;
69
- -webkit-tap-highlight-color: transparent;
70
- text-decoration: none;
71
- `,
63
+ appearance: 'none',
64
+ 'touch-action': 'manipulation',
65
+ '-webkit-tap-highlight-color': 'transparent',
66
+ 'text-decoration': 'none',
72
67
  },
73
68
  ],
74
69
  };
@@ -77,12 +72,13 @@ export function resetStyle({ reset }) {
77
72
  return;
78
73
  const processed = parseStyle(reset);
79
74
  const { mods } = processed.groups[0] ?? { mods: [] };
80
- return mods.reduce((sum, mod) => {
75
+ const result = [];
76
+ for (const mod of mods) {
81
77
  if (RESET_MAP[mod]) {
82
- sum.push(...RESET_MAP[mod]);
78
+ result.push(...RESET_MAP[mod]);
83
79
  }
84
- return sum;
85
- }, []);
80
+ }
81
+ return result.length ? result : undefined;
86
82
  }
87
83
  resetStyle.__lookupStyles = ['reset'];
88
84
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -33,6 +33,7 @@ const MAP = {
33
33
  'border',
34
34
  'border-radius',
35
35
  'outline',
36
+ 'opacity',
36
37
  ],
37
38
  inset: ['box-shadow'],
38
39
  mark: ['box-shadow'],
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
package/es/tasty/tasty.js CHANGED
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { createElement, forwardRef, useContext, useMemo, } from 'react';
8
+ import { createElement, forwardRef, useContext, useInsertionEffect, useMemo, useRef, } from 'react';
10
9
  import { isValidElementType } from 'react-is';
11
- import styledComponents, { createGlobalStyle } from 'styled-components';
10
+ import { allocateClassName, inject, injectGlobal } from './injector';
12
11
  import { BreakpointsContext } from './providers/BreakpointsProvider';
13
12
  import { BASE_STYLES } from './styles/list';
14
13
  import { cacheWrapper } from './utils/cache-wrapper';
@@ -16,7 +15,15 @@ import { getDisplayName } from './utils/getDisplayName';
16
15
  import { mergeStyles } from './utils/mergeStyles';
17
16
  import { modAttrs } from './utils/modAttrs';
18
17
  import { renderStyles } from './utils/renderStyles';
19
- import { pointsToZones } from './utils/responsive';
18
+ import { stringifyStyles } from './utils/styles';
19
+ /**
20
+ * Simple hash function for internal cache keys
21
+ */
22
+ // Generate unique cache key for style deduplication
23
+ function generateStyleCacheKey(styleKey, contextKey) {
24
+ // Use null character as separator for better performance and no collision risk
25
+ return contextKey ? `${styleKey}\0${contextKey}` : styleKey;
26
+ }
20
27
  // Implementation
21
28
  export function tasty(Component, options) {
22
29
  if (typeof Component === 'string') {
@@ -29,17 +36,28 @@ export function tasty(Component, options) {
29
36
  }
30
37
  // Internal specialized implementations
31
38
  function tastyGlobal(selector, styles) {
32
- let Element = createGlobalStyle `${({ $css }) => $css}`;
33
39
  const _StyleDeclarationComponent = ({ breakpoints, }) => {
34
40
  let contextBreakpoints = useContext(BreakpointsContext);
35
41
  const breakpointsList = (breakpoints ?? contextBreakpoints) || [980];
36
- const breakpointsHash = breakpointsList.join(',');
37
- let css = useMemo(() => {
42
+ const disposeRef = useRef(null);
43
+ const styleResults = useMemo(() => {
38
44
  if (!styles)
39
- return '';
40
- return `\n{}${selector}{${renderStyles(styles, pointsToZones(breakpointsList))}}`;
41
- }, [breakpointsHash]);
42
- return _jsx(Element, { "$css": css });
45
+ return [];
46
+ return renderStyles(styles, breakpointsList, selector);
47
+ }, [selector, styles, breakpointsList]);
48
+ // Inject styles at insertion phase; cleanup on change/unmount
49
+ useInsertionEffect(() => {
50
+ disposeRef.current?.();
51
+ if (styleResults.length === 0)
52
+ return;
53
+ const { dispose } = injectGlobal(styleResults);
54
+ disposeRef.current = dispose;
55
+ return () => {
56
+ disposeRef.current?.();
57
+ disposeRef.current = null;
58
+ };
59
+ }, [styleResults]);
60
+ return null;
43
61
  };
44
62
  _StyleDeclarationComponent.displayName = `TastyStyleDeclaration(${selector})`;
45
63
  return _StyleDeclarationComponent;
@@ -112,62 +130,129 @@ function tastyElement(tastyOptions) {
112
130
  });
113
131
  }
114
132
  else {
115
- let Element = styledComponents[originalAs](({ $css }) => $css);
116
133
  /**
117
134
  * An additional optimization that allows to avoid rendering styles across various instances
118
135
  * of the same element if no custom styles are provided via `styles` prop or direct style props.
119
136
  */
120
- const renderDefaultStyles = cacheWrapper((breakpoints) => renderStyles(defaultStyles || {}, pointsToZones(breakpoints)));
137
+ const renderDefaultStyles = cacheWrapper((breakpoints) => {
138
+ // Return rules without className - injector will add it
139
+ return renderStyles(defaultStyles || {}, breakpoints);
140
+ });
121
141
  let { qa: defaultQa, qaVal: defaultQaVal, ...otherDefaultProps } = defaultProps ?? {};
122
142
  // eslint-disable-next-line react/display-name
123
143
  _TastyComponent = forwardRef((allProps, ref) => {
124
- let { as, styles, variant: _omitVariant, breakpoints, mods, element, qa, qaVal, ...otherProps } = allProps;
125
- let propStyles = (styleProps
144
+ let { as, styles, variant: _omitVariant, breakpoints, mods, element, qa, qaVal, className: userClassName, ...otherProps } = allProps;
145
+ // Optimize propStyles extraction - avoid creating empty objects
146
+ let propStyles = null;
147
+ const propsToCheck = styleProps
126
148
  ? styleProps.concat(BASE_STYLES)
127
- : BASE_STYLES).reduce((map, prop) => {
149
+ : BASE_STYLES;
150
+ for (const prop of propsToCheck) {
128
151
  const key = prop;
129
152
  if (Object.prototype.hasOwnProperty.call(otherProps, key)) {
130
- map[key] = otherProps[key];
153
+ if (!propStyles)
154
+ propStyles = {};
155
+ propStyles[key] = otherProps[key];
131
156
  delete otherProps[key];
132
157
  }
133
- return map;
134
- }, {});
135
- if (Object.keys(propStyles).length === 0) {
136
- propStyles = null;
137
158
  }
138
159
  if (!styles ||
139
160
  (styles && Object.keys(styles).length === 0)) {
140
161
  styles = undefined;
141
162
  }
142
- const propStylesCacheKey = JSON.stringify(propStyles);
143
- const stylesCacheKey = useMemo(() => JSON.stringify(styles), [styles]);
144
- const useDefaultStyles = !propStyles && !styles;
145
- const styleCacheKey = useMemo(() => `${styles ? JSON.stringify(styles) : ''}.${propStyles ? JSON.stringify(propStyles) : ''}`, [propStylesCacheKey, stylesCacheKey]);
146
- let allStyles = useMemo(() => useDefaultStyles
147
- ? defaultStyles
148
- : mergeStyles(defaultStyles, styles, propStyles), [styleCacheKey]);
149
163
  let contextBreakpoints = useContext(BreakpointsContext);
150
164
  breakpoints = breakpoints ?? contextBreakpoints;
151
- let renderedStyles = useMemo(() => useDefaultStyles
152
- ? renderDefaultStyles(breakpoints)
153
- : renderStyles(allStyles, pointsToZones(breakpoints)), [allStyles, breakpoints?.join(',')]);
165
+ // Memoize breakpoints key once
166
+ const breakpointsKey = useMemo(() => breakpoints?.join(',') || '', [breakpoints?.join(',')]);
167
+ // Optimize style computation and cache key generation
168
+ const { allStyles, cacheKey, useDefaultStyles } = useMemo(() => {
169
+ const hasStyles = styles && Object.keys(styles).length > 0;
170
+ const hasPropStyles = propStyles && Object.keys(propStyles).length > 0;
171
+ const useDefault = !hasStyles && !hasPropStyles;
172
+ const merged = useDefault
173
+ ? defaultStyles
174
+ : mergeStyles(defaultStyles, styles, propStyles);
175
+ // Generate cache key for style deduplication
176
+ const styleKey = stringifyStyles(merged || {});
177
+ const key = generateStyleCacheKey(styleKey, breakpointsKey ? `bp:${breakpointsKey}` : undefined);
178
+ return {
179
+ allStyles: merged,
180
+ cacheKey: key,
181
+ useDefaultStyles: useDefault,
182
+ };
183
+ }, [styles, propStyles, breakpointsKey]);
184
+ // Compute rules synchronously; inject via insertion effect
185
+ const directResult = useMemo(() => {
186
+ if (useDefaultStyles) {
187
+ return renderDefaultStyles(breakpoints);
188
+ }
189
+ else if (allStyles && Object.keys(allStyles).length > 0) {
190
+ // Return rules without className - injector will add it
191
+ return renderStyles(allStyles, breakpoints);
192
+ }
193
+ else {
194
+ return { rules: [], className: '' };
195
+ }
196
+ }, [useDefaultStyles, allStyles, breakpointsKey, cacheKey]);
197
+ const disposeRef = useRef(null);
198
+ // Allocate className in render phase (safe for React Strict Mode)
199
+ const allocatedClassName = useMemo(() => {
200
+ if (!directResult.rules.length || !cacheKey)
201
+ return '';
202
+ const { className } = allocateClassName(cacheKey);
203
+ return className;
204
+ }, [directResult.rules.length, cacheKey]);
205
+ // Inject styles in insertion effect (avoids render phase side effects)
206
+ useInsertionEffect(() => {
207
+ // Cleanup previous disposal reference
208
+ disposeRef.current?.();
209
+ if (directResult.rules.length > 0) {
210
+ const injectionResult = inject(directResult.rules, { cacheKey });
211
+ disposeRef.current = injectionResult.dispose;
212
+ }
213
+ else {
214
+ disposeRef.current = null;
215
+ }
216
+ return () => {
217
+ disposeRef.current?.();
218
+ disposeRef.current = null;
219
+ };
220
+ }, [directResult.rules, cacheKey]);
221
+ const injectedClassName = allocatedClassName;
154
222
  let modProps;
155
223
  if (mods) {
156
224
  const modsObject = mods;
157
225
  modProps = modAttrs(modsObject);
158
226
  }
227
+ // Merge user className with injected className
228
+ const finalClassName = [
229
+ userClassName || '',
230
+ injectedClassName,
231
+ ]
232
+ .filter(Boolean)
233
+ .join(' ');
159
234
  const elementProps = {
160
- as: as ?? originalAs,
161
235
  'data-element': element || defaultElement,
162
236
  'data-qa': qa || defaultQa,
163
237
  'data-qaval': qaVal || defaultQaVal,
164
238
  ...otherDefaultProps,
165
239
  ...otherProps,
166
240
  ...(modProps || {}),
241
+ className: finalClassName,
167
242
  ref,
168
- $css: renderedStyles,
169
243
  };
170
- return createElement(Element, elementProps);
244
+ if ('isDisabled' in elementProps) {
245
+ elementProps.disabled = elementProps.isDisabled;
246
+ delete elementProps.isDisabled;
247
+ }
248
+ if ('isHidden' in elementProps) {
249
+ elementProps.hidden = elementProps.isHidden;
250
+ delete elementProps.isHidden;
251
+ }
252
+ // NEW: Use plain createElement instead of styled Element
253
+ const renderedElement = createElement(as ?? originalAs, elementProps);
254
+ // Note: Empty className is normal for elements with no styles
255
+ return renderedElement;
171
256
  });
172
257
  }
173
258
  _TastyComponent.displayName = `TastyComponent(${defaultProps.qa || originalAs})`;
package/es/tasty/types.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,42 +1,38 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- function filterCombinations(combinations) {
9
- return combinations.filter((combination) => {
10
- const list = [];
11
- return !combination.find((mod) => {
12
- const match = mod.match(/\[(.+?)[=\]]/);
13
- if (match) {
14
- if (list.includes(match[1])) {
15
- return true;
16
- }
17
- list.push(match[1]);
18
- return false;
19
- }
20
- return false;
21
- });
22
- });
23
- }
24
- export function getModCombinations(array, allowEmpty) {
25
- const result = allowEmpty ? [[]] : [];
26
- if (array.length === 0) {
27
- return [array];
8
+ /**
9
+ * Efficient iterative combination generator with early pruning
10
+ * Generates combinations one by one and prunes branches early when conflicts are detected
11
+ * @param array - Array of mod strings to generate combinations from
12
+ * @param allowEmpty - Whether to include empty combination
13
+ * @param conflictChecker - Function to detect conflicting combinations (required)
14
+ */
15
+ export function getModCombinationsIterative(array, allowEmpty, conflictChecker) {
16
+ if (!conflictChecker) {
17
+ throw new Error('getModCombinationsIterative requires a conflictChecker function');
28
18
  }
29
- if (array.length < 2) {
30
- return result.concat([array]);
19
+ if (array.length === 0) {
20
+ return allowEmpty ? [[]] : [];
31
21
  }
32
- const f = function (prefix = [], array) {
33
- for (let i = 0; i < array.length; i++) {
34
- result.push([...prefix, array[i]]);
35
- f([...prefix, array[i]], array.slice(i + 1));
22
+ // Use iterative approach with early pruning for better performance
23
+ const combinations = [[]];
24
+ for (let i = 0; i < array.length; i++) {
25
+ const currentLength = combinations.length;
26
+ for (let j = 0; j < currentLength; j++) {
27
+ const newCombination = [...combinations[j], array[i]];
28
+ // Early conflict detection - only add if no conflicts
29
+ if (!conflictChecker(newCombination)) {
30
+ combinations.push(newCombination);
31
+ }
36
32
  }
37
- };
38
- f([], array);
39
- return filterCombinations(result);
33
+ }
34
+ // Filter out empty combination if not allowed, but keep others
35
+ return combinations.filter((combo) => allowEmpty || combo.length > 0);
40
36
  }
41
37
 
42
38
 
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.76.0
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Check if we're in a development environment at runtime
10
+ * Uses bracket notation to avoid bundler compilation
11
+ * Also checks for TASTY_DEBUG localStorage setting
12
+ */
13
+ export function isDevEnv() {
14
+ // Check localStorage for DEBUG_TASTY setting (browser environment)
15
+ if (typeof window !== 'undefined' && window.localStorage) {
16
+ try {
17
+ const forceTastyDebug = window.localStorage.getItem('TASTY_DEBUG');
18
+ if (forceTastyDebug !== null &&
19
+ forceTastyDebug.toLowerCase() === 'true') {
20
+ return true;
21
+ }
22
+ }
23
+ catch {
24
+ // localStorage might not be available (private browsing, etc.)
25
+ // Continue with other checks
26
+ }
27
+ }
28
+ // Check NODE_ENV for Node.js environments
29
+ if (typeof process === 'undefined')
30
+ return false;
31
+ // Use bracket notation to avoid bundler replacement
32
+ const nodeEnv = process.env?.['NODE_ENV'];
33
+ return nodeEnv !== 'test' && nodeEnv !== 'production';
34
+ }
35
+
36
+
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.74.3
4
+ * @cube-dev/ui-kit v0.76.0
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.74.3
4
+ * @cube-dev/ui-kit v0.76.0
5
5
  * Released under the MIT license.
6
6
  */
7
7