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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/Item.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +2 -2
  23. package/es/components/actions/Action/Action.js +14 -18
  24. package/es/components/actions/Button/Button.js +2 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  31. package/es/components/actions/ItemButton/index.js +1 -1
  32. package/es/components/actions/Menu/Menu.js +1 -1
  33. package/es/components/actions/Menu/MenuItem.js +1 -1
  34. package/es/components/actions/Menu/MenuSection.js +1 -1
  35. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  36. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  37. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  38. package/es/components/actions/Menu/context.js +1 -1
  39. package/es/components/actions/Menu/index.js +1 -1
  40. package/es/components/actions/Menu/styled.js +1 -1
  41. package/es/components/actions/index.js +1 -1
  42. package/es/components/actions/use-action.js +1 -1
  43. package/es/components/actions/use-anchored-menu.js +1 -1
  44. package/es/components/actions/use-context-menu.js +1 -1
  45. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/es/components/content/Alert/Alert.js +1 -1
  47. package/es/components/content/Alert/index.js +1 -1
  48. package/es/components/content/Alert/types.js +1 -1
  49. package/es/components/content/Alert/use-alert.js +1 -1
  50. package/es/components/content/Avatar/Avatar.js +1 -1
  51. package/es/components/content/Badge/Badge.js +1 -1
  52. package/es/components/content/Card/Card.js +1 -1
  53. package/es/components/content/Content.js +1 -1
  54. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  55. package/es/components/content/CopyPasteBlock/index.js +1 -1
  56. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/es/components/content/CopySnippet/index.js +1 -1
  58. package/es/components/content/Divider.js +1 -1
  59. package/es/components/content/Footer.js +1 -1
  60. package/es/components/content/Header.js +1 -1
  61. package/es/components/content/HotKeys/HotKeys.js +1 -1
  62. package/es/components/content/HotKeys/index.js +1 -1
  63. package/es/components/content/ItemBase/ItemBase.js +5 -4
  64. package/es/components/content/ItemBase/index.js +1 -1
  65. package/es/components/content/List/SectionHeading.js +1 -1
  66. package/es/components/content/List/index.js +1 -1
  67. package/es/components/content/Paragraph.js +1 -1
  68. package/es/components/content/Placeholder/Placeholder.js +1 -1
  69. package/es/components/content/PrismCode/PrismCode.js +1 -1
  70. package/es/components/content/PrismCode/prismSetup.js +1 -1
  71. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  72. package/es/components/content/Result/Result.js +1 -1
  73. package/es/components/content/Skeleton/Skeleton.js +1 -1
  74. package/es/components/content/Tag/Tag.js +1 -1
  75. package/es/components/content/Text.js +3 -3
  76. package/es/components/content/Title.js +3 -3
  77. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  78. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  79. package/es/components/fields/Checkbox/context.js +1 -1
  80. package/es/components/fields/Checkbox/index.js +1 -1
  81. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  82. package/es/components/fields/ComboBox/index.js +1 -1
  83. package/es/components/fields/DatePicker/DateInput.js +1 -1
  84. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  85. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  86. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  87. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  88. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  89. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  90. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  91. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  92. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  93. package/es/components/fields/DatePicker/index.js +1 -1
  94. package/es/components/fields/DatePicker/intl.js +1 -1
  95. package/es/components/fields/DatePicker/parseDate.js +1 -1
  96. package/es/components/fields/DatePicker/props.js +1 -1
  97. package/es/components/fields/DatePicker/types.js +1 -1
  98. package/es/components/fields/DatePicker/utils.js +1 -1
  99. package/es/components/fields/FileInput/FileInput.js +1 -1
  100. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  101. package/es/components/fields/FilterListBox/index.js +1 -1
  102. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  103. package/es/components/fields/FilterPicker/index.js +1 -1
  104. package/es/components/fields/Input/Input.js +1 -1
  105. package/es/components/fields/Input/index.js +1 -1
  106. package/es/components/fields/ListBox/ListBox.js +1 -1
  107. package/es/components/fields/ListBox/index.js +1 -1
  108. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  109. package/es/components/fields/NumberInput/StepButton.js +1 -1
  110. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  111. package/es/components/fields/RadioGroup/Radio.js +1 -1
  112. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  113. package/es/components/fields/RadioGroup/context.js +1 -1
  114. package/es/components/fields/RadioGroup/index.js +1 -1
  115. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  116. package/es/components/fields/SearchInput/index.js +1 -1
  117. package/es/components/fields/Select/Select.js +1 -1
  118. package/es/components/fields/Select/index.js +1 -1
  119. package/es/components/fields/Slider/Gradation.js +1 -1
  120. package/es/components/fields/Slider/Header.js +1 -1
  121. package/es/components/fields/Slider/RangeSlider.js +1 -1
  122. package/es/components/fields/Slider/Slider.js +1 -1
  123. package/es/components/fields/Slider/SliderBase.js +1 -1
  124. package/es/components/fields/Slider/SliderInput.js +1 -1
  125. package/es/components/fields/Slider/SliderThumb.js +1 -1
  126. package/es/components/fields/Slider/SliderTrack.js +1 -1
  127. package/es/components/fields/Slider/elements.js +1 -1
  128. package/es/components/fields/Slider/index.js +1 -1
  129. package/es/components/fields/Slider/types.js +1 -1
  130. package/es/components/fields/Switch/Switch.js +1 -1
  131. package/es/components/fields/Switch/index.js +1 -1
  132. package/es/components/fields/TextArea/TextArea.js +1 -1
  133. package/es/components/fields/TextArea/index.js +1 -1
  134. package/es/components/fields/TextInput/TextInput.js +1 -1
  135. package/es/components/fields/TextInput/TextInputBase.js +3 -2
  136. package/es/components/fields/TextInput/index.js +1 -1
  137. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  138. package/es/components/fields/TextInputMapper/index.js +1 -1
  139. package/es/components/fields/index.js +1 -1
  140. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  141. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  142. package/es/components/form/FieldWrapper/index.js +1 -1
  143. package/es/components/form/FieldWrapper/types.js +1 -1
  144. package/es/components/form/Form/Field.js +1 -1
  145. package/es/components/form/Form/Form.js +1 -1
  146. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  147. package/es/components/form/Form/ResetButton/index.js +1 -1
  148. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  149. package/es/components/form/Form/SubmitButton/index.js +1 -1
  150. package/es/components/form/Form/SubmitError.js +1 -1
  151. package/es/components/form/Form/index.js +1 -1
  152. package/es/components/form/Form/types.js +1 -1
  153. package/es/components/form/Form/use-field/index.js +1 -1
  154. package/es/components/form/Form/use-field/types.js +1 -1
  155. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  156. package/es/components/form/Form/use-field/use-field.js +1 -1
  157. package/es/components/form/Form/use-form.js +1 -1
  158. package/es/components/form/Form/validation.js +1 -1
  159. package/es/components/form/Label.js +1 -1
  160. package/es/components/form/index.js +1 -1
  161. package/es/components/form/wrapper.js +1 -1
  162. package/es/components/layout/Flex.js +1 -1
  163. package/es/components/layout/Flow.js +1 -1
  164. package/es/components/layout/Grid.js +1 -1
  165. package/es/components/layout/Panel.js +1 -1
  166. package/es/components/layout/Prefix.js +1 -1
  167. package/es/components/layout/ResizablePanel.js +1 -1
  168. package/es/components/layout/Space.js +1 -1
  169. package/es/components/layout/Suffix.js +1 -1
  170. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  171. package/es/components/navigation/Link/Link.js +1 -1
  172. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  173. package/es/components/organisms/Modal/Modal.js +1 -1
  174. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  175. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  176. package/es/components/other/Calendar/Calendar.js +1 -1
  177. package/es/components/other/Calendar/CalendarCell.js +1 -1
  178. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  179. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  180. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  181. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  182. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  183. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  184. package/es/components/overlays/AlertDialog/index.js +1 -1
  185. package/es/components/overlays/AlertDialog/types.js +1 -1
  186. package/es/components/overlays/Dialog/Dialog.js +1 -1
  187. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  188. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  189. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  190. package/es/components/overlays/Dialog/context.js +1 -1
  191. package/es/components/overlays/Dialog/index.js +1 -1
  192. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  193. package/es/components/overlays/Modal/Modal.js +1 -1
  194. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  195. package/es/components/overlays/Modal/Overlay.js +1 -1
  196. package/es/components/overlays/Modal/Popover.js +1 -1
  197. package/es/components/overlays/Modal/Tray.js +1 -1
  198. package/es/components/overlays/Modal/Underlay.js +1 -1
  199. package/es/components/overlays/Modal/index.js +1 -1
  200. package/es/components/overlays/Modal/types.js +1 -1
  201. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  202. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  203. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  204. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  205. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  206. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  207. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  208. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  209. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  214. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  218. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  219. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  220. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  221. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  222. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  223. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  224. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  225. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  226. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  227. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  228. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  229. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  230. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  231. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  232. package/es/components/overlays/NewNotifications/index.js +1 -1
  233. package/es/components/overlays/NewNotifications/types.js +1 -1
  234. package/es/components/overlays/Notification/Notification.js +1 -1
  235. package/es/components/overlays/OverlayWrapper.js +1 -1
  236. package/es/components/overlays/Toasts/Toast.js +1 -1
  237. package/es/components/overlays/Toasts/index.js +1 -1
  238. package/es/components/overlays/Toasts/types.js +1 -1
  239. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  240. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  241. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  242. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  243. package/es/components/overlays/Tooltip/context.js +1 -1
  244. package/es/components/overlays/Tooltip/index.js +1 -1
  245. package/es/components/portal/Portal.js +1 -1
  246. package/es/components/portal/PortalProvider.js +1 -1
  247. package/es/components/portal/index.js +1 -1
  248. package/es/components/portal/types.js +1 -1
  249. package/es/components/portal/usePortal.js +1 -1
  250. package/es/components/shared/InvalidIcon.js +1 -1
  251. package/es/components/shared/ValidIcon.js +1 -1
  252. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  253. package/es/components/status/LoadingAnimation/index.js +1 -1
  254. package/es/components/status/Spin/Cube.js +1 -1
  255. package/es/components/status/Spin/InternalSpinner.js +1 -1
  256. package/es/components/status/Spin/Spin.js +1 -1
  257. package/es/components/status/Spin/SpinsContainer.js +1 -1
  258. package/es/components/status/Spin/index.js +1 -1
  259. package/es/components/status/Spin/types.js +1 -1
  260. package/es/components/status/index.js +1 -1
  261. package/es/data/item-themes.js +1 -1
  262. package/es/data/themes.js +1 -1
  263. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  264. package/es/icons/AdjustmentsIcon.js +1 -1
  265. package/es/icons/AiIcon.js +1 -1
  266. package/es/icons/AreaChartIcon.js +1 -1
  267. package/es/icons/BackwardIcon.js +1 -1
  268. package/es/icons/BarChartIcon.js +1 -1
  269. package/es/icons/BellFilledIcon.js +1 -1
  270. package/es/icons/BellIcon.js +1 -1
  271. package/es/icons/BooleanIcon.js +1 -1
  272. package/es/icons/CalendarEditIcon.js +1 -1
  273. package/es/icons/CalendarIcon.js +1 -1
  274. package/es/icons/CaretDownIcon.js +1 -1
  275. package/es/icons/CaretUpIcon.js +1 -1
  276. package/es/icons/ChartAreaStackedIcon.js +1 -1
  277. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  278. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  279. package/es/icons/ChartBarGroupedIcon.js +1 -1
  280. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  281. package/es/icons/ChartBarLineIcon.js +1 -1
  282. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  283. package/es/icons/ChartBarStackedIcon.js +1 -1
  284. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  285. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  286. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  287. package/es/icons/ChartBoxPlotIcon.js +1 -1
  288. package/es/icons/ChartBubbleIcon.js +1 -1
  289. package/es/icons/ChartDonut2Icon.js +1 -1
  290. package/es/icons/ChartFunnelIcon.js +1 -1
  291. package/es/icons/ChartKPIIcon.js +1 -1
  292. package/es/icons/ChartPie2Icon.js +1 -1
  293. package/es/icons/ChartScatterIcon.js +1 -1
  294. package/es/icons/CheckCircleFilledIcon.js +1 -1
  295. package/es/icons/CheckCircleIcon.js +1 -1
  296. package/es/icons/CheckIcon.js +1 -1
  297. package/es/icons/CircleFilledIcon.js +1 -1
  298. package/es/icons/ClearIcon.js +1 -1
  299. package/es/icons/CloseCircleFilledIcon.js +1 -1
  300. package/es/icons/CloseCircleIcon.js +1 -1
  301. package/es/icons/CloseIcon.js +1 -1
  302. package/es/icons/CodeIcon.js +1 -1
  303. package/es/icons/CopyIcon.js +1 -1
  304. package/es/icons/CountIcon.js +1 -1
  305. package/es/icons/CubeIcon.js +1 -1
  306. package/es/icons/DangerIcon.js +1 -1
  307. package/es/icons/DashboardIcon.js +1 -1
  308. package/es/icons/DatabaseIcon.js +1 -1
  309. package/es/icons/DirectionIcon.js +1 -1
  310. package/es/icons/DonutIcon.js +1 -1
  311. package/es/icons/DownIcon.js +1 -1
  312. package/es/icons/EditIcon.js +1 -1
  313. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  314. package/es/icons/ExclamationCircleIcon.js +1 -1
  315. package/es/icons/ExclamationIcon.js +1 -1
  316. package/es/icons/EyeIcon.js +1 -1
  317. package/es/icons/EyeInvisibleIcon.js +1 -1
  318. package/es/icons/FilterIcon.js +1 -1
  319. package/es/icons/FolderFilledIcon.js +1 -1
  320. package/es/icons/FolderIcon.js +1 -1
  321. package/es/icons/FolderOpenFilledIcon.js +1 -1
  322. package/es/icons/FolderOpenIcon.js +1 -1
  323. package/es/icons/ForwardIcon.js +1 -1
  324. package/es/icons/HierarchyIcon.js +1 -1
  325. package/es/icons/Icon.js +1 -1
  326. package/es/icons/InfoCircleIcon.js +1 -1
  327. package/es/icons/InfoIcon.js +1 -1
  328. package/es/icons/KeyIcon.js +1 -1
  329. package/es/icons/LeftIcon.js +1 -1
  330. package/es/icons/LineChartIcon.js +1 -1
  331. package/es/icons/LoadingIcon.js +1 -1
  332. package/es/icons/LockFilledIcon.js +1 -1
  333. package/es/icons/LockIcon.js +1 -1
  334. package/es/icons/MoreIcon.js +1 -1
  335. package/es/icons/NotAllowedIcon.js +1 -1
  336. package/es/icons/NumberIcon.js +1 -1
  337. package/es/icons/PauseCircleFilledIcon.js +1 -1
  338. package/es/icons/PauseCircleIcon.js +1 -1
  339. package/es/icons/PauseIcon.js +1 -1
  340. package/es/icons/PieChartIcon.js +1 -1
  341. package/es/icons/PlayCircleIcon.js +1 -1
  342. package/es/icons/PlayIcon.js +1 -1
  343. package/es/icons/PlusIcon.js +1 -1
  344. package/es/icons/ReloadIcon.js +1 -1
  345. package/es/icons/ReportIcon.js +1 -1
  346. package/es/icons/ReturnIcon.js +1 -1
  347. package/es/icons/RightIcon.js +1 -1
  348. package/es/icons/SchemeIcon.js +1 -1
  349. package/es/icons/SearchIcon.js +1 -1
  350. package/es/icons/SettingsIcon.js +1 -1
  351. package/es/icons/ShieldFilledIcon.js +1 -1
  352. package/es/icons/ShieldIcon.js +1 -1
  353. package/es/icons/SlashIcon.js +1 -1
  354. package/es/icons/SparklesIcon.js +1 -1
  355. package/es/icons/SqlIcon.js +1 -1
  356. package/es/icons/StatsIcon.js +1 -1
  357. package/es/icons/StopIcon.js +1 -1
  358. package/es/icons/StringIcon.js +1 -1
  359. package/es/icons/SwitchIcon.js +1 -1
  360. package/es/icons/TableIcon.js +1 -1
  361. package/es/icons/ThumbsDownIcon.js +1 -1
  362. package/es/icons/ThumbsUpIcon.js +1 -1
  363. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  364. package/es/icons/ThunderboltFilledIcon.js +1 -1
  365. package/es/icons/ThunderboltIcon.js +1 -1
  366. package/es/icons/TimeIcon.js +1 -1
  367. package/es/icons/UnlockIcon.js +1 -1
  368. package/es/icons/UpIcon.js +1 -1
  369. package/es/icons/UserGroupIcon.js +1 -1
  370. package/es/icons/UserIcon.js +1 -1
  371. package/es/icons/UserLockIcon.js +1 -1
  372. package/es/icons/ViewIcon.js +1 -1
  373. package/es/icons/WarningFilledIcon.js +1 -1
  374. package/es/icons/WarningIcon.js +1 -1
  375. package/es/icons/add-new-icon.js +1 -1
  376. package/es/icons/index.js +1 -1
  377. package/es/icons/wrap-icon.js +1 -1
  378. package/es/index.js +1 -1
  379. package/es/provider.js +1 -1
  380. package/es/providers/TrackingProvider.js +1 -1
  381. package/es/services/notification.js +1 -1
  382. package/es/shared/form.js +1 -1
  383. package/es/shared/index.js +1 -1
  384. package/es/stories/Form.legacy-stories.js +1 -1
  385. package/es/stories/FormFieldArgs.js +1 -1
  386. package/es/stories/Layout.stories.js +1 -1
  387. package/es/stories/Tasty.stories.js +1 -1
  388. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  389. package/es/stories/components/DialogFormApp.js +1 -1
  390. package/es/stories/components/StyledButton.js +1 -1
  391. package/es/stories/lists/baseProps.js +1 -2
  392. package/es/tasty/index.js +2 -1
  393. package/es/tasty/injector/flatten.js +350 -0
  394. package/es/tasty/injector/index.js +165 -0
  395. package/es/tasty/injector/injector.js +315 -0
  396. package/es/tasty/injector/sheet-manager.js +518 -0
  397. package/es/tasty/injector/types.js +10 -0
  398. package/es/tasty/parser/classify.js +1 -1
  399. package/es/tasty/parser/const.js +1 -1
  400. package/es/tasty/parser/lru.js +38 -2
  401. package/es/tasty/parser/parser.js +1 -1
  402. package/es/tasty/parser/tokenizer.js +1 -1
  403. package/es/tasty/parser/types.js +1 -1
  404. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  405. package/es/tasty/styles/align.js +1 -1
  406. package/es/tasty/styles/border.js +1 -1
  407. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  408. package/es/tasty/styles/color.js +8 -12
  409. package/es/tasty/styles/createStyle.js +3 -3
  410. package/es/tasty/styles/dimension.js +1 -1
  411. package/es/tasty/styles/display.js +1 -1
  412. package/es/tasty/styles/fade.js +1 -1
  413. package/es/tasty/styles/fill.js +6 -8
  414. package/es/tasty/styles/flow.js +1 -1
  415. package/es/tasty/styles/font.js +1 -1
  416. package/es/tasty/styles/fontStyle.js +1 -1
  417. package/es/tasty/styles/gap.js +1 -1
  418. package/es/tasty/styles/groupRadius.js +1 -1
  419. package/es/tasty/styles/height.js +1 -1
  420. package/es/tasty/styles/index.js +1 -1
  421. package/es/tasty/styles/inset.js +1 -1
  422. package/es/tasty/styles/justify.js +1 -1
  423. package/es/tasty/styles/list.js +1 -1
  424. package/es/tasty/styles/margin.js +1 -1
  425. package/es/tasty/styles/marginBlock.js +1 -1
  426. package/es/tasty/styles/marginInline.js +1 -1
  427. package/es/tasty/styles/outline.js +1 -1
  428. package/es/tasty/styles/padding.js +1 -1
  429. package/es/tasty/styles/paddingBlock.js +1 -1
  430. package/es/tasty/styles/paddingInline.js +1 -1
  431. package/es/tasty/styles/place.js +1 -1
  432. package/es/tasty/styles/predefined.js +1 -3
  433. package/es/tasty/styles/preset.js +1 -1
  434. package/es/tasty/styles/radius.js +1 -1
  435. package/es/tasty/styles/reset.js +40 -44
  436. package/es/tasty/styles/scrollbar.js +1 -1
  437. package/es/tasty/styles/shadow.js +1 -1
  438. package/es/tasty/styles/styledScrollbar.js +1 -1
  439. package/es/tasty/styles/transition.js +1 -1
  440. package/es/tasty/styles/types.js +1 -1
  441. package/es/tasty/styles/width.js +1 -1
  442. package/es/tasty/tasty.js +92 -19
  443. package/es/tasty/types.js +1 -1
  444. package/es/tasty/utils/cache-wrapper.js +1 -1
  445. package/es/tasty/utils/case-converter.js +1 -1
  446. package/es/tasty/utils/colors.js +1 -1
  447. package/es/tasty/utils/dotize.js +1 -1
  448. package/es/tasty/utils/filterBaseProps.js +1 -1
  449. package/es/tasty/utils/getDisplayName.js +1 -1
  450. package/es/tasty/utils/getModCombinations.js +1 -1
  451. package/es/tasty/utils/mergeStyles.js +1 -1
  452. package/es/tasty/utils/modAttrs.js +1 -1
  453. package/es/tasty/utils/renderStyles.js +515 -57
  454. package/es/tasty/utils/responsive.js +1 -1
  455. package/es/tasty/utils/string.js +1 -1
  456. package/es/tasty/utils/styles.js +3 -62
  457. package/es/tasty/utils/warnings.js +1 -1
  458. package/es/tokens.js +1 -1
  459. package/es/type-checks.js +1 -1
  460. package/es/utils/ResizeSensor.js +1 -1
  461. package/es/utils/modules.js +1 -1
  462. package/es/utils/promise.js +1 -1
  463. package/es/utils/random.js +1 -1
  464. package/es/utils/range.js +1 -1
  465. package/es/utils/react/Slots.js +1 -1
  466. package/es/utils/react/chain.js +1 -1
  467. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  468. package/es/utils/react/index.js +1 -1
  469. package/es/utils/react/interactions.js +1 -1
  470. package/es/utils/react/isTextOnly.js +1 -1
  471. package/es/utils/react/mapProps.js +1 -1
  472. package/es/utils/react/mergeProps.js +1 -1
  473. package/es/utils/react/nullableValue.js +1 -1
  474. package/es/utils/react/sharedStore.js +1 -1
  475. package/es/utils/react/useCombinedRefs.js +1 -1
  476. package/es/utils/react/useControlledFocusVisible.js +1 -1
  477. package/es/utils/react/useEventBus.js +1 -1
  478. package/es/utils/react/useId.js +1 -1
  479. package/es/utils/react/useIsDarwin.js +1 -1
  480. package/es/utils/react/useKeySymbols.js +1 -1
  481. package/es/utils/react/useLayoutEffect.js +1 -1
  482. package/es/utils/react/useQaProps.js +1 -1
  483. package/es/utils/react/useViewportSize.js +1 -1
  484. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  485. package/es/utils/transitions.js +1 -1
  486. package/es/utils/tree.js +1 -1
  487. package/es/utils/warnings.js +1 -1
  488. package/es/version.js +2 -2
  489. package/package.json +1 -1
  490. package/types/components/actions/Button/Button.d.ts +1 -0
  491. package/types/components/actions/Menu/styled.d.ts +699 -702
  492. package/types/components/actions/use-action.d.ts +1 -1
  493. package/types/components/content/List/SectionHeading.d.ts +233 -234
  494. package/types/components/fields/DatePicker/DatePickerElement.d.ts +233 -234
  495. package/types/tasty/index.d.ts +1 -0
  496. package/types/tasty/injector/flatten.d.ts +16 -0
  497. package/types/tasty/injector/index.d.ts +64 -0
  498. package/types/tasty/injector/injector.d.ts +82 -0
  499. package/types/tasty/injector/sheet-manager.d.ts +74 -0
  500. package/types/tasty/injector/types.d.ts +71 -0
  501. package/types/tasty/parser/lru.d.ts +5 -1
  502. package/types/tasty/styles/color.d.ts +3 -1
  503. package/types/tasty/styles/reset.d.ts +1 -2
  504. package/types/tasty/types.d.ts +0 -2
  505. package/types/tasty/utils/renderStyles.d.ts +25 -7
  506. package/types/tasty/utils/styles.d.ts +1 -9
