@cube-dev/ui-kit 0.0.0-canary-da1f163 → 0.0.0-canary-7f29fb4

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 (507) hide show
  1. package/es/_internal/hooks/index.js +1 -1
  2. package/es/_internal/hooks/use-chained-callback.js +1 -1
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +1 -1
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +1 -1
  9. package/es/_internal/hooks/use-timer/index.js +1 -1
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/es/_internal/hooks/use-update-effect.js +1 -1
  13. package/es/_internal/hooks/use-warn.js +1 -1
  14. package/es/_internal/index.js +1 -1
  15. package/es/components/Block.js +1 -1
  16. package/es/components/GlobalStyles.js +1 -1
  17. package/es/components/GridProvider.js +1 -1
  18. package/es/components/HiddenInput.js +1 -1
  19. package/es/components/Item.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +2 -2
  22. package/es/components/actions/Action/Action.js +14 -18
  23. package/es/components/actions/Button/Button.js +2 -1
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -1
  29. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/es/components/actions/ItemButton/index.js +1 -1
  31. package/es/components/actions/Menu/Menu.js +1 -1
  32. package/es/components/actions/Menu/MenuItem.js +3 -8
  33. package/es/components/actions/Menu/MenuSection.js +1 -1
  34. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/es/components/actions/Menu/context.js +1 -1
  38. package/es/components/actions/Menu/index.js +1 -1
  39. package/es/components/actions/Menu/styled.js +1 -1
  40. package/es/components/actions/index.js +1 -1
  41. package/es/components/actions/use-action.js +1 -1
  42. package/es/components/actions/use-anchored-menu.js +1 -1
  43. package/es/components/actions/use-context-menu.js +1 -1
  44. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  45. package/es/components/content/Alert/Alert.js +1 -1
  46. package/es/components/content/Alert/index.js +1 -1
  47. package/es/components/content/Alert/types.js +1 -1
  48. package/es/components/content/Alert/use-alert.js +1 -1
  49. package/es/components/content/Avatar/Avatar.js +1 -1
  50. package/es/components/content/Badge/Badge.js +1 -1
  51. package/es/components/content/Card/Card.js +1 -1
  52. package/es/components/content/Content.js +1 -1
  53. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  54. package/es/components/content/CopyPasteBlock/index.js +1 -1
  55. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  56. package/es/components/content/CopySnippet/index.js +1 -1
  57. package/es/components/content/Divider.js +1 -1
  58. package/es/components/content/Footer.js +1 -1
  59. package/es/components/content/Header.js +1 -1
  60. package/es/components/content/HotKeys/HotKeys.js +1 -1
  61. package/es/components/content/HotKeys/index.js +1 -1
  62. package/es/components/content/ItemBase/ItemBase.js +6 -5
  63. package/es/components/content/ItemBase/index.js +1 -1
  64. package/es/components/content/List/SectionHeading.js +1 -1
  65. package/es/components/content/List/index.js +1 -1
  66. package/es/components/content/Paragraph.js +1 -1
  67. package/es/components/content/Placeholder/Placeholder.js +1 -1
  68. package/es/components/content/PrismCode/PrismCode.js +1 -1
  69. package/es/components/content/PrismCode/prismSetup.js +1 -1
  70. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  71. package/es/components/content/Result/Result.js +1 -1
  72. package/es/components/content/Skeleton/Skeleton.js +1 -1
  73. package/es/components/content/Tag/Tag.js +1 -1
  74. package/es/components/content/Text.js +3 -3
  75. package/es/components/content/Title.js +3 -3
  76. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  77. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  78. package/es/components/fields/Checkbox/context.js +1 -1
  79. package/es/components/fields/Checkbox/index.js +1 -1
  80. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  81. package/es/components/fields/ComboBox/index.js +1 -1
  82. package/es/components/fields/DatePicker/DateInput.js +1 -1
  83. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  84. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  85. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  86. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  87. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  88. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  89. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  90. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  91. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  92. package/es/components/fields/DatePicker/index.js +1 -1
  93. package/es/components/fields/DatePicker/intl.js +1 -1
  94. package/es/components/fields/DatePicker/parseDate.js +1 -1
  95. package/es/components/fields/DatePicker/props.js +1 -1
  96. package/es/components/fields/DatePicker/types.js +1 -1
  97. package/es/components/fields/DatePicker/utils.js +1 -1
  98. package/es/components/fields/FileInput/FileInput.js +1 -1
  99. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  100. package/es/components/fields/FilterListBox/index.js +1 -1
  101. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  102. package/es/components/fields/FilterPicker/index.js +1 -1
  103. package/es/components/fields/Input/Input.js +1 -1
  104. package/es/components/fields/Input/index.js +1 -1
  105. package/es/components/fields/ListBox/ListBox.js +1 -1
  106. package/es/components/fields/ListBox/index.js +1 -1
  107. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  108. package/es/components/fields/NumberInput/StepButton.js +1 -1
  109. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  110. package/es/components/fields/RadioGroup/Radio.js +1 -1
  111. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  112. package/es/components/fields/RadioGroup/context.js +1 -1
  113. package/es/components/fields/RadioGroup/index.js +1 -1
  114. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  115. package/es/components/fields/SearchInput/index.js +1 -1
  116. package/es/components/fields/Select/Select.js +1 -1
  117. package/es/components/fields/Select/index.js +1 -1
  118. package/es/components/fields/Slider/Gradation.js +1 -1
  119. package/es/components/fields/Slider/Header.js +1 -1
  120. package/es/components/fields/Slider/RangeSlider.js +1 -1
  121. package/es/components/fields/Slider/Slider.js +1 -1
  122. package/es/components/fields/Slider/SliderBase.js +1 -1
  123. package/es/components/fields/Slider/SliderInput.js +1 -1
  124. package/es/components/fields/Slider/SliderThumb.js +1 -1
  125. package/es/components/fields/Slider/SliderTrack.js +1 -1
  126. package/es/components/fields/Slider/elements.js +1 -1
  127. package/es/components/fields/Slider/index.js +1 -1
  128. package/es/components/fields/Slider/types.js +1 -1
  129. package/es/components/fields/Switch/Switch.js +1 -1
  130. package/es/components/fields/Switch/index.js +1 -1
  131. package/es/components/fields/TextArea/TextArea.js +1 -1
  132. package/es/components/fields/TextArea/index.js +1 -1
  133. package/es/components/fields/TextInput/TextInput.js +1 -1
  134. package/es/components/fields/TextInput/TextInputBase.js +3 -2
  135. package/es/components/fields/TextInput/index.js +1 -1
  136. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  137. package/es/components/fields/TextInputMapper/index.js +1 -1
  138. package/es/components/fields/index.js +1 -1
  139. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  140. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  141. package/es/components/form/FieldWrapper/index.js +1 -1
  142. package/es/components/form/FieldWrapper/types.js +1 -1
  143. package/es/components/form/Form/Field.js +1 -1
  144. package/es/components/form/Form/Form.js +1 -1
  145. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  146. package/es/components/form/Form/ResetButton/index.js +1 -1
  147. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  148. package/es/components/form/Form/SubmitButton/index.js +1 -1
  149. package/es/components/form/Form/SubmitError.js +1 -1
  150. package/es/components/form/Form/index.js +1 -1
  151. package/es/components/form/Form/types.js +1 -1
  152. package/es/components/form/Form/use-field/index.js +1 -1
  153. package/es/components/form/Form/use-field/types.js +1 -1
  154. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  155. package/es/components/form/Form/use-field/use-field.js +1 -1
  156. package/es/components/form/Form/use-form.js +1 -1
  157. package/es/components/form/Form/validation.js +1 -1
  158. package/es/components/form/Label.js +1 -1
  159. package/es/components/form/index.js +1 -1
  160. package/es/components/form/wrapper.js +1 -1
  161. package/es/components/layout/Flex.js +1 -1
  162. package/es/components/layout/Flow.js +1 -1
  163. package/es/components/layout/Grid.js +1 -1
  164. package/es/components/layout/Panel.js +1 -1
  165. package/es/components/layout/Prefix.js +1 -1
  166. package/es/components/layout/ResizablePanel.js +1 -1
  167. package/es/components/layout/Space.js +1 -1
  168. package/es/components/layout/Suffix.js +1 -1
  169. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  170. package/es/components/navigation/Link/Link.js +1 -1
  171. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  172. package/es/components/organisms/Modal/Modal.js +1 -1
  173. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  174. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  175. package/es/components/other/Calendar/Calendar.js +1 -1
  176. package/es/components/other/Calendar/CalendarCell.js +1 -1
  177. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  178. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  179. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  180. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  181. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  182. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  183. package/es/components/overlays/AlertDialog/index.js +1 -1
  184. package/es/components/overlays/AlertDialog/types.js +1 -1
  185. package/es/components/overlays/Dialog/Dialog.js +1 -1
  186. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  187. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  188. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  189. package/es/components/overlays/Dialog/context.js +1 -1
  190. package/es/components/overlays/Dialog/index.js +1 -1
  191. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  192. package/es/components/overlays/Modal/Modal.js +1 -1
  193. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  194. package/es/components/overlays/Modal/Overlay.js +1 -1
  195. package/es/components/overlays/Modal/Popover.js +1 -1
  196. package/es/components/overlays/Modal/Tray.js +1 -1
  197. package/es/components/overlays/Modal/Underlay.js +1 -1
  198. package/es/components/overlays/Modal/index.js +1 -1
  199. package/es/components/overlays/Modal/types.js +1 -1
  200. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  201. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  202. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  203. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  204. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  205. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  206. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  207. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  208. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  209. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  214. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  218. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  219. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  220. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  221. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  222. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  223. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  224. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  225. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  226. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  227. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  228. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  229. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  230. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  231. package/es/components/overlays/NewNotifications/index.js +1 -1
  232. package/es/components/overlays/NewNotifications/types.js +1 -1
  233. package/es/components/overlays/Notification/Notification.js +1 -1
  234. package/es/components/overlays/OverlayWrapper.js +1 -1
  235. package/es/components/overlays/Toasts/Toast.js +1 -1
  236. package/es/components/overlays/Toasts/index.js +1 -1
  237. package/es/components/overlays/Toasts/types.js +1 -1
  238. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  239. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  240. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  241. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  242. package/es/components/overlays/Tooltip/context.js +1 -1
  243. package/es/components/overlays/Tooltip/index.js +1 -1
  244. package/es/components/portal/Portal.js +1 -1
  245. package/es/components/portal/PortalProvider.js +1 -1
  246. package/es/components/portal/index.js +1 -1
  247. package/es/components/portal/types.js +1 -1
  248. package/es/components/portal/usePortal.js +1 -1
  249. package/es/components/shared/InvalidIcon.js +1 -1
  250. package/es/components/shared/ValidIcon.js +1 -1
  251. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  252. package/es/components/status/LoadingAnimation/index.js +1 -1
  253. package/es/components/status/Spin/Cube.js +1 -1
  254. package/es/components/status/Spin/InternalSpinner.js +1 -1
  255. package/es/components/status/Spin/Spin.js +1 -1
  256. package/es/components/status/Spin/SpinsContainer.js +1 -1
  257. package/es/components/status/Spin/index.js +1 -1
  258. package/es/components/status/Spin/types.js +1 -1
  259. package/es/components/status/index.js +1 -1
  260. package/es/data/item-themes.js +1 -1
  261. package/es/data/themes.js +1 -1
  262. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  263. package/es/icons/AdjustmentsIcon.js +1 -1
  264. package/es/icons/AiIcon.js +1 -1
  265. package/es/icons/AreaChartIcon.js +1 -1
  266. package/es/icons/BackwardIcon.js +1 -1
  267. package/es/icons/BarChartIcon.js +1 -1
  268. package/es/icons/BellFilledIcon.js +1 -1
  269. package/es/icons/BellIcon.js +1 -1
  270. package/es/icons/BooleanIcon.js +1 -1
  271. package/es/icons/CalendarEditIcon.js +1 -1
  272. package/es/icons/CalendarIcon.js +1 -1
  273. package/es/icons/CaretDownIcon.js +1 -1
  274. package/es/icons/CaretUpIcon.js +1 -1
  275. package/es/icons/ChartAreaStackedIcon.js +1 -1
  276. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  277. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  278. package/es/icons/ChartBarGroupedIcon.js +1 -1
  279. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  280. package/es/icons/ChartBarLineIcon.js +1 -1
  281. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  282. package/es/icons/ChartBarStackedIcon.js +1 -1
  283. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  284. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  285. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  286. package/es/icons/ChartBoxPlotIcon.js +1 -1
  287. package/es/icons/ChartBubbleIcon.js +1 -1
  288. package/es/icons/ChartDonut2Icon.js +1 -1
  289. package/es/icons/ChartFunnelIcon.js +1 -1
  290. package/es/icons/ChartKPIIcon.js +1 -1
  291. package/es/icons/ChartPie2Icon.js +1 -1
  292. package/es/icons/ChartScatterIcon.js +1 -1
  293. package/es/icons/CheckCircleFilledIcon.js +1 -1
  294. package/es/icons/CheckCircleIcon.js +1 -1
  295. package/es/icons/CheckIcon.js +1 -1
  296. package/es/icons/CircleFilledIcon.js +1 -1
  297. package/es/icons/ClearIcon.js +1 -1
  298. package/es/icons/CloseCircleFilledIcon.js +1 -1
  299. package/es/icons/CloseCircleIcon.js +1 -1
  300. package/es/icons/CloseIcon.js +1 -1
  301. package/es/icons/CodeIcon.js +1 -1
  302. package/es/icons/CopyIcon.js +1 -1
  303. package/es/icons/CountIcon.js +1 -1
  304. package/es/icons/CubeIcon.js +1 -1
  305. package/es/icons/DangerIcon.js +1 -1
  306. package/es/icons/DashboardIcon.js +1 -1
  307. package/es/icons/DatabaseIcon.js +1 -1
  308. package/es/icons/DirectionIcon.js +1 -1
  309. package/es/icons/DonutIcon.js +1 -1
  310. package/es/icons/DownIcon.js +1 -1
  311. package/es/icons/EditIcon.js +1 -1
  312. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  313. package/es/icons/ExclamationCircleIcon.js +1 -1
  314. package/es/icons/ExclamationIcon.js +1 -1
  315. package/es/icons/EyeIcon.js +1 -1
  316. package/es/icons/EyeInvisibleIcon.js +1 -1
  317. package/es/icons/FilterIcon.js +1 -1
  318. package/es/icons/FolderFilledIcon.js +1 -1
  319. package/es/icons/FolderIcon.js +1 -1
  320. package/es/icons/FolderOpenFilledIcon.js +1 -1
  321. package/es/icons/FolderOpenIcon.js +1 -1
  322. package/es/icons/ForwardIcon.js +1 -1
  323. package/es/icons/HierarchyIcon.js +1 -1
  324. package/es/icons/Icon.js +1 -1
  325. package/es/icons/InfoCircleIcon.js +1 -1
  326. package/es/icons/InfoIcon.js +1 -1
  327. package/es/icons/KeyIcon.js +1 -1
  328. package/es/icons/LeftIcon.js +1 -1
  329. package/es/icons/LineChartIcon.js +1 -1
  330. package/es/icons/LoadingIcon.js +1 -1
  331. package/es/icons/LockFilledIcon.js +1 -1
  332. package/es/icons/LockIcon.js +1 -1
  333. package/es/icons/MoreIcon.js +1 -1
  334. package/es/icons/NotAllowedIcon.js +1 -1
  335. package/es/icons/NumberIcon.js +1 -1
  336. package/es/icons/PauseCircleFilledIcon.js +1 -1
  337. package/es/icons/PauseCircleIcon.js +1 -1
  338. package/es/icons/PauseIcon.js +1 -1
  339. package/es/icons/PieChartIcon.js +1 -1
  340. package/es/icons/PlayCircleIcon.js +1 -1
  341. package/es/icons/PlayIcon.js +1 -1
  342. package/es/icons/PlusIcon.js +1 -1
  343. package/es/icons/ReloadIcon.js +1 -1
  344. package/es/icons/ReportIcon.js +1 -1
  345. package/es/icons/ReturnIcon.js +1 -1
  346. package/es/icons/RightIcon.js +1 -1
  347. package/es/icons/SchemeIcon.js +1 -1
  348. package/es/icons/SearchIcon.js +1 -1
  349. package/es/icons/SettingsIcon.js +1 -1
  350. package/es/icons/ShieldFilledIcon.js +1 -1
  351. package/es/icons/ShieldIcon.js +1 -1
  352. package/es/icons/SlashIcon.js +1 -1
  353. package/es/icons/SparklesIcon.js +1 -1
  354. package/es/icons/SqlIcon.js +1 -1
  355. package/es/icons/StatsIcon.js +1 -1
  356. package/es/icons/StopIcon.js +1 -1
  357. package/es/icons/StringIcon.js +1 -1
  358. package/es/icons/SwitchIcon.js +1 -1
  359. package/es/icons/TableIcon.js +1 -1
  360. package/es/icons/ThumbsDownIcon.js +1 -1
  361. package/es/icons/ThumbsUpIcon.js +1 -1
  362. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  363. package/es/icons/ThunderboltFilledIcon.js +1 -1
  364. package/es/icons/ThunderboltIcon.js +1 -1
  365. package/es/icons/TimeIcon.js +1 -1
  366. package/es/icons/UnlockIcon.js +1 -1
  367. package/es/icons/UpIcon.js +1 -1
  368. package/es/icons/UserGroupIcon.js +1 -1
  369. package/es/icons/UserIcon.js +1 -1
  370. package/es/icons/UserLockIcon.js +1 -1
  371. package/es/icons/ViewIcon.js +1 -1
  372. package/es/icons/WarningFilledIcon.js +1 -1
  373. package/es/icons/WarningIcon.js +1 -1
  374. package/es/icons/add-new-icon.js +1 -1
  375. package/es/icons/index.js +1 -1
  376. package/es/icons/wrap-icon.js +1 -1
  377. package/es/index.js +1 -1
  378. package/es/provider.js +1 -1
  379. package/es/providers/TrackingProvider.js +1 -1
  380. package/es/services/notification.js +1 -1
  381. package/es/shared/form.js +1 -1
  382. package/es/shared/index.js +1 -1
  383. package/es/stories/Form.legacy-stories.js +1 -1
  384. package/es/stories/FormFieldArgs.js +1 -1
  385. package/es/stories/Layout.stories.js +1 -1
  386. package/es/stories/Tasty.stories.js +1 -1
  387. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  388. package/es/stories/components/DialogFormApp.js +1 -1
  389. package/es/stories/components/StyledButton.js +1 -1
  390. package/es/stories/lists/baseProps.js +1 -2
  391. package/es/tasty/debug.js +572 -0
  392. package/es/tasty/index.js +3 -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 +336 -0
  396. package/es/tasty/injector/sheet-manager.js +737 -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 +789 -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/debug.d.ts +133 -0
  496. package/types/tasty/index.d.ts +2 -0
  497. package/types/tasty/injector/flatten.d.ts +16 -0
  498. package/types/tasty/injector/index.d.ts +64 -0
  499. package/types/tasty/injector/injector.d.ts +82 -0
  500. package/types/tasty/injector/sheet-manager.d.ts +105 -0
  501. package/types/tasty/injector/types.d.ts +105 -0
  502. package/types/tasty/parser/lru.d.ts +5 -1
  503. package/types/tasty/styles/color.d.ts +3 -1
  504. package/types/tasty/styles/reset.d.ts +1 -2
  505. package/types/tasty/types.d.ts +0 -2
  506. package/types/tasty/utils/renderStyles.d.ts +25 -7
  507. package/types/tasty/utils/styles.d.ts +1 -9
