@cube-dev/ui-kit 0.75.0 → 0.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/CHANGELOG.md +14 -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 +1 -1
  23. package/es/components/actions/Action/Action.js +1 -1
  24. package/es/components/actions/Button/Button.js +1 -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 +1 -1
  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 +1 -1
  76. package/es/components/content/Title.js +1 -1
  77. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  78. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  79. package/es/components/fields/Checkbox/context.js +1 -1
  80. package/es/components/fields/Checkbox/index.js +1 -1
  81. package/es/components/fields/ComboBox/ComboBox.js +3 -7
  82. package/es/components/fields/ComboBox/index.js +1 -1
  83. package/es/components/fields/DatePicker/DateInput.js +1 -1
  84. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  85. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  86. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  87. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  88. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  89. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  90. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  91. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  92. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  93. package/es/components/fields/DatePicker/index.js +1 -1
  94. package/es/components/fields/DatePicker/intl.js +1 -1
  95. package/es/components/fields/DatePicker/parseDate.js +1 -1
  96. package/es/components/fields/DatePicker/props.js +1 -1
  97. package/es/components/fields/DatePicker/types.js +1 -1
  98. package/es/components/fields/DatePicker/utils.js +1 -1
  99. package/es/components/fields/FileInput/FileInput.js +1 -1
  100. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  101. package/es/components/fields/FilterListBox/index.js +1 -1
  102. package/es/components/fields/FilterPicker/FilterPicker.js +3 -3
  103. package/es/components/fields/FilterPicker/index.js +1 -1
  104. package/es/components/fields/Input/Input.js +1 -1
  105. package/es/components/fields/Input/index.js +1 -1
  106. package/es/components/fields/ListBox/ListBox.js +1 -1
  107. package/es/components/fields/ListBox/index.js +1 -1
  108. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  109. package/es/components/fields/NumberInput/StepButton.js +1 -1
  110. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  111. package/es/components/fields/RadioGroup/Radio.js +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 +1 -1
  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 -1
  392. package/es/tasty/debug.js +541 -744
  393. package/es/tasty/index.js +1 -1
  394. package/es/tasty/injector/index.js +31 -15
  395. package/es/tasty/injector/injector.js +138 -148
  396. package/es/tasty/injector/sheet-manager.js +292 -134
  397. package/es/tasty/injector/types.js +1 -1
  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 +1 -1
  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 +1 -1
  409. package/es/tasty/styles/createStyle.js +1 -1
  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 +1 -1
  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 -1
  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 +1 -1
  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 +61 -50
  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/isDevEnv.js +36 -0
  452. package/es/tasty/utils/mergeStyles.js +1 -1
  453. package/es/tasty/utils/modAttrs.js +1 -1
  454. package/es/tasty/utils/renderStyles.js +44 -4
  455. package/es/tasty/utils/responsive.js +1 -1
  456. package/es/tasty/utils/string.js +1 -1
  457. package/es/tasty/utils/styles.js +39 -1
  458. package/es/tasty/utils/warnings.js +1 -1
  459. package/es/tokens.js +1 -1
  460. package/es/type-checks.js +1 -1
  461. package/es/utils/ResizeSensor.js +1 -1
  462. package/es/utils/modules.js +1 -1
  463. package/es/utils/promise.js +1 -1
  464. package/es/utils/random.js +1 -1
  465. package/es/utils/range.js +1 -1
  466. package/es/utils/react/Slots.js +1 -1
  467. package/es/utils/react/chain.js +1 -1
  468. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  469. package/es/utils/react/index.js +1 -1
  470. package/es/utils/react/interactions.js +1 -1
  471. package/es/utils/react/isTextOnly.js +1 -1
  472. package/es/utils/react/mapProps.js +1 -1
  473. package/es/utils/react/mergeProps.js +1 -1
  474. package/es/utils/react/nullableValue.js +1 -1
  475. package/es/utils/react/sharedStore.js +1 -1
  476. package/es/utils/react/useCombinedRefs.js +1 -1
  477. package/es/utils/react/useControlledFocusVisible.js +1 -1
  478. package/es/utils/react/useEventBus.js +1 -1
  479. package/es/utils/react/useId.js +1 -1
  480. package/es/utils/react/useIsDarwin.js +1 -1
  481. package/es/utils/react/useKeySymbols.js +1 -1
  482. package/es/utils/react/useLayoutEffect.js +1 -1
  483. package/es/utils/react/useQaProps.js +1 -1
  484. package/es/utils/react/useViewportSize.js +1 -1
  485. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  486. package/es/utils/transitions.js +1 -1
  487. package/es/utils/tree.js +1 -1
  488. package/es/utils/warnings.js +1 -1
  489. package/es/version.js +2 -2
  490. package/package.json +1 -1
  491. package/types/components/actions/Menu/styled.d.ts +60 -60
  492. package/types/components/content/List/SectionHeading.d.ts +20 -20
  493. package/types/components/fields/DatePicker/DatePickerElement.d.ts +20 -20
  494. package/types/tasty/debug.d.ts +135 -222
  495. package/types/tasty/injector/index.d.ts +18 -2
  496. package/types/tasty/injector/injector.d.ts +20 -18
  497. package/types/tasty/injector/sheet-manager.d.ts +19 -15
  498. package/types/tasty/injector/types.d.ts +29 -13
  499. package/types/tasty/utils/isDevEnv.d.ts +6 -0
  500. package/types/tasty/utils/renderStyles.d.ts +6 -1
  501. package/types/tasty/utils/styles.d.ts +1 -0