@@ -0,0 +1,165 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-21dd9ff
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { StyleInjector } from './injector';
9
+ // Use a more robust global singleton that survives React Strict Mode
10
+ const GLOBAL_INJECTOR_KEY = '__TASTY_GLOBAL_INJECTOR__';
11
+ /**
12
+ * Detect if we're running in a test environment
13
+ */
14
+ function isTestEnvironment() {
15
+ // Check Node.js environment
16
+ if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {
17
+ return true;
18
+ }
19
+ // Check for Jest globals (safely)
20
+ if (typeof global !== 'undefined') {
21
+ const g = global;
22
+ if (g.jest || g.expect || g.describe || g.it) {
23
+ return true;
24
+ }
25
+ }
26
+ // Check for jsdom environment (common in tests)
27
+ if (typeof window !== 'undefined' &&
28
+ window.navigator?.userAgent?.includes('jsdom')) {
29
+ return true;
30
+ }
31
+ // Check for other test runners
32
+ if (typeof globalThis !== 'undefined') {
33
+ const gt = globalThis;
34
+ if (gt.vitest || gt.mocha) {
35
+ return true;
36
+ }
37
+ }
38
+ return false;
39
+ }
40
+ /**
41
+ * Configure the global style injector
42
+ */
43
+ export function configure(config = {}) {
44
+ const fullConfig = {
45
+ maxRulesPerSheet: 8192, // safer default cap per sheet
46
+ cacheSize: 500, // default LRU cache size for disposed rulesets
47
+ cleanupDelay: 5000, // default delay before actual DOM cleanup (ignored if idleCleanup is true)
48
+ idleCleanup: true, // default to using requestIdleCallback instead of setTimeout
49
+ collectMetrics: false, // default to no performance tracking
50
+ forceTextInjection: false, // auto-enable for test environments
51
+ debugMode: false, // reduce memory usage by avoiding full cssText storage
52
+ ...config,
53
+ };
54
+ // Store on window to survive React Strict Mode resets
55
+ if (typeof window !== 'undefined') {
56
+ window[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
57
+ }
58
+ else {
59
+ // Fallback for SSR
60
+ globalThis[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
61
+ }
62
+ }
63
+ /**
64
+ * Get or create the global injector instance
65
+ */
66
+ function getGlobalInjector() {
67
+ const storage = typeof window !== 'undefined' ? window : globalThis;
68
+ if (!storage[GLOBAL_INJECTOR_KEY]) {
69
+ configure();
70
+ }
71
+ return storage[GLOBAL_INJECTOR_KEY];
72
+ }
73
+ /**
74
+ * Inject styles and return className with dispose function
75
+ */
76
+ export function inject(rules, options) {
77
+ return getGlobalInjector().inject(rules, options);
78
+ }
79
+ /**
80
+ * Inject global CSS rule (legacy method - not supported in direct injector)
81
+ */
82
+ export function injectGlobal(selector, cssText, options) {
83
+ return getGlobalInjector().injectGlobal(selector, cssText, options);
84
+ }
85
+ /**
86
+ * Get CSS text from all sheets (for SSR)
87
+ */
88
+ export function getCssText(options) {
89
+ return getGlobalInjector().getCssText(options);
90
+ }
91
+ /**
92
+ * Collect only CSS used by a rendered subtree (like jest-styled-components).
93
+ * Pass the container returned by render(...).
94
+ */
95
+ export function getCssTextForNode(node, options) {
96
+ // Collect tasty-generated class names (t<number>) from the subtree
97
+ const classSet = new Set();
98
+ const readClasses = (el) => {
99
+ const cls = el.getAttribute('class');
100
+ if (!cls)
101
+ return;
102
+ for (const token of cls.split(/\s+/)) {
103
+ if (/^t\d+$/.test(token))
104
+ classSet.add(token);
105
+ }
106
+ };
107
+ // Include node itself if it's an Element
108
+ if (node.getAttribute) {
109
+ readClasses(node);
110
+ }
111
+ // Walk descendants
112
+ const elements = node.querySelectorAll
113
+ ? node.querySelectorAll('[class]')
114
+ : [];
115
+ elements && elements.forEach(readClasses);
116
+ return getGlobalInjector().getCssTextForClasses(classSet, options);
117
+ }
118
+ /**
119
+ * Force cleanup of unused rules
120
+ */
121
+ export function cleanup(root) {
122
+ return getGlobalInjector().cleanup(root);
123
+ }
124
+ /**
125
+ * Check if we're currently running in a test environment
126
+ */
127
+ export function getIsTestEnvironment() {
128
+ return isTestEnvironment();
129
+ }
130
+ /**
131
+ * Get the global injector instance for debugging
132
+ */
133
+ export const injector = {
134
+ get instance() {
135
+ return getGlobalInjector();
136
+ },
137
+ };
138
+ /**
139
+ * Destroy all resources and clean up
140
+ */
141
+ export function destroy(root) {
142
+ return getGlobalInjector().destroy(root);
143
+ }
144
+ /**
145
+ * Create a new isolated injector instance
146
+ */
147
+ export function createInjector(config = {}) {
148
+ const isTest = isTestEnvironment();
149
+ const fullConfig = {
150
+ maxRulesPerSheet: 8192, // safer default cap per sheet
151
+ cacheSize: 500, // default LRU cache size for disposed rulesets
152
+ cleanupDelay: 5000, // default delay before actual DOM cleanup (ignored if idleCleanup is true)
153
+ idleCleanup: true, // default to using requestIdleCallback instead of setTimeout
154
+ collectMetrics: false, // default to no performance tracking
155
+ forceTextInjection: isTest, // auto-enable for test environments
156
+ debugMode: false, // reduce memory usage by avoiding full cssText storage
157
+ ...config,
158
+ };
159
+ return new StyleInjector(fullConfig);
160
+ }
161
+ export { StyleInjector } from './injector';
162
+ export { SheetManager } from './sheet-manager';
163
+ export { flattenNestedCss } from './flatten';
164
+
165
+
@@ -0,0 +1,315 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-21dd9ff
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Style injector that works with structured style objects
10
+ * Eliminates CSS string parsing for better performance
11
+ */
12
+ import { flattenNestedCssForSelector } from './flatten';
13
+ import { SheetManager } from './sheet-manager';
14
+ /**
15
+ * Generate sequential class name with format t{number}
16
+ */
17
+ function generateClassName(counter) {
18
+ return `t${counter}`;
19
+ }
20
+ export class StyleInjector {
21
+ sheetManager;
22
+ config;
23
+ cleanupScheduled = false;
24
+ constructor(config = {}) {
25
+ this.config = config;
26
+ this.sheetManager = new SheetManager(config);
27
+ }
28
+ /**
29
+ * Inject styles from StyleResult objects
30
+ */
31
+ inject(rules, options) {
32
+ const root = options?.root || document;
33
+ const registry = this.sheetManager.getRegistry(root);
34
+ if (rules.length === 0) {
35
+ return {
36
+ className: '',
37
+ dispose: () => { },
38
+ };
39
+ }
40
+ // Convert to flattened rules
41
+ const flattenedRules = this.convertToFlattenedRules(rules);
42
+ // Try to dedupe by className first — if the same class was already inserted, reuse it
43
+ // Only extract className if it looks like a generated tasty className (t + digits)
44
+ const preExtractedClass = this.extractClassName(rules);
45
+ const generatedClass = preExtractedClass && /^t\d+$/.test(preExtractedClass)
46
+ ? preExtractedClass
47
+ : null;
48
+ if (generatedClass && registry.rules.has(generatedClass)) {
49
+ const currentRefCount = registry.refCounts.get(generatedClass) || 0;
50
+ registry.refCounts.set(generatedClass, currentRefCount + 1);
51
+ // Update metrics
52
+ if (registry.metrics) {
53
+ registry.metrics.hits++;
54
+ }
55
+ return {
56
+ className: generatedClass,
57
+ dispose: () => this.dispose(generatedClass, registry),
58
+ };
59
+ }
60
+ // Try to restore from disposed cache if className exists but is not active
61
+ if (generatedClass && !registry.rules.has(generatedClass)) {
62
+ const restored = this.sheetManager.restoreFromDisposedCache(registry, generatedClass);
63
+ if (restored) {
64
+ const currentRefCount = registry.refCounts.get(generatedClass) || 0;
65
+ registry.refCounts.set(generatedClass, currentRefCount + 1);
66
+ return {
67
+ className: generatedClass,
68
+ dispose: () => this.dispose(generatedClass, registry),
69
+ };
70
+ }
71
+ }
72
+ // No active cache dedupe — rely on provided className or disposed cache only
73
+ // Generate final className - only use extracted className if it's a generated tasty className
74
+ const className = generatedClass
75
+ ? generatedClass
76
+ : generateClassName(registry.classCounter++);
77
+ // If a different pre-extracted class was used in rules, rewrite selectors to the final class
78
+ const rulesToInsert = generatedClass && generatedClass !== className
79
+ ? flattenedRules.map((r) => {
80
+ if (r.selector.startsWith('.' + generatedClass)) {
81
+ return {
82
+ ...r,
83
+ selector: '.' + className + r.selector.slice(generatedClass.length + 1),
84
+ };
85
+ }
86
+ return r;
87
+ })
88
+ : flattenedRules;
89
+ // Insert rules using existing sheet manager
90
+ const ruleInfo = this.sheetManager.insertRule(registry, rulesToInsert, className, root);
91
+ if (!ruleInfo) {
92
+ // Update metrics
93
+ if (registry.metrics) {
94
+ registry.metrics.misses++;
95
+ }
96
+ return {
97
+ className,
98
+ dispose: () => { },
99
+ };
100
+ }
101
+ // Store in registry
102
+ registry.refCounts.set(className, 1);
103
+ registry.rules.set(className, ruleInfo);
104
+ // Update metrics
105
+ if (registry.metrics) {
106
+ registry.metrics.totalInsertions++;
107
+ registry.metrics.misses++;
108
+ }
109
+ return {
110
+ className,
111
+ dispose: () => this.dispose(className, registry),
112
+ };
113
+ }
114
+ /**
115
+ * Convert StyleResult to FlattenedRule format
116
+ */
117
+ convertToFlattenedRules(rules) {
118
+ return rules.map((rule) => ({
119
+ selector: rule.selector,
120
+ declarations: rule.declarations,
121
+ atRules: rule.atRules,
122
+ }));
123
+ }
124
+ /**
125
+ * Extract className from rules (assumes first rule contains the base className)
126
+ */
127
+ extractClassName(rules) {
128
+ for (const rule of rules) {
129
+ const match = rule.selector.match(/^\.([a-zA-Z0-9_-]+)/);
130
+ if (match) {
131
+ return match[1];
132
+ }
133
+ }
134
+ return null;
135
+ }
136
+ /**
137
+ * Generate cache key from flattened rules with optimized deduplication
138
+ */
139
+ generateCacheKey(rules) {
140
+ const normalizeSelector = (selector) => {
141
+ const match = selector.match(/^\.[a-zA-Z0-9_-]+(.*)$/);
142
+ return match ? match[1] : selector;
143
+ };
144
+ // Sort rules to ensure consistent cache keys for equivalent rule sets
145
+ const sortedRules = [...rules].sort((a, b) => {
146
+ const aKey = `${normalizeSelector(a.selector)}${a.atRules ? a.atRules.join('|') : ''}`;
147
+ const bKey = `${normalizeSelector(b.selector)}${b.atRules ? b.atRules.join('|') : ''}`;
148
+ return aKey.localeCompare(bKey);
149
+ });
150
+ return sortedRules
151
+ .map((rule) => {
152
+ const at = rule.atRules && rule.atRules.length
153
+ ? `@${rule.atRules.join('|')}`
154
+ : '';
155
+ const sel = normalizeSelector(rule.selector);
156
+ // Normalize declarations by sorting properties for consistent caching
157
+ const normalizedDeclarations = rule.declarations
158
+ .split(';')
159
+ .filter(Boolean)
160
+ .map((decl) => decl.trim())
161
+ .sort()
162
+ .join(';');
163
+ return `${sel}{${normalizedDeclarations}}${at}`;
164
+ })
165
+ .join('');
166
+ }
167
+ /**
168
+ * Dispose of a className
169
+ */
170
+ dispose(className, registry) {
171
+ const currentRefCount = registry.refCounts.get(className) || 0;
172
+ if (currentRefCount <= 1) {
173
+ // Mark for deletion and schedule cleanup - but keep cache entries for disposal cache
174
+ registry.refCounts.set(className, 0);
175
+ registry.deletionQueue.push(className);
176
+ this.scheduleCleanup(registry);
177
+ }
178
+ else {
179
+ registry.refCounts.set(className, currentRefCount - 1);
180
+ }
181
+ }
182
+ /**
183
+ * Cleanup unused rules
184
+ */
185
+ cleanup(root) {
186
+ const registry = this.sheetManager.getRegistry(root || document);
187
+ this.sheetManager.processCleanupQueue(registry);
188
+ }
189
+ /**
190
+ * Schedule cleanup to run in the next microtask
191
+ */
192
+ scheduleCleanup(registry) {
193
+ if (this.cleanupScheduled)
194
+ return;
195
+ this.cleanupScheduled = true;
196
+ Promise.resolve().then(() => {
197
+ this.sheetManager.processCleanupQueue(registry);
198
+ this.cleanupScheduled = false;
199
+ });
200
+ }
201
+ /**
202
+ * Inject global CSS rule
203
+ */
204
+ injectGlobal(selector, cssText, options) {
205
+ const root = options?.root || document;
206
+ const registry = this.sheetManager.getRegistry(root);
207
+ if (!cssText || !selector) {
208
+ return () => { };
209
+ }
210
+ // Use a stable pseudo-className to track these global rules in the registry
211
+ const className = generateClassName(registry.classCounter++);
212
+ // Flatten nested CSS against the provided selector (handles &, .Class, SubElement, etc.)
213
+ const flattenedRules = flattenNestedCssForSelector(cssText, selector);
214
+ // Insert the rules as a block using the sheet manager, just like normal rules
215
+ const ruleInfo = this.sheetManager.insertGlobalRule(registry, flattenedRules, className, root);
216
+ if (!ruleInfo) {
217
+ return () => { };
218
+ }
219
+ // Track in registry for ref-counted disposal
220
+ registry.refCounts.set(className, 1);
221
+ registry.rules.set(className, ruleInfo);
222
+ return () => this.dispose(className, registry);
223
+ }
224
+ /**
225
+ * Get CSS text from all sheets (for SSR)
226
+ */
227
+ getCssText(options) {
228
+ const root = options?.root || document;
229
+ const registry = this.sheetManager.getRegistry(root);
230
+ return this.sheetManager.getCssText(registry);
231
+ }
232
+ /**
233
+ * Get CSS only for the provided tasty classNames (e.g., ["t0","t3"])
234
+ */
235
+ getCssTextForClasses(classNames, options) {
236
+ const root = options?.root || document;
237
+ const registry = this.sheetManager.getRegistry(root);
238
+ const cssChunks = [];
239
+ for (const cls of classNames) {
240
+ const info = registry.rules.get(cls) || registry.disposedCache.get(cls)?.ruleInfo;
241
+ if (info) {
242
+ if (info.cssText && info.cssText.length) {
243
+ cssChunks.push(...info.cssText);
244
+ }
245
+ else {
246
+ // Fallback: try to read from live sheet by index range
247
+ const sheet = registry.sheets[info.sheetIndex];
248
+ const styleSheet = sheet?.sheet?.sheet;
249
+ if (styleSheet) {
250
+ const start = Math.max(0, info.ruleIndex);
251
+ const end = Math.min(styleSheet.cssRules.length - 1, info.endRuleIndex ?? info.ruleIndex);
252
+ for (let i = start; i <= end; i++) {
253
+ const rule = styleSheet.cssRules[i];
254
+ if (rule)
255
+ cssChunks.push(rule.cssText);
256
+ }
257
+ }
258
+ }
259
+ }
260
+ }
261
+ return cssChunks.join('\n');
262
+ }
263
+ /**
264
+ * Get cache performance metrics
265
+ */
266
+ getMetrics(options) {
267
+ const root = options?.root || document;
268
+ const registry = this.sheetManager.getRegistry(root);
269
+ return this.sheetManager.getMetrics(registry);
270
+ }
271
+ /**
272
+ * Reset cache performance metrics
273
+ */
274
+ resetMetrics(options) {
275
+ const root = options?.root || document;
276
+ const registry = this.sheetManager.getRegistry(root);
277
+ this.sheetManager.resetMetrics(registry);
278
+ }
279
+ /**
280
+ * Force cleanup of disposed rulesets (useful for memory pressure)
281
+ */
282
+ forceCleanupDisposed(options) {
283
+ const root = options?.root || document;
284
+ const registry = this.sheetManager.getRegistry(root);
285
+ // Clear any scheduled cleanups and immediately clean those
286
+ for (const [className, timeoutId] of registry.cleanupTimeouts) {
287
+ if (this.config.idleCleanup &&
288
+ typeof cancelIdleCallback !== 'undefined') {
289
+ cancelIdleCallback(timeoutId);
290
+ }
291
+ else {
292
+ clearTimeout(timeoutId);
293
+ }
294
+ const disposedInfo = registry.disposedCache.get(className);
295
+ if (disposedInfo) {
296
+ this.sheetManager['performActualCleanup'](registry, className);
297
+ }
298
+ }
299
+ registry.cleanupTimeouts.clear();
300
+ // Also cleanup any remaining disposed entries that were not scheduled
301
+ const keys = Array.from(registry.disposedCache.keys());
302
+ for (const cls of keys) {
303
+ this.sheetManager['performActualCleanup'](registry, cls);
304
+ }
305
+ }
306
+ /**
307
+ * Destroy all resources for a root
308
+ */
309
+ destroy(root) {
310
+ const targetRoot = root || document;
311
+ this.sheetManager.cleanup(targetRoot);
312
+ }
313
+ }
314
+
315
+