@@ -0,0 +1,572 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-7f29fb4
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Debug utilities for inspecting tasty-generated CSS at runtime
10
+ */
11
+ import { getCssTextForNode, injector } from './injector';
12
+ /**
13
+ * Pretty-print CSS with proper indentation and formatting
14
+ */
15
+ function prettifyCSS(css) {
16
+ if (!css || css.trim() === '') {
17
+ return '';
18
+ }
19
+ // First, normalize whitespace but preserve structure
20
+ let formatted = css.replace(/\s+/g, ' ').trim();
21
+ // Add newlines after opening braces
22
+ formatted = formatted.replace(/\s*\{\s*/g, ' {\n');
23
+ // Add newlines after semicolons (but not inside strings or functions)
24
+ formatted = formatted.replace(/;(?![^"']*["'][^"']*$)(?![^()]*\))/g, ';\n');
25
+ // Add newlines before closing braces
26
+ formatted = formatted.replace(/\s*\}\s*/g, '\n}\n');
27
+ // Handle comma-separated selectors (only outside of property values)
28
+ // This regex looks for commas that are:
29
+ // 1. Not inside quotes
30
+ // 2. Not inside parentheses (CSS functions)
31
+ // 3. Not followed by a colon (not in a property value)
32
+ formatted = formatted.replace(/,(?![^"']*["'][^"']*$)(?![^()]*\))(?=.*:.*\{|.*\{)/g, ',\n');
33
+ // Process line by line for proper indentation
34
+ const lines = formatted.split('\n');
35
+ let indentLevel = 0;
36
+ const indentSize = 2;
37
+ const formattedLines = lines.map((line) => {
38
+ const trimmed = line.trim();
39
+ if (!trimmed)
40
+ return '';
41
+ // Handle closing braces - decrease indent first
42
+ if (trimmed === '}') {
43
+ indentLevel = Math.max(0, indentLevel - 1);
44
+ return ' '.repeat(indentLevel * indentSize) + trimmed;
45
+ }
46
+ // Current line with proper indentation
47
+ const indent = ' '.repeat(indentLevel * indentSize);
48
+ let result = indent + trimmed;
49
+ // Handle opening braces - increase indent for next line
50
+ if (trimmed.endsWith('{')) {
51
+ indentLevel++;
52
+ }
53
+ return result;
54
+ });
55
+ // Clean up the result and ensure proper spacing
56
+ let result = formattedLines
57
+ .filter((line) => line.trim()) // Remove empty lines
58
+ .join('\n')
59
+ .replace(/\n{3,}/g, '\n\n') // Max 2 consecutive newlines
60
+ .trim();
61
+ // Final cleanup: ensure single spaces in function calls
62
+ result = result.replace(/,\s+/g, ', ');
63
+ return result;
64
+ }
65
+ /**
66
+ * Debug utilities for inspecting tasty styles in runtime applications
67
+ */
68
+ export const tastyDebug = {
69
+ /** Resolve the document where tasty styles live (handles Storybook iframe). */
70
+ _resolveRoot() {
71
+ if (typeof document !== 'undefined') {
72
+ if (document.querySelector('style[data-tasty]'))
73
+ return document;
74
+ const iframe = document.getElementById('storybook-preview-iframe') ||
75
+ document.querySelector('iframe#storybook-preview-iframe') ||
76
+ document.querySelector('iframe');
77
+ if (iframe?.contentDocument?.querySelector?.('style[data-tasty]')) {
78
+ return iframe.contentDocument;
79
+ }
80
+ }
81
+ return document;
82
+ },
83
+ /**
84
+ * Get CSS for a specific tasty class (e.g., 't24')
85
+ */
86
+ getCSSForClass(className) {
87
+ if (!className.match(/^t\d+$/)) {
88
+ console.warn(`"${className}" doesn't look like a tasty class. Expected format: t{number}`);
89
+ }
90
+ const root = this._resolveRoot();
91
+ const css = injector.instance.getCssTextForClasses([className], { root });
92
+ return prettifyCSS(css);
93
+ },
94
+ /**
95
+ * Get CSS for multiple tasty classes
96
+ */
97
+ getCSSForClasses(classNames) {
98
+ const root = this._resolveRoot();
99
+ const css = injector.instance.getCssTextForClasses(classNames, { root });
100
+ return prettifyCSS(css);
101
+ },
102
+ /**
103
+ * Get detailed batched selector groups that affect a specific tasty class.
104
+ * Includes selector, declarations, at-rules and the full class list in the group.
105
+ */
106
+ getBatchedGroupsForClass(className) {
107
+ const root = this._resolveRoot();
108
+ const registry = injector.instance['sheetManager'].getRegistry(root);
109
+ if (!registry?.classToBatchedKeys)
110
+ return [];
111
+ const result = [];
112
+ const keys = registry.classToBatchedKeys.get(className);
113
+ if (!keys)
114
+ return [];
115
+ for (const key of keys) {
116
+ const entry = registry.batchedRules.get(key);
117
+ const meta = registry.batchedRuleMeta?.get(key);
118
+ if (!entry && !meta)
119
+ continue;
120
+ // Read CSS text from CSSOM when possible, otherwise from cached text
121
+ let css = '';
122
+ let selector = '';
123
+ let declarations = '';
124
+ let atRules = undefined;
125
+ let classes = [];
126
+ if (entry) {
127
+ const sheet = registry.sheets[entry.sheetIndex];
128
+ const styleSheet = sheet?.sheet?.sheet;
129
+ if (styleSheet) {
130
+ const idx = Math.max(0, Math.min(entry.ruleIndex, styleSheet.cssRules.length - 1));
131
+ const rule = styleSheet.cssRules[idx];
132
+ css = rule?.cssText || entry.currentCssText || '';
133
+ }
134
+ else {
135
+ css = entry.currentCssText || '';
136
+ }
137
+ declarations = entry.declarations || '';
138
+ atRules =
139
+ entry.atRules && entry.atRules.length
140
+ ? [...entry.atRules]
141
+ : undefined;
142
+ const classArr = Array.from(entry.classNames || new Set());
143
+ classes = classArr.sort((a, b) => parseInt(a.slice(1)) - parseInt(b.slice(1)));
144
+ }
145
+ else if (meta) {
146
+ // If only meta exists, we still can present declarations/atRules
147
+ css = '';
148
+ declarations = meta.declarations || '';
149
+ atRules =
150
+ meta.atRules && meta.atRules.length
151
+ ? [...meta.atRules]
152
+ : undefined;
153
+ classes = [];
154
+ }
155
+ // Try to extract selector from css text if available
156
+ if (!selector && css.includes('{')) {
157
+ selector = css.split('{', 1)[0].trim();
158
+ }
159
+ result.push({ selector, declarations, atRules, classes, css });
160
+ }
161
+ return result;
162
+ },
163
+ /**
164
+ * List classes that participate in at least one batched group
165
+ */
166
+ findClassesWithBatches() {
167
+ const root = this._resolveRoot();
168
+ const registry = injector.instance['sheetManager'].getRegistry(root);
169
+ if (!registry?.classToBatchedKeys)
170
+ return [];
171
+ const entries = Array.from(registry.classToBatchedKeys.entries());
172
+ return entries
173
+ .filter(([, keys]) => keys && keys.size > 0)
174
+ .map(([cls]) => cls)
175
+ .sort((a, b) => parseInt(a.slice(1)) - parseInt(b.slice(1)));
176
+ },
177
+ /**
178
+ * List a brief summary of existing batched groups
179
+ */
180
+ listBatchedGroups(limit = 50) {
181
+ const root = this._resolveRoot();
182
+ const registry = injector.instance['sheetManager'].getRegistry(root);
183
+ if (!registry?.batchedRules)
184
+ return [];
185
+ const out = [];
186
+ for (const [key, entry] of registry.batchedRules.entries()) {
187
+ out.push({
188
+ key,
189
+ size: entry.classNames ? entry.classNames.size : 0,
190
+ sampleSelector: (() => {
191
+ const sheet = registry.sheets[entry.sheetIndex];
192
+ const cssText = sheet?.sheet?.sheet?.cssRules?.[entry.ruleIndex]?.cssText ||
193
+ entry.currentCssText ||
194
+ '';
195
+ return cssText.split('{', 1)[0].trim();
196
+ })(),
197
+ });
198
+ if (out.length >= limit)
199
+ break;
200
+ }
201
+ return out.sort((a, b) => b.size - a.size);
202
+ },
203
+ /**
204
+ * Log CSS for a specific tasty class (e.g., 't24') to console
205
+ */
206
+ logCSSForClass(className) {
207
+ if (!className.match(/^t\d+$/)) {
208
+ console.warn(`"${className}" doesn't look like a tasty class. Expected format: t{number}`);
209
+ }
210
+ const css = this.getCSSForClass(className);
211
+ this.logCSS(css, `CSS for class "${className}"`);
212
+ const groups = this.getBatchedGroupsForClass(className);
213
+ if (groups.length) {
214
+ console.group('🔗 Batched selector groups');
215
+ for (const g of groups) {
216
+ console.log(`${g.selector} { ${g.declarations} } // classes: ${g.classes.join(', ')}`);
217
+ }
218
+ console.groupEnd();
219
+ }
220
+ },
221
+ /**
222
+ * Log CSS for multiple tasty classes to console
223
+ */
224
+ logCSSForClasses(classNames) {
225
+ const css = this.getCSSForClasses(classNames);
226
+ const title = `CSS for classes [${classNames.join(', ')}]`;
227
+ this.logCSS(css, title);
228
+ },
229
+ /**
230
+ * Inspect an element by CSS selector and get its tasty CSS
231
+ */
232
+ inspectElement(selector) {
233
+ const root = this._resolveRoot();
234
+ const element = root.querySelector
235
+ ? root.querySelector(selector)
236
+ : document.querySelector(selector);
237
+ if (!element) {
238
+ return `Element not found: ${selector}`;
239
+ }
240
+ console.group(`🎨 Tasty CSS for "${selector}"`);
241
+ console.log('Element:', element);
242
+ const css = getCssTextForNode(element, { root });
243
+ if (css) {
244
+ const prettified = prettifyCSS(css);
245
+ console.log('Generated CSS:\n' + prettified);
246
+ console.groupEnd();
247
+ return prettified;
248
+ }
249
+ else {
250
+ console.log('No tasty CSS found for this element');
251
+ console.groupEnd();
252
+ return 'No tasty CSS found';
253
+ }
254
+ },
255
+ /**
256
+ * Inspect a DOM element directly and get its tasty CSS
257
+ */
258
+ inspectDOMElement(element) {
259
+ if (!element) {
260
+ return 'Element is null or undefined';
261
+ }
262
+ console.group('🎨 Tasty CSS for element');
263
+ console.log('Element:', element);
264
+ const root = this._resolveRoot();
265
+ const css = getCssTextForNode(element, { root });
266
+ if (css) {
267
+ const prettified = prettifyCSS(css);
268
+ console.log('Generated CSS:\n' + prettified);
269
+ console.groupEnd();
270
+ return prettified;
271
+ }
272
+ else {
273
+ console.log('No tasty CSS found for this element');
274
+ console.groupEnd();
275
+ return 'No tasty CSS found';
276
+ }
277
+ },
278
+ /**
279
+ * Get all tasty CSS currently injected into the page
280
+ */
281
+ getAllCSS() {
282
+ const root = this._resolveRoot();
283
+ return injector.instance.getCssText({ root });
284
+ },
285
+ /**
286
+ * Find all tasty classes used in the page (in DOM)
287
+ */
288
+ findAllTastyClasses() {
289
+ const classes = new Set();
290
+ // Find all elements with class attributes
291
+ const root = this._resolveRoot();
292
+ const elements = root.querySelectorAll
293
+ ? root.querySelectorAll('[class]')
294
+ : document.querySelectorAll('[class]');
295
+ elements.forEach((element) => {
296
+ const classList = element.getAttribute('class');
297
+ if (classList) {
298
+ // Extract tasty classes (t + digits)
299
+ const tastyClasses = classList
300
+ .split(/\s+/)
301
+ .filter((cls) => /^t\d+$/.test(cls));
302
+ tastyClasses.forEach((cls) => classes.add(cls));
303
+ }
304
+ });
305
+ return Array.from(classes).sort((a, b) => {
306
+ // Sort numerically by the number part
307
+ const aNum = parseInt(a.slice(1));
308
+ const bNum = parseInt(b.slice(1));
309
+ return aNum - bNum;
310
+ });
311
+ },
312
+ /**
313
+ * Find all tasty classes that have styles in the stylesheet (used + unused)
314
+ */
315
+ findAllStyledClasses() {
316
+ const root = this._resolveRoot();
317
+ const registry = injector.instance['sheetManager'].getRegistry(root);
318
+ const classes = new Set();
319
+ // Add all classes from rules map (active + unused)
320
+ if (registry?.rules) {
321
+ for (const className of registry.rules.keys()) {
322
+ if (/^t\d+$/.test(className)) {
323
+ classes.add(className);
324
+ }
325
+ }
326
+ }
327
+ return Array.from(classes).sort((a, b) => {
328
+ // Sort numerically by the number part
329
+ const aNum = parseInt(a.slice(1));
330
+ const bNum = parseInt(b.slice(1));
331
+ return aNum - bNum;
332
+ });
333
+ },
334
+ /**
335
+ * Get active vs cached class breakdown
336
+ */
337
+ getClassUsage() {
338
+ const domClasses = this.findAllTastyClasses();
339
+ const styledClasses = this.findAllStyledClasses();
340
+ const root = this._resolveRoot();
341
+ const registry = injector.instance['sheetManager'].getRegistry(root);
342
+ const activeClasses = domClasses;
343
+ const cachedClasses = styledClasses.filter((cls) => !domClasses.includes(cls));
344
+ // Also check unusedRules registry for classes that are marked as cached (unused but kept for performance)
345
+ if (registry?.unusedRules) {
346
+ for (const className of registry.unusedRules.keys()) {
347
+ if (/^t\d+$/.test(className) && !cachedClasses.includes(className)) {
348
+ cachedClasses.push(className);
349
+ }
350
+ }
351
+ }
352
+ return {
353
+ activeClasses: activeClasses.sort((a, b) => {
354
+ const aNum = parseInt(a.slice(1));
355
+ const bNum = parseInt(b.slice(1));
356
+ return aNum - bNum;
357
+ }),
358
+ cachedClasses: cachedClasses.sort((a, b) => {
359
+ const aNum = parseInt(a.slice(1));
360
+ const bNum = parseInt(b.slice(1));
361
+ return aNum - bNum;
362
+ }),
363
+ totalStyledClasses: styledClasses,
364
+ };
365
+ },
366
+ /**
367
+ * Get a comprehensive summary of all tasty styles
368
+ */
369
+ getSummary() {
370
+ const usage = this.getClassUsage();
371
+ const allCSS = this.getAllCSS();
372
+ const activeCSS = this.getCSSForClasses(usage.activeClasses);
373
+ const cachedCSS = this.getCSSForClasses(usage.cachedClasses);
374
+ const metrics = injector.instance.getMetrics();
375
+ const root = this._resolveRoot();
376
+ const registry = injector.instance['sheetManager'].getRegistry(root);
377
+ const batchedGroupCount = registry?.batchedRules
378
+ ? registry.batchedRules.size
379
+ : 0;
380
+ const summary = {
381
+ activeClasses: usage.activeClasses,
382
+ cachedClasses: usage.cachedClasses,
383
+ totalStyledClasses: usage.totalStyledClasses,
384
+ activeCSSSize: activeCSS.length,
385
+ cachedCSSSize: cachedCSS.length,
386
+ totalCSSSize: allCSS.length,
387
+ activeCSS,
388
+ cachedCSS,
389
+ allCSS,
390
+ metrics,
391
+ };
392
+ console.group('🎨 Comprehensive Tasty Debug Summary');
393
+ console.log(`📊 Style Cache Status:`);
394
+ console.log(` • Active classes (in DOM): ${summary.activeClasses.length}`);
395
+ console.log(` • Cached classes (performance cache): ${summary.cachedClasses.length}`);
396
+ console.log(` • Total styled classes: ${summary.totalStyledClasses.length}`);
397
+ console.log(`💾 CSS Size:`);
398
+ console.log(` • Active CSS: ${summary.activeCSSSize} characters`);
399
+ console.log(` • Cached CSS: ${summary.cachedCSSSize} characters`);
400
+ console.log(` • Total CSS: ${summary.totalCSSSize} characters`);
401
+ console.log(`⚡ Performance Metrics:`);
402
+ if (metrics) {
403
+ console.log(` • Cache hits: ${metrics.hits}`);
404
+ console.log(` • Cache misses: ${metrics.misses}`);
405
+ console.log(` • Cached style reuses: ${metrics.unusedHits}`);
406
+ console.log(` • Total insertions: ${metrics.totalInsertions}`);
407
+ console.log(` • Styles cleaned up: ${metrics.stylesCleanedUp}`);
408
+ const hitRate = metrics.hits + metrics.misses > 0
409
+ ? (((metrics.hits + metrics.unusedHits) /
410
+ (metrics.hits + metrics.misses)) *
411
+ 100).toFixed(1)
412
+ : 0;
413
+ console.log(` • Overall cache hit rate: ${hitRate}%`);
414
+ }
415
+ else {
416
+ console.log(` • Metrics not available (enable with collectMetrics: true)`);
417
+ }
418
+ console.log('🔍 Details:');
419
+ console.log(' • Active classes:', summary.activeClasses);
420
+ console.log(' • Cached classes:', summary.cachedClasses);
421
+ console.log(` • Batched groups: ${batchedGroupCount}`);
422
+ console.log('ℹ️ Note: Cached styles are kept for performance - avoiding expensive DOM operations');
423
+ console.groupEnd();
424
+ return summary;
425
+ },
426
+ /**
427
+ * Helper to log CSS in a readable format
428
+ */
429
+ logCSS(css, title = 'CSS') {
430
+ if (!css || css.trim() === '') {
431
+ console.log(`${title}: (empty)`);
432
+ return;
433
+ }
434
+ console.group(`🎨 ${title}`);
435
+ const prettified = prettifyCSS(css);
436
+ console.log(prettified);
437
+ console.groupEnd();
438
+ },
439
+ /**
440
+ * Advanced inspection with detailed breakdown and statistics
441
+ */
442
+ inspect(target) {
443
+ const element = typeof target === 'string' ? document.querySelector(target) : target;
444
+ if (!element) {
445
+ console.error(`Element not found: ${target}`);
446
+ return {
447
+ element: null,
448
+ tastyClasses: [],
449
+ css: '',
450
+ cssSize: 0,
451
+ ruleCount: 0,
452
+ breakdown: {},
453
+ stats: {
454
+ totalClasses: 0,
455
+ totalRules: 0,
456
+ totalCSSSize: 0,
457
+ averageRulesPerClass: 0,
458
+ averageCSSPerClass: 0,
459
+ },
460
+ };
461
+ }
462
+ // Find tasty classes on this element
463
+ const classList = element.getAttribute('class') || '';
464
+ const tastyClasses = classList
465
+ .split(/\s+/)
466
+ .filter((cls) => /^t\d+$/.test(cls));
467
+ // Get CSS for the entire subtree
468
+ const fullCSS = getCssTextForNode(element, { root: this._resolveRoot() });
469
+ const prettifiedCSS = prettifyCSS(fullCSS);
470
+ // Count CSS rules in the full CSS
471
+ const ruleCount = (fullCSS.match(/\{[^}]*\}/g) || []).length;
472
+ // Get CSS breakdown per class with detailed stats
473
+ const breakdown = {};
474
+ let totalClassRules = 0;
475
+ let totalClassCSSSize = 0;
476
+ tastyClasses.forEach((className) => {
477
+ const classCSS = this.getCSSForClass(className);
478
+ const classRuleCount = (classCSS.match(/\{[^}]*\}/g) || []).length;
479
+ breakdown[className] = {
480
+ css: classCSS,
481
+ cssSize: classCSS.length,
482
+ ruleCount: classRuleCount,
483
+ };
484
+ totalClassRules += classRuleCount;
485
+ totalClassCSSSize += classCSS.length;
486
+ });
487
+ // Calculate statistics
488
+ const stats = {
489
+ totalClasses: tastyClasses.length,
490
+ totalRules: totalClassRules,
491
+ totalCSSSize: totalClassCSSSize,
492
+ averageRulesPerClass: tastyClasses.length > 0 ? totalClassRules / tastyClasses.length : 0,
493
+ averageCSSPerClass: tastyClasses.length > 0 ? totalClassCSSSize / tastyClasses.length : 0,
494
+ };
495
+ const result = {
496
+ element,
497
+ tastyClasses,
498
+ css: prettifiedCSS,
499
+ cssSize: fullCSS.length,
500
+ ruleCount,
501
+ breakdown,
502
+ stats,
503
+ };
504
+ console.group(`🔍 Detailed Tasty Inspection`);
505
+ console.log('Element:', element);
506
+ console.log('📊 Overview:');
507
+ console.log(` • Tasty classes: ${stats.totalClasses}`);
508
+ console.log(` • Total rules applied: ${ruleCount}`);
509
+ console.log(` • Total CSS size: ${fullCSS.length} characters`);
510
+ console.log('🏷️ Classes:', tastyClasses);
511
+ console.log('📈 Statistics:');
512
+ console.log(` • Rules per class (avg): ${stats.averageRulesPerClass.toFixed(1)}`);
513
+ console.log(` • CSS per class (avg): ${stats.averageCSSPerClass.toFixed(0)} chars`);
514
+ console.log('🎨 Element CSS:\n' + prettifiedCSS);
515
+ console.log('🔨 CSS breakdown by class:');
516
+ Object.entries(breakdown).forEach(([className, data]) => {
517
+ console.log(` ${className}: ${data.ruleCount} rules, ${data.cssSize} chars`);
518
+ });
519
+ console.groupEnd();
520
+ return result;
521
+ },
522
+ /**
523
+ * Get CSS for active classes only
524
+ */
525
+ getActiveCSS() {
526
+ const usage = this.getClassUsage();
527
+ return this.getCSSForClasses(usage.activeClasses);
528
+ },
529
+ /**
530
+ * Get CSS for cached classes only
531
+ */
532
+ getCachedCSS() {
533
+ const usage = this.getClassUsage();
534
+ return this.getCSSForClasses(usage.cachedClasses);
535
+ },
536
+ };
537
+ /**
538
+ * Check if we're in a development environment at runtime
539
+ * Uses bracket notation to avoid bundler compilation
540
+ */
541
+ function isDevelopmentEnvironment() {
542
+ if (typeof process === 'undefined')
543
+ return false;
544
+ // Use bracket notation to avoid bundler replacement
545
+ const nodeEnv = process.env?.['NODE_ENV'];
546
+ return nodeEnv === 'development' || nodeEnv !== 'production';
547
+ }
548
+ /**
549
+ * Install tastyDebug on window object for easy access in browser console
550
+ * Only in non-production environments unless forced
551
+ */
552
+ export function installGlobalDebug(force = false) {
553
+ if (typeof window !== 'undefined' &&
554
+ (force || isDevelopmentEnvironment()) &&
555
+ window.tastyDebug !== tastyDebug) {
556
+ window.tastyDebug = tastyDebug;
557
+ console.log('🎨 tastyDebug installed on window.\n' +
558
+ '💡 Quick start:\n' +
559
+ ' • tastyDebug.getSummary() - comprehensive overview\n' +
560
+ ' • tastyDebug.inspect(".my-element") - detailed element inspection\n' +
561
+ ' • tastyDebug.findClassGaps() - find missing class numbers\n' +
562
+ ' • tastyDebug.getActiveCSS() / getCachedCSS() - get specific CSS');
563
+ }
564
+ }
565
+ /**
566
+ * Auto-install in development
567
+ */
568
+ if (typeof window !== 'undefined' && isDevelopmentEnvironment()) {
569
+ installGlobalDebug();
570
+ }
571
+
572
+
package/es/tasty/index.js CHANGED
@@ -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-da1f163
4
+ * @cube-dev/ui-kit v0.0.0-canary-7f29fb4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -18,5 +18,7 @@ export * from './providers/BreakpointsProvider';
18
18
  export * from './utils/mergeStyles';
19
19
  export * from './utils/warnings';
20
20
  export * from './utils/getDisplayName';
21
+ export * from './injector';
22
+ export * from './debug';
21
23
 
22
24