@cube-dev/ui-kit 0.207.0 → 0.209.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 (869) hide show
  1. package/dist/CHANGELOG.md +26 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.d.ts +0 -2
  13. package/dist/components/CollectionItem.js +1 -1
  14. package/dist/components/CollectionItem.js.map +1 -1
  15. package/dist/components/GlobalStyles.js +1 -1
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/GridProvider.js.map +1 -1
  19. package/dist/components/HiddenInput.js +1 -1
  20. package/dist/components/Root.js +7 -4
  21. package/dist/components/Root.js.map +1 -1
  22. package/dist/components/actions/Action/Action.js +1 -1
  23. package/dist/components/actions/Banner/Banner.js +1 -1
  24. package/dist/components/actions/Banner/Banner.js.map +1 -1
  25. package/dist/components/actions/Button/AutoCollapseObserver.js +215 -0
  26. package/dist/components/actions/Button/AutoCollapseObserver.js.map +1 -0
  27. package/dist/components/actions/Button/Button.d.ts +38 -1
  28. package/dist/components/actions/Button/Button.js +80 -19
  29. package/dist/components/actions/Button/Button.js.map +1 -1
  30. package/dist/components/actions/Button/index.d.ts +16 -1
  31. package/dist/components/actions/Button/index.js +13 -0
  32. package/dist/components/actions/Button/index.js.map +1 -0
  33. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  34. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  35. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  36. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  37. package/dist/components/actions/ButtonSplit/context.js +1 -1
  38. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +1 -1
  39. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  40. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  41. package/dist/components/actions/CommandMenu/styled.js +1 -1
  42. package/dist/components/actions/ItemAction/ItemAction.js +2 -2
  43. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  44. package/dist/components/actions/ItemActionContext.js +1 -1
  45. package/dist/components/actions/ItemActionsWrapper.js +2 -2
  46. package/dist/components/actions/ItemButton/ItemButton.d.ts +0 -2
  47. package/dist/components/actions/ItemButton/ItemButton.js +2 -2
  48. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  49. package/dist/components/actions/Link/Link.js +1 -1
  50. package/dist/components/actions/Menu/Menu.d.ts +1 -1
  51. package/dist/components/actions/Menu/Menu.js +1 -1
  52. package/dist/components/actions/Menu/Menu.js.map +1 -1
  53. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  54. package/dist/components/actions/Menu/MenuItem.js +2 -2
  55. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  56. package/dist/components/actions/Menu/MenuSection.js +1 -1
  57. package/dist/components/actions/Menu/MenuTrigger.js +3 -3
  58. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  59. package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
  60. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  61. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  62. package/dist/components/actions/Menu/context.js +1 -1
  63. package/dist/components/actions/Menu/index.d.ts +1 -1
  64. package/dist/components/actions/Menu/styled.js +1 -1
  65. package/dist/components/actions/actions-run.js +1 -1
  66. package/dist/components/actions/index.d.ts +6 -18
  67. package/dist/components/actions/use-action.js +2 -2
  68. package/dist/components/actions/use-action.js.map +1 -1
  69. package/dist/components/actions/use-anchored-menu.d.ts +0 -1
  70. package/dist/components/actions/use-anchored-menu.js +2 -2
  71. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  72. package/dist/components/actions/use-context-menu.d.ts +0 -1
  73. package/dist/components/actions/use-context-menu.js +3 -3
  74. package/dist/components/actions/use-context-menu.js.map +1 -1
  75. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  76. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  77. package/dist/components/content/Alert/Alert.js +1 -1
  78. package/dist/components/content/Alert/use-alert.js +1 -1
  79. package/dist/components/content/Alert/use-alert.js.map +1 -1
  80. package/dist/components/content/Avatar/Avatar.js +1 -1
  81. package/dist/components/content/Badge/Badge.d.ts +0 -1
  82. package/dist/components/content/Badge/Badge.js +1 -1
  83. package/dist/components/content/Badge/Badge.js.map +1 -1
  84. package/dist/components/content/Card/Card.js +1 -1
  85. package/dist/components/content/Content.js +1 -1
  86. package/dist/components/content/Content.js.map +1 -1
  87. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
  88. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  89. package/dist/components/content/CopySnippet/CopySnippet.d.ts +2 -18
  90. package/dist/components/content/CopySnippet/CopySnippet.js +2 -2
  91. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  92. package/dist/components/content/Disclosure/Disclosure.d.ts +0 -1
  93. package/dist/components/content/Disclosure/Disclosure.js +2 -2
  94. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  95. package/dist/components/content/Divider/Divider.js +1 -1
  96. package/dist/components/content/Divider/Divider.js.map +1 -1
  97. package/dist/components/content/Footer.js +1 -1
  98. package/dist/components/content/Footer.js.map +1 -1
  99. package/dist/components/content/Header.js +1 -1
  100. package/dist/components/content/Header.js.map +1 -1
  101. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  102. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  103. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  104. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  105. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  106. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  107. package/dist/components/content/Item/Item.d.ts +1 -11
  108. package/dist/components/content/Item/Item.js +111 -115
  109. package/dist/components/content/Item/Item.js.map +1 -1
  110. package/dist/components/content/Item/ItemWithNativeLinks.js +2 -2
  111. package/dist/components/content/Item/index.d.ts +1 -1
  112. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  113. package/dist/components/content/ItemBadge/index.d.ts +1 -2
  114. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  115. package/dist/components/content/Layout/GridLayout.js +1 -1
  116. package/dist/components/content/Layout/Layout.js +1 -1
  117. package/dist/components/content/Layout/Layout.js.map +1 -1
  118. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  119. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  120. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  121. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  122. package/dist/components/content/Layout/LayoutContent.js +1 -1
  123. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  124. package/dist/components/content/Layout/LayoutContext.js +1 -1
  125. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  126. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  127. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  128. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  129. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  130. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  131. package/dist/components/content/Layout/LayoutPane.js +2 -2
  132. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  133. package/dist/components/content/Layout/LayoutPanel.js +4 -4
  134. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  135. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  136. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  137. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  138. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  139. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  140. package/dist/components/content/Layout/index.js +1 -1
  141. package/dist/components/content/Layout/utils.js +1 -1
  142. package/dist/components/content/Paragraph.js +1 -1
  143. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  144. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  145. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  146. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  147. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  148. package/dist/components/content/Result/Result.js +2 -2
  149. package/dist/components/content/Result/Result.js.map +1 -1
  150. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  151. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  152. package/dist/components/content/Tag/Tag.d.ts +0 -1
  153. package/dist/components/content/Tag/Tag.js +1 -1
  154. package/dist/components/content/Tag/Tag.js.map +1 -1
  155. package/dist/components/content/Text.js +1 -1
  156. package/dist/components/content/TextItem/TextItem.js +1 -1
  157. package/dist/components/content/Title.js +1 -1
  158. package/dist/components/content/Title.js.map +1 -1
  159. package/dist/components/content/Tree/Tree.js +1 -1
  160. package/dist/components/content/Tree/Tree.js.map +1 -1
  161. package/dist/components/content/Tree/TreeNode.js +5 -5
  162. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  163. package/dist/components/content/Tree/checked-keys.js +1 -1
  164. package/dist/components/content/Tree/rowId.js +1 -1
  165. package/dist/components/content/Tree/styled.js +1 -1
  166. package/dist/components/content/Tree/styled.js.map +1 -1
  167. package/dist/components/content/Tree/tree-index.js +1 -1
  168. package/dist/components/content/Tree/types.d.ts +1 -1
  169. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  170. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  171. package/dist/components/content/Tree/use-load-data.js +1 -1
  172. package/dist/components/content/Tree/use-load-data.js.map +1 -1
  173. package/dist/components/content/highlightText.js +1 -1
  174. package/dist/components/content/use-auto-tooltip.js +233 -111
  175. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  176. package/dist/components/data/DataTable/DataTable.js +1 -1
  177. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  178. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  179. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  180. package/dist/components/data/ItemTable/ItemTableBulkBar.js +2 -2
  181. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  182. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  183. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
  184. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  185. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
  186. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
  187. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  188. package/dist/components/data/ItemTable/item-table-sections.js +1 -1
  189. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  190. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  191. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  192. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  193. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  194. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  195. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  196. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
  197. package/dist/components/data/TableBase/RowCollection.js +1 -1
  198. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  199. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
  200. package/dist/components/data/TableBase/TableRow.js +1 -1
  201. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  202. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  203. package/dist/components/data/TableBase/TableView.js +6 -6
  204. package/dist/components/data/TableBase/TableView.js.map +1 -1
  205. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  206. package/dist/components/data/TableBase/column-header.js +1 -1
  207. package/dist/components/data/TableBase/column-menu.js +1 -1
  208. package/dist/components/data/TableBase/column-menu.js.map +1 -1
  209. package/dist/components/data/TableBase/column-styles.js +1 -1
  210. package/dist/components/data/TableBase/column-tint.js +1 -1
  211. package/dist/components/data/TableBase/row-menu.js +1 -1
  212. package/dist/components/data/TableBase/styled.js +1 -1
  213. package/dist/components/data/TableBase/styled.js.map +1 -1
  214. package/dist/components/data/TableBase/table-body-sections.js +1 -1
  215. package/dist/components/data/TableBase/table-tree.js +1 -1
  216. package/dist/components/data/TableBase/types.js +1 -1
  217. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  218. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
  219. package/dist/components/data/TableBase/use-column-menu.js +2 -2
  220. package/dist/components/data/TableBase/use-column-order.js +1 -1
  221. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  222. package/dist/components/data/TableBase/use-column-window.js +1 -1
  223. package/dist/components/data/TableBase/use-container-width.js +1 -1
  224. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  225. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  226. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  227. package/dist/components/data/TableBase/use-table-search.js +1 -1
  228. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  229. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  230. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  231. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  232. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  233. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  234. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  235. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  236. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  237. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  238. package/dist/components/fields/Checkbox/Checkbox.d.ts +0 -1
  239. package/dist/components/fields/Checkbox/Checkbox.js +3 -3
  240. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  241. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +0 -1
  242. package/dist/components/fields/Checkbox/CheckboxGroup.js +3 -3
  243. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  244. package/dist/components/fields/Checkbox/context.js +1 -1
  245. package/dist/components/fields/ColorInput/ColorInput.d.ts +0 -1
  246. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  247. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  248. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +0 -3
  249. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -3
  250. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  251. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  252. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +0 -1
  253. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -2
  254. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  255. package/dist/components/fields/ComboBox/ComboBox.d.ts +0 -1
  256. package/dist/components/fields/ComboBox/ComboBox.js +6 -6
  257. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  258. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  259. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -2
  260. package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
  261. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  262. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  263. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  264. package/dist/components/fields/DatePicker/CalendarPopover.js +1 -1
  265. package/dist/components/fields/DatePicker/DateInput.d.ts +0 -1
  266. package/dist/components/fields/DatePicker/DateInput.js +2 -2
  267. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  268. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  269. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  270. package/dist/components/fields/DatePicker/DatePicker.d.ts +0 -1
  271. package/dist/components/fields/DatePicker/DatePicker.js +2 -2
  272. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  273. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  274. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  275. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  276. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  277. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  278. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  279. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +0 -1
  280. package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
  281. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  282. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +0 -1
  283. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -2
  284. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  285. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  286. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +0 -1
  287. package/dist/components/fields/DatePicker/PeriodPicker.js +2 -2
  288. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  289. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  290. package/dist/components/fields/DatePicker/TimeInput.d.ts +0 -1
  291. package/dist/components/fields/DatePicker/TimeInput.js +2 -2
  292. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  293. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  294. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  295. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  296. package/dist/components/fields/DatePicker/period.js +1 -1
  297. package/dist/components/fields/DatePicker/props.js +1 -1
  298. package/dist/components/fields/DatePicker/utils.js +1 -1
  299. package/dist/components/fields/FileInput/FileInput.d.ts +0 -1
  300. package/dist/components/fields/FileInput/FileInput.js +207 -185
  301. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  302. package/dist/components/fields/FilterListBox/FilterListBox.js +3 -3
  303. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  304. package/dist/components/fields/FilterListBox/styled.js +1 -1
  305. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +0 -3
  306. package/dist/components/fields/FilterPicker/FilterPicker.js +8 -8
  307. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  308. package/dist/components/fields/FilterPicker/FilterTree.js +2 -2
  309. package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -1
  310. package/dist/components/fields/Input/Input.d.ts +0 -1
  311. package/dist/components/fields/Input/Input.js +1 -1
  312. package/dist/components/fields/Input/Input.js.map +1 -1
  313. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  314. package/dist/components/fields/ListBox/ListBox.js +4 -4
  315. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  316. package/dist/components/fields/ListBox/optionId.js +1 -1
  317. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +2 -2
  318. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  319. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  320. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  321. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  322. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  323. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  324. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  325. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  326. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  327. package/dist/components/fields/Picker/Picker.d.ts +0 -2
  328. package/dist/components/fields/Picker/Picker.js +8 -8
  329. package/dist/components/fields/Picker/Picker.js.map +1 -1
  330. package/dist/components/fields/RadioGroup/Radio.d.ts +0 -1
  331. package/dist/components/fields/RadioGroup/Radio.js +3 -5
  332. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  333. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +0 -1
  334. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  335. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  336. package/dist/components/fields/RadioGroup/context.js +1 -1
  337. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +0 -1
  338. package/dist/components/fields/SearchComboBox/SearchComboBox.js +6 -6
  339. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  340. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  341. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  342. package/dist/components/fields/Select/Select.d.ts +1 -2
  343. package/dist/components/fields/Select/Select.js +7 -7
  344. package/dist/components/fields/Select/Select.js.map +1 -1
  345. package/dist/components/fields/Slider/Gradation.js +1 -1
  346. package/dist/components/fields/Slider/HueSlider.js +1 -1
  347. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  348. package/dist/components/fields/Slider/Slider.js +1 -1
  349. package/dist/components/fields/Slider/Slider.js.map +1 -1
  350. package/dist/components/fields/Slider/SliderBase.js +2 -2
  351. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  352. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  353. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  354. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  355. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  356. package/dist/components/fields/Slider/elements.js +1 -1
  357. package/dist/components/fields/Slider/index.js +2 -2
  358. package/dist/components/fields/Slider/types.d.ts +0 -1
  359. package/dist/components/fields/Switch/Switch.d.ts +0 -1
  360. package/dist/components/fields/Switch/Switch.js +3 -3
  361. package/dist/components/fields/Switch/Switch.js.map +1 -1
  362. package/dist/components/fields/TagInput/TagInput.js +5 -5
  363. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  364. package/dist/components/fields/TagInput/TagList.js +1 -1
  365. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  366. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  367. package/dist/components/fields/TagInput/useTagError.js +1 -1
  368. package/dist/components/fields/TextArea/TextArea.js +2 -2
  369. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  370. package/dist/components/fields/TextInput/TextInput.js +2 -2
  371. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  372. package/dist/components/fields/TextInput/TextInputBase.d.ts +0 -1
  373. package/dist/components/fields/TextInput/TextInputBase.js +3 -3
  374. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  375. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  376. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  377. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
  378. package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +0 -1
  379. package/dist/components/fields/TextInputMapper/TextInputMapper.js +3 -3
  380. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  381. package/dist/components/fields/TriggerActions.js +1 -1
  382. package/dist/components/fields/color/ColorPanel.js +1 -1
  383. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  384. package/dist/components/fields/color/channels.js +1 -1
  385. package/dist/components/fields/color/color.js +1 -1
  386. package/dist/components/fields/color/context.js +1 -1
  387. package/dist/components/fields/index.d.ts +2 -2
  388. package/dist/components/fields/option-origin-press.js +1 -1
  389. package/dist/components/form/FieldWrapper/FieldWrapper.js +2 -2
  390. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  391. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  392. package/dist/components/form/FieldWrapper/types.d.ts +0 -1
  393. package/dist/components/form/Form/Field.d.ts +0 -1
  394. package/dist/components/form/Form/Field.js +3 -3
  395. package/dist/components/form/Form/Field.js.map +1 -1
  396. package/dist/components/form/Form/Form.d.ts +1 -26
  397. package/dist/components/form/Form/Form.js +7 -116
  398. package/dist/components/form/Form/Form.js.map +1 -1
  399. package/dist/components/form/Form/FormContext.d.ts +30 -0
  400. package/dist/components/form/Form/FormContext.js +79 -0
  401. package/dist/components/form/Form/FormContext.js.map +1 -0
  402. package/dist/components/form/Form/FormElement.js +49 -0
  403. package/dist/components/form/Form/FormElement.js.map +1 -0
  404. package/dist/components/form/Form/ModernFormRoot.js +3 -2
  405. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  406. package/dist/components/form/Form/ResetButton/ResetButton.js +2 -2
  407. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  408. package/dist/components/form/Form/SubmitButton/SubmitButton.js +2 -2
  409. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  410. package/dist/components/form/Form/SubmitError.d.ts +0 -1
  411. package/dist/components/form/Form/SubmitError.js +3 -3
  412. package/dist/components/form/Form/SubmitError.js.map +1 -1
  413. package/dist/components/form/Form/backend.js +1 -1
  414. package/dist/components/form/Form/index.d.ts +2 -1
  415. package/dist/components/form/Form/index.js +6 -5
  416. package/dist/components/form/Form/index.js.map +1 -1
  417. package/dist/components/form/Form/modern/actions.js +1 -1
  418. package/dist/components/form/Form/modern/context.js +1 -1
  419. package/dist/components/form/Form/modern/controller.js +1 -1
  420. package/dist/components/form/Form/modern/field-binding.js +1 -1
  421. package/dist/components/form/Form/modern/field.js +1 -1
  422. package/dist/components/form/Form/modern/react.js +1 -1
  423. package/dist/components/form/Form/modern/store.js +1 -1
  424. package/dist/components/form/Form/modern/validation.js +1 -1
  425. package/dist/components/form/Form/modern/values.js +1 -1
  426. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  427. package/dist/components/form/Form/use-field/types.d.ts +0 -1
  428. package/dist/components/form/Form/use-field/use-field-binding.js +2 -2
  429. package/dist/components/form/Form/use-field/use-field-props.js +4 -4
  430. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  431. package/dist/components/form/Form/use-field/use-field.d.ts +0 -1
  432. package/dist/components/form/Form/use-field/use-field.js +2 -2
  433. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  434. package/dist/components/form/Form/use-form.js +1 -1
  435. package/dist/components/form/Form/validation.js +1 -1
  436. package/dist/components/form/Label.d.ts +0 -1
  437. package/dist/components/form/Label.js +1 -1
  438. package/dist/components/form/Label.js.map +1 -1
  439. package/dist/components/form/field-chrome.js +1 -1
  440. package/dist/components/form/field-layout.js +1 -1
  441. package/dist/components/form/field-layout.js.map +1 -1
  442. package/dist/components/form/index.d.ts +2 -1
  443. package/dist/components/form/legacy-tooltip.js +1 -1
  444. package/dist/components/form/validation/ValidationIndicator.d.ts +0 -1
  445. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  446. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  447. package/dist/components/form/validation/resolve-validation-props.d.ts +0 -1
  448. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  449. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  450. package/dist/components/form/validation/use-validation-props.js +1 -1
  451. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  452. package/dist/components/form/wrapper.d.ts +0 -1
  453. package/dist/components/form/wrapper.js +1 -1
  454. package/dist/components/form/wrapper.js.map +1 -1
  455. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  456. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  457. package/dist/components/layout/Flex.js +1 -1
  458. package/dist/components/layout/Flow.js +1 -1
  459. package/dist/components/layout/Grid.js +1 -1
  460. package/dist/components/layout/Panel.js +1 -1
  461. package/dist/components/layout/Prefix.js +1 -1
  462. package/dist/components/layout/Prefix.js.map +1 -1
  463. package/dist/components/layout/ResizablePanel.js +2 -2
  464. package/dist/components/layout/Space.js +1 -1
  465. package/dist/components/layout/Suffix.js +1 -1
  466. package/dist/components/layout/Suffix.js.map +1 -1
  467. package/dist/components/navigation/Pagination/Pagination.js +3 -3
  468. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  469. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  470. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  471. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  472. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  473. package/dist/components/navigation/Tabs/TabButton.js +4 -4
  474. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  475. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  476. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  477. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  478. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  479. package/dist/components/navigation/Tabs/Tabs.js +2 -2
  480. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  481. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  482. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  483. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  484. package/dist/components/navigation/Tabs/segmented-styles.js +1 -1
  485. package/dist/components/navigation/Tabs/styled.js +1 -1
  486. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  487. package/dist/components/navigation/Tabs/types.d.ts +2 -2
  488. package/dist/components/navigation/Tabs/types.js +1 -1
  489. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  490. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  491. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  492. package/dist/components/other/Calendar/Calendar.js +1 -1
  493. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  494. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  495. package/dist/components/other/Calendar/CalendarHeader.js +2 -2
  496. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  497. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  498. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  499. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  500. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  501. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  502. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  503. package/dist/components/other/Calendar/styled.js +1 -1
  504. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  505. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  506. package/dist/components/overlays/AlertDialog/AlertDialog.js +2 -2
  507. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  508. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  509. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  510. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  511. package/dist/components/overlays/AlertDialog/types.d.ts +0 -1
  512. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  513. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  514. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  515. package/dist/components/overlays/Dialog/DialogForm.js +2 -2
  516. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  517. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +0 -1
  518. package/dist/components/overlays/Dialog/DialogTrigger.js +5 -5
  519. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  520. package/dist/components/overlays/Dialog/ModernDialogForm.js +2 -2
  521. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  522. package/dist/components/overlays/Dialog/context.js +1 -1
  523. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  524. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  525. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  526. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  527. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  528. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +1 -1
  529. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
  530. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  531. package/dist/components/overlays/Modal/Modal.js +2 -2
  532. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  533. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  534. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  535. package/dist/components/overlays/Modal/Overlay.js +1 -1
  536. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  537. package/dist/components/overlays/Modal/Popover.js +2 -2
  538. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  539. package/dist/components/overlays/Modal/Tray.js +2 -2
  540. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  541. package/dist/components/overlays/Modal/Underlay.js +1 -1
  542. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  543. package/dist/components/overlays/Notifications/Notification.js +1 -1
  544. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  545. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  546. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  547. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  548. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  549. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  550. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  551. package/dist/components/overlays/Notifications/OverlayContainer.js +2 -2
  552. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  553. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  554. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  555. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  556. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  557. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  558. package/dist/components/overlays/Notifications/index.js +1 -1
  559. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  560. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  561. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  562. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  563. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  564. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  565. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  566. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  567. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  568. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  569. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  570. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  571. package/dist/components/overlays/Toast/index.js +2 -2
  572. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  573. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  574. package/dist/components/overlays/Toast/useToast.js +2 -2
  575. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  576. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  577. package/dist/components/overlays/Tooltip/TooltipProvider.js +20 -7
  578. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  579. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -0
  580. package/dist/components/overlays/Tooltip/TooltipTrigger.js +225 -103
  581. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  582. package/dist/components/overlays/Tooltip/context.js +1 -1
  583. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  584. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  585. package/dist/components/portal/Portal.js +1 -1
  586. package/dist/components/portal/PortalProvider.js +1 -1
  587. package/dist/components/portal/usePortal.js +1 -1
  588. package/dist/components/shared/DraggableCollection.js +1 -1
  589. package/dist/components/shared/InvalidIcon.js +1 -1
  590. package/dist/components/shared/ValidIcon.js +1 -1
  591. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  592. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  593. package/dist/components/status/Spin/Cube.js +1 -1
  594. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  595. package/dist/components/status/Spin/Spin.js +1 -1
  596. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  597. package/dist/data/item-themes.js +8 -32
  598. package/dist/data/item-themes.js.map +1 -1
  599. package/dist/data/themes.js +1 -1
  600. package/dist/eslint-plugin/defaults.generated.js +1 -1
  601. package/dist/eslint-plugin/index.js +1 -1
  602. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  603. package/dist/i18n/I18nProvider.js +1 -1
  604. package/dist/i18n/createFormatter.js +1 -1
  605. package/dist/i18n/index.js +4 -4
  606. package/dist/i18n/instance.js +3 -3
  607. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  608. package/dist/i18n/locales/en-US/uikit.js +1 -1
  609. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  610. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  611. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  612. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  613. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  614. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  615. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  616. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  617. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  618. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  619. package/dist/i18n/locales.js +1 -1
  620. package/dist/i18n/namespace.js +1 -1
  621. package/dist/i18n/useFormatter.js +1 -1
  622. package/dist/i18n/useI18n.js +1 -1
  623. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  624. package/dist/icons/AdjustmentsIcon.js +1 -1
  625. package/dist/icons/AiIcon.js +1 -1
  626. package/dist/icons/AreaChartIcon.js +1 -1
  627. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  628. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  629. package/dist/icons/BackwardIcon.js +1 -1
  630. package/dist/icons/BarChartIcon.js +1 -1
  631. package/dist/icons/BellFilledIcon.js +1 -1
  632. package/dist/icons/BellIcon.js +1 -1
  633. package/dist/icons/BooleanIcon.js +1 -1
  634. package/dist/icons/CalendarEditIcon.js +1 -1
  635. package/dist/icons/CalendarIcon.js +1 -1
  636. package/dist/icons/CaretDownIcon.js +1 -1
  637. package/dist/icons/CaretUpIcon.js +1 -1
  638. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  639. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  640. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  641. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  642. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  643. package/dist/icons/ChartBarLineIcon.js +1 -1
  644. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  645. package/dist/icons/ChartBarStackedIcon.js +1 -1
  646. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  647. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  648. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  649. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  650. package/dist/icons/ChartBubbleIcon.js +1 -1
  651. package/dist/icons/ChartDonut2Icon.js +1 -1
  652. package/dist/icons/ChartFunnelIcon.js +1 -1
  653. package/dist/icons/ChartHeatmapIcon.js +1 -1
  654. package/dist/icons/ChartKPIIcon.js +1 -1
  655. package/dist/icons/ChartPie2Icon.js +1 -1
  656. package/dist/icons/ChartScatterIcon.js +1 -1
  657. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  658. package/dist/icons/CheckCircleIcon.js +1 -1
  659. package/dist/icons/CheckIcon.js +1 -1
  660. package/dist/icons/CircleFilledIcon.js +1 -1
  661. package/dist/icons/ClearIcon.js +1 -1
  662. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  663. package/dist/icons/CloseCircleIcon.js +1 -1
  664. package/dist/icons/CloseIcon.js +1 -1
  665. package/dist/icons/CodeIcon.js +1 -1
  666. package/dist/icons/ColumnTotalIcon.js +1 -1
  667. package/dist/icons/CopyIcon.js +1 -1
  668. package/dist/icons/CountIcon.js +1 -1
  669. package/dist/icons/CubeIcon.js +1 -1
  670. package/dist/icons/CubePauseIcon.js +1 -1
  671. package/dist/icons/CubePlayIcon.js +1 -1
  672. package/dist/icons/CurrencyDollarIcon.js +1 -1
  673. package/dist/icons/DangerIcon.js +1 -1
  674. package/dist/icons/DashboardIcon.js +1 -1
  675. package/dist/icons/DatabaseIcon.js +1 -1
  676. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  677. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  678. package/dist/icons/DirectionIcon.js +1 -1
  679. package/dist/icons/DonutIcon.js +1 -1
  680. package/dist/icons/DownIcon.js +1 -1
  681. package/dist/icons/EditIcon.js +1 -1
  682. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  683. package/dist/icons/ExclamationCircleIcon.js +1 -1
  684. package/dist/icons/ExclamationIcon.js +1 -1
  685. package/dist/icons/EyeIcon.js +1 -1
  686. package/dist/icons/EyeInvisibleIcon.js +1 -1
  687. package/dist/icons/FilterIcon.js +1 -1
  688. package/dist/icons/FolderFilledIcon.js +1 -1
  689. package/dist/icons/FolderIcon.js +1 -1
  690. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  691. package/dist/icons/FolderOpenIcon.js +1 -1
  692. package/dist/icons/ForwardIcon.js +1 -1
  693. package/dist/icons/GripVerticalIcon.js +1 -1
  694. package/dist/icons/HierarchyIcon.js +1 -1
  695. package/dist/icons/HierarchyOpenIcon.js +1 -1
  696. package/dist/icons/Icon.js +1 -1
  697. package/dist/icons/InfoCircleIcon.js +1 -1
  698. package/dist/icons/InfoIcon.js +1 -1
  699. package/dist/icons/KeyIcon.js +1 -1
  700. package/dist/icons/LeftIcon.js +1 -1
  701. package/dist/icons/LineChartIcon.js +1 -1
  702. package/dist/icons/LoadingIcon.js +1 -1
  703. package/dist/icons/LockFilledIcon.js +1 -1
  704. package/dist/icons/LockIcon.js +1 -1
  705. package/dist/icons/MoreIcon.js +1 -1
  706. package/dist/icons/NotAllowedIcon.js +1 -1
  707. package/dist/icons/Number123Icon.js +1 -1
  708. package/dist/icons/NumberIcon.js +1 -1
  709. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  710. package/dist/icons/PauseCircleIcon.js +1 -1
  711. package/dist/icons/PauseIcon.js +1 -1
  712. package/dist/icons/PercentageIcon.js +1 -1
  713. package/dist/icons/PieChartIcon.js +1 -1
  714. package/dist/icons/PipetteIcon.js +1 -1
  715. package/dist/icons/PlayCircleIcon.js +1 -1
  716. package/dist/icons/PlayIcon.js +1 -1
  717. package/dist/icons/PlusIcon.js +1 -1
  718. package/dist/icons/ProgressBarIcon.js +1 -1
  719. package/dist/icons/ReloadIcon.js +1 -1
  720. package/dist/icons/ReportIcon.js +1 -1
  721. package/dist/icons/ReturnIcon.js +1 -1
  722. package/dist/icons/RightIcon.js +1 -1
  723. package/dist/icons/RowTotalsIcon.js +1 -1
  724. package/dist/icons/SchemeIcon.js +1 -1
  725. package/dist/icons/SearchIcon.js +1 -1
  726. package/dist/icons/SemanticQueryIcon.js +1 -1
  727. package/dist/icons/SettingsIcon.js +1 -1
  728. package/dist/icons/ShieldFilledIcon.js +1 -1
  729. package/dist/icons/ShieldIcon.js +1 -1
  730. package/dist/icons/SlashIcon.js +1 -1
  731. package/dist/icons/SparklesIcon.js +1 -1
  732. package/dist/icons/SqlIcon.js +1 -1
  733. package/dist/icons/StatsIcon.js +1 -1
  734. package/dist/icons/StopIcon.js +1 -1
  735. package/dist/icons/StringIcon.js +1 -1
  736. package/dist/icons/SubtotalsIcon.js +1 -1
  737. package/dist/icons/SwitchIcon.js +1 -1
  738. package/dist/icons/TableIcon.js +1 -1
  739. package/dist/icons/ThumbsDownIcon.js +1 -1
  740. package/dist/icons/ThumbsUpIcon.js +1 -1
  741. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  742. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  743. package/dist/icons/ThunderboltIcon.js +1 -1
  744. package/dist/icons/TimeIcon.js +1 -1
  745. package/dist/icons/TrashIcon.js +1 -1
  746. package/dist/icons/UnlockIcon.js +1 -1
  747. package/dist/icons/UpIcon.js +1 -1
  748. package/dist/icons/UserGroupIcon.js +1 -1
  749. package/dist/icons/UserIcon.js +1 -1
  750. package/dist/icons/UserLockIcon.js +1 -1
  751. package/dist/icons/ViewIcon.js +1 -1
  752. package/dist/icons/WarningFilledIcon.js +1 -1
  753. package/dist/icons/WarningIcon.js +1 -1
  754. package/dist/icons/wrap-icon.js +1 -1
  755. package/dist/index.d.ts +29 -27
  756. package/dist/index.js +69 -69
  757. package/dist/probe/canonicalize.js +1 -1
  758. package/dist/probe/css.js +1 -1
  759. package/dist/probe/index.js +1 -1
  760. package/dist/provider.js +2 -2
  761. package/dist/providers/TrackingProvider.js +1 -1
  762. package/dist/providers/navigation-url.js +1 -1
  763. package/dist/providers/navigationAdapter.default.js +1 -1
  764. package/dist/providers/use-navigation.js +1 -1
  765. package/dist/tokens/all-tokens.js +1 -1
  766. package/dist/tokens/base.js +1 -1
  767. package/dist/tokens/color-seed.js +1 -1
  768. package/dist/tokens/color-theme.js +1 -1
  769. package/dist/tokens/colors.js +1 -1
  770. package/dist/tokens/layout.js +1 -1
  771. package/dist/tokens/lazy-styles.js +1 -1
  772. package/dist/tokens/legacy-color.js +1 -1
  773. package/dist/tokens/palette-config.js +1 -1
  774. package/dist/tokens/palette.js +23 -11
  775. package/dist/tokens/palette.js.map +1 -1
  776. package/dist/tokens/resolve.js +2 -2
  777. package/dist/tokens/shadows.js +1 -1
  778. package/dist/tokens/sizes.js +1 -1
  779. package/dist/tokens/spacing.js +1 -1
  780. package/dist/tokens/typography.js +1 -1
  781. package/dist/utils/ResizeSensor.js +1 -1
  782. package/dist/utils/colors.js +1 -1
  783. package/dist/utils/dotize.js +1 -1
  784. package/dist/utils/index.d.ts +1 -1
  785. package/dist/utils/is-dev-env.js +1 -1
  786. package/dist/utils/modules.js +1 -1
  787. package/dist/utils/promise.js +1 -1
  788. package/dist/utils/raf.js +1 -1
  789. package/dist/utils/random.js +1 -1
  790. package/dist/utils/range.js +1 -1
  791. package/dist/utils/react/RenderCache.js +1 -1
  792. package/dist/utils/react/Slots.js +1 -1
  793. package/dist/utils/react/chain.js +1 -1
  794. package/dist/utils/react/disabledProps.js +1 -1
  795. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  796. package/dist/utils/react/index.d.ts +3 -3
  797. package/dist/utils/react/index.js +13 -13
  798. package/dist/utils/react/interactions.js +1 -1
  799. package/dist/utils/react/isTextOnly.js +1 -1
  800. package/dist/utils/react/mapProps.js +1 -1
  801. package/dist/utils/react/mergeProps.js +1 -1
  802. package/dist/utils/react/nullableValue.js +1 -1
  803. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  804. package/dist/utils/react/programmaticFocus.js +1 -1
  805. package/dist/utils/react/resolveIcon.js +1 -1
  806. package/dist/utils/react/sharedStore.js +1 -1
  807. package/dist/utils/react/useBufferedValue.js +1 -1
  808. package/dist/utils/react/useCombinedRefs.js +1 -1
  809. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  810. package/dist/utils/react/useEventBus.js +1 -1
  811. package/dist/utils/react/useId.js +1 -1
  812. package/dist/utils/react/useIsDarwin.js +1 -1
  813. package/dist/utils/react/useKeySymbols.js +1 -1
  814. package/dist/utils/react/useLayoutEffect.js +1 -1
  815. package/dist/utils/react/useLocalStorage.js +1 -1
  816. package/dist/utils/react/useMergeStyles.js +1 -1
  817. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  818. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  819. package/dist/utils/react/usePopoverSync.js +1 -1
  820. package/dist/utils/react/useQaProps.js +1 -1
  821. package/dist/utils/react/useScheme.js +1 -1
  822. package/dist/utils/react/useViewportSize.js +1 -1
  823. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  824. package/dist/utils/selection.js +1 -1
  825. package/dist/utils/styles.js +1 -1
  826. package/dist/utils/tree.js +1 -1
  827. package/dist/utils/warnings.js +1 -1
  828. package/dist/version.js +3 -3
  829. package/docs/Usage.md +15 -1
  830. package/docs/components/actions/Button.md +45 -0
  831. package/docs/components/actions/ButtonSplit.md +1 -1
  832. package/docs/components/fields/FileInput.md +18 -5
  833. package/docs/glaze/contrast.mdx +751 -0
  834. package/docs/glaze/exporting.mdx +635 -0
  835. package/docs/glaze/getting-started.mdx +487 -0
  836. package/docs/glaze/hdr.mdx +523 -0
  837. package/docs/glaze/methodology.mdx +979 -0
  838. package/docs/glaze/migration.md +476 -285
  839. package/docs/glaze/mixes.mdx +348 -0
  840. package/docs/glaze/okhst.mdx +692 -0
  841. package/docs/glaze/reference/color-definitions.md +552 -0
  842. package/docs/glaze/reference/color-tokens.md +421 -0
  843. package/docs/glaze/reference/configuration.md +532 -0
  844. package/docs/glaze/reference/contrast.md +279 -0
  845. package/docs/glaze/reference/index.md +225 -0
  846. package/docs/glaze/reference/output.md +714 -0
  847. package/docs/glaze/reference/palette.md +435 -0
  848. package/docs/glaze/reference/theme.md +332 -0
  849. package/docs/glaze/reference/utilities.md +646 -0
  850. package/docs/glaze/schemes.mdx +644 -0
  851. package/docs/glaze/shadows-and-glows.mdx +550 -0
  852. package/docs/tasty/ai-agents.md +1 -1
  853. package/docs/tasty/design-system.md +12 -0
  854. package/docs/tasty/dsl.md +20 -0
  855. package/docs/tasty/pipeline.md +1 -1
  856. package/package.json +5 -5
  857. package/tasty.config.generated.ts +1 -1
  858. package/dist/components/actions/index.js +0 -29
  859. package/dist/components/actions/index.js.map +0 -1
  860. package/dist/components/fields/ListBoxPopover/ListBoxPopover.d.ts +0 -4
  861. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -5
  862. package/dist/components/overlays/Modal/Modal.d.ts +0 -3
  863. package/dist/components/overlays/Modal/Popover.d.ts +0 -7
  864. package/dist/components/overlays/Modal/Tray.d.ts +0 -5
  865. package/dist/components/overlays/Modal/Underlay.d.ts +0 -3
  866. package/dist/components/overlays/Modal/index.d.ts +0 -8
  867. package/docs/glaze/api.md +0 -2021
  868. package/docs/glaze/methodology.md +0 -686
  869. package/docs/glaze/okhst.md +0 -207
