@cube-dev/ui-kit 0.0.0-canary-8e09ade → 0.0.0-canary-a5508da

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 (439) hide show
  1. package/README.md +1 -1
  2. package/dist/README.md +1 -1
  3. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  4. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  5. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/dist/_internal/hooks/use-event.js +1 -1
  7. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  8. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  9. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  10. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  11. package/dist/_internal/hooks/use-warn.js +1 -1
  12. package/dist/components/Block.js +1 -1
  13. package/dist/components/CollectionItem.js +1 -1
  14. package/dist/components/GlobalStyles.js +1 -1
  15. package/dist/components/GridProvider.js +1 -1
  16. package/dist/components/HiddenInput.js +1 -1
  17. package/dist/components/Root.js +1 -1
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  23. package/dist/components/actions/ButtonSplit/context.js +1 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  25. package/dist/components/actions/CommandMenu/styled.js +1 -1
  26. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  27. package/dist/components/actions/ItemActionContext.js +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  29. package/dist/components/actions/Link/Link.js +1 -1
  30. package/dist/components/actions/Menu/Menu.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +1 -1
  86. package/dist/components/content/Text.js +1 -1
  87. package/dist/components/content/TextItem/TextItem.js +1 -1
  88. package/dist/components/content/Title.js +1 -1
  89. package/dist/components/content/Tree/Tree.js +1 -1
  90. package/dist/components/content/Tree/TreeNode.js +1 -1
  91. package/dist/components/content/Tree/styled.js +1 -1
  92. package/dist/components/content/Tree/tree-index.js +1 -1
  93. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  94. package/dist/components/content/Tree/use-load-data.js +1 -1
  95. package/dist/components/content/highlightText.js +1 -1
  96. package/dist/components/content/use-auto-tooltip.js +1 -1
  97. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  98. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  99. package/dist/components/fields/Checkbox/context.js +1 -1
  100. package/dist/components/fields/ComboBox/ComboBox.js +213 -17
  101. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  102. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  103. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  104. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  105. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  106. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  107. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  108. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  109. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  110. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  111. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  112. package/dist/components/fields/DatePicker/intl.js +1 -1
  113. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  114. package/dist/components/fields/DatePicker/props.js +1 -1
  115. package/dist/components/fields/DatePicker/utils.js +1 -1
  116. package/dist/components/fields/FileInput/FileInput.js +1 -1
  117. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  118. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  119. package/dist/components/fields/Input/Input.js +1 -1
  120. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  121. package/dist/components/fields/ListBox/ListBox.js +1 -1
  122. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  123. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  124. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  125. package/dist/components/fields/Picker/Picker.js +1 -1
  126. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  127. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  128. package/dist/components/fields/RadioGroup/context.js +1 -1
  129. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  130. package/dist/components/fields/Select/Select.js +1 -1
  131. package/dist/components/fields/Slider/Gradation.js +1 -1
  132. package/dist/components/fields/Slider/HueSlider.js +1 -1
  133. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  134. package/dist/components/fields/Slider/Slider.js +1 -1
  135. package/dist/components/fields/Slider/SliderBase.js +1 -1
  136. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  137. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  138. package/dist/components/fields/Slider/elements.js +1 -1
  139. package/dist/components/fields/Slider/index.js +1 -1
  140. package/dist/components/fields/Switch/Switch.js +1 -1
  141. package/dist/components/fields/TextArea/TextArea.js +1 -1
  142. package/dist/components/fields/TextInput/TextInput.js +1 -1
  143. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  144. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  145. package/dist/components/fields/index.d.ts +0 -2
  146. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  147. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  148. package/dist/components/form/Form/Field.js +1 -1
  149. package/dist/components/form/Form/Form.js +1 -1
  150. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  151. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  152. package/dist/components/form/Form/SubmitError.js +1 -1
  153. package/dist/components/form/Form/index.js +1 -1
  154. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  155. package/dist/components/form/Form/use-field/use-field.js +1 -1
  156. package/dist/components/form/Form/use-form.js +1 -1
  157. package/dist/components/form/Form/validation.js +1 -1
  158. package/dist/components/form/Label.js +1 -1
  159. package/dist/components/form/wrapper.js +1 -1
  160. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  161. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  162. package/dist/components/layout/Flex.js +1 -1
  163. package/dist/components/layout/Flow.js +1 -1
  164. package/dist/components/layout/Grid.js +1 -1
  165. package/dist/components/layout/Panel.js +1 -1
  166. package/dist/components/layout/Prefix.js +1 -1
  167. package/dist/components/layout/ResizablePanel.js +1 -1
  168. package/dist/components/layout/Space.js +1 -1
  169. package/dist/components/layout/Suffix.js +1 -1
  170. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  171. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  172. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  173. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  174. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  175. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  176. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  177. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  178. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  179. package/dist/components/navigation/Tabs/styled.js +1 -1
  180. package/dist/components/navigation/Tabs/types.js +1 -1
  181. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  182. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  183. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  184. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  185. package/dist/components/other/Calendar/Calendar.js +1 -1
  186. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  187. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  188. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  189. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  190. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  191. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  192. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  193. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  194. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  195. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  196. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  197. package/dist/components/overlays/Dialog/context.js +1 -1
  198. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  199. package/dist/components/overlays/Modal/Modal.js +1 -1
  200. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  201. package/dist/components/overlays/Modal/Overlay.js +1 -1
  202. package/dist/components/overlays/Modal/Popover.js +1 -1
  203. package/dist/components/overlays/Modal/Tray.js +1 -1
  204. package/dist/components/overlays/Modal/Underlay.js +1 -1
  205. package/dist/components/overlays/Notifications/Notification.js +1 -1
  206. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  207. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  208. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  209. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  210. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  211. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  212. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  213. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  214. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  215. package/dist/components/overlays/Notifications/index.js +1 -1
  216. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  217. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  218. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  219. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  220. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  221. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  222. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  223. package/dist/components/overlays/Toast/index.js +1 -1
  224. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  225. package/dist/components/overlays/Toast/useToast.js +1 -1
  226. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  227. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  228. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  229. package/dist/components/overlays/Tooltip/context.js +1 -1
  230. package/dist/components/portal/Portal.js +1 -1
  231. package/dist/components/portal/PortalProvider.js +1 -1
  232. package/dist/components/portal/usePortal.js +1 -1
  233. package/dist/components/shared/DraggableCollection.js +1 -1
  234. package/dist/components/shared/InvalidIcon.js +1 -1
  235. package/dist/components/shared/ValidIcon.js +1 -1
  236. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  237. package/dist/components/status/Spin/Cube.js +1 -1
  238. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  239. package/dist/components/status/Spin/Spin.js +1 -1
  240. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  241. package/dist/data/item-themes.js +1 -1
  242. package/dist/data/themes.js +1 -1
  243. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  244. package/dist/icons/AdjustmentsIcon.js +1 -1
  245. package/dist/icons/AiIcon.js +1 -1
  246. package/dist/icons/AreaChartIcon.js +1 -1
  247. package/dist/icons/BackwardIcon.js +1 -1
  248. package/dist/icons/BarChartIcon.js +1 -1
  249. package/dist/icons/BellFilledIcon.js +1 -1
  250. package/dist/icons/BellIcon.js +1 -1
  251. package/dist/icons/BooleanIcon.js +1 -1
  252. package/dist/icons/CalendarEditIcon.js +1 -1
  253. package/dist/icons/CalendarIcon.js +1 -1
  254. package/dist/icons/CaretDownIcon.js +1 -1
  255. package/dist/icons/CaretUpIcon.js +1 -1
  256. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  257. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  258. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  259. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  260. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  261. package/dist/icons/ChartBarLineIcon.js +1 -1
  262. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  263. package/dist/icons/ChartBarStackedIcon.js +1 -1
  264. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  265. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  266. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  267. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  268. package/dist/icons/ChartBubbleIcon.js +1 -1
  269. package/dist/icons/ChartDonut2Icon.js +1 -1
  270. package/dist/icons/ChartFunnelIcon.js +1 -1
  271. package/dist/icons/ChartHeatmapIcon.js +1 -1
  272. package/dist/icons/ChartKPIIcon.js +1 -1
  273. package/dist/icons/ChartPie2Icon.js +1 -1
  274. package/dist/icons/ChartScatterIcon.js +1 -1
  275. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  276. package/dist/icons/CheckCircleIcon.js +1 -1
  277. package/dist/icons/CheckIcon.js +1 -1
  278. package/dist/icons/CircleFilledIcon.js +1 -1
  279. package/dist/icons/ClearIcon.js +1 -1
  280. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  281. package/dist/icons/CloseCircleIcon.js +1 -1
  282. package/dist/icons/CloseIcon.js +1 -1
  283. package/dist/icons/CodeIcon.js +1 -1
  284. package/dist/icons/ColumnTotalIcon.js +1 -1
  285. package/dist/icons/CopyIcon.js +1 -1
  286. package/dist/icons/CountIcon.js +1 -1
  287. package/dist/icons/CubeIcon.js +1 -1
  288. package/dist/icons/CubePauseIcon.js +1 -1
  289. package/dist/icons/CubePlayIcon.js +1 -1
  290. package/dist/icons/CurrencyDollarIcon.js +1 -1
  291. package/dist/icons/DangerIcon.js +1 -1
  292. package/dist/icons/DashboardIcon.js +1 -1
  293. package/dist/icons/DatabaseIcon.js +1 -1
  294. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  295. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  296. package/dist/icons/DirectionIcon.js +1 -1
  297. package/dist/icons/DonutIcon.js +1 -1
  298. package/dist/icons/DownIcon.js +1 -1
  299. package/dist/icons/EditIcon.js +1 -1
  300. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  301. package/dist/icons/ExclamationCircleIcon.js +1 -1
  302. package/dist/icons/ExclamationIcon.js +1 -1
  303. package/dist/icons/EyeIcon.js +1 -1
  304. package/dist/icons/EyeInvisibleIcon.js +1 -1
  305. package/dist/icons/FilterIcon.js +1 -1
  306. package/dist/icons/FolderFilledIcon.js +1 -1
  307. package/dist/icons/FolderIcon.js +1 -1
  308. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  309. package/dist/icons/FolderOpenIcon.js +1 -1
  310. package/dist/icons/ForwardIcon.js +1 -1
  311. package/dist/icons/GripVerticalIcon.js +1 -1
  312. package/dist/icons/HierarchyIcon.js +1 -1
  313. package/dist/icons/HierarchyOpenIcon.js +1 -1
  314. package/dist/icons/Icon.js +1 -1
  315. package/dist/icons/InfoCircleIcon.js +1 -1
  316. package/dist/icons/InfoIcon.js +1 -1
  317. package/dist/icons/KeyIcon.js +1 -1
  318. package/dist/icons/LeftIcon.js +1 -1
  319. package/dist/icons/LineChartIcon.js +1 -1
  320. package/dist/icons/LoadingIcon.js +1 -1
  321. package/dist/icons/LockFilledIcon.js +1 -1
  322. package/dist/icons/LockIcon.js +1 -1
  323. package/dist/icons/MoreIcon.js +1 -1
  324. package/dist/icons/NotAllowedIcon.js +1 -1
  325. package/dist/icons/Number123Icon.js +1 -1
  326. package/dist/icons/NumberIcon.js +1 -1
  327. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  328. package/dist/icons/PauseCircleIcon.js +1 -1
  329. package/dist/icons/PauseIcon.js +1 -1
  330. package/dist/icons/PercentageIcon.js +1 -1
  331. package/dist/icons/PieChartIcon.js +1 -1
  332. package/dist/icons/PlayCircleIcon.js +1 -1
  333. package/dist/icons/PlayIcon.js +1 -1
  334. package/dist/icons/PlusIcon.js +1 -1
  335. package/dist/icons/ProgressBarIcon.js +1 -1
  336. package/dist/icons/ReloadIcon.js +1 -1
  337. package/dist/icons/ReportIcon.js +1 -1
  338. package/dist/icons/ReturnIcon.js +1 -1
  339. package/dist/icons/RightIcon.js +1 -1
  340. package/dist/icons/RowTotalsIcon.js +1 -1
  341. package/dist/icons/SchemeIcon.js +1 -1
  342. package/dist/icons/SearchIcon.js +1 -1
  343. package/dist/icons/SemanticQueryIcon.js +1 -1
  344. package/dist/icons/SettingsIcon.js +1 -1
  345. package/dist/icons/ShieldFilledIcon.js +1 -1
  346. package/dist/icons/ShieldIcon.js +1 -1
  347. package/dist/icons/SlashIcon.js +1 -1
  348. package/dist/icons/SparklesIcon.js +1 -1
  349. package/dist/icons/SqlIcon.js +1 -1
  350. package/dist/icons/StatsIcon.js +1 -1
  351. package/dist/icons/StopIcon.js +1 -1
  352. package/dist/icons/StringIcon.js +1 -1
  353. package/dist/icons/SubtotalsIcon.js +1 -1
  354. package/dist/icons/SwitchIcon.js +1 -1
  355. package/dist/icons/TableIcon.js +1 -1
  356. package/dist/icons/ThumbsDownIcon.js +1 -1
  357. package/dist/icons/ThumbsUpIcon.js +1 -1
  358. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  359. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  360. package/dist/icons/ThunderboltIcon.js +1 -1
  361. package/dist/icons/TimeIcon.js +1 -1
  362. package/dist/icons/TrashIcon.js +1 -1
  363. package/dist/icons/UnlockIcon.js +1 -1
  364. package/dist/icons/UpIcon.js +1 -1
  365. package/dist/icons/UserGroupIcon.js +1 -1
  366. package/dist/icons/UserIcon.js +1 -1
  367. package/dist/icons/UserLockIcon.js +1 -1
  368. package/dist/icons/ViewIcon.js +1 -1
  369. package/dist/icons/WarningFilledIcon.js +1 -1
  370. package/dist/icons/WarningIcon.js +1 -1
  371. package/dist/icons/wrap-icon.js +1 -1
  372. package/dist/index.d.ts +1 -2
  373. package/dist/index.js +2 -3
  374. package/dist/index.js.map +1 -1
  375. package/dist/provider.js +1 -1
  376. package/dist/providers/TrackingProvider.js +1 -1
  377. package/dist/providers/navigationAdapter.default.js +1 -1
  378. package/dist/tokens/base.js +1 -1
  379. package/dist/tokens/colors.js +1 -1
  380. package/dist/tokens/index.js +1 -1
  381. package/dist/tokens/layout.js +1 -1
  382. package/dist/tokens/palette.js +1 -1
  383. package/dist/tokens/shadows.js +1 -1
  384. package/dist/tokens/sizes.js +1 -1
  385. package/dist/tokens/spacing.js +1 -1
  386. package/dist/tokens/typography.js +1 -1
  387. package/dist/utils/ResizeSensor.js +1 -1
  388. package/dist/utils/is-dev-env.js +1 -1
  389. package/dist/utils/modules.js +1 -1
  390. package/dist/utils/promise.js +1 -1
  391. package/dist/utils/raf.js +1 -1
  392. package/dist/utils/random.js +1 -1
  393. package/dist/utils/range.js +1 -1
  394. package/dist/utils/react/RenderCache.js +1 -1
  395. package/dist/utils/react/Slots.js +1 -1
  396. package/dist/utils/react/chain.js +1 -1
  397. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  398. package/dist/utils/react/index.js +1 -1
  399. package/dist/utils/react/interactions.js +1 -1
  400. package/dist/utils/react/isTextOnly.js +1 -1
  401. package/dist/utils/react/mapProps.js +1 -1
  402. package/dist/utils/react/mergeProps.js +1 -1
  403. package/dist/utils/react/nullableValue.js +1 -1
  404. package/dist/utils/react/resolveIcon.js +1 -1
  405. package/dist/utils/react/sharedStore.js +1 -1
  406. package/dist/utils/react/useCombinedRefs.js +1 -1
  407. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  408. package/dist/utils/react/useEventBus.js +1 -1
  409. package/dist/utils/react/useId.js +1 -1
  410. package/dist/utils/react/useIsDarwin.js +1 -1
  411. package/dist/utils/react/useKeySymbols.js +1 -1
  412. package/dist/utils/react/useLayoutEffect.js +1 -1
  413. package/dist/utils/react/useLocalStorage.js +1 -1
  414. package/dist/utils/react/useMergeStyles.js +1 -1
  415. package/dist/utils/react/usePopoverSync.js +1 -1
  416. package/dist/utils/react/useQaProps.js +1 -1
  417. package/dist/utils/react/useViewportSize.js +1 -1
  418. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  419. package/dist/utils/selection.js +1 -1
  420. package/dist/utils/styles.js +1 -1
  421. package/dist/utils/tree.js +1 -1
  422. package/dist/utils/warnings.js +1 -1
  423. package/dist/version.js +2 -2
  424. package/package.json +6 -19
  425. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +0 -93
  426. package/dist/components/fields/CommandTextArea/CommandTextArea.js +0 -370
  427. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +0 -1
  428. package/dist/components/fields/CommandTextArea/index.d.ts +0 -2
  429. package/dist/components/fields/ListBoxPopover/ListBoxPopover.d.ts +0 -5
  430. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +0 -139
  431. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +0 -1
  432. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -4
  433. package/dist/components/fields/ListBoxPopover/listNavigation.d.ts +0 -24
  434. package/dist/components/fields/ListBoxPopover/listNavigation.js +0 -78
  435. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +0 -1
  436. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
  437. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +0 -53
  438. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +0 -1
  439. package/docs/components/fields/CommandTextArea.md +0 -130