@@ -1,173 +1,98 @@
1
1
  /**
2
2
  * Debug utilities for inspecting tasty-generated CSS at runtime
3
3
  */
4
- /**
5
- * Debug utilities for inspecting tasty styles in runtime applications
6
- */
7
- export declare const tastyDebug: {
8
- /**
9
- * Get CSS for a specific tasty class (e.g., 't24')
10
- */
11
- getCSSForClass(className: string): string;
12
- /**
13
- * Get CSS for multiple tasty classes
14
- */
15
- getCSSForClasses(classNames: string[]): string;
16
- /**
17
- * Log CSS for a specific tasty class (e.g., 't24') to console
18
- */
19
- logCSSForClass(className: string): void;
20
- /**
21
- * Log CSS for multiple tasty classes to console
22
- */
23
- logCSSForClasses(classNames: string[]): void;
24
- /**
25
- * Inspect an element by CSS selector and get its tasty CSS
26
- */
27
- inspectElement(selector: string): string;
28
- /**
29
- * Inspect a DOM element directly and get its tasty CSS
30
- */
31
- inspectDOMElement(element: Element): string;
32
- /**
33
- * Get all tasty CSS currently injected into the page
34
- */
35
- getAllCSS(): string;
36
- /**
37
- * Find all tasty classes used in the page (in DOM)
38
- */
39
- findAllTastyClasses(): string[];
40
- /**
41
- * Find all tasty classes that have styles in the stylesheet (used + unused)
42
- */
43
- findAllStyledClasses(): string[];
44
- /**
45
- * Get active vs cached class breakdown
46
- */
47
- getClassUsage(): {
48
- activeClasses: string[];
49
- cachedClasses: string[];
50
- totalStyledClasses: string[];
4
+ type CSSTarget = 'all' | 'global' | 'active' | 'unused' | 'page' | string | string[] | Element;
5
+ interface CssOptions {
6
+ root?: Document | ShadowRoot;
7
+ prettify?: boolean;
8
+ log?: boolean;
9
+ }
10
+ interface InspectResult {
11
+ element?: Element | null;
12
+ classes: string[];
13
+ css: string;
14
+ size: number;
15
+ rules: number;
16
+ }
17
+ interface CacheMetrics {
18
+ hits: number;
19
+ misses: number;
20
+ bulkCleanups: number;
21
+ totalInsertions: number;
22
+ totalUnused: number;
23
+ stylesCleanedUp: number;
24
+ cleanupHistory: Array<{
25
+ timestamp: number;
26
+ classesDeleted: number;
27
+ cssSize: number;
28
+ rulesDeleted: number;
29
+ }>;
30
+ startTime: number;
31
+ unusedHits?: number;
32
+ }
33
+ interface CacheStatus {
34
+ classes: {
35
+ active: string[];
36
+ unused: string[];
37
+ all: string[];
51
38
  };
52
- /**
53
- * Get a comprehensive summary of all tasty styles
54
- */
55
- getSummary(): {
56
- activeClasses: string[];
57
- cachedClasses: string[];
58
- totalStyledClasses: string[];
59
- activeCSSSize: number;
60
- cachedCSSSize: number;
61
- totalCSSSize: number;
62
- activeCSS: string;
63
- cachedCSS: string;
64
- allCSS: string;
65
- globalCSS: string;
66
- globalCSSSize: number;
67
- globalRuleCount: number;
68
- metrics: any;
69
- definedProperties: string[];
70
- definedKeyframes: {
71
- name: string;
72
- refCount: number;
73
- cssText?: string;
74
- }[];
75
- propertyCount: number;
76
- keyframeCount: number;
77
- cleanupSummary: {
78
- enabled: boolean;
79
- totalCleanups: number;
80
- totalClassesDeleted: number;
81
- totalCssDeleted: number;
82
- totalRulesDeleted: number;
83
- averageClassesPerCleanup: number;
84
- averageCssPerCleanup: number;
85
- averageRulesPerCleanup: number;
86
- lastCleanup?: {
87
- timestamp: number;
88
- date: string;
89
- classesDeleted: number;
90
- cssSize: number;
91
- rulesDeleted: number;
92
- };
93
- };
39
+ metrics: CacheMetrics | null;
40
+ }
41
+ interface GlobalBreakdown {
42
+ css: string;
43
+ totalRules: number;
44
+ totalCSSSize: number;
45
+ selectors: {
46
+ elements: string[];
47
+ classes: string[];
48
+ ids: string[];
49
+ pseudoClasses: string[];
50
+ mediaQueries: string[];
51
+ keyframes: string[];
52
+ other: string[];
94
53
  };
95
- /**
96
- * Helper to log CSS in a readable format
97
- */
98
- logCSS(css: string, title?: string): void;
99
- /**
100
- * Advanced inspection with detailed breakdown and statistics
101
- */
102
- inspect(target: string | Element): {
103
- element: Element | null;
104
- tastyClasses: string[];
105
- css: string;
54
+ }
55
+ interface Definitions {
56
+ properties: string[];
57
+ keyframes: Array<{
58
+ name: string;
59
+ refCount: number;
60
+ }>;
61
+ }
62
+ interface SummaryOptions {
63
+ root?: Document | ShadowRoot;
64
+ log?: boolean;
65
+ includePageCSS?: false | true | 'all';
66
+ }
67
+ interface Summary {
68
+ activeClasses: string[];
69
+ unusedClasses: string[];
70
+ totalStyledClasses: string[];
71
+ activeCSSSize: number;
72
+ unusedCSSSize: number;
73
+ totalCSSSize: number;
74
+ activeCSS: string;
75
+ unusedCSS: string;
76
+ allCSS: string;
77
+ globalCSS: string;
78
+ globalCSSSize: number;
79
+ globalRuleCount: number;
80
+ page?: {
81
+ css?: string;
106
82
  cssSize: number;
107
83
  ruleCount: number;
108
- breakdown: {
109
- [className: string]: {
110
- css: string;
111
- cssSize: number;
112
- ruleCount: number;
113
- };
114
- };
115
- stats: {
116
- totalClasses: number;
117
- totalRules: number;
118
- totalCSSSize: number;
119
- averageRulesPerClass: number;
120
- averageCSSPerClass: number;
121
- };
84
+ stylesheetCount: number;
85
+ skippedStylesheets: number;
122
86
  };
123
- /**
124
- * Get CSS for active classes only
125
- */
126
- getActiveCSS(): string;
127
- /**
128
- * Get CSS for cached classes only
129
- */
130
- getCachedCSS(): string;
131
- /**
132
- * Get all defined @property custom properties
133
- */
134
- getDefinedProperties(): string[];
135
- /**
136
- * Get all defined keyframes
137
- */
138
- getDefinedKeyframes(): {
87
+ metrics: CacheMetrics | null;
88
+ definedProperties: string[];
89
+ definedKeyframes: Array<{
139
90
  name: string;
140
91
  refCount: number;
141
- cssText?: string;
142
- }[];
143
- /**
144
- * Check if a specific @property is defined
145
- */
146
- isPropertyDefined(propertyName: string): boolean;
147
- /**
148
- * Check if a specific keyframe is defined
149
- */
150
- isKeyframeDefined(keyframeName: string): boolean;
151
- /**
152
- * Get detailed cleanup statistics history
153
- */
154
- getCleanupHistory(): {
155
- totalCleanups: number;
156
- totalClassesDeleted: number;
157
- totalCssDeleted: number;
158
- totalRulesDeleted: number;
159
- cleanupHistory: Array<{
160
- timestamp: number;
161
- date: string;
162
- classesDeleted: number;
163
- cssSize: number;
164
- rulesDeleted: number;
165
- }>;
166
- };
167
- /**
168
- * Get cleanup statistics summary
169
- */
170
- getCleanupSummary(): {
92
+ }>;
93
+ propertyCount: number;
94
+ keyframeCount: number;
95
+ cleanupSummary: {
171
96
  enabled: boolean;
172
97
  totalCleanups: number;
173
98
  totalClassesDeleted: number;
@@ -184,67 +109,55 @@ export declare const tastyDebug: {
184
109
  rulesDeleted: number;
185
110
  };
186
111
  };
187
- /**
188
- * Log cleanup history to console in a readable format
189
- */
190
- logCleanupHistory(): void;
191
- /**
192
- * Get all global CSS rules (non-tasty class selectors)
193
- */
194
- getGlobalCSS(): string;
195
- /**
196
- * Log global CSS to console
197
- */
198
- logGlobalCSS(): void;
199
- /**
200
- * Get global CSS rules breakdown with detailed analysis
201
- */
202
- getGlobalCSSBreakdown(): {
203
- globalRules: Array<{
204
- selector: string;
205
- declarations: string;
206
- ruleCount: number;
207
- }>;
208
- totalRules: number;
209
- totalCSSSize: number;
210
- css: string;
211
- selectors: {
212
- elements: string[];
213
- classes: string[];
214
- ids: string[];
215
- pseudoClasses: string[];
216
- mediaQueries: string[];
217
- keyframes: string[];
218
- other: string[];
219
- };
220
- };
221
- /**
222
- * Log detailed global CSS breakdown
223
- */
224
- logGlobalCSSBreakdown(): void;
225
- /**
226
- * Helper to extract CSS rules from raw CSS text
227
- */
228
- extractCSSRules(css: string): Array<{
229
- selector: string;
230
- declarations: string;
231
- }>;
232
- /**
233
- * Safe CSS parser that handles nested rules properly
234
- */
235
- parseCSSSafe(css: string, rules: Array<{
236
- selector: string;
237
- declarations: string;
238
- }>): void;
239
- /**
240
- * Debug method to see raw CSS content and rule parsing
241
- */
242
- debugRawCSS(): void;
243
- };
112
+ }
244
113
  /**
245
- * Install tastyDebug on window object for easy access in browser console
246
- * Only in non-production environments
114
+ * Concise tastyDebug API for inspecting styles at runtime
247
115
  */
248
- export declare function installGlobalDebug(options?: {
249
- force?: boolean;
250
- }): void;
116
+ export declare const tastyDebug: {
117
+ css(target: CSSTarget, opts?: CssOptions): string;
118
+ inspect(target: string | Element, opts?: {
119
+ root?: Document | ShadowRoot;
120
+ }): InspectResult;
121
+ cache(opts?: {
122
+ root?: Document | ShadowRoot;
123
+ includeHistory?: boolean;
124
+ }): CacheStatus;
125
+ cleanup(opts?: {
126
+ root?: Document | ShadowRoot;
127
+ }): void;
128
+ metrics(opts?: {
129
+ root?: Document | ShadowRoot;
130
+ }): CacheMetrics | null;
131
+ resetMetrics(opts?: {
132
+ root?: Document | ShadowRoot;
133
+ }): void;
134
+ global(opts?: {
135
+ root?: Document | ShadowRoot;
136
+ log?: boolean;
137
+ }): GlobalBreakdown;
138
+ defs(opts?: {
139
+ root?: Document | ShadowRoot;
140
+ }): Definitions;
141
+ summary(opts?: SummaryOptions): Summary;
142
+ pageCSS(opts?: {
143
+ root?: Document | ShadowRoot;
144
+ prettify?: boolean;
145
+ log?: boolean;
146
+ includeCrossOrigin?: boolean;
147
+ }): string;
148
+ pageStats(opts?: {
149
+ root?: Document | ShadowRoot;
150
+ includeCrossOrigin?: boolean;
151
+ }): {
152
+ cssSize: number;
153
+ ruleCount: number;
154
+ stylesheetCount: number;
155
+ skippedStylesheets: number;
156
+ };
157
+ install(): void;
158
+ log(target: CSSTarget, opts?: CssOptions & {
159
+ title?: string;
160
+ }): void;
161
+ help(): void;
162
+ };
163
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { StyleResult } from '../utils/renderStyles';
2
2
  import { StyleInjector } from './injector';
3
- import { InjectResult, StyleInjectorConfig } from './types';
3
+ import { GlobalInjectResult, InjectResult, StyleInjectorConfig } from './types';
4
4
  declare const GLOBAL_INJECTOR_KEY = "__TASTY_GLOBAL_INJECTOR__";
5
5
  declare global {
6
6
  interface Window {
@@ -11,12 +11,28 @@ declare global {
11
11
  * Configure the global style injector
12
12
  */
13
13
  export declare function configure(config?: Partial<StyleInjectorConfig>): void;
14
+ /**
15
+ * Allocate a className for a cacheKey without injecting styles yet
16
+ */
17
+ export declare function allocateClassName(cacheKey: string, options?: {
18
+ root?: Document | ShadowRoot;
19
+ }): {
20
+ className: string;
21
+ isNewAllocation: boolean;
22
+ };
14
23
  /**
15
24
  * Inject styles and return className with dispose function
16
25
  */
17
26
  export declare function inject(rules: StyleResult[], options?: {
18
27
  root?: Document | ShadowRoot;
28
+ cacheKey?: string;
19
29
  }): InjectResult;
30
+ /**
31
+ * Inject global rules that should not reserve tasty class names
32
+ */
33
+ export declare function injectGlobal(rules: StyleResult[], options?: {
34
+ root?: Document | ShadowRoot;
35
+ }): GlobalInjectResult;
20
36
  /**
21
37
  * Inject keyframes and return object with toString() and dispose()
22
38
  */
@@ -66,6 +82,6 @@ export declare function createInjector(config?: Partial<StyleInjectorConfig>): S
66
82
  export declare function createGlobalStyle<Props = {}>(strings: TemplateStringsArray, ...interpolations: Array<string | number | ((props: Props) => string | number)>): import('react').ComponentType<Props & {
67
83
  root?: Document | ShadowRoot;
68
84
  }>;
69
- export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, UnusedRuleInfo, CacheMetrics, } from './types';
85
+ export type { StyleInjectorConfig, InjectResult, DisposeFunction, RuleInfo, SheetInfo, RootRegistry, StyleRule, KeyframesInfo, KeyframesResult, KeyframesSteps, KeyframesCacheEntry, CacheMetrics, } from './types';
70
86
  export { StyleInjector } from './injector';
71
87
  export { SheetManager } from './sheet-manager';
@@ -3,39 +3,47 @@
3
3
  * Eliminates CSS string parsing for better performance
4
4
  */
5
5
  import { StyleResult } from '../utils/renderStyles';
6
- import { InjectResult, KeyframesResult, KeyframesSteps, StyleInjectorConfig } from './types';
6
+ import { GlobalInjectResult, InjectResult, KeyframesResult, KeyframesSteps, StyleInjectorConfig } from './types';
7
7
  import type { ComponentType } from 'react';
8
8
  export declare class StyleInjector {
9
9
  private sheetManager;
10
10
  private config;
11
11
  private cleanupScheduled;
12
+ private globalRuleCounter;
12
13
  constructor(config?: StyleInjectorConfig);
14
+ /**
15
+ * Allocate a className for a cacheKey without injecting styles yet.
16
+ * This allows separating className allocation (render phase) from style injection (insertion phase).
17
+ */
18
+ allocateClassName(cacheKey: string, options?: {
19
+ root?: Document | ShadowRoot;
20
+ }): {
21
+ className: string;
22
+ isNewAllocation: boolean;
23
+ };
13
24
  /**
14
25
  * Inject styles from StyleResult objects
15
26
  */
16
27
  inject(rules: StyleResult[], options?: {
17
28
  root?: Document | ShadowRoot;
29
+ cacheKey?: string;
18
30
  }): InjectResult;
19
31
  /**
20
- * Extract className from rules (assumes first rule contains the base className)
32
+ * Inject global styles (rules without a generated tasty class selector)
33
+ * This ensures we don't reserve a tasty class name (t{number}) for global rules,
34
+ * which could otherwise collide with element-level styles and break lookups.
21
35
  */
22
- private extractClassName;
23
- /**
24
- * Generate cache key from style rules with optimized deduplication
25
- */
26
- private generateCacheKey;
36
+ injectGlobal(rules: StyleResult[], options?: {
37
+ root?: Document | ShadowRoot;
38
+ }): GlobalInjectResult;
27
39
  /**
28
40
  * Dispose of a className
29
41
  */
30
42
  private dispose;
31
- /**
32
- * Cleanup unused rules
33
- */
34
- cleanup(root?: Document | ShadowRoot): void;
35
43
  /**
36
44
  * Force bulk cleanup of unused styles
37
45
  */
38
- forceBulkCleanup(root?: Document | ShadowRoot): void;
46
+ cleanup(root?: Document | ShadowRoot): void;
39
47
  /**
40
48
  * Get CSS text from all sheets (for SSR)
41
49
  */
@@ -60,12 +68,6 @@ export declare class StyleInjector {
60
68
  resetMetrics(options?: {
61
69
  root?: Document | ShadowRoot;
62
70
  }): void;
63
- /**
64
- * Force cleanup of unused styles (useful for memory pressure)
65
- */
66
- forceCleanupUnused(options?: {
67
- root?: Document | ShadowRoot;
68
- }): void;
69
71
  /**
70
72
  * Define a CSS @property custom property
71
73
  * Example:
@@ -22,7 +22,15 @@ export declare class SheetManager {
22
22
  /**
23
23
  * Insert global CSS rules
24
24
  */
25
- insertGlobalRule(registry: RootRegistry, flattenedRules: StyleRule[], className: string, root: Document | ShadowRoot): RuleInfo | null;
25
+ insertGlobalRule(registry: RootRegistry, flattenedRules: StyleRule[], globalKey: string, root: Document | ShadowRoot): RuleInfo | null;
26
+ /**
27
+ * Delete a global CSS rule by key
28
+ */
29
+ deleteGlobalRule(registry: RootRegistry, globalKey: string): void;
30
+ /**
31
+ * Adjust rule indices after deletion to account for shifting
32
+ */
33
+ private adjustIndicesAfterDeletion;
26
34
  /**
27
35
  * Delete a CSS rule from the sheet
28
36
  */
@@ -36,25 +44,17 @@ export declare class SheetManager {
36
44
  */
37
45
  findAvailableRuleIndex(sheet: SheetInfo): number;
38
46
  /**
39
- * Mark a ruleset as unused but keep it in the stylesheet
40
- */
41
- markAsUnused(registry: RootRegistry, className: string): void;
42
- /**
43
- * Restore a ruleset from unused styles
47
+ * Schedule bulk cleanup of all unused styles (non-stacking)
44
48
  */
45
- restoreFromUnused(registry: RootRegistry, className: string): RuleInfo | null;
49
+ private scheduleBulkCleanup;
46
50
  /**
47
- * Schedule bulk cleanup of all unused styles
51
+ * Force cleanup of unused styles
48
52
  */
49
- private scheduleBulkCleanup;
53
+ forceCleanup(registry: RootRegistry): void;
50
54
  /**
51
55
  * Perform bulk cleanup of all unused styles
52
56
  */
53
57
  private performBulkCleanup;
54
- /**
55
- * Process the deletion queue for cleanup
56
- */
57
- processCleanupQueue(registry: RootRegistry): void;
58
58
  /**
59
59
  * Get total number of rules across all sheets
60
60
  */
@@ -84,9 +84,13 @@ export declare class SheetManager {
84
84
  */
85
85
  deleteKeyframes(registry: RootRegistry, info: KeyframesInfo): void;
86
86
  /**
87
- * Mark keyframes as unused
87
+ * Schedule async cleanup check (non-stacking)
88
+ */
89
+ checkCleanupNeeded(registry: RootRegistry): void;
90
+ /**
91
+ * Perform the actual cleanup check (called asynchronously)
88
92
  */
89
- markKeyframesAsUnused(registry: RootRegistry, name: string): void;
93
+ private performCleanupCheck;
90
94
  /**
91
95
  * Clean up resources for a root
92
96
  */
@@ -2,6 +2,9 @@ export interface InjectResult {
2
2
  className: string;
3
3
  dispose: () => void;
4
4
  }
5
+ export interface GlobalInjectResult {
6
+ dispose: () => void;
7
+ }
5
8
  export type DisposeFunction = () => void;
6
9
  export interface StyleInjectorConfig {
7
10
  nonce?: string;
@@ -9,28 +12,37 @@ export interface StyleInjectorConfig {
9
12
  unusedStylesThreshold?: number;
10
13
  bulkCleanupDelay?: number;
11
14
  idleCleanup?: boolean;
12
- collectMetrics?: boolean;
13
15
  forceTextInjection?: boolean;
14
- /** When false, avoid storing full cssText for each rule block to reduce memory. */
15
- debugMode?: boolean;
16
+ /** Enable development mode features: performance metrics and debug information storage */
17
+ devMode?: boolean;
18
+ /**
19
+ * Ratio of unused styles to delete per bulk cleanup run (0..1).
20
+ * Defaults to 0.5 (oldest half) to reduce risk of removing styles
21
+ * that may be restored shortly after being marked unused.
22
+ */
23
+ bulkCleanupBatchRatio?: number;
24
+ /**
25
+ * Minimum age (in ms) a style must remain unused before eligible for deletion.
26
+ * Helps avoid races during rapid mount/unmount cycles. Default: 10000ms.
27
+ */
28
+ unusedStylesMinAgeMs?: number;
16
29
  }
17
30
  export interface RuleInfo {
18
31
  className: string;
19
32
  ruleIndex: number;
20
33
  sheetIndex: number;
21
- cssText: string[];
34
+ /** Dev-only: full CSS texts inserted for this class; omitted in production */
35
+ cssText?: string[];
22
36
  /** Inclusive end index of the contiguous block of inserted rules for this className */
23
37
  endRuleIndex?: number;
38
+ /** NEW: exact indices of all inserted rules for this className */
39
+ indices?: number[];
24
40
  }
25
41
  export interface SheetInfo {
26
42
  sheet: HTMLStyleElement;
27
43
  ruleCount: number;
28
44
  holes: number[];
29
45
  }
30
- export interface UnusedRuleInfo {
31
- ruleInfo: RuleInfo;
32
- markedUnusedAt: number;
33
- }
34
46
  export interface CleanupStats {
35
47
  timestamp: number;
36
48
  classesDeleted: number;
@@ -40,42 +52,46 @@ export interface CleanupStats {
40
52
  export interface CacheMetrics {
41
53
  hits: number;
42
54
  misses: number;
43
- unusedHits: number;
44
55
  bulkCleanups: number;
45
56
  totalInsertions: number;
46
57
  totalUnused: number;
47
58
  stylesCleanedUp: number;
48
59
  cleanupHistory: CleanupStats[];
49
60
  startTime: number;
61
+ unusedHits?: number;
50
62
  }
51
63
  export interface RootRegistry {
52
64
  sheets: SheetInfo[];
53
65
  refCounts: Map<string, number>;
54
66
  rules: Map<string, RuleInfo>;
55
- unusedRules: Map<string, UnusedRuleInfo>;
67
+ /** Cache key to className mapping to avoid dual storage of RuleInfo objects */
68
+ cacheKeyToClassName: Map<string, string>;
56
69
  /** Deduplication set of fully materialized CSS rules inserted into sheets */
57
70
  ruleTextSet: Set<string>;
58
71
  /** Scheduled bulk cleanup timeout */
59
72
  bulkCleanupTimeout: ReturnType<typeof requestIdleCallback> | ReturnType<typeof setTimeout> | null;
73
+ /** Scheduled cleanup check timeout */
74
+ cleanupCheckTimeout: ReturnType<typeof setTimeout> | null;
60
75
  /** Performance metrics (optional) */
61
76
  metrics?: CacheMetrics;
62
77
  /** Counter for generating sequential class names like t0, t1, t2... */
63
78
  classCounter: number;
64
79
  /** Keyframes cache by JSON.stringify(steps) -> entry */
65
80
  keyframesCache: Map<string, KeyframesCacheEntry>;
66
- /** Unused keyframes for cleanup */
67
- unusedKeyframes: Map<string, UnusedRuleInfo>;
68
81
  /** Counter for generating keyframes names like k0, k1, k2... */
69
82
  keyframesCounter: number;
70
83
  /** Set of injected @property names for tracking */
71
84
  injectedProperties: Set<string>;
85
+ /** Global rules tracking for index adjustment */
86
+ globalRules: Map<string, RuleInfo>;
72
87
  }
73
88
  export type StyleRule = import('../utils/renderStyles').StyleResult;
74
89
  export interface KeyframesInfo {
75
90
  name: string;
76
91
  sheetIndex: number;
77
92
  ruleIndex: number;
78
- cssText: string;
93
+ /** Dev-only: full CSS text of the @keyframes rule; omitted in production */
94
+ cssText?: string;
79
95
  }
80
96
  export type KeyframeStep = string | Record<string, string | number>;
81
97
  export type KeyframesSteps = Record<string, KeyframeStep>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check if we're in a development environment at runtime
3
+ * Uses bracket notation to avoid bundler compilation
4
+ * Also checks for TASTY_DEBUG localStorage setting
5
+ */
6
+ export declare function isDevEnv(): boolean;