@@ -1 +1 @@
1
- {"version":3,"file":"InlineInput.js","names":["useControlledState","BaseProps","BLOCK_STYLES","BlockStyleProps","COLOR_STYLES","ColorStyleProps","filterBaseProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","useState","FocusScope","PositionProps","useFocusRing","useFocusWithin","useEvent","mergeProps","extractStyles","mergeStyleLayers","AutoTooltipValue","useAutoTooltip","ChangeEvent","HTMLAttributes","KeyboardEvent","MouseEvent","ReactNode","RefObject","CubeInlineInputEditTrigger","CubeInlineInputProps","value","defaultValue","onChange","isEditing","defaultIsEditing","onEditingChange","onSubmit","Promise","onCancel","editTrigger","keyboardActivation","submitOnBlur","trimOnSubmit","allowEmpty","isDisabled","isReadOnly","isStyled","placeholder","autoComplete","renderDisplay","tooltip","tooltipPlacement","inputStyles","CubeInlineInputRef","startEditing","stopEditing","submit","focus","getValue","InlineInputRoot","as","styles","display","alignItems","styled","verticalAlign","position","width","boxSizing","color","preset","cursor","fill","border","outline","outlineOffset","radius","focused","padding","height","transition","Display","whiteSpace","overflow","textOverflow","Input","recipe","textAlign","Measure","visibility","pointerEvents","Placeholder","STYLE_PROPS","PROGRAMMATIC_EDIT_BLUR_GRACE_MS","InlineInput","allProps","ref","$","_c","valueProp","isEditingProp","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","ariaLabel","ariaLabelledby","qa","qaVal","stylesProp","mods","customMods","tokens","customTokens","otherProps","undefined","isControlled","inputRef","measureRef","rootRef","setValue","setIsEditing","optimisticValue","setOptimisticValue","displayedValue","draft","setDraft","inputWidth","setInputWidth","isFocusWithin","setIsFocusWithin","ringSuppressed","setRingSuppressed","submitTokenRef","programmaticEditStartRef","pendingRestoreFocusRef","isEditingRef","t10","t11","current","t12","Symbol","for","t13","t14","enterEditing","t15","canRestoreFocus","t16","rawValue","t17","restoreFocus","next","trim","token","result","then","_temp","commit","t18","restoreFocus_0","cancel","t19","t20","t21","select","t22","t23","root","active","ownerDocument","activeElement","focusLost","body","contains","t24","measure","scrollWidth","t25","t26","e","key","preventDefault","stopPropagation","handleKeyDown","t27","e_0","target","handleInputChange","isFocusVisible","focusProps","focusRingProps","t28","within","t29","onFocusWithinChange","onBlurWithin","active_0","startedAt","Date","now","requestAnimationFrame","focusWithinProps","t30","e_1","handleDblClick","t31","e_2","handleClick","t32","e_3","handleRootKeyDown","t33","t34","wasEditing","t35","isEditable","showFocusRing","t36","editing","editable","disabled","empty","mergedStyles","extractedStyles","t37","t38","t39","displayContent","baseProps","eventProps","t40","t41","children","labelRef","tooltipLabelRef","renderWithTooltip","wantsClick","wantsDblClick","wantsKeyboard","renderRoot","triggerProps","tooltipRef","handleRootRef","element","HTMLElement","handleDisplayRef","element_0","a11yProps","tabIndex","role","onDoubleClick","onClick","onKeyDown","_c","mergeProps"],"sources":["../../../../src/components/content/InlineInput/InlineInput.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n filterBaseProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport {\n FocusScope,\n PositionProps,\n useFocusRing,\n useFocusWithin,\n} from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { AutoTooltipValue, useAutoTooltip } from '../use-auto-tooltip';\n\nimport type {\n ChangeEvent,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type CubeInlineInputEditTrigger = 'dblclick' | 'click' | 'none';\n\nexport interface CubeInlineInputProps\n extends BaseProps, BlockStyleProps, OuterStyleProps, ColorStyleProps {\n /** Controlled value. When provided, the component is controlled. */\n value?: string;\n /** Initial value for uncontrolled usage. */\n defaultValue?: string;\n /**\n * Fires on commit *only when the value actually changed*. Use this to update\n * external state. Pair with `value` for the controlled pattern.\n */\n onChange?: (value: string) => void;\n\n /** Controlled editing state. When provided, the editing state is controlled. */\n isEditing?: boolean;\n /** Default editing state for uncontrolled usage. */\n defaultIsEditing?: boolean;\n /** Called when editing mode starts or ends. */\n onEditingChange?: (isEditing: boolean) => void;\n\n /**\n * Fires every time the user commits (Enter / submit-on-blur / `ref.stopEditing(true)`),\n * even if the value did not change. Use for side effects like analytics or\n * \"save\" toasts. For state updates, prefer `onChange`.\n *\n * May return a Promise. If the returned Promise **rejects**, the component\n * automatically reverts its optimistic display to the actual `value` prop —\n * this gives async-save flows free rollback on failure (in controlled mode).\n */\n onSubmit?: (value: string) => void | Promise<unknown>;\n /** Called when editing is cancelled (Escape or empty submit when `allowEmpty` is false). */\n onCancel?: () => void;\n\n /** How edit mode is activated from the display element. Default: `'dblclick'`. */\n editTrigger?: CubeInlineInputEditTrigger;\n /**\n * When true (default) the display element is keyboard-focusable and\n * responds to `Enter`, `F2` and `Space` by entering edit mode. Set to\n * `false` when a host (e.g. an editable tab inside a button) already\n * routes keyboard activation through `ref.startEditing()` — exposing the\n * display element as a separate tab stop would create a nested keyboard\n * focus inside the host.\n *\n * @default true\n */\n keyboardActivation?: boolean;\n /** Whether to submit when focus leaves the input. Default: `true`. */\n submitOnBlur?: boolean;\n /** Whether to trim the value on submit. Default: `true`. */\n trimOnSubmit?: boolean;\n /** When false, submitting an empty/whitespace value cancels instead. Default: `false`. */\n allowEmpty?: boolean;\n /** When true, edit mode cannot be entered (programmatically or otherwise). */\n isDisabled?: boolean;\n /** When true, edit mode cannot be entered, but the display reads as enabled. */\n isReadOnly?: boolean;\n\n /**\n * When true, applies a styled wrapper to the component (border, fill, padding,\n * fixed height) so it visually matches a `TextInput`. Useful when swapping a\n * field component (e.g. `Select`) for an `InlineInput` to rename / edit the\n * current value without a visual jump.\n *\n * @default false\n */\n isStyled?: boolean;\n\n /** Placeholder text shown in the input when the draft is empty. */\n placeholder?: string;\n /**\n * What kind of autofill the browser may offer for the input, as the HTML `autocomplete` token\n * (`email`, `off`, …). See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete).\n */\n autoComplete?: string;\n /** Custom render for display (non-editing) mode. Receives the currently-displayed value (including optimistic). */\n renderDisplay?: (value: string) => ReactNode;\n /** ARIA label for the input (used when no visible label is associated). */\n 'aria-label'?: string;\n /** ARIA labelledby for the input. */\n 'aria-labelledby'?: string;\n\n /**\n * Tooltip behaviour for the display value:\n * - `true` (default): auto-tooltip — show the full value when the text is truncated.\n * - `false`: never show a tooltip.\n * - `string`: always show this tooltip text.\n * - object: full `TooltipProvider` configuration (with optional `auto`).\n *\n * The tooltip is automatically suppressed while editing and when `renderDisplay` is used.\n */\n tooltip?: AutoTooltipValue;\n /** Default tooltip placement. @default 'top' */\n tooltipPlacement?: PositionProps['placement'];\n\n /** Convenience prop for styling the `Input` sub-element. Merged into `styles.Input`. */\n inputStyles?: Styles;\n}\n\nexport interface CubeInlineInputRef {\n /** Programmatically enter edit mode. */\n startEditing(): void;\n /** Programmatically exit edit mode. `submit=true` commits, `submit=false` cancels. Defaults to commit. */\n stopEditing(submit?: boolean): void;\n /** Focus the underlying element (input when editing, root span otherwise). */\n focus(): void;\n /** Current committed value (includes optimistic value if a parent hasn't synced yet). */\n getValue(): string;\n}\n\n// =============================================================================\n// Styled element\n// =============================================================================\n\nconst InlineInputRoot = tasty({\n as: 'span',\n styles: {\n // `inline-flex` with `alignItems: baseline` is used (instead of\n // `inline-block` + `overflow: hidden`) so the container's baseline comes\n // from the first flex item's content baseline. With `inline-block` +\n // `overflow: hidden`, the CSS spec forces the baseline to the bottom\n // margin edge, which visibly shifts the text upward inside surrounding\n // line boxes (notably inside Tabs' centered `Item.Label`).\n display: 'inline-flex',\n alignItems: {\n '': 'baseline',\n styled: 'center',\n },\n verticalAlign: {\n '': 'baseline',\n styled: 'middle',\n },\n position: 'relative',\n width: 'initial 100%',\n boxSizing: 'border-box',\n color: {\n '': 'inherit',\n styled: '#dark-02',\n 'styled & disabled': '#dark.30',\n },\n preset: {\n '': 'inherit',\n styled: 't3',\n },\n cursor: {\n '': 'inherit',\n 'editable & !editing': 'text',\n },\n fill: {\n '': '#clear',\n styled: '#surface',\n 'styled & disabled': '#disabled-surface',\n },\n border: {\n '': false,\n styled: true,\n 'styled & focused': '#primary-text',\n 'styled & disabled': true,\n },\n // Focus ring. Shown when the display element is keyboard-focused\n // (driven on the React side by `isFocusVisible`) and *always* while\n // editing — so swapping into the input always presents a clear focus\n // indicator regardless of how the user activated it (click vs keyboard).\n // In `styled` mode the border colour transition is enough to indicate\n // focus (matching `TextInput`'s visual), so the outline is suppressed.\n // Outline doesn't take layout space and respects rounded corners via\n // `outlineOffset`.\n outline: {\n '': '$ring-width #primary.0',\n 'focused & !styled': '$ring-width #primary',\n },\n outlineOffset: '$outline-offset',\n radius: {\n '': 0,\n focused: true,\n styled: true,\n },\n padding: {\n '': 0,\n styled: '(.75x - 1bw) (1x - 1bw)',\n },\n height: {\n '': 'auto',\n styled: '$size-md',\n },\n transition: 'theme',\n\n // Display flex item: owns the truncation (`overflow: hidden` here is a\n // block-level rule that does *not* alter the parent's baseline, unlike\n // an `inline-block` overflow rule).\n Display: {\n display: 'block',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: 'initial 100%',\n preset: 'inherit',\n color: 'inherit',\n },\n\n Input: {\n recipe: 'reset input / input-autofill',\n preset: 'inherit',\n color: 'inherit',\n fill: '#clear',\n textAlign: 'left',\n // In `styled` mode the wrapper has a fixed size and we want the input\n // to fill it (matches `TextInput`). In the default inline mode the\n // input auto-sizes to its content via `$input-width`.\n width: {\n '': '1em $input-width 100%',\n styled: '0 100% initial',\n },\n '&::placeholder': { recipe: 'input-placeholder' },\n },\n\n Measure: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none',\n whiteSpace: 'pre',\n preset: 'inherit',\n height: 0,\n overflow: 'hidden',\n },\n\n Placeholder: {\n recipe: 'input-placeholder',\n preset: 'inherit',\n },\n },\n});\n\nconst STYLE_PROPS = [...BLOCK_STYLES, ...OUTER_STYLES, ...COLOR_STYLES];\n\n// Grace window after a programmatic `startEditing()` during which a blur\n// re-focuses the input rather than committing. ~500ms covers the\n// Menu/Popover EXIT_DURATION (350ms in `Overlay.tsx`) with margin, since a\n// host that starts editing from a closing overlay is the case that needs the\n// widest window.\nconst PROGRAMMATIC_EDIT_BLUR_GRACE_MS = 500;\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * Inline editable text. Renders the value as inline content by default and\n * swaps to an auto-sizing text input when entering edit mode.\n *\n * Designed to drop into any text context (tab title, heading, paragraph,\n * table cell) without style customization: typography, color, and font family\n * are all inherited from the parent.\n *\n * Value and `isEditing` can each be controlled or uncontrolled independently.\n * Programmatic entry via the imperative ref (`startEditing`/`stopEditing`)\n * works regardless of `editTrigger`.\n */\nexport const InlineInput = forwardRef<CubeInlineInputRef, CubeInlineInputProps>(\n function InlineInput(allProps, ref) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n isEditing: isEditingProp,\n defaultIsEditing,\n onEditingChange,\n onSubmit,\n onCancel,\n editTrigger = 'dblclick',\n keyboardActivation = true,\n submitOnBlur = true,\n trimOnSubmit = true,\n allowEmpty = false,\n isDisabled = false,\n isReadOnly = false,\n isStyled = false,\n placeholder,\n autoComplete,\n renderDisplay,\n tooltip = true,\n tooltipPlacement = 'top',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n qa,\n qaVal,\n styles: stylesProp,\n inputStyles,\n mods: customMods,\n tokens: customTokens,\n ...otherProps\n } = allProps;\n\n const isControlled = valueProp !== undefined;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const measureRef = useRef<HTMLSpanElement>(null);\n const rootRef = useRef<HTMLSpanElement>(null);\n\n const [value, setValue] = useControlledState<string>(\n valueProp as string,\n (defaultValue ?? '') as string,\n onChange,\n );\n\n const [isEditing, setIsEditing] = useControlledState<boolean>(\n isEditingProp as boolean,\n (defaultIsEditing ?? false) as boolean,\n onEditingChange,\n );\n\n // Optimistic value. Holds the just-committed value while we wait for the\n // (potentially async) controlled parent to sync `value`. In uncontrolled\n // mode `value` updates immediately so this stays null after each render.\n const [optimisticValue, setOptimisticValue] = useState<string | null>(null);\n const displayedValue = optimisticValue ?? value;\n\n const [draft, setDraft] = useState<string>(value);\n const [inputWidth, setInputWidth] = useState<number | null>(null);\n\n // Reliable focus presence for the whole component, driven by\n // `useFocusWithin` (which, unlike `useFocusRing`/`useFocus` on a bare\n // span, has an element-removal fallback). Used to gate the display focus\n // ring so it can never get stuck on after editing ends or after focus\n // moves to another component.\n const [isFocusWithin, setIsFocusWithin] = useState(false);\n\n // Suppresses the display focus ring for a single programmatic focus\n // restore (when we return focus to the display span after a keyboard /\n // programmatic edit-end). Reset whenever focus truly leaves the component\n // so a later real keyboard Tab back shows the ring again.\n const [ringSuppressed, setRingSuppressed] = useState(false);\n\n // Token to invalidate in-flight onSubmit promises if a newer commit /\n // re-entry happens before they settle.\n const submitTokenRef = useRef(0);\n\n // Timestamp of the most recent programmatic `startEditing()` call (via\n // the imperative ref). Used to defeat a focus-theft race: something else\n // takes focus in the same tick the input mounts, and the resulting blur\n // would fire `submitOnBlur` and unmount the input the user just opened.\n //\n // The thief varies by host — a host's own focus restoration (`TabButton`\n // re-focuses the tab button when editing ends), a collection's focus\n // manager, or an overlay closing around the `startEditing()` call. It is\n // NOT the closing `Menu` popover: `MenuTrigger` leaves focus alone once\n // an action has moved it (see CUB-3962). The guard is host-agnostic on\n // purpose — the imperative path cannot know who else wants focus.\n //\n // Cleared on first user interaction inside the input (`handleInputChange`\n // / `handleKeyDown`) and on leaving editing mode, so any later blur\n // commits normally.\n const programmaticEditStartRef = useRef<number | null>(null);\n\n // Set when an edit-end should return focus to the display span (keyboard\n // Enter/Escape, imperative `stopEditing`). NOT set for submit-on-blur /\n // tab-away, where focus has already moved elsewhere. Consumed by a layout\n // effect after the display span re-mounts.\n const pendingRestoreFocusRef = useRef(false);\n\n // Synchronous mirror of `isEditing`. We need this because cancel/commit\n // call user callbacks (`onCancel`/`onSubmit`) that may synchronously\n // re-focus another element — that causes a synchronous blur on the\n // input which would otherwise re-enter `commit` via `onBlurWithin` (the\n // state update from `setIsEditing(false)` isn't committed yet, so the\n // closure still sees `isEditing === true`).\n //\n // The ref is kept in sync via `useLayoutEffect` so concurrent renders\n // that get thrown away don't leak a stale value into the next commit.\n const isEditingRef = useRef(isEditing);\n\n useLayoutEffect(() => {\n isEditingRef.current = isEditing;\n }, [isEditing]);\n\n // Clear the optimistic value once `value` catches up or changes externally.\n useEffect(() => {\n setOptimisticValue(null);\n }, [value]);\n\n const enterEditing = useEvent(() => {\n if (isDisabled || isReadOnly || isEditing) return;\n // Invalidate any in-flight onSubmit promise — its outcome no longer\n // matters because the user is about to commit a new value anyway.\n submitTokenRef.current += 1;\n isEditingRef.current = true;\n // Start from the actual prop value, not optimistic — gives the user a\n // way to recover if a previous commit was rejected by the parent.\n setOptimisticValue(null);\n setDraft(value);\n setIsEditing(true);\n });\n\n // Whether an edit-end should return focus to the display span. Only when\n // this component owns its own keyboard/focus story (standalone usage).\n // Hosts that drive editing through `ref.startEditing()` with\n // `keyboardActivation={false}` (e.g. `Tabs`) keep ownership of focus.\n const canRestoreFocus = () =>\n keyboardActivation &&\n editTrigger !== 'none' &&\n !isDisabled &&\n !isReadOnly;\n\n const commit = useEvent((rawValue: string, restoreFocus = true) => {\n // Re-entry guard. `onSubmit`/`onCancel` may synchronously refocus and\n // trigger another blur-driven commit before the state update lands.\n if (!isEditingRef.current) return;\n\n const next = trimOnSubmit ? rawValue.trim() : rawValue;\n\n if (restoreFocus && canRestoreFocus()) {\n pendingRestoreFocusRef.current = true;\n }\n\n if (!next && !allowEmpty) {\n isEditingRef.current = false;\n programmaticEditStartRef.current = null;\n setIsEditing(false);\n onCancel?.();\n\n return;\n }\n\n const token = ++submitTokenRef.current;\n\n if (isControlled) {\n // Show the new value optimistically until the parent re-renders.\n setOptimisticValue(next);\n }\n isEditingRef.current = false;\n programmaticEditStartRef.current = null;\n setValue(next);\n setIsEditing(false);\n\n const result = onSubmit?.(next);\n // If onSubmit returns a Promise that rejects, the parent is signalling\n // a save failure — revert the optimistic value back to the actual prop.\n // We guard with a token so a slow rejection doesn't clobber a newer\n // commit's optimistic display.\n if (\n result != null &&\n typeof (result as Promise<unknown>).then === 'function'\n ) {\n (result as Promise<unknown>).then(\n () => {},\n () => {\n if (submitTokenRef.current === token && isControlled) {\n setOptimisticValue(null);\n }\n },\n );\n }\n });\n\n const cancel = useEvent((restoreFocus = true) => {\n if (!isEditingRef.current) return;\n if (restoreFocus && canRestoreFocus()) {\n pendingRestoreFocusRef.current = true;\n }\n isEditingRef.current = false;\n programmaticEditStartRef.current = null;\n setIsEditing(false);\n onCancel?.();\n });\n\n // Keep draft in sync with the external value while NOT editing.\n useEffect(() => {\n if (!isEditing) setDraft(value);\n }, [value, isEditing]);\n\n // Select all text synchronously when entering edit mode.\n useLayoutEffect(() => {\n if (!isEditing) return;\n inputRef.current?.select();\n }, [isEditing]);\n\n // Return focus to the display span after a keyboard / programmatic\n // edit-end so keyboard navigation continues from this control. The focus\n // is programmatic (react-aria treats it as non-keyboard) and we set\n // `ringSuppressed` so it does not draw a focus ring; a later real Tab to\n // the element resets the suppression (see `onFocusWithinChange`).\n //\n // `onSubmit`/`onCancel` may synchronously move focus elsewhere. When the\n // input unmounts, the browser drops focus to `<body>`, so we only restore\n // focus to the display span when focus actually landed there (or nowhere).\n // If a handler deliberately moved focus to another element, we leave it.\n useLayoutEffect(() => {\n if (isEditing || !pendingRestoreFocusRef.current) return;\n pendingRestoreFocusRef.current = false;\n\n const root = rootRef.current;\n if (!root) return;\n\n const active = root.ownerDocument.activeElement;\n const focusLost = !active || active === root.ownerDocument.body;\n // A handler moved focus to a real element outside this control — respect\n // it and don't pull focus back.\n if (!focusLost && !root.contains(active)) return;\n\n setRingSuppressed(true);\n root.focus();\n }, [isEditing]);\n\n // Measure the draft so the input width follows the typed glyphs.\n useLayoutEffect(() => {\n if (!isEditing) return;\n const measure = measureRef.current;\n\n if (!measure) return;\n setInputWidth(measure.scrollWidth);\n }, [isEditing, draft, placeholder]);\n\n const handleKeyDown = useEvent((e: KeyboardEvent<HTMLInputElement>) => {\n // User is interacting with the input — drop the post-`startEditing()`\n // blur guard so a subsequent click-away commits normally.\n programmaticEditStartRef.current = null;\n\n if (e.key === 'Enter') {\n e.preventDefault();\n commit(draft);\n\n return;\n }\n\n if (e.key === 'Escape') {\n e.preventDefault();\n cancel();\n\n return;\n }\n\n // Prevent the host (e.g. Tabs) from intercepting text-editing keys.\n if (\n e.key === 'ArrowLeft' ||\n e.key === 'ArrowRight' ||\n e.key === ' ' ||\n e.key === 'Delete' ||\n e.key === 'Backspace'\n ) {\n e.stopPropagation();\n }\n });\n\n const handleInputChange = useEvent((e: ChangeEvent<HTMLInputElement>) => {\n programmaticEditStartRef.current = null;\n setDraft(e.target.value);\n });\n\n // Keyboard focus-visible modality (mouse vs keyboard). Used together with\n // `isFocusWithin` to drive the display focus ring. We rely on\n // `useFocusWithin` (below) for the *presence* of focus because, unlike\n // `useFocusRing`/`useFocus` on a bare span, it has an element-removal\n // fallback — so the ring can never get stuck on after the inner input is\n // unmounted on edit-end or after focus moves away.\n const { isFocusVisible, focusProps: focusRingProps } = useFocusRing();\n\n // Always enabled so it reliably reports focus presence in BOTH display\n // and edit modes. The submit-on-blur logic is internally guarded by\n // `isEditingRef`, so running `onBlurWithin` in display mode is a no-op.\n const { focusWithinProps } = useFocusWithin({\n onFocusWithinChange: (within) => {\n setIsFocusWithin(within);\n // Once focus truly leaves the component, clear the one-shot ring\n // suppression so a later real keyboard Tab back shows the ring again.\n if (!within) setRingSuppressed(false);\n },\n onBlurWithin: () => {\n if (!isEditingRef.current) return;\n if (!submitOnBlur) return;\n\n // Spurious-blur guard. `useFocusWithin` fires a synthetic blur via its\n // element-removal fallback when the display span unmounts as we enter\n // edit mode (focus actually moved INTO the inner input). Ignore it if\n // focus is in fact still within the component.\n const active = rootRef.current?.ownerDocument.activeElement;\n if (active && rootRef.current?.contains(active)) return;\n\n // Grace-period guard against focus theft right after a programmatic\n // `startEditing()` — see `programmaticEditStartRef` for who steals it.\n // Re-focus the input on the next frame so the focus-stealing element\n // finishes its own handler first, then we steal focus back. The guard\n // is cleared on the first real user interaction with the input\n // (keydown / input change) so subsequent click-aways commit normally.\n const startedAt = programmaticEditStartRef.current;\n if (\n startedAt != null &&\n Date.now() - startedAt < PROGRAMMATIC_EDIT_BLUR_GRACE_MS &&\n isEditingRef.current\n ) {\n requestAnimationFrame(() => {\n if (isEditingRef.current) {\n inputRef.current?.focus();\n inputRef.current?.select();\n }\n });\n\n return;\n }\n\n // Focus has already moved elsewhere (tab-away / click-away), so do\n // NOT pull it back to the display span.\n commit(draft, false);\n },\n });\n\n const handleDblClick = useEvent((e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n enterEditing();\n });\n\n const handleClick = useEvent((e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n enterEditing();\n });\n\n // Keyboard activation from the display element (standalone usage).\n // Hosts that own keyboard handling themselves should pass\n // `keyboardActivation={false}` (see `TabButton` for an example).\n const handleRootKeyDown = useEvent((e: KeyboardEvent<HTMLSpanElement>) => {\n if (e.key === 'Enter' || e.key === 'F2' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n enterEditing();\n }\n });\n\n useImperativeHandle(\n ref,\n () => ({\n startEditing: () => {\n // Arm the grace-period blur guard for the imperative path only.\n // Pointer-triggered entries (dblclick / click) don't suffer from\n // the focus-theft race that motivates this guard — the user's own\n // press is what put focus here.\n const wasEditing = isEditingRef.current;\n enterEditing();\n if (!wasEditing && isEditingRef.current) {\n programmaticEditStartRef.current = Date.now();\n }\n },\n stopEditing: (submit = true) => {\n if (!isEditingRef.current) return;\n if (submit) commit(draft);\n else cancel();\n },\n focus: () => {\n if (isEditingRef.current) inputRef.current?.focus();\n else rootRef.current?.focus();\n },\n getValue: () => displayedValue,\n }),\n [enterEditing, commit, cancel, draft, displayedValue],\n );\n\n const isEditable = editTrigger !== 'none' && !isDisabled && !isReadOnly;\n\n // `focused` controls the visible focus indicator on the root.\n //\n // While editing, the inner `<input>` always has focus (FocusScope\n // `autoFocus`), so we show the focus indicator on the root regardless\n // of how the user activated edit mode (click vs keyboard).\n //\n // In display mode we show the indicator only on keyboard focus\n // (`isFocusVisible`) AND when focus is actually within the component\n // (`isFocusWithin`) AND the display element is focusable (`isEditable`).\n // The `isFocusWithin` gate is the key fix: it reliably drops to `false`\n // on edit-end / tab-away (it has an element-removal fallback that\n // `useFocusRing` lacks on a bare span), so the ring can never get stuck\n // on. `ringSuppressed` hides the ring for a single programmatic focus\n // restore after a keyboard / programmatic edit-end.\n //\n // When `keyboardActivation` is `false` the host (e.g. `Tabs`) owns the\n // entire focus story for this control, so we suppress the focus ring\n // entirely — including while editing — to avoid drawing a redundant\n // indicator on top of the host's own focus ring.\n const showFocusRing =\n keyboardActivation &&\n (isEditing ||\n (isFocusVisible && isFocusWithin && isEditable && !ringSuppressed));\n\n const mods = {\n editing: isEditing,\n editable: isEditable,\n focused: showFocusRing,\n disabled: isDisabled,\n 'read-only': isReadOnly,\n styled: isStyled,\n empty: !displayedValue,\n ...customMods,\n };\n\n const mergedStyles = mergeStyleLayers(\n stylesProp,\n // oxlint-disable-next-line tasty/no-runtime-styles-mutation -- forwards the consumer's `inputStyles` to `Input`\n inputStyles ? { Input: inputStyles } : null,\n );\n\n const extractedStyles = extractStyles(\n otherProps,\n STYLE_PROPS,\n mergedStyles,\n );\n\n const tokens = {\n ...customTokens,\n '$input-width': inputWidth != null ? `${inputWidth}px` : 'auto',\n };\n\n // In display mode, render the placeholder when the value is empty so the\n // component remains visible / clickable. Consumers using `renderDisplay`\n // take full control and are responsible for handling empty values\n // themselves.\n const displayContent = renderDisplay\n ? renderDisplay(displayedValue)\n : displayedValue ||\n (placeholder ? (\n <span data-element=\"Placeholder\">{placeholder}</span>\n ) : (\n ''\n ));\n\n const baseProps = filterBaseProps(otherProps, { eventProps: true });\n\n // Overflow detection / auto-tooltip. Suppressed while editing (the input\n // owns the visible text and isn't truncated), and when the consumer\n // provides `renderDisplay` (they own the display story and should attach\n // their own tooltip if needed).\n const { labelRef: tooltipLabelRef, renderWithTooltip } = useAutoTooltip({\n tooltip: isEditing || renderDisplay ? false : tooltip,\n children: displayedValue,\n });\n\n // Wire pointer/keyboard activators only when relevant. Hosts that drive\n // editing through `ref.startEditing()` keep all of these `undefined` so\n // they don't intercept their own keyboard / focus story.\n const wantsClick = !isEditing && isEditable && editTrigger === 'click';\n const wantsDblClick =\n !isEditing && isEditable && editTrigger === 'dblclick';\n const wantsKeyboard = !isEditing && isEditable && keyboardActivation;\n\n const renderRoot = (\n triggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n const handleRootRef = (element: HTMLSpanElement | null) => {\n rootRef.current = element;\n if (tooltipRef) {\n (tooltipRef as { current: HTMLElement | null }).current = element;\n }\n };\n\n // Overflow detection has to look at the truncating element, which is now\n // the inner `Display` (the root is `inline-flex` and doesn't clip). The\n // tooltip still anchors to the root via `tooltipRef` above.\n const handleDisplayRef = (element: HTMLSpanElement | null) => {\n tooltipLabelRef(element);\n };\n\n const a11yProps: HTMLAttributes<HTMLElement> = {};\n\n if (wantsKeyboard) {\n a11yProps.tabIndex = 0;\n a11yProps.role = 'button';\n a11yProps['aria-roledescription'] = 'editable text';\n if (ariaLabel) a11yProps['aria-label'] = ariaLabel;\n if (ariaLabelledby) a11yProps['aria-labelledby'] = ariaLabelledby;\n }\n\n if (isDisabled) a11yProps['aria-disabled'] = true;\n if (isReadOnly) a11yProps['aria-readonly'] = true;\n\n return (\n <InlineInputRoot\n ref={handleRootRef}\n qa={qa ?? 'InlineInput'}\n qaVal={qaVal}\n mods={mods}\n tokens={tokens}\n styles={extractedStyles}\n {...mergeProps(\n baseProps,\n focusWithinProps,\n // Always attach focusRingProps so the hook sees the blur event\n // when focus moves into the inner input on edit-mode entry. If\n // we only attached them while `wantsKeyboard` is true, the hook\n // would miss the blur (since `wantsKeyboard` flips to false the\n // moment editing starts), leaving `isFocused` stale and the\n // ring stuck on after editing ends. `useFocusRing` filters\n // bubbled focus from descendants internally (`target ===\n // currentTarget`), so spreading these on a non-focusable span\n // is a no-op.\n focusRingProps,\n triggerProps ?? {},\n {\n onDoubleClick: wantsDblClick ? handleDblClick : undefined,\n onClick: wantsClick ? handleClick : undefined,\n onKeyDown: wantsKeyboard ? handleRootKeyDown : undefined,\n ...a11yProps,\n },\n )}\n >\n {isEditing ? (\n <FocusScope autoFocus restoreFocus={false} contain={false}>\n <span ref={measureRef} data-element=\"Measure\" aria-hidden=\"true\">\n {draft || placeholder || ' '}\n </span>\n <input\n ref={inputRef}\n data-element=\"Input\"\n type=\"text\"\n value={draft}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={isDisabled}\n readOnly={isReadOnly}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n />\n </FocusScope>\n ) : (\n <span ref={handleDisplayRef} data-element=\"Display\">\n {displayContent}\n </span>\n )}\n </InlineInputRoot>\n );\n };\n\n return renderWithTooltip(renderRoot, tooltipPlacement);\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"InlineInput.js","names":["useControlledState","BaseProps","BLOCK_STYLES","BlockStyleProps","COLOR_STYLES","ColorStyleProps","filterBaseProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","forwardRef","useEffect","useImperativeHandle","useLayoutEffect","useRef","useState","FocusScope","PositionProps","useFocusRing","useFocusWithin","useEvent","mergeProps","extractStyles","mergeStyleLayers","AutoTooltipValue","useAutoTooltip","ChangeEvent","HTMLAttributes","KeyboardEvent","MouseEvent","ReactNode","RefObject","CubeInlineInputEditTrigger","CubeInlineInputProps","value","defaultValue","onChange","isEditing","defaultIsEditing","onEditingChange","onSubmit","Promise","onCancel","editTrigger","keyboardActivation","submitOnBlur","trimOnSubmit","allowEmpty","isDisabled","isReadOnly","isStyled","placeholder","autoComplete","renderDisplay","tooltip","tooltipPlacement","inputStyles","CubeInlineInputRef","startEditing","stopEditing","submit","focus","getValue","InlineInputRoot","as","styles","display","alignItems","styled","verticalAlign","position","width","boxSizing","color","preset","cursor","fill","border","outline","outlineOffset","radius","focused","padding","height","transition","Display","whiteSpace","overflow","textOverflow","Input","recipe","textAlign","Measure","visibility","pointerEvents","Placeholder","STYLE_PROPS","PROGRAMMATIC_EDIT_BLUR_GRACE_MS","InlineInput","allProps","ref","$","_c","valueProp","isEditingProp","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","ariaLabel","ariaLabelledby","qa","qaVal","stylesProp","mods","customMods","tokens","customTokens","otherProps","undefined","isControlled","inputRef","measureRef","rootRef","setValue","setIsEditing","optimisticValue","setOptimisticValue","displayedValue","draft","setDraft","inputWidth","setInputWidth","isFocusWithin","setIsFocusWithin","ringSuppressed","setRingSuppressed","submitTokenRef","programmaticEditStartRef","pendingRestoreFocusRef","isEditingRef","t10","t11","current","t12","Symbol","for","t13","t14","enterEditing","t15","canRestoreFocus","t16","rawValue","t17","restoreFocus","next","trim","token","result","then","_temp","commit","t18","restoreFocus_0","cancel","t19","t20","t21","select","t22","t23","root","active","ownerDocument","activeElement","focusLost","body","contains","t24","measure","scrollWidth","t25","t26","e","key","preventDefault","stopPropagation","handleKeyDown","t27","e_0","target","handleInputChange","isFocusVisible","focusProps","focusRingProps","t28","within","t29","onFocusWithinChange","onBlurWithin","active_0","startedAt","Date","now","requestAnimationFrame","focusWithinProps","t30","e_1","handleDblClick","t31","e_2","handleClick","t32","e_3","handleRootKeyDown","t33","t34","wasEditing","t35","isEditable","showFocusRing","t36","editing","editable","disabled","empty","mergedStyles","extractedStyles","t37","t38","t39","displayContent","baseProps","eventProps","t40","t41","children","labelRef","tooltipLabelRef","renderWithTooltip","wantsClick","wantsDblClick","wantsKeyboard","renderRoot","triggerProps","tooltipRef","handleRootRef","element","HTMLElement","handleDisplayRef","element_0","a11yProps","tabIndex","role","onDoubleClick","onClick","onKeyDown","_c","mergeProps"],"sources":["../../../../src/components/content/InlineInput/InlineInput.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n filterBaseProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport {\n FocusScope,\n PositionProps,\n useFocusRing,\n useFocusWithin,\n} from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { mergeProps } from '../../../utils/react/mergeProps';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { AutoTooltipValue, useAutoTooltip } from '../use-auto-tooltip';\n\nimport type {\n ChangeEvent,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n} from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type CubeInlineInputEditTrigger = 'dblclick' | 'click' | 'none';\n\nexport interface CubeInlineInputProps\n extends BaseProps, BlockStyleProps, OuterStyleProps, ColorStyleProps {\n /** Controlled value. When provided, the component is controlled. */\n value?: string;\n /** Initial value for uncontrolled usage. */\n defaultValue?: string;\n /**\n * Fires on commit *only when the value actually changed*. Use this to update\n * external state. Pair with `value` for the controlled pattern.\n */\n onChange?: (value: string) => void;\n\n /** Controlled editing state. When provided, the editing state is controlled. */\n isEditing?: boolean;\n /** Default editing state for uncontrolled usage. */\n defaultIsEditing?: boolean;\n /** Called when editing mode starts or ends. */\n onEditingChange?: (isEditing: boolean) => void;\n\n /**\n * Fires every time the user commits (Enter / submit-on-blur / `ref.stopEditing(true)`),\n * even if the value did not change. Use for side effects like analytics or\n * \"save\" toasts. For state updates, prefer `onChange`.\n *\n * May return a Promise. If the returned Promise **rejects**, the component\n * automatically reverts its optimistic display to the actual `value` prop —\n * this gives async-save flows free rollback on failure (in controlled mode).\n */\n onSubmit?: (value: string) => void | Promise<unknown>;\n /** Called when editing is cancelled (Escape or empty submit when `allowEmpty` is false). */\n onCancel?: () => void;\n\n /** How edit mode is activated from the display element. Default: `'dblclick'`. */\n editTrigger?: CubeInlineInputEditTrigger;\n /**\n * When true (default) the display element is keyboard-focusable and\n * responds to `Enter`, `F2` and `Space` by entering edit mode. Set to\n * `false` when a host (e.g. an editable tab inside a button) already\n * routes keyboard activation through `ref.startEditing()` — exposing the\n * display element as a separate tab stop would create a nested keyboard\n * focus inside the host.\n *\n * @default true\n */\n keyboardActivation?: boolean;\n /** Whether to submit when focus leaves the input. Default: `true`. */\n submitOnBlur?: boolean;\n /** Whether to trim the value on submit. Default: `true`. */\n trimOnSubmit?: boolean;\n /** When false, submitting an empty/whitespace value cancels instead. Default: `false`. */\n allowEmpty?: boolean;\n /** When true, edit mode cannot be entered (programmatically or otherwise). */\n isDisabled?: boolean;\n /** When true, edit mode cannot be entered, but the display reads as enabled. */\n isReadOnly?: boolean;\n\n /**\n * When true, applies a styled wrapper to the component (border, fill, padding,\n * fixed height) so it visually matches a `TextInput`. Useful when swapping a\n * field component (e.g. `Select`) for an `InlineInput` to rename / edit the\n * current value without a visual jump.\n *\n * @default false\n */\n isStyled?: boolean;\n\n /** Placeholder text shown in the input when the draft is empty. */\n placeholder?: string;\n /**\n * What kind of autofill the browser may offer for the input, as the HTML `autocomplete` token\n * (`email`, `off`, …). See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete).\n */\n autoComplete?: string;\n /** Custom render for display (non-editing) mode. Receives the currently-displayed value (including optimistic). */\n renderDisplay?: (value: string) => ReactNode;\n /** ARIA label for the input (used when no visible label is associated). */\n 'aria-label'?: string;\n /** ARIA labelledby for the input. */\n 'aria-labelledby'?: string;\n\n /**\n * Tooltip behaviour for the display value:\n * - `true` (default): auto-tooltip — show the full value when the text is truncated.\n * - `false`: never show a tooltip.\n * - `string`: always show this tooltip text.\n * - object: full `TooltipProvider` configuration (with optional `auto`).\n *\n * The tooltip is automatically suppressed while editing and when `renderDisplay` is used.\n */\n tooltip?: AutoTooltipValue;\n /** Default tooltip placement. @default 'top' */\n tooltipPlacement?: PositionProps['placement'];\n\n /** Convenience prop for styling the `Input` sub-element. Merged into `styles.Input`. */\n inputStyles?: Styles;\n}\n\nexport interface CubeInlineInputRef {\n /** Programmatically enter edit mode. */\n startEditing(): void;\n /** Programmatically exit edit mode. `submit=true` commits, `submit=false` cancels. Defaults to commit. */\n stopEditing(submit?: boolean): void;\n /** Focus the underlying element (input when editing, root span otherwise). */\n focus(): void;\n /** Current committed value (includes optimistic value if a parent hasn't synced yet). */\n getValue(): string;\n}\n\n// =============================================================================\n// Styled element\n// =============================================================================\n\nconst InlineInputRoot = tasty({\n as: 'span',\n styles: {\n // `inline-flex` with `alignItems: baseline` is used (instead of\n // `inline-block` + `overflow: hidden`) so the container's baseline comes\n // from the first flex item's content baseline. With `inline-block` +\n // `overflow: hidden`, the CSS spec forces the baseline to the bottom\n // margin edge, which visibly shifts the text upward inside surrounding\n // line boxes (notably inside Tabs' centered `Item.Label`).\n display: 'inline-flex',\n alignItems: {\n '': 'baseline',\n styled: 'center',\n },\n verticalAlign: {\n '': 'baseline',\n styled: 'middle',\n },\n position: 'relative',\n width: 'initial 100%',\n boxSizing: 'border-box',\n color: {\n '': 'inherit',\n styled: '#dark-02',\n 'styled & disabled': '#dark.30',\n },\n preset: {\n '': 'inherit',\n styled: 't3',\n },\n cursor: {\n '': 'inherit',\n 'editable & !editing': 'text',\n },\n fill: {\n '': '#clear',\n styled: '#surface',\n 'styled & disabled': '#disabled-surface',\n },\n border: {\n '': false,\n styled: true,\n 'styled & focused': '#primary-text',\n 'styled & disabled': true,\n },\n // Focus ring. Shown when the display element is keyboard-focused\n // (driven on the React side by `isFocusVisible`) and *always* while\n // editing — so swapping into the input always presents a clear focus\n // indicator regardless of how the user activated it (click vs keyboard).\n // In `styled` mode the border colour transition is enough to indicate\n // focus (matching `TextInput`'s visual), so the outline is suppressed.\n // Outline doesn't take layout space and respects rounded corners via\n // `outlineOffset`.\n outline: {\n '': '$ring-width #primary.0',\n 'focused & !styled': '$ring-width #primary',\n },\n outlineOffset: '$outline-offset',\n radius: {\n '': 0,\n focused: true,\n styled: true,\n },\n padding: {\n '': 0,\n styled: '(.75x - 1bw) (1x - 1bw)',\n },\n height: {\n '': 'auto',\n styled: '$size-md',\n },\n transition: 'theme',\n\n // Display flex item: owns the truncation (`overflow: hidden` here is a\n // block-level rule that does *not* alter the parent's baseline, unlike\n // an `inline-block` overflow rule).\n Display: {\n display: 'block',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: 'initial 100%',\n preset: 'inherit',\n color: 'inherit',\n },\n\n Input: {\n recipe: 'reset input / input-autofill',\n preset: 'inherit',\n color: 'inherit',\n fill: '#clear',\n textAlign: 'left',\n // In `styled` mode the wrapper has a fixed size and we want the input\n // to fill it (matches `TextInput`). In the default inline mode the\n // input auto-sizes to its content via `$input-width`.\n width: {\n '': '1em $input-width 100%',\n styled: '0 100% initial',\n },\n '&::placeholder': { recipe: 'input-placeholder' },\n },\n\n Measure: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none',\n whiteSpace: 'pre',\n preset: 'inherit',\n height: 0,\n overflow: 'hidden',\n },\n\n Placeholder: {\n recipe: 'input-placeholder',\n preset: 'inherit',\n },\n },\n});\n\nconst STYLE_PROPS = [...BLOCK_STYLES, ...OUTER_STYLES, ...COLOR_STYLES];\n\n// Grace window after a programmatic `startEditing()` during which a blur\n// re-focuses the input rather than committing. ~500ms covers the\n// Menu/Popover EXIT_DURATION (350ms in `Overlay.tsx`) with margin, since a\n// host that starts editing from a closing overlay is the case that needs the\n// widest window.\nconst PROGRAMMATIC_EDIT_BLUR_GRACE_MS = 500;\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * Inline editable text. Renders the value as inline content by default and\n * swaps to an auto-sizing text input when entering edit mode.\n *\n * Designed to drop into any text context (tab title, heading, paragraph,\n * table cell) without style customization: typography, color, and font family\n * are all inherited from the parent.\n *\n * Value and `isEditing` can each be controlled or uncontrolled independently.\n * Programmatic entry via the imperative ref (`startEditing`/`stopEditing`)\n * works regardless of `editTrigger`.\n */\nexport const InlineInput = forwardRef<CubeInlineInputRef, CubeInlineInputProps>(\n function InlineInput(allProps, ref) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n isEditing: isEditingProp,\n defaultIsEditing,\n onEditingChange,\n onSubmit,\n onCancel,\n editTrigger = 'dblclick',\n keyboardActivation = true,\n submitOnBlur = true,\n trimOnSubmit = true,\n allowEmpty = false,\n isDisabled = false,\n isReadOnly = false,\n isStyled = false,\n placeholder,\n autoComplete,\n renderDisplay,\n tooltip = true,\n tooltipPlacement = 'top',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n qa,\n qaVal,\n styles: stylesProp,\n inputStyles,\n mods: customMods,\n tokens: customTokens,\n ...otherProps\n } = allProps;\n\n const isControlled = valueProp !== undefined;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const measureRef = useRef<HTMLSpanElement>(null);\n const rootRef = useRef<HTMLSpanElement>(null);\n\n const [value, setValue] = useControlledState<string>(\n valueProp as string,\n (defaultValue ?? '') as string,\n onChange,\n );\n\n const [isEditing, setIsEditing] = useControlledState<boolean>(\n isEditingProp as boolean,\n (defaultIsEditing ?? false) as boolean,\n onEditingChange,\n );\n\n // Optimistic value. Holds the just-committed value while we wait for the\n // (potentially async) controlled parent to sync `value`. In uncontrolled\n // mode `value` updates immediately so this stays null after each render.\n const [optimisticValue, setOptimisticValue] = useState<string | null>(null);\n const displayedValue = optimisticValue ?? value;\n\n const [draft, setDraft] = useState<string>(value);\n const [inputWidth, setInputWidth] = useState<number | null>(null);\n\n // Reliable focus presence for the whole component, driven by\n // `useFocusWithin` (which, unlike `useFocusRing`/`useFocus` on a bare\n // span, has an element-removal fallback). Used to gate the display focus\n // ring so it can never get stuck on after editing ends or after focus\n // moves to another component.\n const [isFocusWithin, setIsFocusWithin] = useState(false);\n\n // Suppresses the display focus ring for a single programmatic focus\n // restore (when we return focus to the display span after a keyboard /\n // programmatic edit-end). Reset whenever focus truly leaves the component\n // so a later real keyboard Tab back shows the ring again.\n const [ringSuppressed, setRingSuppressed] = useState(false);\n\n // Token to invalidate in-flight onSubmit promises if a newer commit /\n // re-entry happens before they settle.\n const submitTokenRef = useRef(0);\n\n // Timestamp of the most recent programmatic `startEditing()` call (via\n // the imperative ref). Used to defeat a focus-theft race: something else\n // takes focus in the same tick the input mounts, and the resulting blur\n // would fire `submitOnBlur` and unmount the input the user just opened.\n //\n // The thief varies by host — a host's own focus restoration (`TabButton`\n // re-focuses the tab button when editing ends), a collection's focus\n // manager, or an overlay closing around the `startEditing()` call. It is\n // NOT the closing `Menu` popover: `MenuTrigger` leaves focus alone once\n // an action has moved it (see CUB-3962). The guard is host-agnostic on\n // purpose — the imperative path cannot know who else wants focus.\n //\n // Cleared on first user interaction inside the input (`handleInputChange`\n // / `handleKeyDown`) and on leaving editing mode, so any later blur\n // commits normally.\n const programmaticEditStartRef = useRef<number | null>(null);\n\n // Set when an edit-end should return focus to the display span (keyboard\n // Enter/Escape, imperative `stopEditing`). NOT set for submit-on-blur /\n // tab-away, where focus has already moved elsewhere. Consumed by a layout\n // effect after the display span re-mounts.\n const pendingRestoreFocusRef = useRef(false);\n\n // Synchronous mirror of `isEditing`. We need this because cancel/commit\n // call user callbacks (`onCancel`/`onSubmit`) that may synchronously\n // re-focus another element — that causes a synchronous blur on the\n // input which would otherwise re-enter `commit` via `onBlurWithin` (the\n // state update from `setIsEditing(false)` isn't committed yet, so the\n // closure still sees `isEditing === true`).\n //\n // The ref is kept in sync via `useLayoutEffect` so concurrent renders\n // that get thrown away don't leak a stale value into the next commit.\n const isEditingRef = useRef(isEditing);\n\n useLayoutEffect(() => {\n isEditingRef.current = isEditing;\n }, [isEditing]);\n\n // Clear the optimistic value once `value` catches up or changes externally.\n useEffect(() => {\n setOptimisticValue(null);\n }, [value]);\n\n const enterEditing = useEvent(() => {\n if (isDisabled || isReadOnly || isEditing) return;\n // Invalidate any in-flight onSubmit promise — its outcome no longer\n // matters because the user is about to commit a new value anyway.\n submitTokenRef.current += 1;\n isEditingRef.current = true;\n // Start from the actual prop value, not optimistic — gives the user a\n // way to recover if a previous commit was rejected by the parent.\n setOptimisticValue(null);\n setDraft(value);\n setIsEditing(true);\n });\n\n // Whether an edit-end should return focus to the display span. Only when\n // this component owns its own keyboard/focus story (standalone usage).\n // Hosts that drive editing through `ref.startEditing()` with\n // `keyboardActivation={false}` (e.g. `Tabs`) keep ownership of focus.\n const canRestoreFocus = () =>\n keyboardActivation &&\n editTrigger !== 'none' &&\n !isDisabled &&\n !isReadOnly;\n\n const commit = useEvent((rawValue: string, restoreFocus = true) => {\n // Re-entry guard. `onSubmit`/`onCancel` may synchronously refocus and\n // trigger another blur-driven commit before the state update lands.\n if (!isEditingRef.current) return;\n\n const next = trimOnSubmit ? rawValue.trim() : rawValue;\n\n if (restoreFocus && canRestoreFocus()) {\n pendingRestoreFocusRef.current = true;\n }\n\n if (!next && !allowEmpty) {\n isEditingRef.current = false;\n programmaticEditStartRef.current = null;\n setIsEditing(false);\n onCancel?.();\n\n return;\n }\n\n const token = ++submitTokenRef.current;\n\n if (isControlled) {\n // Show the new value optimistically until the parent re-renders.\n setOptimisticValue(next);\n }\n isEditingRef.current = false;\n programmaticEditStartRef.current = null;\n setValue(next);\n setIsEditing(false);\n\n const result = onSubmit?.(next);\n // If onSubmit returns a Promise that rejects, the parent is signalling\n // a save failure — revert the optimistic value back to the actual prop.\n // We guard with a token so a slow rejection doesn't clobber a newer\n // commit's optimistic display.\n if (\n result != null &&\n typeof (result as Promise<unknown>).then === 'function'\n ) {\n (result as Promise<unknown>).then(\n () => {},\n () => {\n if (submitTokenRef.current === token && isControlled) {\n setOptimisticValue(null);\n }\n },\n );\n }\n });\n\n const cancel = useEvent((restoreFocus = true) => {\n if (!isEditingRef.current) return;\n if (restoreFocus && canRestoreFocus()) {\n pendingRestoreFocusRef.current = true;\n }\n isEditingRef.current = false;\n programmaticEditStartRef.current = null;\n setIsEditing(false);\n onCancel?.();\n });\n\n // Keep draft in sync with the external value while NOT editing.\n useEffect(() => {\n if (!isEditing) setDraft(value);\n }, [value, isEditing]);\n\n // Select all text synchronously when entering edit mode.\n useLayoutEffect(() => {\n if (!isEditing) return;\n inputRef.current?.select();\n }, [isEditing]);\n\n // Return focus to the display span after a keyboard / programmatic\n // edit-end so keyboard navigation continues from this control. The focus\n // is programmatic (react-aria treats it as non-keyboard) and we set\n // `ringSuppressed` so it does not draw a focus ring; a later real Tab to\n // the element resets the suppression (see `onFocusWithinChange`).\n //\n // `onSubmit`/`onCancel` may synchronously move focus elsewhere. When the\n // input unmounts, the browser drops focus to `<body>`, so we only restore\n // focus to the display span when focus actually landed there (or nowhere).\n // If a handler deliberately moved focus to another element, we leave it.\n useLayoutEffect(() => {\n if (isEditing || !pendingRestoreFocusRef.current) return;\n pendingRestoreFocusRef.current = false;\n\n const root = rootRef.current;\n if (!root) return;\n\n const active = root.ownerDocument.activeElement;\n const focusLost = !active || active === root.ownerDocument.body;\n // A handler moved focus to a real element outside this control — respect\n // it and don't pull focus back.\n if (!focusLost && !root.contains(active)) return;\n\n setRingSuppressed(true);\n root.focus();\n }, [isEditing]);\n\n // Measure the draft so the input width follows the typed glyphs.\n useLayoutEffect(() => {\n if (!isEditing) return;\n const measure = measureRef.current;\n\n if (!measure) return;\n setInputWidth(measure.scrollWidth);\n }, [isEditing, draft, placeholder]);\n\n const handleKeyDown = useEvent((e: KeyboardEvent<HTMLInputElement>) => {\n // User is interacting with the input — drop the post-`startEditing()`\n // blur guard so a subsequent click-away commits normally.\n programmaticEditStartRef.current = null;\n\n if (e.key === 'Enter') {\n e.preventDefault();\n commit(draft);\n\n return;\n }\n\n if (e.key === 'Escape') {\n e.preventDefault();\n cancel();\n\n return;\n }\n\n // Prevent the host (e.g. Tabs) from intercepting text-editing keys.\n if (\n e.key === 'ArrowLeft' ||\n e.key === 'ArrowRight' ||\n e.key === ' ' ||\n e.key === 'Delete' ||\n e.key === 'Backspace'\n ) {\n e.stopPropagation();\n }\n });\n\n const handleInputChange = useEvent((e: ChangeEvent<HTMLInputElement>) => {\n programmaticEditStartRef.current = null;\n setDraft(e.target.value);\n });\n\n // Keyboard focus-visible modality (mouse vs keyboard). Used together with\n // `isFocusWithin` to drive the display focus ring. We rely on\n // `useFocusWithin` (below) for the *presence* of focus because, unlike\n // `useFocusRing`/`useFocus` on a bare span, it has an element-removal\n // fallback — so the ring can never get stuck on after the inner input is\n // unmounted on edit-end or after focus moves away.\n const { isFocusVisible, focusProps: focusRingProps } = useFocusRing();\n\n // Always enabled so it reliably reports focus presence in BOTH display\n // and edit modes. The submit-on-blur logic is internally guarded by\n // `isEditingRef`, so running `onBlurWithin` in display mode is a no-op.\n const { focusWithinProps } = useFocusWithin({\n onFocusWithinChange: (within) => {\n setIsFocusWithin(within);\n // Once focus truly leaves the component, clear the one-shot ring\n // suppression so a later real keyboard Tab back shows the ring again.\n if (!within) setRingSuppressed(false);\n },\n onBlurWithin: () => {\n if (!isEditingRef.current) return;\n if (!submitOnBlur) return;\n\n // Spurious-blur guard. `useFocusWithin` fires a synthetic blur via its\n // element-removal fallback when the display span unmounts as we enter\n // edit mode (focus actually moved INTO the inner input). Ignore it if\n // focus is in fact still within the component.\n const active = rootRef.current?.ownerDocument.activeElement;\n if (active && rootRef.current?.contains(active)) return;\n\n // Grace-period guard against focus theft right after a programmatic\n // `startEditing()` — see `programmaticEditStartRef` for who steals it.\n // Re-focus the input on the next frame so the focus-stealing element\n // finishes its own handler first, then we steal focus back. The guard\n // is cleared on the first real user interaction with the input\n // (keydown / input change) so subsequent click-aways commit normally.\n const startedAt = programmaticEditStartRef.current;\n if (\n startedAt != null &&\n Date.now() - startedAt < PROGRAMMATIC_EDIT_BLUR_GRACE_MS &&\n isEditingRef.current\n ) {\n requestAnimationFrame(() => {\n if (isEditingRef.current) {\n inputRef.current?.focus();\n inputRef.current?.select();\n }\n });\n\n return;\n }\n\n // Focus has already moved elsewhere (tab-away / click-away), so do\n // NOT pull it back to the display span.\n commit(draft, false);\n },\n });\n\n const handleDblClick = useEvent((e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n enterEditing();\n });\n\n const handleClick = useEvent((e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n enterEditing();\n });\n\n // Keyboard activation from the display element (standalone usage).\n // Hosts that own keyboard handling themselves should pass\n // `keyboardActivation={false}` (see `TabButton` for an example).\n const handleRootKeyDown = useEvent((e: KeyboardEvent<HTMLSpanElement>) => {\n if (e.key === 'Enter' || e.key === 'F2' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n enterEditing();\n }\n });\n\n useImperativeHandle(\n ref,\n () => ({\n startEditing: () => {\n // Arm the grace-period blur guard for the imperative path only.\n // Pointer-triggered entries (dblclick / click) don't suffer from\n // the focus-theft race that motivates this guard — the user's own\n // press is what put focus here.\n const wasEditing = isEditingRef.current;\n enterEditing();\n if (!wasEditing && isEditingRef.current) {\n programmaticEditStartRef.current = Date.now();\n }\n },\n stopEditing: (submit = true) => {\n if (!isEditingRef.current) return;\n if (submit) commit(draft);\n else cancel();\n },\n focus: () => {\n if (isEditingRef.current) inputRef.current?.focus();\n else rootRef.current?.focus();\n },\n getValue: () => displayedValue,\n }),\n [enterEditing, commit, cancel, draft, displayedValue],\n );\n\n const isEditable = editTrigger !== 'none' && !isDisabled && !isReadOnly;\n\n // `focused` controls the visible focus indicator on the root.\n //\n // While editing, the inner `<input>` always has focus (FocusScope\n // `autoFocus`), so we show the focus indicator on the root regardless\n // of how the user activated edit mode (click vs keyboard).\n //\n // In display mode we show the indicator only on keyboard focus\n // (`isFocusVisible`) AND when focus is actually within the component\n // (`isFocusWithin`) AND the display element is focusable (`isEditable`).\n // The `isFocusWithin` gate is the key fix: it reliably drops to `false`\n // on edit-end / tab-away (it has an element-removal fallback that\n // `useFocusRing` lacks on a bare span), so the ring can never get stuck\n // on. `ringSuppressed` hides the ring for a single programmatic focus\n // restore after a keyboard / programmatic edit-end.\n //\n // When `keyboardActivation` is `false` the host (e.g. `Tabs`) owns the\n // entire focus story for this control, so we suppress the focus ring\n // entirely — including while editing — to avoid drawing a redundant\n // indicator on top of the host's own focus ring.\n const showFocusRing =\n keyboardActivation &&\n (isEditing ||\n (isFocusVisible && isFocusWithin && isEditable && !ringSuppressed));\n\n const mods = {\n editing: isEditing,\n editable: isEditable,\n focused: showFocusRing,\n disabled: isDisabled,\n 'read-only': isReadOnly,\n styled: isStyled,\n empty: !displayedValue,\n ...customMods,\n };\n\n const mergedStyles = mergeStyleLayers(\n stylesProp,\n // oxlint-disable-next-line tasty/no-runtime-styles-mutation -- forwards the consumer's `inputStyles` to `Input`\n inputStyles ? { Input: inputStyles } : null,\n );\n\n const extractedStyles = extractStyles(\n otherProps,\n STYLE_PROPS,\n mergedStyles,\n );\n\n const tokens = {\n ...customTokens,\n '$input-width': inputWidth != null ? `${inputWidth}px` : 'auto',\n };\n\n // In display mode, render the placeholder when the value is empty so the\n // component remains visible / clickable. Consumers using `renderDisplay`\n // take full control and are responsible for handling empty values\n // themselves.\n const displayContent = renderDisplay\n ? renderDisplay(displayedValue)\n : displayedValue ||\n (placeholder ? (\n <span data-element=\"Placeholder\">{placeholder}</span>\n ) : (\n ''\n ));\n\n const baseProps = filterBaseProps(otherProps, { eventProps: true });\n\n // Overflow detection / auto-tooltip. Suppressed while editing (the input\n // owns the visible text and isn't truncated), and when the consumer\n // provides `renderDisplay` (they own the display story and should attach\n // their own tooltip if needed).\n const { labelRef: tooltipLabelRef, renderWithTooltip } = useAutoTooltip({\n tooltip: isEditing || renderDisplay ? false : tooltip,\n children: displayedValue,\n });\n\n // Wire pointer/keyboard activators only when relevant. Hosts that drive\n // editing through `ref.startEditing()` keep all of these `undefined` so\n // they don't intercept their own keyboard / focus story.\n const wantsClick = !isEditing && isEditable && editTrigger === 'click';\n const wantsDblClick =\n !isEditing && isEditable && editTrigger === 'dblclick';\n const wantsKeyboard = !isEditing && isEditable && keyboardActivation;\n\n const renderRoot = (\n triggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n const handleRootRef = (element: HTMLSpanElement | null) => {\n rootRef.current = element;\n if (tooltipRef) {\n (tooltipRef as { current: HTMLElement | null }).current = element;\n }\n };\n\n // Overflow detection has to look at the truncating element, which is now\n // the inner `Display` (the root is `inline-flex` and doesn't clip). The\n // tooltip still anchors to the root via `tooltipRef` above.\n const handleDisplayRef = (element: HTMLSpanElement | null) => {\n tooltipLabelRef(element);\n };\n\n const a11yProps: HTMLAttributes<HTMLElement> = {};\n\n if (wantsKeyboard) {\n a11yProps.tabIndex = 0;\n a11yProps.role = 'button';\n a11yProps['aria-roledescription'] = 'editable text';\n if (ariaLabel) a11yProps['aria-label'] = ariaLabel;\n if (ariaLabelledby) a11yProps['aria-labelledby'] = ariaLabelledby;\n }\n\n if (isDisabled) a11yProps['aria-disabled'] = true;\n if (isReadOnly) a11yProps['aria-readonly'] = true;\n\n return (\n <InlineInputRoot\n ref={handleRootRef}\n qa={qa ?? 'InlineInput'}\n qaVal={qaVal}\n mods={mods}\n tokens={tokens}\n styles={extractedStyles}\n {...mergeProps(\n baseProps,\n focusWithinProps,\n // Always attach focusRingProps so the hook sees the blur event\n // when focus moves into the inner input on edit-mode entry. If\n // we only attached them while `wantsKeyboard` is true, the hook\n // would miss the blur (since `wantsKeyboard` flips to false the\n // moment editing starts), leaving `isFocused` stale and the\n // ring stuck on after editing ends. `useFocusRing` filters\n // bubbled focus from descendants internally (`target ===\n // currentTarget`), so spreading these on a non-focusable span\n // is a no-op.\n focusRingProps,\n triggerProps ?? {},\n {\n onDoubleClick: wantsDblClick ? handleDblClick : undefined,\n onClick: wantsClick ? handleClick : undefined,\n onKeyDown: wantsKeyboard ? handleRootKeyDown : undefined,\n ...a11yProps,\n },\n )}\n >\n {isEditing ? (\n <FocusScope autoFocus restoreFocus={false} contain={false}>\n <span ref={measureRef} data-element=\"Measure\" aria-hidden=\"true\">\n {draft || placeholder || ' '}\n </span>\n <input\n ref={inputRef}\n data-element=\"Input\"\n type=\"text\"\n value={draft}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={isDisabled}\n readOnly={isReadOnly}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n />\n </FocusScope>\n ) : (\n <span ref={handleDisplayRef} data-element=\"Display\">\n {displayContent}\n </span>\n )}\n </InlineInputRoot>\n );\n };\n\n return renderWithTooltip(renderRoot, tooltipPlacement);\n },\n);\n"],"mappings":"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"}
@@ -3,10 +3,9 @@ import { Props } from "../../../props.js";
3
3
  import { CubeTooltipProviderProps } from "../../overlays/Tooltip/TooltipProvider.js";
4
4
  import { CubeItemActionProps } from "../../actions/ItemAction/ItemAction.js";
5
5
  import { DynamicIcon } from "../../../utils/react/resolveIcon.js";
6
- import "../../../utils/react/index.js";
6
+ import "../../actions/index.js";
7
7
  import { CubeItemBadgeProps } from "../ItemBadge/ItemBadge.js";
8
8
  import "./index.js";
9
- import "../../actions/index.js";
10
9
  import { ItemVariant } from "../../../data/item-themes.js";
11
10
  import { TooltipFocusProps } from "../../overlays/Tooltip/split-trigger-props.js";
12
11
  import { BaseProps, ContainerStyleProps, Mods, Styles } from "@tenphi/tasty";
@@ -163,15 +162,6 @@ export interface CubeItemProps extends BaseProps, ContainerStyleProps {
163
162
  * disabled input has to keep its focus (see `getDisabledElementProps`).
164
163
  */
165
164
  hiddenContent?: ReactNode | ((tooltipFocusProps: TooltipFocusProps, isTooltipActive: boolean) => ReactNode);
166
- /**
167
- * @private
168
- * The label's room changes over the item's life — a radio tab in a
169
- * responsive switch, say. The auto tooltip then stays mounted, disabled
170
- * while the label fits, instead of wrapping the element only once the label
171
- * truncates: that wrap remounts the element, which takes focus (and, for a
172
- * radio, the native input it holds) with it.
173
- */
174
- isDynamicLabel?: boolean;
175
165
  /**
176
166
  * Ref to access the label element directly
177
167
  */
@@ -1,17 +1,17 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { highlightText } from "../highlightText.js";
4
- import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
5
- import { resolveIcon } from "../../../utils/react/resolveIcon.js";
6
- import { useWarn } from "../../../_internal/hooks/use-warn.js";
7
4
  import { useAutoTooltip } from "../use-auto-tooltip.js";
8
5
  import { ITEM_VARIANTS, resolveItemVariant } from "../../../data/item-themes.js";
9
6
  import { CheckIcon } from "../../../icons/CheckIcon.js";
10
7
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
8
+ import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
11
9
  import { mergeTooltipFocusProps, splitTooltipTriggerProps } from "../../overlays/Tooltip/split-trigger-props.js";
12
10
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
11
+ import { useWarn } from "../../../_internal/hooks/use-warn.js";
13
12
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
14
13
  import { ItemBadge } from "../ItemBadge/ItemBadge.js";
14
+ import { resolveIcon } from "../../../utils/react/resolveIcon.js";
15
15
  import { IconSwitch } from "../../helpers/IconSwitch/IconSwitch.js";
16
16
  import { HotKeys as _HotKeys } from "../HotKeys/HotKeys.js";
17
17
  import { c } from "react/compiler-runtime";
@@ -572,8 +572,8 @@ const DISABLED_HOTKEYS_STYLES = {
572
572
  opacity: .5
573
573
  };
574
574
  const Item = (props, ref) => {
575
- const $ = c(78);
576
- const { children, size: t0, type: t1, theme: t2, mods, icon: iconProp, rightIcon: rightIconProp, prefix, suffix, description, descriptionPlacement, labelProps, descriptionProps, keyboardShortcutProps, styles, htmlType, isSelected, hotkeys, tooltip: t3, isDisabled, disabled: nativeDisabledProp, style, loadingSlot: t4, isLoading: t5, actions, autoHideActions: t6, preserveActionsSpace: t7, disableActionsFocus: t8, shape, defaultTooltipPlacement: t9, level: t10, highlight, highlightCaseSensitive: t11, highlightStyles, insideWrapper: t12, showActions: t13, skipActionsWidthTransition: t14, hiddenContent, isDynamicLabel: t15, labelRef: labelRefProp, nativeLinkProps, nativeMenuItemProps, nativeRowRef, nativeLabelReferenceId, onInlineFocus, onNativeLinkElement, onNativeElement, tokens, ...rest } = props;
575
+ const $ = c(77);
576
+ const { children, size: t0, type: t1, theme: t2, mods, icon: iconProp, rightIcon: rightIconProp, prefix, suffix, description, descriptionPlacement, labelProps, descriptionProps, keyboardShortcutProps, styles, htmlType, isSelected, hotkeys, tooltip: t3, isDisabled, disabled: nativeDisabledProp, style, loadingSlot: t4, isLoading: t5, actions, autoHideActions: t6, preserveActionsSpace: t7, disableActionsFocus: t8, shape, defaultTooltipPlacement: t9, level: t10, highlight, highlightCaseSensitive: t11, highlightStyles, insideWrapper: t12, showActions: t13, skipActionsWidthTransition: t14, hiddenContent, labelRef: labelRefProp, nativeLinkProps, nativeMenuItemProps, nativeRowRef, nativeLabelReferenceId, onInlineFocus, onNativeLinkElement, onNativeElement, tokens, ...rest } = props;
577
577
  const size = t0 === void 0 ? "medium" : t0;
578
578
  const type = t1 === void 0 ? "item" : t1;
579
579
  const theme = t2 === void 0 ? "default" : t2;
@@ -589,16 +589,15 @@ const Item = (props, ref) => {
589
589
  const insideWrapper = t12 === void 0 ? false : t12;
590
590
  const showActions = t13 === void 0 ? false : t13;
591
591
  const skipActionsWidthTransition = t14 === void 0 ? false : t14;
592
- const isDynamicLabel = t15 === void 0 ? false : t15;
593
592
  useGlobalStyles(NATIVE_ROW_CONTROL_SELECTOR, nativeMenuItemProps ? NATIVE_ROW_CONTROL_STYLES : void 0);
594
593
  const hasLabel = !!(children || labelProps);
595
594
  const finalDescriptionPlacement = descriptionPlacement ?? ((type === "card" || type === "header") && hasLabel ? "block" : "inline");
596
595
  const finalShape = shape ?? (type === "card" ? "card" : "button");
597
596
  const isDisabledProp = isDisabled ?? (nativeDisabledProp || void 0);
598
597
  const finalIsDisabled = isDisabledProp === true || isLoading && isDisabledProp !== false;
599
- let t16;
598
+ let t15;
600
599
  if ($[0] !== iconProp || $[1] !== isLoading || $[2] !== rightIconProp || $[3] !== theme || $[4] !== type) {
601
- t16 = {
600
+ t15 = {
602
601
  type,
603
602
  theme,
604
603
  icon: iconProp,
@@ -610,15 +609,15 @@ const Item = (props, ref) => {
610
609
  $[2] = rightIconProp;
611
610
  $[3] = theme;
612
611
  $[4] = type;
613
- $[5] = t16;
614
- } else t16 = $[5];
615
- useItemPropWarnings(t16);
612
+ $[5] = t15;
613
+ } else t15 = $[5];
614
+ useItemPropWarnings(t15);
616
615
  const hasCheckmark = iconProp === "checkmark";
617
616
  let baseMods;
618
617
  let finalTokens;
619
618
  let iconSlot;
620
619
  let loadingTarget;
621
- let t17;
620
+ let t16;
622
621
  if ($[6] !== finalIsDisabled || $[7] !== finalShape || $[8] !== hasCheckmark || $[9] !== iconProp || $[10] !== isLoading || $[11] !== isSelected || $[12] !== loadingSlot || $[13] !== mods || $[14] !== rightIconProp || $[15] !== size || $[16] !== theme || $[17] !== tokens || $[18] !== type) {
623
622
  const { sizeMod, sizeToken } = resolveItemSize(size);
624
623
  finalTokens = {
@@ -646,7 +645,7 @@ const Item = (props, ref) => {
646
645
  content: /* @__PURE__ */ jsx(CheckIcon, {}),
647
646
  key: "checkmark"
648
647
  } : resolveIconSlot(resolvedIcon, loadingTarget === "icon");
649
- t17 = resolveIconSlot(resolvedRightIcon, loadingTarget === "rightIcon");
648
+ t16 = resolveIconSlot(resolvedRightIcon, loadingTarget === "rightIcon");
650
649
  $[6] = finalIsDisabled;
651
650
  $[7] = finalShape;
652
651
  $[8] = hasCheckmark;
@@ -664,34 +663,34 @@ const Item = (props, ref) => {
664
663
  $[20] = finalTokens;
665
664
  $[21] = iconSlot;
666
665
  $[22] = loadingTarget;
667
- $[23] = t17;
666
+ $[23] = t16;
668
667
  } else {
669
668
  baseMods = $[19];
670
669
  finalTokens = $[20];
671
670
  iconSlot = $[21];
672
671
  loadingTarget = $[22];
673
- t17 = $[23];
672
+ t16 = $[23];
674
673
  }
675
- const rightIconSlot = t17;
676
- let t18;
674
+ const rightIconSlot = t16;
675
+ let t17;
677
676
  if ($[24] !== description || $[25] !== descriptionProps) {
678
- t18 = !!description || Object.keys(descriptionProps ?? {}).some(_temp);
677
+ t17 = !!description || Object.keys(descriptionProps ?? {}).some(_temp);
679
678
  $[24] = description;
680
679
  $[25] = descriptionProps;
681
- $[26] = t18;
682
- } else t18 = $[26];
683
- const showDescription = t18;
684
- let t19;
680
+ $[26] = t17;
681
+ } else t17 = $[26];
682
+ const showDescription = t17;
683
+ let t18;
685
684
  if ($[27] !== loadingTarget || $[28] !== prefix) {
686
- t19 = loadingTarget === "prefix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : prefix;
685
+ t18 = loadingTarget === "prefix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : prefix;
687
686
  $[27] = loadingTarget;
688
687
  $[28] = prefix;
689
- $[29] = t19;
690
- } else t19 = $[29];
691
- const finalPrefix = t19;
692
- let t20;
688
+ $[29] = t18;
689
+ } else t18 = $[29];
690
+ const finalPrefix = t18;
691
+ let t19;
693
692
  if ($[30] !== finalIsDisabled || $[31] !== hotkeys || $[32] !== keyboardShortcutProps || $[33] !== loadingTarget || $[34] !== suffix || $[35] !== theme || $[36] !== type) {
694
- t20 = loadingTarget === "suffix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : suffix ?? (hotkeys ? /* @__PURE__ */ jsx(_HotKeys, {
693
+ t19 = loadingTarget === "suffix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : suffix ?? (hotkeys ? /* @__PURE__ */ jsx(_HotKeys, {
695
694
  ...keyboardShortcutProps,
696
695
  type: getHotkeysType(theme, type),
697
696
  styles: finalIsDisabled ? DISABLED_HOTKEYS_STYLES : HOTKEYS_STYLES,
@@ -704,44 +703,44 @@ const Item = (props, ref) => {
704
703
  $[34] = suffix;
705
704
  $[35] = theme;
706
705
  $[36] = type;
707
- $[37] = t20;
708
- } else t20 = $[37];
709
- const finalSuffix = t20;
706
+ $[37] = t19;
707
+ } else t19 = $[37];
708
+ const finalSuffix = t19;
710
709
  useHotkeyClick(hotkeys, finalIsDisabled, ref);
711
- const t21 = !!(iconSlot.hasSlot || finalPrefix);
712
- const t22 = !!(rightIconSlot.hasSlot || finalSuffix || actions);
713
- const t23 = !!finalPrefix;
714
- const t24 = !!finalSuffix;
715
- const t25 = !!actions;
716
- const t26 = !!(actions && actions !== true);
717
- const t27 = !!nativeMenuItemProps;
718
- const t28 = autoHideActions === true;
719
- const t29 = preserveActionsSpace === true;
720
- const t30 = showActions && insideWrapper;
721
- const t31 = skipActionsWidthTransition && insideWrapper;
722
- const t32 = showDescription ? finalDescriptionPlacement : "none";
723
- let t33;
724
- if ($[38] !== baseMods || $[39] !== hasCheckmark || $[40] !== hasLabel || $[41] !== iconSlot.hasSlot || $[42] !== insideWrapper || $[43] !== rightIconSlot.hasSlot || $[44] !== showDescription || $[45] !== t21 || $[46] !== t22 || $[47] !== t23 || $[48] !== t24 || $[49] !== t25 || $[50] !== t26 || $[51] !== t27 || $[52] !== t28 || $[53] !== t29 || $[54] !== t30 || $[55] !== t31 || $[56] !== t32) {
725
- t33 = {
710
+ const t20 = !!(iconSlot.hasSlot || finalPrefix);
711
+ const t21 = !!(rightIconSlot.hasSlot || finalSuffix || actions);
712
+ const t22 = !!finalPrefix;
713
+ const t23 = !!finalSuffix;
714
+ const t24 = !!actions;
715
+ const t25 = !!(actions && actions !== true);
716
+ const t26 = !!nativeMenuItemProps;
717
+ const t27 = autoHideActions === true;
718
+ const t28 = preserveActionsSpace === true;
719
+ const t29 = showActions && insideWrapper;
720
+ const t30 = skipActionsWidthTransition && insideWrapper;
721
+ const t31 = showDescription ? finalDescriptionPlacement : "none";
722
+ let t32;
723
+ if ($[38] !== baseMods || $[39] !== hasCheckmark || $[40] !== hasLabel || $[41] !== iconSlot.hasSlot || $[42] !== insideWrapper || $[43] !== rightIconSlot.hasSlot || $[44] !== showDescription || $[45] !== t20 || $[46] !== t21 || $[47] !== t22 || $[48] !== t23 || $[49] !== t24 || $[50] !== t25 || $[51] !== t26 || $[52] !== t27 || $[53] !== t28 || $[54] !== t29 || $[55] !== t30 || $[56] !== t31) {
724
+ t32 = {
726
725
  ...baseMods,
727
726
  "has-icon": iconSlot.hasSlot,
728
- "has-start-content": t21,
729
- "has-end-content": t22,
727
+ "has-start-content": t20,
728
+ "has-end-content": t21,
730
729
  "has-right-icon": rightIconSlot.hasSlot,
731
730
  "has-label": hasLabel,
732
- "has-prefix": t23,
733
- "has-suffix": t24,
731
+ "has-prefix": t22,
732
+ "has-suffix": t23,
734
733
  "has-description": showDescription,
735
- "has-actions": t25,
736
- "has-actions-content": t26,
737
- "menu-native-row": t27,
738
- "auto-hide-actions": t28,
739
- "preserve-actions-space": t29,
734
+ "has-actions": t24,
735
+ "has-actions-content": t25,
736
+ "menu-native-row": t26,
737
+ "auto-hide-actions": t27,
738
+ "preserve-actions-space": t28,
740
739
  "inside-wrapper": insideWrapper,
741
- "actions-shown": t30,
742
- "skip-actions-width-transition": t31,
740
+ "actions-shown": t29,
741
+ "skip-actions-width-transition": t30,
743
742
  checkmark: hasCheckmark,
744
- description: t32
743
+ description: t31
745
744
  };
746
745
  $[38] = baseMods;
747
746
  $[39] = hasCheckmark;
@@ -750,77 +749,74 @@ const Item = (props, ref) => {
750
749
  $[42] = insideWrapper;
751
750
  $[43] = rightIconSlot.hasSlot;
752
751
  $[44] = showDescription;
753
- $[45] = t21;
754
- $[46] = t22;
755
- $[47] = t23;
756
- $[48] = t24;
757
- $[49] = t25;
758
- $[50] = t26;
759
- $[51] = t27;
760
- $[52] = t28;
761
- $[53] = t29;
762
- $[54] = t30;
763
- $[55] = t31;
764
- $[56] = t32;
765
- $[57] = t33;
766
- } else t33 = $[57];
767
- const finalMods = t33;
768
- const t34 = finalMods["menu-native-row"];
769
- let t35;
770
- if ($[58] !== t34) {
771
- t35 = { "row-native-cell": t34 };
772
- $[58] = t34;
773
- $[59] = t35;
774
- } else t35 = $[59];
775
- const nativeCellMods = t35;
776
- const t36 = descriptionProps?.ref;
777
- const t37 = isDynamicLabel || !!actions || insideWrapper;
778
- let t38;
779
- if ($[60] !== children || $[61] !== description || $[62] !== labelProps || $[63] !== labelRefProp || $[64] !== t36 || $[65] !== t37 || $[66] !== tooltip) {
780
- t38 = {
752
+ $[45] = t20;
753
+ $[46] = t21;
754
+ $[47] = t22;
755
+ $[48] = t23;
756
+ $[49] = t24;
757
+ $[50] = t25;
758
+ $[51] = t26;
759
+ $[52] = t27;
760
+ $[53] = t28;
761
+ $[54] = t29;
762
+ $[55] = t30;
763
+ $[56] = t31;
764
+ $[57] = t32;
765
+ } else t32 = $[57];
766
+ const finalMods = t32;
767
+ const t33 = finalMods["menu-native-row"];
768
+ let t34;
769
+ if ($[58] !== t33) {
770
+ t34 = { "row-native-cell": t33 };
771
+ $[58] = t33;
772
+ $[59] = t34;
773
+ } else t34 = $[59];
774
+ const nativeCellMods = t34;
775
+ const t35 = descriptionProps?.ref;
776
+ let t36;
777
+ if ($[60] !== children || $[61] !== description || $[62] !== labelProps || $[63] !== labelRefProp || $[64] !== t35 || $[65] !== tooltip) {
778
+ t36 = {
781
779
  tooltip,
782
780
  children,
783
781
  description,
784
782
  labelProps,
785
783
  labelRef: labelRefProp,
786
- descriptionRef: t36,
787
- isDynamicLabel: t37
784
+ descriptionRef: t35
788
785
  };
789
786
  $[60] = children;
790
787
  $[61] = description;
791
788
  $[62] = labelProps;
792
789
  $[63] = labelRefProp;
793
- $[64] = t36;
794
- $[65] = t37;
795
- $[66] = tooltip;
796
- $[67] = t38;
797
- } else t38 = $[67];
798
- const { labelProps: finalLabelProps, labelRef, descriptionRef, renderWithTooltip, isTooltipActive } = useAutoTooltip(t38);
790
+ $[64] = t35;
791
+ $[65] = tooltip;
792
+ $[66] = t36;
793
+ } else t36 = $[66];
794
+ const { labelProps: finalLabelProps, labelRef, descriptionRef, renderWithTooltip, isTooltipActive } = useAutoTooltip(t36);
799
795
  const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({
800
796
  isDisabled: finalIsDisabled,
801
797
  keepEvents: isTooltipActive,
802
798
  as: rest.as
803
799
  });
804
- let t39;
805
- if ($[68] !== children || $[69] !== highlight || $[70] !== highlightCaseSensitive || $[71] !== highlightStyles) {
806
- t39 = highlightContent(children, highlight, highlightCaseSensitive, highlightStyles);
807
- $[68] = children;
808
- $[69] = highlight;
809
- $[70] = highlightCaseSensitive;
810
- $[71] = highlightStyles;
811
- $[72] = t39;
812
- } else t39 = $[72];
813
- const processedChildren = t39;
814
- let t40;
815
- if ($[73] !== description || $[74] !== highlight || $[75] !== highlightCaseSensitive || $[76] !== highlightStyles) {
816
- t40 = highlightContent(description, highlight, highlightCaseSensitive, highlightStyles);
817
- $[73] = description;
818
- $[74] = highlight;
819
- $[75] = highlightCaseSensitive;
820
- $[76] = highlightStyles;
821
- $[77] = t40;
822
- } else t40 = $[77];
823
- const processedDescription = t40;
800
+ let t37;
801
+ if ($[67] !== children || $[68] !== highlight || $[69] !== highlightCaseSensitive || $[70] !== highlightStyles) {
802
+ t37 = highlightContent(children, highlight, highlightCaseSensitive, highlightStyles);
803
+ $[67] = children;
804
+ $[68] = highlight;
805
+ $[69] = highlightCaseSensitive;
806
+ $[70] = highlightStyles;
807
+ $[71] = t37;
808
+ } else t37 = $[71];
809
+ const processedChildren = t37;
810
+ let t38;
811
+ if ($[72] !== description || $[73] !== highlight || $[74] !== highlightCaseSensitive || $[75] !== highlightStyles) {
812
+ t38 = highlightContent(description, highlight, highlightCaseSensitive, highlightStyles);
813
+ $[72] = description;
814
+ $[73] = highlight;
815
+ $[74] = highlightCaseSensitive;
816
+ $[75] = highlightStyles;
817
+ $[76] = t38;
818
+ } else t38 = $[76];
819
+ const processedDescription = t38;
824
820
  const renderItemElement = (tooltipTriggerProps, tooltipRef) => {
825
821
  const { pointerProps: elementTooltipProps, focusProps: tooltipFocusProps } = typeof hiddenContent === "function" || nativeMenuItemProps ? splitTooltipTriggerProps(tooltipTriggerProps) : {
826
822
  pointerProps: tooltipTriggerProps,