@@ -1,139 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8e09ade | Cube Dev Team */
2
- import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
- import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
4
- import { Portal } from "../../portal/Portal.js";
5
- import { ListBox } from "../ListBox/ListBox.js";
6
- import { tasty } from "@tenphi/tasty";
7
- import React from "react";
8
- import { jsx } from "react/jsx-runtime";
9
- import { useOverlay, useOverlayPosition } from "react-aria";
10
-
11
- //#region src/components/fields/ListBoxPopover/ListBoxPopover.tsx
12
- const ListBoxPopoverWrapper = tasty({
13
- qa: "ComboBoxOverlayWrapper",
14
- styles: {
15
- position: "absolute",
16
- zIndex: 1e3
17
- }
18
- });
19
- const ListBoxPopoverElement = tasty({
20
- qa: "ComboBoxOverlay",
21
- styles: {
22
- display: "grid",
23
- gridRows: "1sf",
24
- gridColumns: "1sf",
25
- width: "$overlay-min-width max-content 50vw",
26
- height: "initial max-content (50vh - 5x)",
27
- overflow: "auto",
28
- fill: "#surface",
29
- radius: "1cr",
30
- shadow: true,
31
- padding: "0",
32
- border: "#border",
33
- hide: {
34
- "": false,
35
- hidden: true
36
- },
37
- boxSizing: "border-box",
38
- transition: "translate $transition ease-out, scale $transition ease-out, theme $transition ease-out",
39
- translate: {
40
- "": "0 0",
41
- "open & [data-placement=\"top\"]": "0 0",
42
- "!open & [data-placement=\"top\"]": "0 1x",
43
- "open & ([data-placement=\"bottom\"] | ![data-placement])": "0 0",
44
- "!open & ([data-placement=\"bottom\"] | ![data-placement])": "0 -1x"
45
- },
46
- transformOrigin: {
47
- "": "top center",
48
- "[data-placement=\"top\"]": "bottom center"
49
- },
50
- scale: {
51
- "": "1 1",
52
- "!open": "1 .9"
53
- },
54
- opacity: {
55
- "": 1,
56
- "!open": .001
57
- },
58
- "$overlay-min-width": "min 30x"
59
- }
60
- });
61
- const ListBoxPopover = function ListBoxPopover(props) {
62
- const { isOpen, triggerRef, popoverRef, listBoxRef, direction, shouldFlip, overlayOffset, containerPadding, comboBoxWidth, listBoxId, overlayStyles, listBoxStyles, optionStyles, sectionStyles, headingStyles, selectedKey, isDisabled, disabledKeys, items, children, listStateRef, onSelectionChange, onClose, label, ariaLabel, compositeFocusProps, filter, size = "medium" } = props;
63
- const mergedPopoverRef = popoverRef;
64
- const { overlayProps: overlayPositionProps, placement } = useOverlayPosition({
65
- targetRef: triggerRef,
66
- overlayRef: mergedPopoverRef,
67
- placement: `${direction} start`,
68
- shouldFlip,
69
- isOpen,
70
- offset: overlayOffset,
71
- containerPadding
72
- });
73
- const { overlayProps: overlayBehaviorProps } = useOverlay({
74
- onClose,
75
- shouldCloseOnBlur: true,
76
- isOpen,
77
- isDismissable: true,
78
- shouldCloseOnInteractOutside: (el) => {
79
- const menuTriggerEl = el.closest("[data-popover-trigger]");
80
- if (!menuTriggerEl) {
81
- if (el.closest("[data-popover-keep]")) return false;
82
- if (el.closest("[data-popover-dismiss]")) {
83
- setTimeout(onClose, 0);
84
- return false;
85
- }
86
- return true;
87
- }
88
- if (menuTriggerEl === triggerRef?.current) return true;
89
- return false;
90
- }
91
- }, mergedPopoverRef);
92
- const placementDirection = placement?.split(" ")[0] || direction;
93
- return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(DisplayTransition, {
94
- isShown: isOpen,
95
- children: ({ phase, isShown, ref: transitionRef }) => /* @__PURE__ */ jsx(ListBoxPopoverWrapper, {
96
- ...mergeProps$1(overlayPositionProps, overlayBehaviorProps, compositeFocusProps),
97
- ref: mergedPopoverRef,
98
- style: overlayPositionProps.style,
99
- children: /* @__PURE__ */ jsx(ListBoxPopoverElement, {
100
- ref: transitionRef,
101
- "data-placement": placementDirection,
102
- "data-phase": phase,
103
- mods: {
104
- open: isShown,
105
- hidden: phase === "unmounted"
106
- },
107
- styles: overlayStyles,
108
- style: { "--overlay-min-width": comboBoxWidth ? `${comboBoxWidth}px` : void 0 },
109
- children: /* @__PURE__ */ jsx(ListBox, {
110
- ref: listBoxRef,
111
- focusOnHover: true,
112
- disableSelectionToggle: true,
113
- id: listBoxId,
114
- "aria-label": ariaLabel || (typeof label === "string" ? label : "Options"),
115
- selectedKey,
116
- selectionMode: "single",
117
- isDisabled,
118
- disabledKeys,
119
- shouldUseVirtualFocus: true,
120
- items,
121
- filter,
122
- styles: listBoxStyles,
123
- optionStyles,
124
- sectionStyles,
125
- headingStyles,
126
- stateRef: listStateRef,
127
- size: "medium",
128
- shape: "popover",
129
- onSelectionChange,
130
- children
131
- })
132
- })
133
- })
134
- }) });
135
- };
136
-
137
- //#endregion
138
- export { ListBoxPopover };
139
- //# sourceMappingURL=ListBoxPopover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListBoxPopover.js","names":["mergeProps"],"sources":["../../../../src/components/fields/ListBoxPopover/ListBoxPopover.tsx"],"sourcesContent":["import { Key } from '@react-types/shared';\nimport { Styles, tasty } from '@tenphi/tasty';\nimport React, { ReactNode, RefObject } from 'react';\nimport { useOverlay, useOverlayPosition } from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { DisplayTransition } from '../../helpers';\nimport { Portal } from '../../portal';\nimport { ListBox } from '../ListBox/ListBox';\n\nexport interface ListBoxPopoverProps {\n isOpen: boolean;\n triggerRef: RefObject<HTMLElement>;\n popoverRef: RefObject<HTMLDivElement>;\n listBoxRef: RefObject<HTMLDivElement>;\n direction: 'bottom' | 'top';\n shouldFlip: boolean;\n overlayOffset: number;\n containerPadding: number;\n /** Min width (px) for the overlay; usually the trigger's width. */\n comboBoxWidth?: number;\n /** Stable id used for the ListBox element and aria-controls wiring. */\n listBoxId: string;\n overlayStyles?: Styles;\n listBoxStyles?: Styles;\n optionStyles?: Styles;\n sectionStyles?: Styles;\n headingStyles?: Styles;\n selectedKey?: Key | null;\n isDisabled?: boolean;\n disabledKeys?: Iterable<Key>;\n items?: Iterable<any>;\n children: ReactNode;\n /** Ref through which the ListBox exposes its internal list state. */\n listStateRef: RefObject<any>;\n onSelectionChange: (selection: Key | Key[] | null) => void;\n onClose: () => void;\n label?: ReactNode;\n ariaLabel?: string;\n compositeFocusProps: {\n onFocus: (e: React.FocusEvent) => void;\n onBlur: (e: React.FocusEvent) => void;\n };\n /** Collection node filter applied to the ListBox. */\n filter?: (nodes: Iterable<any>) => Iterable<any>;\n size?: 'small' | 'medium' | 'large' | (string & {});\n}\n\nconst ListBoxPopoverWrapper = tasty({\n qa: 'ComboBoxOverlayWrapper',\n styles: {\n position: 'absolute',\n zIndex: 1000,\n },\n});\n\nconst ListBoxPopoverElement = tasty({\n qa: 'ComboBoxOverlay',\n styles: {\n display: 'grid',\n gridRows: '1sf',\n gridColumns: '1sf',\n width: '$overlay-min-width max-content 50vw',\n height: 'initial max-content (50vh - 5x)',\n overflow: 'auto',\n fill: '#surface',\n radius: '1cr',\n shadow: true,\n padding: '0',\n border: '#border',\n hide: {\n '': false,\n hidden: true,\n },\n boxSizing: 'border-box',\n transition:\n 'translate $transition ease-out, scale $transition ease-out, theme $transition ease-out',\n translate: {\n '': '0 0',\n 'open & [data-placement=\"top\"]': '0 0',\n '!open & [data-placement=\"top\"]': '0 1x',\n 'open & ([data-placement=\"bottom\"] | ![data-placement])': '0 0',\n '!open & ([data-placement=\"bottom\"] | ![data-placement])': '0 -1x',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n },\n scale: {\n '': '1 1',\n '!open': '1 .9',\n },\n opacity: {\n '': 1,\n '!open': 0.001,\n },\n\n '$overlay-min-width': 'min 30x',\n },\n});\n\nexport const ListBoxPopover = function ListBoxPopover(\n props: ListBoxPopoverProps,\n) {\n const {\n isOpen,\n triggerRef,\n popoverRef,\n listBoxRef,\n direction,\n shouldFlip,\n overlayOffset,\n containerPadding,\n comboBoxWidth,\n listBoxId,\n overlayStyles,\n listBoxStyles,\n optionStyles,\n sectionStyles,\n headingStyles,\n selectedKey,\n isDisabled,\n disabledKeys,\n items,\n children,\n listStateRef,\n onSelectionChange,\n onClose,\n label,\n ariaLabel,\n compositeFocusProps,\n filter,\n size = 'medium',\n } = props;\n\n const mergedPopoverRef = popoverRef;\n\n // Overlay positioning\n const { overlayProps: overlayPositionProps, placement } = useOverlayPosition({\n targetRef: triggerRef as any,\n overlayRef: mergedPopoverRef as any,\n placement: `${direction} start` as any,\n shouldFlip,\n isOpen,\n offset: overlayOffset,\n containerPadding: containerPadding,\n });\n\n // Overlay behavior (dismiss on outside click, escape)\n const { overlayProps: overlayBehaviorProps } = useOverlay(\n {\n onClose,\n shouldCloseOnBlur: true,\n isOpen,\n isDismissable: true,\n shouldCloseOnInteractOutside: (el) => {\n const menuTriggerEl = el.closest('[data-popover-trigger]');\n if (!menuTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss` to dismiss us without losing their click\n // to useOverlay's stopPropagation. Schedule the close after the\n // click finishes so the button's onPress runs first.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(onClose, 0);\n return false;\n }\n return true;\n }\n if (menuTriggerEl === triggerRef?.current) return true;\n return false;\n },\n },\n mergedPopoverRef as any,\n );\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || direction;\n\n const overlayContent = (\n <DisplayTransition isShown={isOpen}>\n {({ phase, isShown, ref: transitionRef }) => (\n <ListBoxPopoverWrapper\n {...mergeProps(\n overlayPositionProps,\n overlayBehaviorProps,\n compositeFocusProps,\n )}\n ref={mergedPopoverRef}\n style={overlayPositionProps.style}\n >\n <ListBoxPopoverElement\n ref={transitionRef}\n data-placement={placementDirection}\n data-phase={phase}\n mods={{\n open: isShown,\n hidden: phase === 'unmounted',\n }}\n styles={overlayStyles}\n style={{\n '--overlay-min-width': comboBoxWidth\n ? `${comboBoxWidth}px`\n : undefined,\n }}\n >\n <ListBox\n ref={listBoxRef}\n focusOnHover\n disableSelectionToggle\n id={listBoxId}\n aria-label={\n ariaLabel || (typeof label === 'string' ? label : 'Options')\n }\n selectedKey={selectedKey}\n selectionMode=\"single\"\n isDisabled={isDisabled}\n disabledKeys={disabledKeys}\n shouldUseVirtualFocus={true}\n items={items as any}\n filter={filter}\n styles={listBoxStyles}\n optionStyles={optionStyles}\n sectionStyles={sectionStyles}\n headingStyles={headingStyles}\n stateRef={listStateRef}\n size=\"medium\"\n shape=\"popover\"\n onSelectionChange={onSelectionChange}\n >\n {children as any}\n </ListBox>\n </ListBoxPopoverElement>\n </ListBoxPopoverWrapper>\n )}\n </DisplayTransition>\n );\n\n return <Portal>{overlayContent}</Portal>;\n};\n"],"mappings":";;;;;;;;;;;AAgDA,MAAM,wBAAwB,MAAM;CAClC,IAAI;CACJ,QAAQ;EACN,UAAU;EACV,QAAQ;EACT;CACF,CAAC;AAEF,MAAM,wBAAwB,MAAM;CAClC,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;EACP,QAAQ;EACR,UAAU;EACV,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,MAAM;GACJ,IAAI;GACJ,QAAQ;GACT;EACD,WAAW;EACX,YACE;EACF,WAAW;GACT,IAAI;GACJ,mCAAiC;GACjC,oCAAkC;GAClC,4DAA0D;GAC1D,6DAA2D;GAC5D;EACD,iBAAiB;GACf,IAAI;GACJ,4BAA0B;GAC3B;EACD,OAAO;GACL,IAAI;GACJ,SAAS;GACV;EACD,SAAS;GACP,IAAI;GACJ,SAAS;GACV;EAED,sBAAsB;EACvB;CACF,CAAC;AAEF,MAAa,iBAAiB,SAAS,eACrC,OACA;CACA,MAAM,EACJ,QACA,YACA,YACA,YACA,WACA,YACA,eACA,kBACA,eACA,WACA,eACA,eACA,cACA,eACA,eACA,aACA,YACA,cACA,OACA,UACA,cACA,mBACA,SACA,OACA,WACA,qBACA,QACA,OAAO,aACL;CAEJ,MAAM,mBAAmB;CAGzB,MAAM,EAAE,cAAc,sBAAsB,cAAc,mBAAmB;EAC3E,WAAW;EACX,YAAY;EACZ,WAAW,GAAG,UAAU;EACxB;EACA;EACA,QAAQ;EACU;EACnB,CAAC;CAGF,MAAM,EAAE,cAAc,yBAAyB,WAC7C;EACE;EACA,mBAAmB;EACnB;EACA,eAAe;EACf,+BAA+B,OAAO;GACpC,MAAM,gBAAgB,GAAG,QAAQ,yBAAyB;AAC1D,OAAI,CAAC,eAAe;AAClB,QAAI,GAAG,QAAQ,sBAAsB,CAAE,QAAO;AAK9C,QAAI,GAAG,QAAQ,yBAAyB,EAAE;AACxC,gBAAW,SAAS,EAAE;AACtB,YAAO;;AAET,WAAO;;AAET,OAAI,kBAAkB,YAAY,QAAS,QAAO;AAClD,UAAO;;EAEV,EACD,iBACD;CAGD,MAAM,qBAAqB,WAAW,MAAM,IAAI,CAAC,MAAM;AA6DvD,QAAO,oBAAC,oBA1DN,oBAAC;EAAkB,SAAS;aACxB,EAAE,OAAO,SAAS,KAAK,oBACvB,oBAAC;GACC,GAAIA,aACF,sBACA,sBACA,oBACD;GACD,KAAK;GACL,OAAO,qBAAqB;aAE5B,oBAAC;IACC,KAAK;IACL,kBAAgB;IAChB,cAAY;IACZ,MAAM;KACJ,MAAM;KACN,QAAQ,UAAU;KACnB;IACD,QAAQ;IACR,OAAO,EACL,uBAAuB,gBACnB,GAAG,cAAc,MACjB,QACL;cAED,oBAAC;KACC,KAAK;KACL;KACA;KACA,IAAI;KACJ,cACE,cAAc,OAAO,UAAU,WAAW,QAAQ;KAEvC;KACb,eAAc;KACF;KACE;KACd,uBAAuB;KAChB;KACC;KACR,QAAQ;KACM;KACC;KACA;KACf,UAAU;KACV,MAAK;KACL,OAAM;KACa;KAElB;MACO;KACY;IACF;GAER,GAGkB"}
@@ -1,4 +0,0 @@
1
-
2
- import "./ListBoxPopover.js";
3
- import "./useCompositeFocus.js";
4
- import { ListStateLike, TextFilterFn } from "./listNavigation.js";
@@ -1,24 +0,0 @@
1
-
2
- import { Key } from "@react-types/shared";
3
-
4
- //#region src/components/fields/ListBoxPopover/listNavigation.d.ts
5
- /**
6
- * Minimal view of a React Stately list state. Kept structural (no imports from
7
- * `react-stately`) so the helpers can be used from any collection-backed
8
- * component without dragging extra types in.
9
- */
10
- interface ListStateLike {
11
- selectionManager: {
12
- focusedKey: Key | null;
13
- setFocusedKey: (key: Key | null) => void;
14
- };
15
- collection: Iterable<any>;
16
- disabledKeys?: Set<Key>;
17
- lastFocusSourceRef?: {
18
- current: 'keyboard' | 'mouse' | 'other';
19
- };
20
- }
21
- type TextFilterFn = (textValue: string, inputValue: string) => boolean;
22
- //#endregion
23
- export { ListStateLike, TextFilterFn };
24
- //# sourceMappingURL=listNavigation.d.ts.map
@@ -1,78 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8e09ade | Cube Dev Team */
2
- //#region src/components/fields/ListBoxPopover/listNavigation.ts
3
- /**
4
- * Walks a collection (possibly nested under sections) and collects the keys of
5
- * selectable items, skipping disabled ones. Mirrors the inline walker that
6
- * used to live in `useComboBoxKeyboard`.
7
- */
8
- function collectVisibleKeys(nodes, out, disabledKeys) {
9
- for (const node of nodes) if (node.type === "item") {
10
- if (!disabledKeys?.has(node.key)) out.push(node.key);
11
- } else if (node.childNodes) collectVisibleKeys(node.childNodes, out, disabledKeys);
12
- }
13
- /** Convenience: returns the flat list of selectable keys for a list state. */
14
- function getVisibleKeys(listState) {
15
- const keys = [];
16
- collectVisibleKeys(listState.collection, keys, listState.disabledKeys);
17
- return keys;
18
- }
19
- /**
20
- * Computes the next key to focus when navigating with ArrowUp/ArrowDown.
21
- *
22
- * - If `fromKey` is omitted, reads `selectionManager.focusedKey`.
23
- * - When nothing is focused (or the focused key is no longer visible), falls
24
- * back to the first/last visible key depending on `direction`.
25
- * - When the current key is the boundary, either returns `null` (default) or
26
- * wraps to the opposite edge when `opts.wrap` is true.
27
- */
28
- function getNextVisibleKey(listState, direction, opts) {
29
- const visibleKeys = getVisibleKeys(listState);
30
- if (visibleKeys.length === 0) return null;
31
- const isForward = direction === 1;
32
- const currentKey = opts?.fromKey ?? listState.selectionManager.focusedKey;
33
- if (currentKey == null) return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];
34
- const currentIndex = visibleKeys.indexOf(currentKey);
35
- if (currentIndex === -1) return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];
36
- const newIndex = currentIndex + direction;
37
- if (newIndex >= 0 && newIndex < visibleKeys.length) return visibleKeys[newIndex];
38
- if (opts?.wrap) return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];
39
- return null;
40
- }
41
- /** Returns the first or last selectable key. */
42
- function getEdgeVisibleKey(listState, edge) {
43
- const visibleKeys = getVisibleKeys(listState);
44
- if (visibleKeys.length === 0) return null;
45
- return edge === "first" ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];
46
- }
47
- /**
48
- * Marks a focus change as keyboard-driven so the underlying ListBox scrolls the
49
- * highlighted option into view. No-op when the list state doesn't expose a
50
- * `lastFocusSourceRef`.
51
- */
52
- function markKeyboardFocus(listState) {
53
- if (listState.lastFocusSourceRef) listState.lastFocusSourceRef.current = "keyboard";
54
- }
55
- /**
56
- * Filters collection nodes by a search term while preserving section structure.
57
- * Sections whose children all fail the filter are dropped. Extracted verbatim
58
- * from the former `useComboBoxFiltering` inline filter.
59
- */
60
- function filterCollectionNodes(nodes, term, textFilterFn) {
61
- if (!term) return nodes;
62
- return [...nodes].map((node) => {
63
- if (node.type === "section" && node.childNodes) {
64
- const filteredChildren = [...node.childNodes].filter((child) => textFilterFn(child.textValue || "", term));
65
- if (filteredChildren.length === 0) return null;
66
- return {
67
- ...node,
68
- childNodes: filteredChildren,
69
- hasChildNodes: true
70
- };
71
- }
72
- return textFilterFn(node.textValue || "", term) ? node : null;
73
- }).filter(Boolean);
74
- }
75
-
76
- //#endregion
77
- export { filterCollectionNodes, getEdgeVisibleKey, getNextVisibleKey, markKeyboardFocus };
78
- //# sourceMappingURL=listNavigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listNavigation.js","names":[],"sources":["../../../../src/components/fields/ListBoxPopover/listNavigation.ts"],"sourcesContent":["import { Key } from '@react-types/shared';\n\n/**\n * Minimal view of a React Stately list state. Kept structural (no imports from\n * `react-stately`) so the helpers can be used from any collection-backed\n * component without dragging extra types in.\n */\nexport interface ListStateLike {\n selectionManager: {\n focusedKey: Key | null;\n setFocusedKey: (key: Key | null) => void;\n };\n collection: Iterable<any>;\n disabledKeys?: Set<Key>;\n lastFocusSourceRef?: { current: 'keyboard' | 'mouse' | 'other' };\n}\n\nexport type NavigationDirection = 1 | -1;\nexport type NavigationEdge = 'first' | 'last';\n\n/**\n * Walks a collection (possibly nested under sections) and collects the keys of\n * selectable items, skipping disabled ones. Mirrors the inline walker that\n * used to live in `useComboBoxKeyboard`.\n */\nexport function collectVisibleKeys(\n nodes: Iterable<any>,\n out: Key[],\n disabledKeys?: Set<Key>,\n): void {\n for (const node of nodes) {\n if (node.type === 'item') {\n if (!disabledKeys?.has(node.key)) {\n out.push(node.key);\n }\n } else if (node.childNodes) {\n collectVisibleKeys(node.childNodes, out, disabledKeys);\n }\n }\n}\n\n/** Convenience: returns the flat list of selectable keys for a list state. */\nexport function getVisibleKeys(listState: ListStateLike): Key[] {\n const keys: Key[] = [];\n collectVisibleKeys(\n listState.collection,\n keys,\n listState.disabledKeys as Set<Key> | undefined,\n );\n return keys;\n}\n\n/**\n * Computes the next key to focus when navigating with ArrowUp/ArrowDown.\n *\n * - If `fromKey` is omitted, reads `selectionManager.focusedKey`.\n * - When nothing is focused (or the focused key is no longer visible), falls\n * back to the first/last visible key depending on `direction`.\n * - When the current key is the boundary, either returns `null` (default) or\n * wraps to the opposite edge when `opts.wrap` is true.\n */\nexport function getNextVisibleKey(\n listState: ListStateLike,\n direction: NavigationDirection,\n opts?: { wrap?: boolean; fromKey?: Key | null },\n): Key | null {\n const visibleKeys = getVisibleKeys(listState);\n if (visibleKeys.length === 0) return null;\n\n const isForward = direction === 1;\n const currentKey = opts?.fromKey ?? listState.selectionManager.focusedKey;\n\n if (currentKey == null) {\n return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];\n }\n\n const currentIndex = visibleKeys.indexOf(currentKey);\n\n if (currentIndex === -1) {\n // Focused item was filtered out — restart from the matching edge.\n return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];\n }\n\n const newIndex = currentIndex + direction;\n if (newIndex >= 0 && newIndex < visibleKeys.length) {\n return visibleKeys[newIndex];\n }\n\n if (opts?.wrap) {\n return isForward ? visibleKeys[0] : visibleKeys[visibleKeys.length - 1];\n }\n\n return null;\n}\n\n/** Returns the first or last selectable key. */\nexport function getEdgeVisibleKey(\n listState: ListStateLike,\n edge: NavigationEdge,\n): Key | null {\n const visibleKeys = getVisibleKeys(listState);\n if (visibleKeys.length === 0) return null;\n return edge === 'first'\n ? visibleKeys[0]\n : visibleKeys[visibleKeys.length - 1];\n}\n\n/**\n * Marks a focus change as keyboard-driven so the underlying ListBox scrolls the\n * highlighted option into view. No-op when the list state doesn't expose a\n * `lastFocusSourceRef`.\n */\nexport function markKeyboardFocus(listState: ListStateLike): void {\n if (listState.lastFocusSourceRef) {\n listState.lastFocusSourceRef.current = 'keyboard';\n }\n}\n\nexport type TextFilterFn = (textValue: string, inputValue: string) => boolean;\n\n/**\n * Filters collection nodes by a search term while preserving section structure.\n * Sections whose children all fail the filter are dropped. Extracted verbatim\n * from the former `useComboBoxFiltering` inline filter.\n */\nexport function filterCollectionNodes(\n nodes: Iterable<any>,\n term: string,\n textFilterFn: TextFilterFn,\n): Iterable<any> {\n if (!term) {\n return nodes;\n }\n\n return [...nodes]\n .map((node: any) => {\n if (node.type === 'section' && node.childNodes) {\n const filteredChildren = [...node.childNodes].filter((child: any) =>\n textFilterFn(child.textValue || '', term),\n );\n\n if (filteredChildren.length === 0) {\n return null;\n }\n\n return {\n ...node,\n childNodes: filteredChildren,\n hasChildNodes: true,\n };\n }\n\n return textFilterFn(node.textValue || '', term) ? node : null;\n })\n .filter(Boolean);\n}\n"],"mappings":";;;;;;;AAyBA,SAAgB,mBACd,OACA,KACA,cACM;AACN,MAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,QAChB;MAAI,CAAC,cAAc,IAAI,KAAK,IAAI,CAC9B,KAAI,KAAK,KAAK,IAAI;YAEX,KAAK,WACd,oBAAmB,KAAK,YAAY,KAAK,aAAa;;;AAM5D,SAAgB,eAAe,WAAiC;CAC9D,MAAM,OAAc,EAAE;AACtB,oBACE,UAAU,YACV,MACA,UAAU,aACX;AACD,QAAO;;;;;;;;;;;AAYT,SAAgB,kBACd,WACA,WACA,MACY;CACZ,MAAM,cAAc,eAAe,UAAU;AAC7C,KAAI,YAAY,WAAW,EAAG,QAAO;CAErC,MAAM,YAAY,cAAc;CAChC,MAAM,aAAa,MAAM,WAAW,UAAU,iBAAiB;AAE/D,KAAI,cAAc,KAChB,QAAO,YAAY,YAAY,KAAK,YAAY,YAAY,SAAS;CAGvE,MAAM,eAAe,YAAY,QAAQ,WAAW;AAEpD,KAAI,iBAAiB,GAEnB,QAAO,YAAY,YAAY,KAAK,YAAY,YAAY,SAAS;CAGvE,MAAM,WAAW,eAAe;AAChC,KAAI,YAAY,KAAK,WAAW,YAAY,OAC1C,QAAO,YAAY;AAGrB,KAAI,MAAM,KACR,QAAO,YAAY,YAAY,KAAK,YAAY,YAAY,SAAS;AAGvE,QAAO;;;AAIT,SAAgB,kBACd,WACA,MACY;CACZ,MAAM,cAAc,eAAe,UAAU;AAC7C,KAAI,YAAY,WAAW,EAAG,QAAO;AACrC,QAAO,SAAS,UACZ,YAAY,KACZ,YAAY,YAAY,SAAS;;;;;;;AAQvC,SAAgB,kBAAkB,WAAgC;AAChE,KAAI,UAAU,mBACZ,WAAU,mBAAmB,UAAU;;;;;;;AAW3C,SAAgB,sBACd,OACA,MACA,cACe;AACf,KAAI,CAAC,KACH,QAAO;AAGT,QAAO,CAAC,GAAG,MAAM,CACd,KAAK,SAAc;AAClB,MAAI,KAAK,SAAS,aAAa,KAAK,YAAY;GAC9C,MAAM,mBAAmB,CAAC,GAAG,KAAK,WAAW,CAAC,QAAQ,UACpD,aAAa,MAAM,aAAa,IAAI,KAAK,CAC1C;AAED,OAAI,iBAAiB,WAAW,EAC9B,QAAO;AAGT,UAAO;IACL,GAAG;IACH,YAAY;IACZ,eAAe;IAChB;;AAGH,SAAO,aAAa,KAAK,aAAa,IAAI,KAAK,GAAG,OAAO;GACzD,CACD,OAAO,QAAQ"}
@@ -1,2 +0,0 @@
1
-
2
- import React, { RefObject } from "react";
@@ -1,53 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8e09ade | Cube Dev Team */
2
- import { useCallback, useEffect, useRef } from "react";
3
-
4
- //#region src/components/fields/ListBoxPopover/useCompositeFocus.ts
5
- /**
6
- * Tracks focus across a wrapper element and its (portaled) popover as a single
7
- * logical focus scope. Fires `onFocus` when focus enters either and `onBlur`
8
- * when it leaves both — essential for components whose overlay is portaled, so
9
- * that clicking an option does not look like a blur of the whole component.
10
- *
11
- * Focus checks are deferred to the next animation frame to tolerate the
12
- * synchronous focus shuffles React Aria and portals perform on selection.
13
- */
14
- function useCompositeFocus({ wrapperRef, popoverRef, onFocus, onBlur, isDisabled }) {
15
- const wasInsideRef = useRef(false);
16
- const rafRef = useRef(null);
17
- const checkFocus = useCallback(() => {
18
- if (isDisabled) return;
19
- const activeElement = document.activeElement;
20
- const isInside = (wrapperRef.current?.contains(activeElement) ?? false) || (popoverRef.current?.contains(activeElement) ?? false);
21
- if (isInside !== wasInsideRef.current) {
22
- wasInsideRef.current = isInside;
23
- if (isInside) onFocus?.();
24
- else onBlur?.();
25
- }
26
- }, [
27
- wrapperRef,
28
- popoverRef,
29
- onFocus,
30
- onBlur,
31
- isDisabled
32
- ]);
33
- const handleFocusOrBlur = useCallback((e) => {
34
- if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
35
- rafRef.current = requestAnimationFrame(() => {
36
- rafRef.current = null;
37
- checkFocus();
38
- });
39
- }, [checkFocus]);
40
- useEffect(() => {
41
- return () => {
42
- if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
43
- };
44
- }, []);
45
- return { compositeFocusProps: {
46
- onFocus: handleFocusOrBlur,
47
- onBlur: handleFocusOrBlur
48
- } };
49
- }
50
-
51
- //#endregion
52
- export { useCompositeFocus };
53
- //# sourceMappingURL=useCompositeFocus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCompositeFocus.js","names":[],"sources":["../../../../src/components/fields/ListBoxPopover/useCompositeFocus.ts"],"sourcesContent":["import React, { RefObject, useCallback, useEffect, useRef } from 'react';\n\nexport interface UseCompositeFocusProps {\n wrapperRef: RefObject<HTMLElement>;\n popoverRef: RefObject<HTMLElement>;\n onFocus?: () => void;\n onBlur?: () => void;\n isDisabled?: boolean;\n}\n\nexport interface UseCompositeFocusReturn {\n compositeFocusProps: {\n onFocus: (e: React.FocusEvent) => void;\n onBlur: (e: React.FocusEvent) => void;\n };\n}\n\n/**\n * Tracks focus across a wrapper element and its (portaled) popover as a single\n * logical focus scope. Fires `onFocus` when focus enters either and `onBlur`\n * when it leaves both — essential for components whose overlay is portaled, so\n * that clicking an option does not look like a blur of the whole component.\n *\n * Focus checks are deferred to the next animation frame to tolerate the\n * synchronous focus shuffles React Aria and portals perform on selection.\n */\nexport function useCompositeFocus({\n wrapperRef,\n popoverRef,\n onFocus,\n onBlur,\n isDisabled,\n}: UseCompositeFocusProps): UseCompositeFocusReturn {\n const wasInsideRef = useRef(false);\n const rafRef = useRef<number | null>(null);\n\n const checkFocus = useCallback(() => {\n if (isDisabled) return;\n\n const activeElement = document.activeElement;\n const isInside =\n (wrapperRef.current?.contains(activeElement) ?? false) ||\n (popoverRef.current?.contains(activeElement) ?? false);\n\n if (isInside !== wasInsideRef.current) {\n wasInsideRef.current = isInside;\n if (isInside) {\n onFocus?.();\n } else {\n onBlur?.();\n }\n }\n }, [wrapperRef, popoverRef, onFocus, onBlur, isDisabled]);\n\n const handleFocusOrBlur = useCallback(\n (e: React.FocusEvent) => {\n // Cancel any pending check\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n\n // Schedule focus check for next frame\n rafRef.current = requestAnimationFrame(() => {\n rafRef.current = null;\n checkFocus();\n });\n },\n [checkFocus],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n };\n }, []);\n\n return {\n compositeFocusProps: {\n onFocus: handleFocusOrBlur,\n onBlur: handleFocusOrBlur,\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;AA0BA,SAAgB,kBAAkB,EAChC,YACA,YACA,SACA,QACA,cACkD;CAClD,MAAM,eAAe,OAAO,MAAM;CAClC,MAAM,SAAS,OAAsB,KAAK;CAE1C,MAAM,aAAa,kBAAkB;AACnC,MAAI,WAAY;EAEhB,MAAM,gBAAgB,SAAS;EAC/B,MAAM,YACH,WAAW,SAAS,SAAS,cAAc,IAAI,WAC/C,WAAW,SAAS,SAAS,cAAc,IAAI;AAElD,MAAI,aAAa,aAAa,SAAS;AACrC,gBAAa,UAAU;AACvB,OAAI,SACF,YAAW;OAEX,WAAU;;IAGb;EAAC;EAAY;EAAY;EAAS;EAAQ;EAAW,CAAC;CAEzD,MAAM,oBAAoB,aACvB,MAAwB;AAEvB,MAAI,OAAO,YAAY,KACrB,sBAAqB,OAAO,QAAQ;AAItC,SAAO,UAAU,4BAA4B;AAC3C,UAAO,UAAU;AACjB,eAAY;IACZ;IAEJ,CAAC,WAAW,CACb;AAGD,iBAAgB;AACd,eAAa;AACX,OAAI,OAAO,YAAY,KACrB,sBAAqB,OAAO,QAAQ;;IAGvC,EAAE,CAAC;AAEN,QAAO,EACL,qBAAqB;EACnB,SAAS;EACT,QAAQ;EACT,EACF"}
@@ -1,130 +0,0 @@
1
- # CommandTextArea
2
-
3
- A multiline text input (built on `TextArea` / `TextInputBase`) that shows a
4
- command-autocomplete popover when the text matches a configurable trigger. The
5
- focus always stays in the textarea; arrow keys, Enter/Tab, and Escape drive the
6
- list only while it is open. Selecting an option inserts the option's literal
7
- value (e.g. `/clear`) into the text and fires `onCommand`.
8
-
9
- ## When to Use
10
-
11
- - Chat or prompt inputs where users type slash commands (`/clear`, `/help`).
12
- - Inputs that need token-based autocomplete (`@mentions`, snippets) without
13
- giving up free-form, multiline editing.
14
- - Any textarea that should "feel like a textarea" but offer inline suggestions.
15
-
16
- ## Component
17
-
18
- ---
19
-
20
- ### Properties
21
-
22
- - **`triggers`** `CommandTrigger[]` (default: `[{ char: '/', atLineStart: true }]`) — Descriptors that open the autocomplete. `atLineStart` restricts the token to the start of the input; `false` allows it anywhere after whitespace.
23
- - **`items`** `Iterable<T>` — Data-driven option source (alternative to JSX children).
24
- - **`children`** `ReactNode | ((item) => ReactElement)` — Static items or a render function (same shape as `ComboBox` / `ListBox`).
25
- - **`filter`** `(textValue, query) => boolean | false` — Custom filter. Pass `false` to disable internal filtering (e.g. server-side).
26
- - **`onCommand`** `(key, item) => void` — Fired when the user picks a command. The option's `textValue` is inserted into the textarea regardless.
27
- - **`insertSpaceAfter`** `boolean` (default: `true`) — Insert a trailing space after the chosen command.
28
- - **`disabledKeys`** `Iterable<Key>` — Keys of disabled options.
29
- - **`direction`** `'top' | 'bottom'` (default: `'top'`) — Popover placement. Chat inputs usually want `top`.
30
- - **`shouldFlip`** `boolean` (default: `true`) — Whether the popover flips when overflowing.
31
- - **`overlayOffset`** `number` (default: `8`) — Distance between the textarea and the popover.
32
- - **`containerPadding`** `number` (default: `8`) — Padding between the popover and the viewport edge.
33
- - **`autoSize`** `boolean` (default: `false`) — Resize to fit content.
34
- - **`rows`** `number` (default: `3`) — Visible rows.
35
- - **`maxRows`** `number` (default: `10`) — Max visible rows when `autoSize` is true.
36
-
37
- Each option's value is the **literal string to insert**. For commands, set the
38
- item's `textValue` (and `key`) to the full `/clear` — the slash is part of both
39
- the active token and the inserted value, so `/cle` becomes `/clear ` with no
40
- duplication. This decouples insertion from the trigger, so non-command
41
- autocomplete (e.g. a `@mention` resolving to `@john`) works the same way.
42
-
43
- ### Base Properties
44
-
45
- Supports [Base properties](../../BaseProperties.md).
46
-
47
- ### Field Properties
48
-
49
- Supports all [Field properties](../../FieldProperties.md)
50
- (`label`, `name`, `isRequired`, `isDisabled`, `isReadOnly`, `validationState`,
51
- `description`, `rules`, etc.).
52
-
53
- ### Styling Properties
54
-
55
- - **`overlayStyles`** — Styles for the popover overlay.
56
- - **`listBoxStyles`** — Styles for the inner listbox.
57
- - **`optionStyles`** — Styles for individual options.
58
- - **`sectionStyles`** — Styles for section containers.
59
- - **`headingStyles`** — Styles for section headings.
60
-
61
- ### Style Properties
62
-
63
- These properties allow direct style application without using the `styles` prop:
64
-
65
- - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
66
- - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
67
- - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
68
- - **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
69
- - **Color:** `color`, `fill`, `fade`, `image`
70
-
71
- ## Examples
72
-
73
- ### Basic usage
74
-
75
- ```jsx
76
- <CommandTextArea
77
- label="Message"
78
- placeholder="Type / to see commands…"
79
- onCommand={(key) => console.log('picked', key)}
80
- >
81
- <CommandTextArea.Item key="/clear" textValue="/clear">Clear conversation</CommandTextArea.Item>
82
- <CommandTextArea.Item key="/help" textValue="/help">Show help</CommandTextArea.Item>
83
- </CommandTextArea>
84
- ```
85
-
86
- ### Mention trigger (anywhere in the text)
87
-
88
- ```jsx
89
- <CommandTextArea
90
- label="Message"
91
- triggers={[{ char: '@', atLineStart: false }]}
92
- >
93
- <CommandTextArea.Item key="@john" textValue="@john">John Doe</CommandTextArea.Item>
94
- <CommandTextArea.Item key="@jane" textValue="@jane">Jane Roe</CommandTextArea.Item>
95
- </CommandTextArea>
96
- ```
97
-
98
- ### Data-driven with sections
99
-
100
- ```jsx
101
- <CommandTextArea items={commands}>
102
- {(item) => <CommandTextArea.Item key={item.key} textValue={item.key}>{item.label}</CommandTextArea.Item>}
103
- </CommandTextArea>
104
- ```
105
-
106
- ## Accessibility
107
-
108
- ### Keyboard Navigation
109
-
110
- - `Tab` — Moves focus into / out of the textarea.
111
- - `ArrowUp` / `ArrowDown` — Move the highlighted option (only while the popover is open; otherwise moves the caret).
112
- - `Home` / `End` — Jump to the first / last option while open.
113
- - `Enter` / `Tab` — Insert the highlighted option while open; otherwise insert a newline / submit.
114
- - `Escape` — Close the popover without changing the text.
115
-
116
- ### Screen Reader Support
117
-
118
- - The textarea is announced as a `combobox` with `aria-autocomplete="list"`.
119
- - `aria-expanded`, `aria-controls`, and `aria-activedescendant` track the
120
- popover and the highlighted option.
121
-
122
- ## Integration with Forms
123
-
124
- This component supports all [Field properties](../../FieldProperties.md) when used within a Form. Its `value` is the full textarea string.
125
-
126
- ## Related Components
127
-
128
- - [TextArea](./TextArea.md) — The base multiline field this builds on.
129
- - [ComboBox](./ComboBox.md) — Single-value select with search (different semantics: commits a `selectedKey`).
130
- - [ListBox](./ListBox.md) — The virtual-focus list rendered inside the popover.