@oracle/oraclejet-preact 21.0.0 → 21.0.1

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 (898) hide show
  1. package/amd/{BaseDiagram-295ed9cc.js → BaseDiagram-7845a7ae.js} +2 -2
  2. package/amd/{BaseDiagram-295ed9cc.js.map → BaseDiagram-7845a7ae.js.map} +1 -1
  3. package/amd/{BaseNavigationListItem-299cbfab.js → BaseNavigationListItem-0efcad58.js} +2 -2
  4. package/amd/{BaseNavigationListItem-299cbfab.js.map → BaseNavigationListItem-0efcad58.js.map} +1 -1
  5. package/amd/{CollapsibleNavigationListExternalLinkItem-fcf1805d.js → CollapsibleNavigationListExternalLinkItem-06a92293.js} +2 -2
  6. package/amd/{CollapsibleNavigationListExternalLinkItem-fcf1805d.js.map → CollapsibleNavigationListExternalLinkItem-06a92293.js.map} +1 -1
  7. package/amd/{ColorInputText-55b31f03.js → ColorInputText-3ac0f956.js} +2 -2
  8. package/amd/{ColorInputText-55b31f03.js.map → ColorInputText-3ac0f956.js.map} +1 -1
  9. package/amd/ColorPickerVariants.styles.css +1 -1
  10. package/amd/ColorPickerVariants.styles2.css +1 -1
  11. package/amd/ColorSwatchVariants.styles.css +1 -1
  12. package/amd/ColorSwatchVariants.styles2.css +1 -1
  13. package/amd/ContainerDiagram-5e392270.js +2 -0
  14. package/amd/{ContainerDiagram-521f402a.js.map → ContainerDiagram-5e392270.js.map} +1 -1
  15. package/amd/ConveyorBeltVariants.styles.css +6 -6
  16. package/amd/ConveyorBeltVariants.styles2.css +6 -6
  17. package/amd/{Diagram-b73d20a3.js → Diagram-3ef5b038.js} +2 -2
  18. package/amd/{Diagram-b73d20a3.js.map → Diagram-3ef5b038.js.map} +1 -1
  19. package/amd/DiagramStyles.styles2.css +16 -10
  20. package/amd/DiagramStyles.styles3.css +10 -16
  21. package/amd/DrawerPopupVariants.styles.css +5 -5
  22. package/amd/DrawerPopupVariants.styles2.css +5 -5
  23. package/amd/Expander-4b1f2445.js +2 -0
  24. package/amd/{Expander-150fa95e.js.map → Expander-4b1f2445.js.map} +1 -1
  25. package/amd/FormLayoutVariants.styles.css +14 -14
  26. package/amd/FormLayoutVariants.styles2.css +14 -14
  27. package/amd/IndentedCellLayout-dc0896ab.js +1 -1
  28. package/amd/IndentedCellLayout-dc0896ab.js.map +1 -1
  29. package/amd/{InputColor-019b9397.js → InputColor-96a82077.js} +2 -2
  30. package/amd/{InputColor-019b9397.js.map → InputColor-96a82077.js.map} +1 -1
  31. package/amd/InputDatePicker-37824ba4.js +2 -0
  32. package/amd/{InputDatePicker-613800d1.js.map → InputDatePicker-37824ba4.js.map} +1 -1
  33. package/amd/ListStyles.styles.css +105 -7
  34. package/amd/ListStyles.styles2.css +7 -105
  35. package/amd/MeterCircleVariants.styles.css +8 -8
  36. package/amd/MeterCircleVariants.styles2.css +8 -8
  37. package/amd/NavigationListExternalLinkItem-382cd5a2.js +2 -0
  38. package/amd/{NavigationListExternalLinkItem-3d98a9e8.js.map → NavigationListExternalLinkItem-382cd5a2.js.map} +1 -1
  39. package/amd/NavigationListLinkItem-8ed2c18d.js +2 -0
  40. package/amd/{NavigationListLinkItem-c4b2b73c.js.map → NavigationListLinkItem-8ed2c18d.js.map} +1 -1
  41. package/amd/OverflowTabBar-9e7277f4.js +2 -0
  42. package/amd/OverflowTabBar-9e7277f4.js.map +1 -0
  43. package/amd/OverflowTabBarItem-7d80beed.js +2 -0
  44. package/amd/{OverflowTabBarItem-11f199ee.js.map → OverflowTabBarItem-7d80beed.js.map} +1 -1
  45. package/amd/PRIVATE_BaseDiagram.js +1 -1
  46. package/amd/PRIVATE_List/themes/ListStyles.css.js +1 -1
  47. package/amd/PRIVATE_List.js +1 -1
  48. package/amd/PRIVATE_SelectCommon.js +1 -1
  49. package/amd/PRIVATE_Table.js +1 -1
  50. package/amd/PRIVATE_TableList/themes/ListStyles.css.js +1 -1
  51. package/amd/PRIVATE_TableList/themes/redwood/ListTheme.js +1 -1
  52. package/amd/PRIVATE_TableList/themes/redwood/ListTheme.js.map +1 -1
  53. package/amd/PRIVATE_TableList/themes/redwood/ListVariants.css.js +1 -1
  54. package/amd/PRIVATE_TableList/themes/stable/ListTheme.js +1 -1
  55. package/amd/PRIVATE_TableList/themes/stable/ListTheme.js.map +1 -1
  56. package/amd/PRIVATE_TableList/themes/stable/ListVariants.css.js +1 -1
  57. package/amd/PRIVATE_TableList.js +1 -1
  58. package/amd/ProgressBarVariants.styles.css +1 -1
  59. package/amd/ProgressBarVariants.styles2.css +1 -1
  60. package/amd/ProgressCircleVariants.styles.css +4 -4
  61. package/amd/ProgressCircleVariants.styles2.css +4 -4
  62. package/amd/RadioIconVariants.styles.css +3 -3
  63. package/amd/RadioIconVariants.styles2.css +3 -3
  64. package/amd/{ReorderableTabBar-35cce8ac.js → ReorderableTabBar-7fb56c0b.js} +2 -2
  65. package/amd/{ReorderableTabBar-35cce8ac.js.map → ReorderableTabBar-7fb56c0b.js.map} +1 -1
  66. package/amd/SortControl-eb114fee.js +2 -0
  67. package/amd/{SortControl-115bc431.js.map → SortControl-eb114fee.js.map} +1 -1
  68. package/amd/TabBar-34e0073f.js +2 -0
  69. package/amd/TabBar-34e0073f.js.map +1 -0
  70. package/amd/{TabBarItem-191d0223.js → TabBarItem-60866864.js} +2 -2
  71. package/amd/{TabBarItem-191d0223.js.map → TabBarItem-60866864.js.map} +1 -1
  72. package/amd/TabBarItemVariants.styles.css +3 -3
  73. package/amd/TabBarItemVariants.styles2.css +3 -3
  74. package/amd/{TabBarLinkItem-5f376f4e.js → TabBarLinkItem-7b5b5b73.js} +2 -2
  75. package/amd/{TabBarLinkItem-5f376f4e.js.map → TabBarLinkItem-7b5b5b73.js.map} +1 -1
  76. package/amd/TabBarMixed-b61a657d.js +2 -0
  77. package/amd/{TabBarMixed-e16ca418.js.map → TabBarMixed-b61a657d.js.map} +1 -1
  78. package/amd/{Table-76c8555b.js → Table-caf0eeb9.js} +2 -2
  79. package/amd/{Table-76c8555b.js.map → Table-caf0eeb9.js.map} +1 -1
  80. package/amd/{TableDisplay-938d743b.js → TableDisplay-d2efde54.js} +2 -2
  81. package/amd/{TableDisplay-938d743b.js.map → TableDisplay-d2efde54.js.map} +1 -1
  82. package/amd/{TableView-490cc209.js → TableView-94381f75.js} +2 -2
  83. package/amd/{TableView-490cc209.js.map → TableView-94381f75.js.map} +1 -1
  84. package/amd/Theme-redwood/theme.css +301 -306
  85. package/amd/Theme-stable/theme.css +542 -537
  86. package/amd/TrainVariants.styles.css +6 -6
  87. package/amd/TrainVariants.styles2.css +6 -6
  88. package/amd/{TreeTableView-1b66b880.js → TreeTableView-ef0d26bd.js} +2 -2
  89. package/amd/{TreeTableView-1b66b880.js.map → TreeTableView-ef0d26bd.js.map} +1 -1
  90. package/amd/UNSAFE_CollapsibleNavigationList.js +1 -1
  91. package/amd/UNSAFE_ColorInputText.js +1 -1
  92. package/amd/UNSAFE_ColorPalette.js +1 -1
  93. package/amd/UNSAFE_ColorPicker/themes/redwood/ColorPickerTheme.js +1 -1
  94. package/amd/UNSAFE_ColorPicker/themes/redwood/ColorPickerTheme.js.map +1 -1
  95. package/amd/UNSAFE_ColorPicker/themes/redwood/ColorPickerVariants.css.js +1 -1
  96. package/amd/UNSAFE_ColorPicker/themes/stable/ColorPickerTheme.js +1 -1
  97. package/amd/UNSAFE_ColorPicker/themes/stable/ColorPickerTheme.js.map +1 -1
  98. package/amd/UNSAFE_ColorPicker/themes/stable/ColorPickerVariants.css.js +1 -1
  99. package/amd/UNSAFE_ColorPicker.js +1 -1
  100. package/amd/UNSAFE_ColorSwatch/themes/redwood/ColorSwatchTheme.js +1 -1
  101. package/amd/UNSAFE_ColorSwatch/themes/redwood/ColorSwatchTheme.js.map +1 -1
  102. package/amd/UNSAFE_ColorSwatch/themes/redwood/ColorSwatchVariants.css.js +1 -1
  103. package/amd/UNSAFE_ColorSwatch/themes/stable/ColorSwatchTheme.js +1 -1
  104. package/amd/UNSAFE_ColorSwatch/themes/stable/ColorSwatchTheme.js.map +1 -1
  105. package/amd/UNSAFE_ColorSwatch/themes/stable/ColorSwatchVariants.css.js +1 -1
  106. package/amd/UNSAFE_ColorSwatch.js +1 -1
  107. package/amd/UNSAFE_ContainerDiagram/themes/DiagramStyles.css.js +1 -1
  108. package/amd/UNSAFE_ContainerDiagram.js +1 -1
  109. package/amd/UNSAFE_ConveyorBelt/themes/redwood/ConveyorBeltTheme.js +1 -1
  110. package/amd/UNSAFE_ConveyorBelt/themes/redwood/ConveyorBeltTheme.js.map +1 -1
  111. package/amd/UNSAFE_ConveyorBelt/themes/redwood/ConveyorBeltVariants.css.js +1 -1
  112. package/amd/UNSAFE_ConveyorBelt/themes/stable/ConveyorBeltTheme.js +1 -1
  113. package/amd/UNSAFE_ConveyorBelt/themes/stable/ConveyorBeltTheme.js.map +1 -1
  114. package/amd/UNSAFE_ConveyorBelt/themes/stable/ConveyorBeltVariants.css.js +1 -1
  115. package/amd/UNSAFE_ConveyorBelt.js +1 -1
  116. package/amd/UNSAFE_Diagram/themes/DiagramStyles.css.js +1 -1
  117. package/amd/UNSAFE_Diagram.js +1 -1
  118. package/amd/UNSAFE_DrawerPopup/themes/redwood/DrawerPopupTheme.js +1 -1
  119. package/amd/UNSAFE_DrawerPopup/themes/redwood/DrawerPopupTheme.js.map +1 -1
  120. package/amd/UNSAFE_DrawerPopup/themes/redwood/DrawerPopupVariants.css.js +1 -1
  121. package/amd/UNSAFE_DrawerPopup/themes/stable/DrawerPopupTheme.js +1 -1
  122. package/amd/UNSAFE_DrawerPopup/themes/stable/DrawerPopupTheme.js.map +1 -1
  123. package/amd/UNSAFE_DrawerPopup/themes/stable/DrawerPopupVariants.css.js +1 -1
  124. package/amd/UNSAFE_DrawerPopup.js +1 -1
  125. package/amd/UNSAFE_Expander.js +1 -1
  126. package/amd/UNSAFE_FormLayout/themes/redwood/FormLayoutTheme.js +1 -1
  127. package/amd/UNSAFE_FormLayout/themes/redwood/FormLayoutTheme.js.map +1 -1
  128. package/amd/UNSAFE_FormLayout/themes/redwood/FormLayoutVariants.css.js +1 -1
  129. package/amd/UNSAFE_FormLayout/themes/stable/FormLayoutTheme.js +1 -1
  130. package/amd/UNSAFE_FormLayout/themes/stable/FormLayoutTheme.js.map +1 -1
  131. package/amd/UNSAFE_FormLayout/themes/stable/FormLayoutVariants.css.js +1 -1
  132. package/amd/UNSAFE_FormLayout.js +1 -1
  133. package/amd/UNSAFE_HierarchicalList.js +1 -1
  134. package/amd/UNSAFE_IconProgressButton.js +1 -1
  135. package/amd/UNSAFE_IndentedCellLayout.js +1 -1
  136. package/amd/UNSAFE_InlineSelectSingle.js +1 -1
  137. package/amd/UNSAFE_InputColor.js +1 -1
  138. package/amd/UNSAFE_InputDatePicker.js +1 -1
  139. package/amd/UNSAFE_InputSearch.js +1 -1
  140. package/amd/UNSAFE_InputSearch.js.map +1 -1
  141. package/amd/UNSAFE_InputTimePicker.js +1 -1
  142. package/amd/UNSAFE_InputTimePicker.js.map +1 -1
  143. package/amd/UNSAFE_ListView.js +1 -1
  144. package/amd/UNSAFE_MeterCircle/themes/redwood/MeterCircleTheme.js +1 -1
  145. package/amd/UNSAFE_MeterCircle/themes/redwood/MeterCircleTheme.js.map +1 -1
  146. package/amd/UNSAFE_MeterCircle/themes/redwood/MeterCircleVariants.css.js +1 -1
  147. package/amd/UNSAFE_MeterCircle/themes/stable/MeterCircleTheme.js +1 -1
  148. package/amd/UNSAFE_MeterCircle/themes/stable/MeterCircleTheme.js.map +1 -1
  149. package/amd/UNSAFE_MeterCircle/themes/stable/MeterCircleVariants.css.js +1 -1
  150. package/amd/UNSAFE_MeterCircle.js +1 -1
  151. package/amd/UNSAFE_NavigationList.js +1 -1
  152. package/amd/UNSAFE_OverflowTabBar.js +1 -1
  153. package/amd/UNSAFE_ProgressBar/themes/redwood/ProgressBarTheme.js +1 -1
  154. package/amd/UNSAFE_ProgressBar/themes/redwood/ProgressBarTheme.js.map +1 -1
  155. package/amd/UNSAFE_ProgressBar/themes/redwood/ProgressBarVariants.css.js +1 -1
  156. package/amd/UNSAFE_ProgressBar/themes/stable/ProgressBarTheme.js +1 -1
  157. package/amd/UNSAFE_ProgressBar/themes/stable/ProgressBarTheme.js.map +1 -1
  158. package/amd/UNSAFE_ProgressBar/themes/stable/ProgressBarVariants.css.js +1 -1
  159. package/amd/UNSAFE_ProgressBar.js +1 -1
  160. package/amd/UNSAFE_ProgressButton.js +1 -1
  161. package/amd/UNSAFE_ProgressButtonLabelLayout.js +1 -1
  162. package/amd/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleTheme.js +1 -1
  163. package/amd/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleTheme.js.map +1 -1
  164. package/amd/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleVariants.css.js +1 -1
  165. package/amd/UNSAFE_ProgressCircle/themes/stable/ProgressCircleTheme.js +1 -1
  166. package/amd/UNSAFE_ProgressCircle/themes/stable/ProgressCircleTheme.js.map +1 -1
  167. package/amd/UNSAFE_ProgressCircle/themes/stable/ProgressCircleVariants.css.js +1 -1
  168. package/amd/UNSAFE_ProgressCircle.js +1 -1
  169. package/amd/UNSAFE_RadioItem/themes/redwood/RadioIconTheme.js +1 -1
  170. package/amd/UNSAFE_RadioItem/themes/redwood/RadioIconTheme.js.map +1 -1
  171. package/amd/UNSAFE_RadioItem/themes/redwood/RadioIconVariants.css.js +1 -1
  172. package/amd/UNSAFE_RadioItem/themes/stable/RadioIconTheme.js +1 -1
  173. package/amd/UNSAFE_RadioItem/themes/stable/RadioIconTheme.js.map +1 -1
  174. package/amd/UNSAFE_RadioItem/themes/stable/RadioIconVariants.css.js +1 -1
  175. package/amd/UNSAFE_RadioItem.js +1 -1
  176. package/amd/UNSAFE_Refresher.js +1 -1
  177. package/amd/UNSAFE_ReorderableTabBar.js +1 -1
  178. package/amd/UNSAFE_RichSelectionItem.js +1 -1
  179. package/amd/UNSAFE_RichSelectionItem.js.map +1 -1
  180. package/amd/UNSAFE_SelectMultiple.js +1 -1
  181. package/amd/UNSAFE_SelectSingle.js +1 -1
  182. package/amd/UNSAFE_SortControl.js +1 -1
  183. package/amd/UNSAFE_TabBar.js +1 -1
  184. package/amd/UNSAFE_TabBarCommon/themes/redwood/TabBarItemTheme.js +1 -1
  185. package/amd/UNSAFE_TabBarCommon/themes/redwood/TabBarItemTheme.js.map +1 -1
  186. package/amd/UNSAFE_TabBarCommon/themes/redwood/TabBarItemVariants.css.js +1 -1
  187. package/amd/UNSAFE_TabBarCommon/themes/stable/TabBarItemTheme.js +1 -1
  188. package/amd/UNSAFE_TabBarCommon/themes/stable/TabBarItemTheme.js.map +1 -1
  189. package/amd/UNSAFE_TabBarCommon/themes/stable/TabBarItemVariants.css.js +1 -1
  190. package/amd/UNSAFE_TabBarCommon.js +1 -1
  191. package/amd/UNSAFE_TabBarMixed.js +1 -1
  192. package/amd/UNSAFE_TableDisplay.js +1 -1
  193. package/amd/UNSAFE_TableView.js +1 -1
  194. package/amd/UNSAFE_TimePicker.js +1 -1
  195. package/amd/UNSAFE_Train/themes/redwood/TrainTheme.js +1 -1
  196. package/amd/UNSAFE_Train/themes/redwood/TrainTheme.js.map +1 -1
  197. package/amd/UNSAFE_Train/themes/redwood/TrainVariants.css.js +1 -1
  198. package/amd/UNSAFE_Train/themes/stable/TrainTheme.js +1 -1
  199. package/amd/UNSAFE_Train/themes/stable/TrainTheme.js.map +1 -1
  200. package/amd/UNSAFE_Train/themes/stable/TrainVariants.css.js +1 -1
  201. package/amd/UNSAFE_Train.js +1 -1
  202. package/amd/UNSAFE_TreeTableView.js +1 -1
  203. package/amd/UNSAFE_TreeView.js +1 -1
  204. package/amd/UNSAFE_VirtualizedListView.js +1 -1
  205. package/amd/hooks/PRIVATE_useDetectHorizontalOverflow.js +1 -1
  206. package/amd/hooks/PRIVATE_useTabBar.js +1 -1
  207. package/amd/useDetectHorizontalOverflow-88d9b328.js +2 -0
  208. package/amd/useDetectHorizontalOverflow-88d9b328.js.map +1 -0
  209. package/amd/useTabBar-edf8f8a1.js +2 -0
  210. package/amd/useTabBar-edf8f8a1.js.map +1 -0
  211. package/cjs/AvatarVariants.styles.css +25 -25
  212. package/cjs/AvatarVariants.styles2.css +25 -25
  213. package/cjs/{BaseCardView-e38589c6.js → BaseCardView-f3b3402b.js} +4 -1
  214. package/cjs/{BaseCardView-e38589c6.js.map → BaseCardView-f3b3402b.js.map} +1 -1
  215. package/cjs/ButtonLabelLayoutVariants.styles.css +8 -8
  216. package/cjs/ButtonLabelLayoutVariants.styles2.css +8 -8
  217. package/cjs/CheckboxIconVariants.styles.css +7 -7
  218. package/cjs/CheckboxIconVariants.styles2.css +7 -7
  219. package/cjs/ColorPickerVariants.styles.css +1 -1
  220. package/cjs/ColorPickerVariants.styles2.css +1 -1
  221. package/cjs/ConveyorBeltVariants.styles.css +6 -6
  222. package/cjs/ConveyorBeltVariants.styles2.css +6 -6
  223. package/cjs/DiagramStyles.styles.css +12 -81
  224. package/cjs/DiagramStyles.styles2.css +81 -12
  225. package/cjs/InputSearchVariants.styles.css +3 -3
  226. package/cjs/InputSearchVariants.styles2.css +3 -3
  227. package/cjs/{List-eea800fd.js → List-436100e1.js} +3 -1
  228. package/cjs/{List-eea800fd.js.map → List-436100e1.js.map} +1 -1
  229. package/cjs/MeterBarVariants.styles.css +4 -4
  230. package/cjs/MeterBarVariants.styles2.css +4 -4
  231. package/cjs/NavigationListItemVariants.styles.css +5 -5
  232. package/cjs/NavigationListItemVariants.styles2.css +5 -5
  233. package/cjs/PRIVATE_BaseCardView.js +1 -1
  234. package/cjs/PRIVATE_SelectCommon.js +2 -2
  235. package/cjs/PRIVATE_TableList.js +1 -1
  236. package/cjs/ProgressBarVariants.styles.css +1 -1
  237. package/cjs/ProgressBarVariants.styles2.css +1 -1
  238. package/cjs/ProgressCircleVariants.styles.css +4 -4
  239. package/cjs/ProgressCircleVariants.styles2.css +4 -4
  240. package/cjs/RadioIconVariants.styles.css +3 -3
  241. package/cjs/RadioIconVariants.styles2.css +3 -3
  242. package/cjs/{TabBar-1cd4ac17.js → TabBar-ba4bcd32.js} +9 -5
  243. package/cjs/TabBar-ba4bcd32.js.map +1 -0
  244. package/cjs/TabBarItemVariants.styles.css +3 -3
  245. package/cjs/TabBarItemVariants.styles2.css +3 -3
  246. package/cjs/Theme-redwood/theme.css +413 -413
  247. package/cjs/Theme-stable/theme.css +559 -559
  248. package/cjs/{TimePicker-25997417.js → TimePicker-fe817eb1.js} +2 -2
  249. package/cjs/{TimePicker-25997417.js.map → TimePicker-fe817eb1.js.map} +1 -1
  250. package/cjs/UNSAFE_CardFlexView.js +1 -1
  251. package/cjs/UNSAFE_CardGridView.js +1 -1
  252. package/cjs/UNSAFE_ColorInputText.js +82 -82
  253. package/cjs/UNSAFE_HierarchicalList.js +1 -1
  254. package/cjs/UNSAFE_InlineSelectSingle.js +3 -3
  255. package/cjs/UNSAFE_InputColor.js +82 -82
  256. package/cjs/UNSAFE_InputSearch.js +1 -1
  257. package/cjs/UNSAFE_InputTimePicker.js +2 -2
  258. package/cjs/UNSAFE_ListView.js +1 -1
  259. package/cjs/UNSAFE_OverflowTabBar.js +9 -5
  260. package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
  261. package/cjs/UNSAFE_ReorderableTabBar.js +13 -13
  262. package/cjs/UNSAFE_RichSelectionItem.js +1 -1
  263. package/cjs/UNSAFE_SelectMultiple.js +2 -2
  264. package/cjs/UNSAFE_SelectSingle.js +3 -3
  265. package/cjs/UNSAFE_TabBar.js +3 -3
  266. package/cjs/UNSAFE_TabBarMixed.js +26 -26
  267. package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
  268. package/cjs/UNSAFE_TextArea.js +174 -72
  269. package/cjs/UNSAFE_TextArea.js.map +1 -1
  270. package/cjs/UNSAFE_TextAreaAutosize.js +3 -3
  271. package/cjs/UNSAFE_TextAreaAutosize.js.map +1 -1
  272. package/cjs/UNSAFE_TimePicker.js +2 -2
  273. package/cjs/UNSAFE_TreeView.js +1 -1
  274. package/cjs/dropdownStyles.styles.css +104 -6
  275. package/cjs/dropdownStyles.styles2.css +6 -104
  276. package/cjs/hooks/PRIVATE_useDetectHorizontalOverflow.js +1 -1
  277. package/cjs/hooks/PRIVATE_useTabBar.js +1 -1
  278. package/cjs/{useDetectHorizontalOverflow-622817d4.js → useDetectHorizontalOverflow-15084cbf.js} +30 -58
  279. package/cjs/useDetectHorizontalOverflow-15084cbf.js.map +1 -0
  280. package/cjs/{useDisplayValue-ce2d071e.js → useDisplayValue-777c9be5.js} +2 -2
  281. package/cjs/{useDisplayValue-ce2d071e.js.map → useDisplayValue-777c9be5.js.map} +1 -1
  282. package/cjs/{useSelectCommon-544c22ee.js → useSelectCommon-bb44fdb6.js} +2 -2
  283. package/cjs/{useSelectCommon-544c22ee.js.map → useSelectCommon-bb44fdb6.js.map} +1 -1
  284. package/cjs/{useTabBar-ec20851a.js → useTabBar-1cfaf3e6.js} +2 -5
  285. package/cjs/useTabBar-1cfaf3e6.js.map +1 -0
  286. package/cjs/useTextAreaAltEnter-27263abe.js +68 -0
  287. package/cjs/useTextAreaAltEnter-27263abe.js.map +1 -0
  288. package/es/BaseBarChart-26b0e87c.js +3 -3
  289. package/es/BaseBarGroup-ff0495d8.js +1 -1
  290. package/es/{BaseButton-77bb9d91.js → BaseButton-f3a607e1.js} +2 -2
  291. package/es/{BaseButton-77bb9d91.js.map → BaseButton-f3a607e1.js.map} +1 -1
  292. package/es/BaseCardView-21ee7272.js +6 -6
  293. package/es/BaseDiagram-c48f2fc4.js +7 -7
  294. package/es/BaseNavigationListItem-973e1502.js +5 -5
  295. package/es/BaseRichSelection-b0ee75b8.js +9 -9
  296. package/es/BaseSelector-33194eea.js +1 -1
  297. package/es/BaseSwatchView-028f6717.js +2 -2
  298. package/es/{Button-64b2d5c7.js → Button-166a6aa3.js} +2 -2
  299. package/es/{Button-64b2d5c7.js.map → Button-166a6aa3.js.map} +1 -1
  300. package/es/ButtonSet-6cba414c.js +2 -2
  301. package/es/ButtonSetButton-125e316b.js +1 -1
  302. package/es/ButtonSetIconButton-8b969ad2.js +4 -4
  303. package/es/{Center-e2a7c4c7.js → Center-0388bd0c.js} +2 -2
  304. package/es/{Center-e2a7c4c7.js.map → Center-0388bd0c.js.map} +1 -1
  305. package/es/Chart-5d837bee.js +11 -11
  306. package/es/CheckboxControl-777f547a.js +6 -6
  307. package/es/CheckboxRadioField-b332f3ef.js +6 -6
  308. package/es/CheckboxRadioLabelValueLayout-05524fdf.js +1 -1
  309. package/es/CheckboxSetContext-1be56556.js +9 -0
  310. package/es/CheckboxSetContext-1be56556.js.map +1 -0
  311. package/es/Chip-a0b982b3.js +1 -1
  312. package/es/ClearIcon-f9ae8ca2.js +1 -1
  313. package/es/CollapseIcon-134ba4b8.js +1 -1
  314. package/es/Collapsible-6a2da8e9.js +2 -2
  315. package/es/ColorPalette-660c0665.js +4 -4
  316. package/es/{ColorPicker-d399a2dc.js → ColorPicker-98ba93ac.js} +3 -3
  317. package/es/{ColorPicker-d399a2dc.js.map → ColorPicker-98ba93ac.js.map} +1 -1
  318. package/es/ColorSwatch-ac777ee8.js +5 -5
  319. package/es/{CompactLabelAssistance-db24bf83.js → CompactLabelAssistance-44907e8b.js} +6 -6
  320. package/es/{CompactLabelAssistance-db24bf83.js.map → CompactLabelAssistance-44907e8b.js.map} +1 -1
  321. package/es/CompactUserAssistance-80d7ed0f.js +6 -6
  322. package/es/ComponentMessageContainer-f95c0576.js +4 -4
  323. package/es/{DatePicker-56fb4fcf.js → DatePicker-659b8c72.js} +8 -8
  324. package/es/{DatePicker-56fb4fcf.js.map → DatePicker-659b8c72.js.map} +1 -1
  325. package/es/DatePickerHeader-2fa4dff3.js +3 -3
  326. package/es/{Dialog-6fc62c1d.js → Dialog-c1502d03.js} +7 -7
  327. package/es/{Dialog-6fc62c1d.js.map → Dialog-c1502d03.js.map} +1 -1
  328. package/es/DirectionalCollapseArrowIcon-1f47a4a6.js +1 -1
  329. package/es/DirectionalExpandArrowIcon-ddaa04dc.js +1 -1
  330. package/es/{Dropdown-a3e401ae.js → Dropdown-e3f6f436.js} +6 -6
  331. package/es/{Dropdown-a3e401ae.js.map → Dropdown-e3f6f436.js.map} +1 -1
  332. package/es/{EmbeddedIconButton-3824dbe1.js → EmbeddedIconButton-8dca2a64.js} +2 -2
  333. package/es/{EmbeddedIconButton-3824dbe1.js.map → EmbeddedIconButton-8dca2a64.js.map} +1 -1
  334. package/es/{EmbeddedTextField-12d0e0a7.js → EmbeddedTextField-e4b319a0.js} +2 -2
  335. package/es/{EmbeddedTextField-12d0e0a7.js.map → EmbeddedTextField-e4b319a0.js.map} +1 -1
  336. package/es/{EnvironmentProvider-12bbb301.js → EnvironmentProvider-60423f29.js} +3 -3
  337. package/es/{EnvironmentProvider-12bbb301.js.map → EnvironmentProvider-60423f29.js.map} +1 -1
  338. package/es/Expander-19633442.js +2 -2
  339. package/es/FilmStrip-c0155ba5.js +1 -1
  340. package/es/{Flex-f0f1bb0d.js → Flex-f5fe143f.js} +2 -2
  341. package/es/{Flex-f0f1bb0d.js.map → Flex-f5fe143f.js.map} +1 -1
  342. package/es/{Floating-87cd2bbf.js → Floating-91e0f4c1.js} +4 -4
  343. package/es/{Floating-87cd2bbf.js.map → Floating-91e0f4c1.js.map} +1 -1
  344. package/es/FormLayoutVariants.styles.css +14 -14
  345. package/es/FormLayoutVariants.styles2.css +14 -14
  346. package/es/{Grid-45385814.js → Grid-67dc57cb.js} +2 -2
  347. package/es/{Grid-45385814.js.map → Grid-67dc57cb.js.map} +1 -1
  348. package/es/{HighlightText-39c46ea1.js → HighlightText-790fa99f.js} +2 -2
  349. package/es/{HighlightText-39c46ea1.js.map → HighlightText-790fa99f.js.map} +1 -1
  350. package/es/Icon-c0fda273.js +3 -3
  351. package/es/IconButton-94077753.js +4 -4
  352. package/es/IconSwitchButton-ced93277.js +4 -4
  353. package/es/IconToggleButton-8605dd2d.js +4 -4
  354. package/es/{IconUserAssistance-b03771f5.js → IconUserAssistance-16f55b57.js} +3 -3
  355. package/es/{IconUserAssistance-b03771f5.js.map → IconUserAssistance-16f55b57.js.map} +1 -1
  356. package/es/InlineHelp-6a8bd475.js +1 -1
  357. package/es/InlineUserAssistance-5d329af5.js +5 -5
  358. package/es/InputDateMask-9255cb45.js +6 -6
  359. package/es/InputSearchVariants.styles.css +3 -3
  360. package/es/InputSearchVariants.styles2.css +3 -3
  361. package/es/InputTimeMask-8f552768.js +6 -6
  362. package/es/Label-293073f5.js +8 -8
  363. package/es/LabelValueLayout-cb1f7711.js +1 -1
  364. package/es/{Layer-937ca8d8.js → Layer-542de448.js} +3 -3
  365. package/es/{Layer-937ca8d8.js.map → Layer-542de448.js.map} +1 -1
  366. package/es/{LayerHost-20500ac8.js → LayerHost-c4481db3.js} +2 -2
  367. package/es/{LayerHost-20500ac8.js.map → LayerHost-c4481db3.js.map} +1 -1
  368. package/es/{LayerManager-55001240.js → LayerManager-4b79a6a2.js} +2 -2
  369. package/es/{LayerManager-55001240.js.map → LayerManager-4b79a6a2.js.map} +1 -1
  370. package/es/Link-530a365a.js +1 -1
  371. package/es/List-5419d582.js +4 -4
  372. package/es/List-eab74f6d.js +8 -8
  373. package/es/{ListItemLayout-bcebf158.js → ListItemLayout-bc6fb853.js} +2 -2
  374. package/es/{ListItemLayout-bcebf158.js.map → ListItemLayout-bc6fb853.js.map} +1 -1
  375. package/es/ListStyles.styles.css +7 -105
  376. package/es/ListStyles.styles2.css +105 -7
  377. package/es/{LiveRegion-bd98c133.js → LiveRegion-74d90422.js} +2 -2
  378. package/es/{LiveRegion-bd98c133.js.map → LiveRegion-74d90422.js.map} +1 -1
  379. package/es/{MaxLengthLiveRegion-8551ea6a.js → MaxLengthLiveRegion-96ac8f1c.js} +3 -3
  380. package/es/{MaxLengthLiveRegion-8551ea6a.js.map → MaxLengthLiveRegion-96ac8f1c.js.map} +1 -1
  381. package/es/MenuItemVariants.styles.css +8 -8
  382. package/es/MenuItemVariants.styles2.css +8 -8
  383. package/es/Message-f941b6ee.js +2 -2
  384. package/es/{MessageLayer-0523ebac.js → MessageLayer-7aad786a.js} +6 -6
  385. package/es/{MessageLayer-0523ebac.js.map → MessageLayer-7aad786a.js.map} +1 -1
  386. package/es/MessagesManager-a42ca15e.js +3 -3
  387. package/es/MeterCircleVariants.styles.css +8 -8
  388. package/es/MeterCircleVariants.styles2.css +8 -8
  389. package/es/Modal-863676e2.js +3 -3
  390. package/es/{MonthView-31ced05b.js → MonthView-5ba0a449.js} +5 -5
  391. package/es/{MonthView-31ced05b.js.map → MonthView-5ba0a449.js.map} +1 -1
  392. package/es/NavigationList-0281b772.js +4 -4
  393. package/es/{NumberInputText-8c8fffa0.js → NumberInputText-e001d629.js} +7 -7
  394. package/es/{NumberInputText-8c8fffa0.js.map → NumberInputText-e001d629.js.map} +1 -1
  395. package/es/OverflowTabBarItem-75b943ec.js +8 -8
  396. package/es/PRIVATE_BaseBarChart.js +37 -37
  397. package/es/PRIVATE_BaseCardView.js +22 -22
  398. package/es/PRIVATE_BaseDiagram.js +30 -30
  399. package/es/PRIVATE_BaseSelector.js +17 -17
  400. package/es/PRIVATE_BaseSwatchView.js +18 -18
  401. package/es/PRIVATE_Chart.js +36 -36
  402. package/es/PRIVATE_CheckboxControl.js +25 -25
  403. package/es/PRIVATE_CheckboxRadioField.js +27 -27
  404. package/es/PRIVATE_ClearIcon.js +18 -18
  405. package/es/PRIVATE_DatePickerHeader.js +20 -20
  406. package/es/PRIVATE_DatePickerLayout.js +4 -4
  407. package/es/PRIVATE_EmbeddedIconButton.js +6 -6
  408. package/es/PRIVATE_EmbeddedTextField.js +18 -18
  409. package/es/PRIVATE_FilmStrip.js +17 -17
  410. package/es/PRIVATE_FormControls.js +21 -21
  411. package/es/PRIVATE_IconSwitchButton.js +17 -17
  412. package/es/PRIVATE_Icons/CheckboxCrossed.js +16 -16
  413. package/es/PRIVATE_Icons/CheckboxMixed.js +16 -16
  414. package/es/PRIVATE_Icons/CheckboxOff.js +16 -16
  415. package/es/PRIVATE_Icons/CheckboxOn.js +16 -16
  416. package/es/PRIVATE_Icons/None.js +16 -16
  417. package/es/PRIVATE_InputBase.js +28 -28
  418. package/es/PRIVATE_List/themes/ListStyles.css.js +1 -1
  419. package/es/PRIVATE_List.js +22 -22
  420. package/es/PRIVATE_Message.js +20 -20
  421. package/es/PRIVATE_MessageLayer.js +12 -12
  422. package/es/PRIVATE_MonthView.js +20 -20
  423. package/es/PRIVATE_MonthYearGridView.js +7 -7
  424. package/es/PRIVATE_PlotArea.js +5 -5
  425. package/es/PRIVATE_RevealToggleIcon.js +18 -18
  426. package/es/PRIVATE_RichSelectionCommon.js +28 -28
  427. package/es/PRIVATE_SelectCommon.js +33 -33
  428. package/es/PRIVATE_StyledCard.js +17 -17
  429. package/es/PRIVATE_StyledCheckbox.js +16 -16
  430. package/es/PRIVATE_StyledSwitch.js +4 -4
  431. package/es/PRIVATE_SwatchFlexView.js +18 -18
  432. package/es/PRIVATE_Table.js +39 -39
  433. package/es/PRIVATE_TableList/themes/ListStyles.css.js +1 -1
  434. package/es/PRIVATE_TableList/themes/redwood/ListTheme.js +1 -1
  435. package/es/PRIVATE_TableList/themes/redwood/ListVariants.css.js +1 -1
  436. package/es/PRIVATE_TableList/themes/stable/ListTheme.js +1 -1
  437. package/es/PRIVATE_TableList/themes/stable/ListVariants.css.js +1 -1
  438. package/es/PRIVATE_TableList.js +29 -29
  439. package/es/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
  440. package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
  441. package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
  442. package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
  443. package/es/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
  444. package/es/PRIVATE_ThemedIcons/CheckboxCrossedIcon.js +16 -16
  445. package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
  446. package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
  447. package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
  448. package/es/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
  449. package/es/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
  450. package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
  451. package/es/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
  452. package/es/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
  453. package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
  454. package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
  455. package/es/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
  456. package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
  457. package/es/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
  458. package/es/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
  459. package/es/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
  460. package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
  461. package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
  462. package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
  463. package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
  464. package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
  465. package/es/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
  466. package/es/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
  467. package/es/PRIVATE_ThemedIcons/None.js +16 -16
  468. package/es/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
  469. package/es/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
  470. package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
  471. package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
  472. package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
  473. package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
  474. package/es/PRIVATE_ThemedIcons/UnsortedIcon.js +16 -16
  475. package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
  476. package/es/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
  477. package/es/PRIVATE_TimeComponent.js +19 -19
  478. package/es/PRIVATE_TruncatingLink.js +16 -16
  479. package/es/PRIVATE_VisOverview.js +16 -16
  480. package/es/PRIVATE_VisStatusMessage.js +5 -5
  481. package/es/PRIVATE_VisTabularDatatip.js +4 -4
  482. package/es/PolarChartWithDimensions-76ff5180.js +7 -7
  483. package/es/{Popup-83eb0d14.js → Popup-5e092ea2.js} +10 -10
  484. package/es/{Popup-83eb0d14.js.map → Popup-5e092ea2.js.map} +1 -1
  485. package/es/ProgressBarVariants.styles.css +1 -1
  486. package/es/ProgressBarVariants.styles2.css +1 -1
  487. package/es/ProgressButtonLabelLayout-66b9ffed.js +3 -3
  488. package/es/{ProgressCircle-840273b1.js → ProgressCircle-5f423576.js} +2 -2
  489. package/es/{ProgressCircle-840273b1.js.map → ProgressCircle-5f423576.js.map} +1 -1
  490. package/es/ProgressCircleVariants.styles.css +4 -4
  491. package/es/ProgressCircleVariants.styles2.css +4 -4
  492. package/es/RadioItem-1a4b2f6c.js +6 -6
  493. package/es/ReadonlyTextField-bddb2cdf.js +2 -2
  494. package/es/ReadonlyTextFieldInput-bc7ef76e.js +1 -1
  495. package/es/{ReferenceLineArea-6408ffab.js → ReferenceLineArea-ee334176.js} +3 -3
  496. package/es/{ReferenceLineArea-6408ffab.js.map → ReferenceLineArea-ee334176.js.map} +1 -1
  497. package/es/RevealToggleIcon-f599e415.js +1 -1
  498. package/es/{SectionedContent-55b8f8c6.js → SectionedContent-ce3d19ab.js} +5 -5
  499. package/es/{SectionedContent-55b8f8c6.js.map → SectionedContent-ce3d19ab.js.map} +1 -1
  500. package/es/SegmentStyles.styles.css +12 -9
  501. package/es/SegmentStyles.styles2.css +9 -12
  502. package/es/SelectMenuGroupContext-ea5310eb.js +6 -6
  503. package/es/{SelectMobileDropdown-cec84a47.js → SelectMobileDropdown-502af91c.js} +7 -7
  504. package/es/{SelectMobileDropdown-cec84a47.js.map → SelectMobileDropdown-502af91c.js.map} +1 -1
  505. package/es/SelectMobileFieldInput-bd65672b.js +4 -4
  506. package/es/{SelectorAll-855a2050.js → SelectorAll-4b170e2f.js} +5 -5
  507. package/es/{SelectorAll-855a2050.js.map → SelectorAll-4b170e2f.js.map} +1 -1
  508. package/es/Sheet-9a10abc4.js +2 -2
  509. package/es/SortControl-73376bf0.js +3 -3
  510. package/es/SplitMenuButtonTheme.styles.css +4 -4
  511. package/es/SplitMenuButtonTheme.styles2.css +4 -4
  512. package/es/StyledCard-0e89c7fd.js +1 -1
  513. package/es/{StyledLabelValueLayout-69ac5e9a.js → StyledLabelValueLayout-1ebe21b2.js} +2 -2
  514. package/es/{StyledLabelValueLayout-69ac5e9a.js.map → StyledLabelValueLayout-1ebe21b2.js.map} +1 -1
  515. package/es/StyledSwitch-dc6a94af.js +2 -2
  516. package/es/StyledTextField-56e1a6e7.js +3 -3
  517. package/es/Submenu-481b3c39.js +1 -1
  518. package/es/{TabBar-36932ca2.js → TabBar-de0cb67b.js} +14 -12
  519. package/es/TabBar-de0cb67b.js.map +1 -0
  520. package/es/TabBarContextMenu-41639eb7.js +2 -2
  521. package/es/TabBarItemVariants.styles.css +3 -3
  522. package/es/TabBarItemVariants.styles2.css +3 -3
  523. package/es/TabBarLayout-5876474d.js +1 -1
  524. package/es/Table-fd39c1b5.js +9 -9
  525. package/es/TableColGroup-2f67372c.js +1 -1
  526. package/es/{TextField-0a9a5a57.js → TextField-a556da78.js} +2 -2
  527. package/es/{TextField-0a9a5a57.js.map → TextField-a556da78.js.map} +1 -1
  528. package/es/TextFieldContent-5e5ed450.js +2 -2
  529. package/es/{TextureDefs-295dccbd.js → TextureDefs-7373dec8.js} +2 -2
  530. package/es/{TextureDefs-295dccbd.js.map → TextureDefs-7373dec8.js.map} +1 -1
  531. package/es/Theme-redwood/theme.css +361 -371
  532. package/es/Theme-stable/theme.css +459 -449
  533. package/es/TimeComponentCanvas2D-e22cb491.js +6 -6
  534. package/es/TimePicker-aba30924.js +2 -2
  535. package/es/ToggleButton-d2b3a635.js +1 -1
  536. package/es/TreeItemLayout-7783b7bf.js +2 -2
  537. package/es/TruncatingLink-e0338cb2.js +4 -4
  538. package/es/TruncatingText-868308d3.js +1 -1
  539. package/es/UNSAFE_AccordionItemMultiple.js +18 -18
  540. package/es/UNSAFE_AccordionItemSingle.js +18 -18
  541. package/es/UNSAFE_ActionCard.js +17 -17
  542. package/es/UNSAFE_BarChart.js +37 -37
  543. package/es/UNSAFE_BareButton.js +2 -2
  544. package/es/UNSAFE_BaseButton.js +5 -5
  545. package/es/UNSAFE_Button.js +6 -6
  546. package/es/UNSAFE_ButtonSet.js +17 -17
  547. package/es/UNSAFE_ButtonSetButton.js +5 -5
  548. package/es/UNSAFE_ButtonSetIconButton.js +17 -17
  549. package/es/UNSAFE_ButtonSetItem.js +18 -18
  550. package/es/UNSAFE_ButtonSetMultiple.js +17 -17
  551. package/es/UNSAFE_ButtonSetSingle.js +17 -17
  552. package/es/UNSAFE_Card.js +17 -17
  553. package/es/UNSAFE_CardFlexView.js +22 -22
  554. package/es/UNSAFE_CardGridView.js +22 -22
  555. package/es/UNSAFE_Center.js +5 -5
  556. package/es/UNSAFE_Checkbox.js +25 -25
  557. package/es/UNSAFE_CheckboxItem.js +77 -139
  558. package/es/UNSAFE_CheckboxItem.js.map +1 -1
  559. package/es/UNSAFE_CheckboxRadioField.js +4 -4
  560. package/es/UNSAFE_CheckboxSet.js +75 -41
  561. package/es/UNSAFE_CheckboxSet.js.map +1 -1
  562. package/es/UNSAFE_Chip.js +2 -2
  563. package/es/UNSAFE_Collapsible.js +18 -18
  564. package/es/UNSAFE_CollapsibleNavigationList.js +28 -28
  565. package/es/UNSAFE_ColorInputText.js +109 -109
  566. package/es/UNSAFE_ColorPalette.js +21 -21
  567. package/es/UNSAFE_ColorPicker.js +23 -23
  568. package/es/UNSAFE_ColorSwatch.js +18 -18
  569. package/es/UNSAFE_ComboChart.js +38 -38
  570. package/es/UNSAFE_ComponentMessage.js +20 -20
  571. package/es/UNSAFE_ContainerDiagram.js +30 -30
  572. package/es/UNSAFE_ConveyorBelt.js +18 -18
  573. package/es/UNSAFE_DatePicker.js +27 -27
  574. package/es/UNSAFE_Diagram.js +30 -30
  575. package/es/UNSAFE_Dialog.js +22 -22
  576. package/es/UNSAFE_DragHandle.js +17 -17
  577. package/es/UNSAFE_DrawerLayout.js +12 -12
  578. package/es/UNSAFE_DrawerPopup.js +11 -11
  579. package/es/UNSAFE_Dropdown.js +15 -15
  580. package/es/UNSAFE_Environment.js +4 -4
  581. package/es/UNSAFE_Expander.js +20 -20
  582. package/es/UNSAFE_FilePicker.js +4 -4
  583. package/es/UNSAFE_FilmStrip.js +19 -19
  584. package/es/UNSAFE_Flex.js +4 -4
  585. package/es/UNSAFE_Floating.js +11 -11
  586. package/es/UNSAFE_FormLayout/themes/redwood/FormLayoutTheme.js +1 -1
  587. package/es/UNSAFE_FormLayout/themes/redwood/FormLayoutVariants.css.js +1 -1
  588. package/es/UNSAFE_FormLayout/themes/stable/FormLayoutTheme.js +1 -1
  589. package/es/UNSAFE_FormLayout/themes/stable/FormLayoutVariants.css.js +1 -1
  590. package/es/UNSAFE_FormLayout.js +3 -3
  591. package/es/UNSAFE_Gantt.js +23 -23
  592. package/es/UNSAFE_Grid.js +4 -4
  593. package/es/UNSAFE_HierarchicalList.js +30 -30
  594. package/es/UNSAFE_HighlightText.js +4 -4
  595. package/es/UNSAFE_Icon.js +16 -16
  596. package/es/UNSAFE_IconButton.js +17 -17
  597. package/es/UNSAFE_IconMenuButton.js +26 -26
  598. package/es/UNSAFE_IconProgressButton.js +22 -22
  599. package/es/UNSAFE_IconToggleButton.js +17 -17
  600. package/es/UNSAFE_IndentedCellLayout/themes/redwood/IndentedCellLayoutBaseTheme.css.js +1 -1
  601. package/es/UNSAFE_IndentedCellLayout/themes/stable/IndentedCellLayoutBaseTheme.css.js +1 -1
  602. package/es/UNSAFE_IndentedCellLayout.js +1 -1
  603. package/es/UNSAFE_Indexer.js +19 -19
  604. package/es/UNSAFE_InlineSelectSingle.js +36 -36
  605. package/es/UNSAFE_InputColor.js +108 -108
  606. package/es/UNSAFE_InputDateMask/themes/SegmentStyles.css.js +1 -1
  607. package/es/UNSAFE_InputDateMask.js +30 -30
  608. package/es/UNSAFE_InputDatePicker.js +39 -39
  609. package/es/UNSAFE_InputPassword.js +28 -28
  610. package/es/UNSAFE_InputSearch/themes/redwood/InputSearchTheme.js +1 -1
  611. package/es/UNSAFE_InputSearch/themes/redwood/InputSearchVariants.css.js +1 -1
  612. package/es/UNSAFE_InputSearch/themes/stable/InputSearchTheme.js +1 -1
  613. package/es/UNSAFE_InputSearch/themes/stable/InputSearchVariants.css.js +1 -1
  614. package/es/UNSAFE_InputSearch.js +35 -35
  615. package/es/UNSAFE_InputSensitiveText.js +29 -29
  616. package/es/UNSAFE_InputText.js +30 -30
  617. package/es/UNSAFE_InputTimeMask/themes/SegmentStyles.css.js +1 -1
  618. package/es/UNSAFE_InputTimeMask.js +29 -29
  619. package/es/UNSAFE_InputTimePicker.js +39 -39
  620. package/es/UNSAFE_Label.js +25 -25
  621. package/es/UNSAFE_LabelValueLayout.js +4 -4
  622. package/es/UNSAFE_LabelledLink.js +27 -27
  623. package/es/UNSAFE_Layer.js +8 -8
  624. package/es/UNSAFE_Legend.js +29 -29
  625. package/es/UNSAFE_LineAreaChart.js +38 -38
  626. package/es/UNSAFE_Link.js +2 -2
  627. package/es/UNSAFE_ListGroupHeaderLayout.js +5 -5
  628. package/es/UNSAFE_ListItemLayout.js +5 -5
  629. package/es/UNSAFE_ListView.js +29 -29
  630. package/es/UNSAFE_LiveRegion.js +4 -4
  631. package/es/UNSAFE_Menu/themes/redwood/MenuItemTheme.js +1 -1
  632. package/es/UNSAFE_Menu/themes/redwood/MenuItemVariants.css.js +1 -1
  633. package/es/UNSAFE_Menu/themes/stable/MenuItemTheme.js +1 -1
  634. package/es/UNSAFE_Menu/themes/stable/MenuItemVariants.css.js +1 -1
  635. package/es/UNSAFE_Menu.js +27 -27
  636. package/es/UNSAFE_MenuButton.js +26 -26
  637. package/es/UNSAFE_MessageBanner.js +20 -20
  638. package/es/UNSAFE_MessageToast.js +22 -22
  639. package/es/UNSAFE_MeterBar.js +16 -16
  640. package/es/UNSAFE_MeterCircle/themes/redwood/MeterCircleTheme.js +1 -1
  641. package/es/UNSAFE_MeterCircle/themes/redwood/MeterCircleVariants.css.js +1 -1
  642. package/es/UNSAFE_MeterCircle/themes/stable/MeterCircleTheme.js +1 -1
  643. package/es/UNSAFE_MeterCircle/themes/stable/MeterCircleVariants.css.js +1 -1
  644. package/es/UNSAFE_MeterCircle.js +18 -18
  645. package/es/UNSAFE_Modal.js +8 -8
  646. package/es/UNSAFE_NavigationList.js +28 -28
  647. package/es/UNSAFE_NumberInputText.js +32 -32
  648. package/es/UNSAFE_OverflowTabBar.js +39 -35
  649. package/es/UNSAFE_OverflowTabBar.js.map +1 -1
  650. package/es/UNSAFE_PictoChart.js +26 -26
  651. package/es/UNSAFE_PieChart.js +30 -30
  652. package/es/UNSAFE_PolarBarChart.js +31 -31
  653. package/es/UNSAFE_PolarLineAreaChart.js +31 -31
  654. package/es/UNSAFE_Popup.js +18 -18
  655. package/es/UNSAFE_ProgressBar/themes/redwood/ProgressBarTheme.js +1 -1
  656. package/es/UNSAFE_ProgressBar/themes/redwood/ProgressBarVariants.css.js +1 -1
  657. package/es/UNSAFE_ProgressBar/themes/stable/ProgressBarTheme.js +1 -1
  658. package/es/UNSAFE_ProgressBar/themes/stable/ProgressBarVariants.css.js +1 -1
  659. package/es/UNSAFE_ProgressBar.js +5 -5
  660. package/es/UNSAFE_ProgressButton.js +22 -22
  661. package/es/UNSAFE_ProgressButtonLabelLayout.js +11 -11
  662. package/es/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleTheme.js +1 -1
  663. package/es/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleVariants.css.js +1 -1
  664. package/es/UNSAFE_ProgressCircle/themes/stable/ProgressCircleTheme.js +1 -1
  665. package/es/UNSAFE_ProgressCircle/themes/stable/ProgressCircleVariants.css.js +1 -1
  666. package/es/UNSAFE_ProgressCircle.js +5 -5
  667. package/es/UNSAFE_RadioItem.js +25 -25
  668. package/es/UNSAFE_RadioSet.js +27 -27
  669. package/es/UNSAFE_RangeBarChart.js +37 -37
  670. package/es/UNSAFE_RatingGauge.js +18 -18
  671. package/es/UNSAFE_Refresher.js +5 -5
  672. package/es/UNSAFE_ReorderableTabBar.js +33 -33
  673. package/es/UNSAFE_RichCheckboxSet.js +65 -69
  674. package/es/UNSAFE_RichCheckboxSet.js.map +1 -1
  675. package/es/UNSAFE_RichRadioSet.js +29 -29
  676. package/es/UNSAFE_RichSelectionItem.js +122 -177
  677. package/es/UNSAFE_RichSelectionItem.js.map +1 -1
  678. package/es/UNSAFE_ScatterChart.js +37 -37
  679. package/es/UNSAFE_SectionalLegend.js +29 -29
  680. package/es/UNSAFE_SelectMultiple.js +40 -40
  681. package/es/UNSAFE_SelectSingle.js +39 -39
  682. package/es/UNSAFE_SelectionCard.js +17 -17
  683. package/es/UNSAFE_Selector.js +17 -17
  684. package/es/UNSAFE_SelectorAll.js +19 -19
  685. package/es/UNSAFE_Sheet.js +11 -11
  686. package/es/UNSAFE_Slider.js +28 -28
  687. package/es/UNSAFE_SortControl.js +19 -19
  688. package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
  689. package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
  690. package/es/UNSAFE_SplitMenuButton.js +27 -27
  691. package/es/UNSAFE_SwipeActions.js +26 -26
  692. package/es/UNSAFE_Switch/themes/redwood/SwitchBaseTheme.css.js +1 -1
  693. package/es/UNSAFE_Switch/themes/redwood/SwitchTheme.js +1 -1
  694. package/es/UNSAFE_Switch/themes/stable/SwitchBaseTheme.css.js +1 -1
  695. package/es/UNSAFE_Switch/themes/stable/SwitchTheme.js +1 -1
  696. package/es/UNSAFE_Switch.js +27 -27
  697. package/es/UNSAFE_TabBar.js +34 -34
  698. package/es/UNSAFE_TabBarCommon/themes/redwood/TabBarItemTheme.js +1 -1
  699. package/es/UNSAFE_TabBarCommon/themes/redwood/TabBarItemVariants.css.js +1 -1
  700. package/es/UNSAFE_TabBarCommon/themes/stable/TabBarItemTheme.js +1 -1
  701. package/es/UNSAFE_TabBarCommon/themes/stable/TabBarItemVariants.css.js +1 -1
  702. package/es/UNSAFE_TabBarCommon.js +30 -30
  703. package/es/UNSAFE_TabBarMixed.js +32 -32
  704. package/es/UNSAFE_TabBarMixed.js.map +1 -1
  705. package/es/UNSAFE_TableDisplay.js +19 -19
  706. package/es/UNSAFE_TableView.js +39 -39
  707. package/es/UNSAFE_TagCloud.js +27 -27
  708. package/es/UNSAFE_TextArea.js +29 -29
  709. package/es/UNSAFE_TextAreaAutosize.js +29 -29
  710. package/es/UNSAFE_TextField.js +21 -21
  711. package/es/UNSAFE_TimePicker.js +30 -30
  712. package/es/UNSAFE_ToggleButton.js +5 -5
  713. package/es/UNSAFE_Toolbar.js +4 -4
  714. package/es/UNSAFE_Train.js +17 -17
  715. package/es/UNSAFE_TreeItemLayout.js +5 -5
  716. package/es/UNSAFE_TreeTableView.js +39 -39
  717. package/es/UNSAFE_TreeView.js +30 -30
  718. package/es/UNSAFE_TruncatingBadge.js +17 -17
  719. package/es/UNSAFE_TruncatingText.js +17 -17
  720. package/es/UNSAFE_UserAssistance.js +26 -26
  721. package/es/UNSAFE_View.js +7 -7
  722. package/es/UNSAFE_VirtualizedListView.js +22 -22
  723. package/es/UNSAFE_VisInvalidDataMessage.js +6 -6
  724. package/es/UNSAFE_VisNoDataMessage.js +6 -6
  725. package/es/UNSAFE_VisProgressiveLoader.js +5 -5
  726. package/es/UNSAFE_WindowOverlay.js +4 -4
  727. package/es/{View-5e006875.js → View-0ee9645e.js} +5 -5
  728. package/es/{View-5e006875.js.map → View-0ee9645e.js.map} +1 -1
  729. package/es/{VisStatusMessage-091fb10e.js → VisStatusMessage-56f961f5.js} +2 -2
  730. package/es/{VisStatusMessage-091fb10e.js.map → VisStatusMessage-56f961f5.js.map} +1 -1
  731. package/es/{VisTabularDatatip-e3acfb61.js → VisTabularDatatip-e71cef20.js} +2 -2
  732. package/es/{VisTabularDatatip-e3acfb61.js.map → VisTabularDatatip-e71cef20.js.map} +1 -1
  733. package/es/{WindowOverlay-05bff667.js → WindowOverlay-9f2cbaa0.js} +2 -2
  734. package/es/{WindowOverlay-05bff667.js.map → WindowOverlay-9f2cbaa0.js.map} +1 -1
  735. package/es/{YearsGridView-db24fc9f.js → YearsGridView-6a5c2c74.js} +4 -4
  736. package/es/{YearsGridView-db24fc9f.js.map → YearsGridView-6a5c2c74.js.map} +1 -1
  737. package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
  738. package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
  739. package/es/hoc/UNSAFE_withThemeProps.js +3 -3
  740. package/es/hooks/PRIVATE_useChartContextMenu.js +24 -24
  741. package/es/hooks/PRIVATE_useChartDatatip.js +14 -14
  742. package/es/hooks/PRIVATE_useChartEvents.js +20 -20
  743. package/es/hooks/PRIVATE_useChartMarquee.js +19 -19
  744. package/es/hooks/PRIVATE_useCollectionFocusRing.js +17 -17
  745. package/es/hooks/PRIVATE_useCssVars.js +7 -7
  746. package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
  747. package/es/hooks/PRIVATE_useDatatip.js +12 -12
  748. package/es/hooks/PRIVATE_useDetectHorizontalOverflow.js +17 -17
  749. package/es/hooks/PRIVATE_useFloating.js +4 -4
  750. package/es/hooks/PRIVATE_useItemAction.js +17 -17
  751. package/es/hooks/PRIVATE_useListCommon.js +18 -18
  752. package/es/hooks/PRIVATE_useOutsideMousedown.js +9 -9
  753. package/es/hooks/PRIVATE_useRadioFocusManager.js +4 -4
  754. package/es/hooks/PRIVATE_useReorderable.js +19 -19
  755. package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  756. package/es/hooks/PRIVATE_useSelection.js +4 -4
  757. package/es/hooks/PRIVATE_useTabBar.js +28 -28
  758. package/es/hooks/PRIVATE_useTabbableModeSet.js +17 -17
  759. package/es/hooks/PRIVATE_useTooltipOnTruncation.js +17 -17
  760. package/es/hooks/PRIVATE_useVisContextMenu.js +24 -24
  761. package/es/hooks/PRIVATE_useVisDragModeControls.js +19 -19
  762. package/es/hooks/PRIVATE_useVisEvents.js +4 -4
  763. package/es/hooks/PRIVATE_useVisMeterEvents.js +14 -14
  764. package/es/hooks/PRIVATE_useVisSelection.js +15 -15
  765. package/es/hooks/UNSAFE_useBareButton.js +2 -2
  766. package/es/hooks/UNSAFE_useColorScheme.js +3 -3
  767. package/es/hooks/UNSAFE_useCurrentBgColor.js +2 -2
  768. package/es/hooks/UNSAFE_useDensity.js +3 -3
  769. package/es/hooks/UNSAFE_useHiddenTestMethod.js +3 -3
  770. package/es/hooks/UNSAFE_useOutsideClick.js +8 -8
  771. package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  772. package/es/hooks/UNSAFE_useScale.js +3 -3
  773. package/es/hooks/UNSAFE_useTestId.js +3 -3
  774. package/es/hooks/UNSAFE_useTheme.js +3 -3
  775. package/es/hooks/UNSAFE_useThemeInterpolations.js +6 -6
  776. package/es/hooks/UNSAFE_useTooltip.js +17 -17
  777. package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
  778. package/es/hooks/UNSAFE_useUser.js +3 -3
  779. package/es/{popupUtils-c052da19.js → popupUtils-87073802.js} +2 -2
  780. package/es/{popupUtils-c052da19.js.map → popupUtils-87073802.js.map} +1 -1
  781. package/es/{tooltipUtils-8f52a37e.js → tooltipUtils-f2f90085.js} +5 -5
  782. package/es/{tooltipUtils-8f52a37e.js.map → tooltipUtils-f2f90085.js.map} +1 -1
  783. package/es/useBareButton-3d8d3267.js +1 -1
  784. package/es/useCellNavigation-74703ae5.js +1 -1
  785. package/es/useChartContextMenu-f63e0e70.js +2 -2
  786. package/es/{useChartDatatip-7a0287e7.js → useChartDatatip-c8797dc7.js} +4 -4
  787. package/es/{useChartDatatip-7a0287e7.js.map → useChartDatatip-c8797dc7.js.map} +1 -1
  788. package/es/{useColorScheme-febcabc0.js → useColorScheme-0d2625c5.js} +2 -2
  789. package/es/{useColorScheme-febcabc0.js.map → useColorScheme-0d2625c5.js.map} +1 -1
  790. package/es/useContextMenu-5730737d.js +2 -2
  791. package/es/{useCssVars-663740c4.js → useCssVars-697799fa.js} +5 -5
  792. package/es/{useCssVars-663740c4.js.map → useCssVars-697799fa.js.map} +1 -1
  793. package/es/{useCurrentKey-89b60d32.js → useCurrentKey-2cdeda49.js} +2 -2
  794. package/es/{useCurrentKey-89b60d32.js.map → useCurrentKey-2cdeda49.js.map} +1 -1
  795. package/es/{useDatatip-e234ee0a.js → useDatatip-73d51f39.js} +4 -4
  796. package/es/{useDatatip-e234ee0a.js.map → useDatatip-73d51f39.js.map} +1 -1
  797. package/es/{useDatatipAndCursor-0b8febe5.js → useDatatipAndCursor-142787d4.js} +2 -2
  798. package/es/{useDatatipAndCursor-0b8febe5.js.map → useDatatipAndCursor-142787d4.js.map} +1 -1
  799. package/es/{useDensity-482708e7.js → useDensity-9c3ef227.js} +2 -2
  800. package/es/{useDensity-482708e7.js.map → useDensity-9c3ef227.js.map} +1 -1
  801. package/es/{useDetectHorizontalOverflow-9b684feb.js → useDetectHorizontalOverflow-5b505e78.js} +30 -58
  802. package/es/useDetectHorizontalOverflow-5b505e78.js.map +1 -0
  803. package/es/useDisplayValue-f7c80ffe.js +6 -6
  804. package/es/{useFloating-38c13cfa.js → useFloating-98ad16ec.js} +2 -2
  805. package/es/{useFloating-38c13cfa.js.map → useFloating-98ad16ec.js.map} +1 -1
  806. package/es/{useHiddenTestMethod-dc102488.js → useHiddenTestMethod-4bb568f0.js} +2 -2
  807. package/es/{useHiddenTestMethod-dc102488.js.map → useHiddenTestMethod-4bb568f0.js.map} +1 -1
  808. package/es/useInputBase-6dc2e103.js +6 -6
  809. package/es/{useKeyboardEvents-ce2d5783.js → useKeyboardEvents-18678615.js} +2 -2
  810. package/es/{useKeyboardEvents-ce2d5783.js.map → useKeyboardEvents-18678615.js.map} +1 -1
  811. package/es/useLegendContextMenu-a6e566c4.js +6 -6
  812. package/es/{useMeterDatatip-e21c0d4b.js → useMeterDatatip-27882514.js} +3 -3
  813. package/es/{useMeterDatatip-e21c0d4b.js.map → useMeterDatatip-27882514.js.map} +1 -1
  814. package/es/useNavigation-a4715511.js +1 -1
  815. package/es/{useOutsideClick-552699e3.js → useOutsideClick-cad76f8b.js} +2 -2
  816. package/es/{useOutsideClick-552699e3.js.map → useOutsideClick-cad76f8b.js.map} +1 -1
  817. package/es/{useOutsideMousedown-36235b3d.js → useOutsideMousedown-9da55345.js} +2 -2
  818. package/es/{useOutsideMousedown-36235b3d.js.map → useOutsideMousedown-9da55345.js.map} +1 -1
  819. package/es/{usePopupAnimation-83d1dde8.js → usePopupAnimation-c12f24ba.js} +2 -2
  820. package/es/{usePopupAnimation-83d1dde8.js.map → usePopupAnimation-c12f24ba.js.map} +1 -1
  821. package/es/{usePrefixSuffix-7a0fb41b.js → usePrefixSuffix-56167b97.js} +2 -2
  822. package/es/{usePrefixSuffix-7a0fb41b.js.map → usePrefixSuffix-56167b97.js.map} +1 -1
  823. package/es/{useRadioFocusManager-d14e0331.js → useRadioFocusManager-afcb8a84.js} +2 -2
  824. package/es/{useRadioFocusManager-d14e0331.js.map → useRadioFocusManager-afcb8a84.js.map} +1 -1
  825. package/es/{useReorderableItem-936082ee.js → useReorderableItem-c47eebbe.js} +3 -3
  826. package/es/{useReorderableItem-936082ee.js.map → useReorderableItem-c47eebbe.js.map} +1 -1
  827. package/es/{useRovingTabIndexContainer-50d6566f.js → useRovingTabIndexContainer-51de19b5.js} +2 -2
  828. package/es/{useRovingTabIndexContainer-50d6566f.js.map → useRovingTabIndexContainer-51de19b5.js.map} +1 -1
  829. package/es/{useScale-9936da9d.js → useScale-4a98c348.js} +2 -2
  830. package/es/{useScale-9936da9d.js.map → useScale-4a98c348.js.map} +1 -1
  831. package/es/useSelectCommon-480b6641.js +5 -5
  832. package/es/{useSelectDrill-93387909.js → useSelectDrill-81f36802.js} +2 -2
  833. package/es/{useSelectDrill-93387909.js.map → useSelectDrill-81f36802.js.map} +1 -1
  834. package/es/{useSelection-429274e4.js → useSelection-584c64a6.js} +2 -2
  835. package/es/{useSelection-429274e4.js.map → useSelection-584c64a6.js.map} +1 -1
  836. package/es/{useSelection-58503244.js → useSelection-9f099db0.js} +6 -6
  837. package/es/{useSelection-58503244.js.map → useSelection-9f099db0.js.map} +1 -1
  838. package/es/{useTabBar-04a0093f.js → useTabBar-f068eee4.js} +6 -9
  839. package/es/useTabBar-f068eee4.js.map +1 -0
  840. package/es/{useTestId-20c68501.js → useTestId-2c0e08d3.js} +2 -2
  841. package/es/{useTestId-20c68501.js.map → useTestId-2c0e08d3.js.map} +1 -1
  842. package/es/{useTheme-eef5d217.js → useTheme-2c44fa3e.js} +2 -2
  843. package/es/{useTheme-eef5d217.js.map → useTheme-2c44fa3e.js.map} +1 -1
  844. package/es/{useThemeInterpolations-2d6f0d78.js → useThemeInterpolations-9df8ad1a.js} +5 -5
  845. package/es/{useThemeInterpolations-2d6f0d78.js.map → useThemeInterpolations-9df8ad1a.js.map} +1 -1
  846. package/es/{useTooltip-8decbde6.js → useTooltip-7779b267.js} +2 -2
  847. package/es/{useTooltip-8decbde6.js.map → useTooltip-7779b267.js.map} +1 -1
  848. package/es/{useTooltipControlled-ccfa2705.js → useTooltipControlled-729b3aac.js} +5 -5
  849. package/es/{useTooltipControlled-ccfa2705.js.map → useTooltipControlled-729b3aac.js.map} +1 -1
  850. package/es/{useTooltipOnTruncation-2df1e74f.js → useTooltipOnTruncation-5e2c2a50.js} +4 -4
  851. package/es/{useTooltipOnTruncation-2df1e74f.js.map → useTooltipOnTruncation-5e2c2a50.js.map} +1 -1
  852. package/es/{useTranslationBundle-ded09d52.js → useTranslationBundle-752de59a.js} +2 -2
  853. package/es/{useTranslationBundle-ded09d52.js.map → useTranslationBundle-752de59a.js.map} +1 -1
  854. package/es/useTruncationTooltip-fd1dac2a.js +3 -3
  855. package/es/{useUser-e1199cab.js → useUser-2c24ff59.js} +2 -2
  856. package/es/{useUser-e1199cab.js.map → useUser-2c24ff59.js.map} +1 -1
  857. package/es/useVisDragModeControls-092e8ac4.js +1 -1
  858. package/es/{useVisEvents-012f2a18.js → useVisEvents-454b5545.js} +2 -2
  859. package/es/{useVisEvents-012f2a18.js.map → useVisEvents-454b5545.js.map} +1 -1
  860. package/es/utils/PRIVATE_collectionUtils.js +17 -17
  861. package/es/utils/PRIVATE_tabBarUtils.js +17 -17
  862. package/es/utils/PRIVATE_tooltipUtils.js +14 -14
  863. package/es/utils/PRIVATE_visTestUtils.js +4 -4
  864. package/es/utils/UNSAFE_popupUtils.js +8 -8
  865. package/es/{withDirectionIcon-abc3124a.js → withDirectionIcon-dec377dd.js} +2 -2
  866. package/es/{withDirectionIcon-abc3124a.js.map → withDirectionIcon-dec377dd.js.map} +1 -1
  867. package/es/withThemeProps-3565a045.js +2 -2
  868. package/package.json +2 -2
  869. package/types/UNSAFE_TabBarMixed/useTabBarMixed.d.ts +1 -1
  870. package/amd/ContainerDiagram-521f402a.js +0 -2
  871. package/amd/Expander-150fa95e.js +0 -2
  872. package/amd/InputDatePicker-613800d1.js +0 -2
  873. package/amd/NavigationListExternalLinkItem-3d98a9e8.js +0 -2
  874. package/amd/NavigationListLinkItem-c4b2b73c.js +0 -2
  875. package/amd/OverflowTabBar-37f590ba.js +0 -2
  876. package/amd/OverflowTabBar-37f590ba.js.map +0 -1
  877. package/amd/OverflowTabBarItem-11f199ee.js +0 -2
  878. package/amd/SortControl-115bc431.js +0 -2
  879. package/amd/TabBar-dc8cadc2.js +0 -2
  880. package/amd/TabBar-dc8cadc2.js.map +0 -1
  881. package/amd/TabBarMixed-e16ca418.js +0 -2
  882. package/amd/useDetectHorizontalOverflow-7f5bba36.js +0 -2
  883. package/amd/useDetectHorizontalOverflow-7f5bba36.js.map +0 -1
  884. package/amd/useTabBar-2d8fc9aa.js +0 -2
  885. package/amd/useTabBar-2d8fc9aa.js.map +0 -1
  886. package/cjs/TabBar-1cd4ac17.js.map +0 -1
  887. package/cjs/TextArea-d65e3f5b.js +0 -207
  888. package/cjs/TextArea-d65e3f5b.js.map +0 -1
  889. package/cjs/useDetectHorizontalOverflow-622817d4.js.map +0 -1
  890. package/cjs/useTabBar-ec20851a.js.map +0 -1
  891. package/es/CheckboxSet-3e0ce80c.js +0 -52
  892. package/es/CheckboxSet-3e0ce80c.js.map +0 -1
  893. package/es/TabBar-36932ca2.js.map +0 -1
  894. package/es/useDetectHorizontalOverflow-9b684feb.js.map +0 -1
  895. package/es/useTabBar-04a0093f.js.map +0 -1
  896. /package/amd/UNSAFE_IndentedCellLayout/themes/{redwood → stable}/IndentedCellLayoutBaseTheme.styles.css +0 -0
  897. /package/es/UNSAFE_IndentedCellLayout/themes/{redwood → stable}/IndentedCellLayoutBaseTheme.styles.css +0 -0
  898. /package/es/UNSAFE_Switch/themes/{redwood → stable}/SwitchBaseTheme.styles.css +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabBar-1cd4ac17.js","sources":["../../src/UNSAFE_TabBar/TabBar.tsx"],"sourcesContent":["import type { ComponentChildren, Ref, RefObject } from 'preact';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { TabBarContext, TabBarLayout, TabBarContextMenuConfig } from '../UNSAFE_TabBarCommon';\nimport { styles } from './themes/TabBarStyles.css';\nimport { TestIdProps } from '../hooks/UNSAFE_useTestId';\nimport { useTabBar } from '../hooks/PRIVATE_useTabBar';\nimport { forwardRef } from 'preact/compat';\nimport { TabBarContextMenu } from './TabBarContextMenu';\nexport {\n TabBarItem,\n OverflowTabBarItem,\n TabBarContext,\n useTabBarContext,\n TabBarLayout,\n useProgressiveTruncation,\n TabBarLinkItem\n} from '../UNSAFE_TabBarCommon';\n\n/**\n * type for payload of current key change event handler\n */\nexport type CurrentKeyDetail<K> = {\n value: K;\n};\n\n/**\n * type for payload of selection change event handler\n */\ntype SelectionDetail<K> = {\n value: K;\n};\n\n/**\n * type for payload of remove event handler\n */\ntype RemoveDetail<K> = {\n value: K;\n};\n\ntype DisplayProps =\n | {\n /**\n * Controls the content layout of the TabBarItem: 'standard' lays out the contents horizontally,\n *'icons' hides the label,\n */\n display?: 'standard' | 'icons';\n /**\n * The size indicates how tall the TabBarItem is rendered.\n * Note: It is not possible to specify 'size' when 'display=\"stacked\".\n */\n size?: 'md' | 'lg';\n }\n | {\n /**\n *'stacked' stacks the icon on top of the label.\n * Note: It is not possible to specify 'size' when 'display=\"stacked\".\n */\n display?: 'stacked';\n size?: 'never';\n };\n\nexport type TabBarProps<K extends string | number> = DisplayProps & {\n /**\n * A set of TabBarItem(s) that TabBar will hold\n */\n children: ComponentChildren;\n /**\n * Whether to stretch the tab bar items to occupy available space or to condense items\n */\n layout?: 'stretch' | 'condense';\n /**\n * The position of the TabBar. Valid Values: top and bottom.\n * 'top' is used when TabBar is placed on top of content section and the selection\n * indicator would be placed below the TabBarItem.\n * 'bottom' is used when TabBar is placed on bottom of content section and the selection\n * indicator would be placed above the TabBarItem.\n */\n edge?: 'top' | 'bottom';\n /**\n * Key of the selected item.\n */\n selection?: K;\n /**\n * Callback function to handle when user selects a tab.\n * The callback is also invoked when a user selects a tab that is already selected.\n */\n onSelect?: <K extends string | number>(detail: SelectionDetail<K>) => void;\n /**\n * Callback function to handle remove\n */\n onRemove?: <K extends string | number>(detail: RemoveDetail<K>) => void;\n /**\n * Accepts the ID of an element that provides instructions for interaction with the TabBar.\n */\n 'aria-describedby'?: string;\n /**\n * An aria-label which defines a string value that labels this TabBar.\n * Either aria-label or aria-labelledby should be specified in order to make TabBar accessible.\n */\n 'aria-label'?: string;\n\n /**\n * An aria-labelledby which identifies the element(s) that labels this TabBar.\n * Either aria-label or aria-labelledby should be specified in order to make TabBar accessible.\n */\n 'aria-labelledby'?: string;\n\n /**\n * Configuration used to specify a context menu.\n */\n contextMenuConfig?: TabBarContextMenuConfig<K>;\n};\n/**\n * A tab bar allows navigation between different content sections.\n */\nexport const TabBar = forwardRef(\n <K extends string | number>(\n {\n children,\n layout = 'stretch',\n display = 'standard',\n size = 'md',\n edge = 'top',\n selection,\n onSelect,\n onRemove,\n 'aria-describedby': ariaDescribedBy,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n contextMenuConfig\n }: TabBarProps<K> & TestIdProps,\n ref?: Ref<HTMLDivElement>\n ) => {\n const rootRef = ref as RefObject<HTMLDivElement>;\n\n const {\n rootProps,\n tabBarContext,\n menuProps,\n contextMenuContext,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo\n } = useTabBar({\n class: styles.tabBarBase,\n edge: edge,\n onRemove,\n onSelect,\n ref: rootRef,\n selection,\n size,\n children,\n contextMenuConfig\n });\n\n const isContextMenuAvailable = contextMenuConfig != null;\n\n return (\n <>\n <TabBarContext.Provider value={tabBarContext}>\n <div\n {...rootProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-haspopup={contextMenuConfig != null ? true : false}\n aria-describedby={\n isContextMenuAvailable && contextMenuDescriptionId\n ? ariaDescribedBy\n ? `${ariaDescribedBy} ${contextMenuDescriptionId}`\n : contextMenuDescriptionId\n : ariaDescribedBy\n }>\n <TabBarLayout layout={layout} display={display}>\n {children}\n </TabBarLayout>\n </div>\n </TabBarContext.Provider>\n {isContextMenuAvailable && contextMenuDescriptionId && (\n <span id={contextMenuDescriptionId}>\n <HiddenAccessible>{contextMenuDescription}</HiddenAccessible>\n </span>\n )}\n {isContextMenuAvailable && accStatusInfo && <LiveRegion>{accStatusInfo}</LiveRegion>}\n {isContextMenuAvailable && (\n <TabBarContextMenu\n {...menuProps}\n contextMenuConfig={contextMenuConfig}\n contextMenuContext={contextMenuContext!}\n />\n )}\n </>\n );\n }\n);\n"],"names":["forwardRef","useTabBar","styles","_jsxs","_Fragment","_jsx","TabBarContext","TabBarLayout","HiddenAccessible","LiveRegion","TabBarContextMenu"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHA;;AAEG;MACU,MAAM,GAAGA,iBAAU,CAC9B,CACE,EACE,QAAQ,EACR,MAAM,GAAG,SAAS,EAClB,OAAO,GAAG,UAAU,EACpB,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAAE,eAAe,EACnC,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,iBAAiB,EACY,EAC/B,GAAyB,KACvB;IACF,MAAM,OAAO,GAAG,GAAgC,CAAC;AAEjD,IAAA,MAAM,EACJ,SAAS,EACT,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EACd,GAAGC,mBAAS,CAAC;QACZ,KAAK,EAAEC,4CAAM,CAAC,UAAU;AACxB,QAAA,IAAI,EAAE,IAAI;QACV,QAAQ;QACR,QAAQ;AACR,QAAA,GAAG,EAAE,OAAO;QACZ,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,iBAAiB;AAClB,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,sBAAsB,GAAG,iBAAiB,IAAI,IAAI,CAAC;AAEzD,IAAA,QACEC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEC,cAAC,CAAAC,0BAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,aAAa,EAAA,QAAA,EAC1CD,cACM,CAAA,KAAA,EAAA,EAAA,GAAA,SAAS,gBACD,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,eAAA,EAChB,iBAAiB,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,EAErD,kBAAA,EAAA,sBAAsB,IAAI,wBAAwB;AAChD,0BAAE,eAAe;AACf,8BAAE,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,wBAAwB,CAAE,CAAA;AAClD,8BAAE,wBAAwB;AAC5B,0BAAE,eAAe,EAErB,QAAA,EAAAA,cAAA,CAACE,yBAAY,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAC3C,QAAA,EAAA,QAAQ,EACI,CAAA,EAAA,CACX,EACiB,CAAA,EACxB,sBAAsB,IAAI,wBAAwB,KACjDF,cAAM,CAAA,MAAA,EAAA,EAAA,EAAE,EAAE,wBAAwB,EAChC,QAAA,EAAAA,cAAA,CAACG,iCAAgB,EAAE,EAAA,QAAA,EAAA,sBAAsB,EAAoB,CAAA,EAAA,CACxD,CACR,EACA,sBAAsB,IAAI,aAAa,IAAIH,cAAC,CAAAI,qBAAU,EAAE,EAAA,QAAA,EAAA,aAAa,EAAc,CAAA,EACnF,sBAAsB,KACrBJ,cAAC,CAAAK,mCAAiB,EACZ,EAAA,GAAA,SAAS,EACb,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAmB,EAAA,CACvC,CACH,CAAA,EAAA,CACA,EACH;AACJ,CAAC;;;;"}
@@ -1,207 +0,0 @@
1
- /* @oracle/oraclejet-preact: undefined */
2
- 'use strict';
3
-
4
- var jsxRuntime = require('preact/jsx-runtime');
5
- var compat = require('preact/compat');
6
- var useCurrentValueReducer = require('./useCurrentValueReducer-f37ac024.js');
7
- require('./FormContext-6aec9525.js');
8
- var useFormContext = require('./useFormContext-3535e63f.js');
9
- var useId = require('./useId-6c0eeb27.js');
10
- var useLengthFilter = require('./useLengthFilter-d860b411.js');
11
- var useTranslationBundle = require('./useTranslationBundle-8d51d37f.js');
12
- var HiddenAccessible = require('./HiddenAccessible-087eb49a.js');
13
- var hooks = require('preact/hooks');
14
- require('./keyboardUtils-d234643d.js');
15
- var ReadonlyTextField = require('./ReadonlyTextField-334dea29.js');
16
-
17
- var ReadonlyTextFieldInput = require('./ReadonlyTextFieldInput-a071f882.js');
18
- require('./LayerHost-4ebd4dca.js');
19
- var classNames = require('./classNames-c14c6ef3.js');
20
- require('./FormFieldContext-69fe83d2.js');
21
-
22
- require('./logger-2c9401cc.js');
23
- require('./UNSAFE_TextField/themes/TextFieldStyles.css.js');
24
-
25
-
26
-
27
-
28
-
29
- require('./UNSAFE_TextField/themes/redwood/TextFieldVariants.css.js');
30
-
31
-
32
- require('./UNSAFE_Label/themes/redwood/LabelVariants.css.js');
33
- require('./UNSAFE_TextField/themes/FormLayoutStyles.css.js');
34
-
35
- require('./Flex-d23357d1.js');
36
-
37
- require('./StyledTextField-7a8d3c26.js');
38
- require('./InputGroupContext-05f2a46f.js');
39
-
40
-
41
- require('./hooks/UNSAFE_useTooltip/themes/redwood/TooltipContentVariants.css.js');
42
- require('./tooltipUtils-a2495cbc.js');
43
- var MaxLengthLiveRegion = require('./MaxLengthLiveRegion-624d0c1c.js');
44
- var formControlUtils = require('./formControlUtils-ccd07bc8.js');
45
- var usePress = require('./usePress-11904554.js');
46
- var useFormFieldContext = require('./useFormFieldContext-4632eb73.js');
47
-
48
- var useInputBase = require('./useInputBase-7df9da55.js');
49
-
50
- var hide = 'MaxLengthCounterStyles_hide__7dy9j71';
51
- var maxLengthCounterBase = 'MaxLengthCounterStyles_maxLengthCounterBase__7dy9j70';
52
- var spanStyles = 'MaxLengthCounterStyles_spanStyles__7dy9j72';
53
-
54
- const noop = () => { };
55
- function MaxLengthCounter({ maxLength, valueLength = 0, onClick }) {
56
- const { isFocused } = useFormFieldContext.useFormFieldContext();
57
- // We don't want mousedown on this component to do anything, so prevent the default behavior.
58
- const killEvent = hooks.useCallback((event) => event.preventDefault(), []);
59
- const textClasses = classNames.classNames([!isFocused && hide]);
60
- const { pressProps } = usePress.usePress(onClick ?? noop);
61
- return (jsxRuntime.jsx("div", { class: maxLengthCounterBase, onMouseDown: killEvent, ...pressProps, children: jsxRuntime.jsxs("span", { class: textClasses, children: [jsxRuntime.jsx("span", { class: spanStyles, children: valueLength }), jsxRuntime.jsx("span", { class: spanStyles, children: "/" }), jsxRuntime.jsx("span", { class: spanStyles, children: maxLength })] }) }));
62
- }
63
-
64
- /**
65
- * A custom hook to enable an alternate way for entering a new line in the TextArea components using
66
- * Alt + Enter (or option + return in MacOS). This is particularly useful in scenarios where pressing Enter
67
- * could mean a different action, like exiting from edit mode in a Table/DataGrid containing a TextArea.
68
- */
69
- const useTextAreaAltEnter = ({ onInput, textAreaRef }) => {
70
- // We want to have alt/option+Enter to insert a newline like Enter does.
71
- const [selectionStart, setSelectionStart] = hooks.useState();
72
- const handleKeyDown = hooks.useCallback((event) => {
73
- // If we see an alt+enter (or option+return on a Mac), we insert a newline and call onInputAndDispatch
74
- // since that is what is called any time the input value changes.
75
- if (event.altKey && event.key === 'Enter') {
76
- event.preventDefault(); // Prevent default Enter behavior
77
- const textarea = event.target;
78
- const { selectionStart: start, selectionEnd: end, value: previousValue } = textarea;
79
- const newValue = previousValue.substring(0, start) + '\n' + previousValue.substring(end);
80
- const valueUpdateDetail = {
81
- previousValue: previousValue,
82
- value: newValue
83
- };
84
- setSelectionStart(start + 1);
85
- onInput(valueUpdateDetail);
86
- }
87
- }, [onInput]);
88
- hooks.useLayoutEffect(() => {
89
- if (selectionStart) {
90
- textAreaRef.current?.setSelectionRange(selectionStart, selectionStart);
91
- // reset to undefined, so the next selectionStart will trigger the useLayoutEffect
92
- // even if it is the same as the previous selectionStart that was set. This is
93
- // because we are only setting selectionStart for alt+enter.
94
- setSelectionStart(undefined);
95
- }
96
- }, [selectionStart, textAreaRef]);
97
- return { handleKeyDown };
98
- };
99
-
100
- /**
101
- * A text area displays a field that allows a user to enter a multi-line text value.
102
- */
103
- const TextArea = compat.forwardRef(({ 'aria-describedby': ariaDescribedBy, assistiveText, autoComplete = 'off', autoFocus = false, blooming = 'off', columnSpan, helpSourceLink, helpSourceText, isDisabled: propIsDisabled, isReadonly: propIsReadonly, isRequired = false, isRequiredShown, label, labelEdge: propLabelEdge, labelStartWidth: propLabelStartWidth, maxLength, maxLengthCounter = 'remaining', maxLengthUnit, messages, placeholder, resize, role, rows, textAlign: propTextAlign, userAssistanceDensity: propUserAssistanceDensity, value, variant = 'default', onInput, onCommit, testId }, ref) => {
104
- const translations = useTranslationBundle.useTranslationBundle('@oracle/oraclejet-preact');
105
- const formControl_limitReached = maxLength
106
- ? translations.formControl_limitReached({
107
- CHARACTER_LIMIT: maxLength
108
- })
109
- : '';
110
- const { isReadonly: formIsReadonly } = useFormContext.useFormContext();
111
- const isReadonlyForMessages = propIsReadonly ?? formIsReadonly ?? false;
112
- const { currentCommitValue, dispatch } = useCurrentValueReducer.useCurrentValueReducer({ value });
113
- const onInputAndDispatch = compat.useCallback((detail) => {
114
- // Should dispatch happen first? This will queue up a re-render, ordering should not cause issues (this is async)
115
- dispatch({ type: 'input', payload: detail.value });
116
- onInput?.(detail);
117
- }, [onInput, dispatch]);
118
- const onCommitAndDispatch = compat.useCallback((detail) => {
119
- // Should dispatch happen first? This will queue up a re-render, ordering should not cause issues (this is async)
120
- dispatch({ type: 'commit', payload: detail.value });
121
- onCommit?.(detail);
122
- }, [onCommit, dispatch]);
123
- const maxLengthDescribedById = useId.useId();
124
- // Handle length filter for user-typed inputs and controlled inputs
125
- const { isMaxLengthExceeded, isMaxLengthReached, valueLength, onFilteredInput } = useLengthFilter.useLengthFilter({
126
- maxLength,
127
- maxLengthUnit,
128
- value,
129
- onInput: onInputAndDispatch,
130
- onCommit: onCommitAndDispatch
131
- });
132
- const limitMessage = [{ detail: formControl_limitReached, severity: 'info' }];
133
- const allMessages = [
134
- ...(messages ?? []),
135
- // Readonly fields cannot be edited, so suppress the generated max-length
136
- // limit message for readonly.
137
- ...(isMaxLengthReached && !isReadonlyForMessages ? limitMessage : [])
138
- ];
139
- // `useInputBase` now owns the shared textarea shell: form defaults, refs, label plumbing,
140
- // assistance wiring, and readonly/editable shell selection. The max-length UX remains local
141
- // because the counter and live region are specific to textarea editing behavior.
142
- const base = useInputBase.useInputBase({
143
- assistiveText,
144
- ariaDescribedBy,
145
- columnSpan,
146
- contentVariant: 'textarea',
147
- helpSourceLink,
148
- helpSourceText,
149
- isDisabled: propIsDisabled,
150
- isReadonly: propIsReadonly,
151
- isRequiredShown,
152
- isSelectable: true,
153
- label,
154
- labelEdge: propLabelEdge,
155
- labelStartWidth: propLabelStartWidth,
156
- messages: allMessages,
157
- textAlign: propTextAlign,
158
- userAssistanceDensity: propUserAssistanceDensity,
159
- value,
160
- variant
161
- });
162
- const { isDisabled, isReadonly, labelEdge, textAlign = formControlUtils.defaultTextAlignForVariant(variant) } = base;
163
- const hasInsideLabel = label !== undefined && labelEdge === 'inside';
164
- // We want to have alt/option+Enter to insert a newline like Enter does.
165
- const { handleKeyDown } = useTextAreaAltEnter({
166
- onInput: onInputAndDispatch,
167
- textAreaRef: base.enabledElementRef
168
- });
169
- const onClickCounter = compat.useCallback(() => {
170
- const elm = base.enabledElementRef.current;
171
- // for setSelectionRange(), len needs to be a number or null.
172
- const len = elm ? elm.value.length : null;
173
- // Since the counter element is after the text, clicking in this
174
- // should put the selection at the end of the text
175
- base.enabledElementRef.current?.setSelectionRange(len, len);
176
- // Clicking the counter should put the focus on the input field
177
- base.enabledElementRef.current?.focus();
178
- }, [base.enabledElementRef]);
179
- const hasMaxLength = maxLength !== undefined;
180
- const shouldAnnounceMaxLength = hasMaxLength && !isReadonly && !isDisabled;
181
- const { 'aria-describedby': inputAriaDescribedBy, ...inputPropsRest } = base.inputProps;
182
- // Regular TextArea keeps the browser's native scrollbar when content overflows. Reserve the
183
- // scrollbar gutter consistently for the default editable shell, even when bloom is off or
184
- // currently suppressed. Bloom can be toggled dynamically, and making this conditional would
185
- // visibly move the scrollport as bloom turns on or off. TextAreaAutosize handles this separately
186
- // because its measured textarea border box participates in autosize height calculations.
187
- const hasTextAreaScrollbarInset = !formControlUtils.isEmbeddedVariant(variant);
188
- const mainContent = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ReadonlyTextField.TextFieldInput, { as: "textarea", "aria-describedby": classNames.classNames([inputAriaDescribedBy, shouldAnnounceMaxLength && maxLengthDescribedById]) ||
189
- undefined, "aria-label": base.ariaLabel, autoComplete: autoComplete, autoFocus: autoFocus, currentCommitValue: currentCommitValue, hasEmptyLabel: label === '' && labelEdge === 'none', hasInsideLabel: hasInsideLabel, hasTextAreaScrollbarInset: hasTextAreaScrollbarInset, isRequired: isRequired, inputRef: base.enabledElementRef, onCommit: onCommitAndDispatch, onInput: onFilteredInput, onKeyDown: handleKeyDown, placeholder: placeholder, role: role, rows: rows, textAlign: textAlign, value: value, ...inputPropsRest }), maxLengthCounter === 'remaining' && hasMaxLength && (jsxRuntime.jsx(MaxLengthCounter, { maxLength: maxLength, valueLength: valueLength, onClick: onClickCounter })), hasMaxLength && (jsxRuntime.jsx(HiddenAccessible.HiddenAccessible, { id: maxLengthDescribedById, isHidden: true, children: translations.formControl_maxLength({
190
- MAX_LENGTH: `${maxLength}`
191
- }) })), hasMaxLength && base.isFocused && (jsxRuntime.jsx(MaxLengthLiveRegion.MaxLengthLiveRegion, { isMaxLengthExceeded: isMaxLengthExceeded, maxLength: maxLength, valueLength: valueLength, testId: testId ? testId + '_maxLength' : undefined }))] }));
192
- const readonlyMainContent = (jsxRuntime.jsx(ReadonlyTextFieldInput.ReadonlyTextFieldInput, { "aria-describedby": base.inputProps['aria-describedby'], "aria-label": base.ariaLabel, "aria-labelledby": base.labelProps.id, as: "textarea", elementRef: base.readonlyElementRef, formVariant: variant, rows: rows, autoFocus: autoFocus, textAlign: textAlign, value: value, variant: "textarea", hasEmptyLabel: label === '' && labelEdge === 'none', hasInsideLabel: hasInsideLabel, onBlur: base.inputProps.onBlur, onFocus: base.inputProps.onFocus }));
193
- const inputBaseProps = {
194
- ref,
195
- base,
196
- mainContent,
197
- readonlyMainContent,
198
- resize,
199
- testId
200
- };
201
- return formControlUtils.isEmbeddedVariant(variant) ? (jsxRuntime.jsx(useInputBase.EmbeddedInputBase, { ...inputBaseProps })) : (jsxRuntime.jsx(useInputBase.InputBase, { ...inputBaseProps, blooming: blooming }));
202
- });
203
-
204
- exports.MaxLengthCounter = MaxLengthCounter;
205
- exports.TextArea = TextArea;
206
- exports.useTextAreaAltEnter = useTextAreaAltEnter;
207
- //# sourceMappingURL=TextArea-d65e3f5b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextArea-d65e3f5b.js","sources":["../../src/UNSAFE_TextArea/MaxLengthCounter.tsx","../../src/UNSAFE_TextArea/useTextAreaAltEnter.ts","../../src/UNSAFE_TextArea/TextArea.tsx"],"sourcesContent":["import { useCallback } from 'preact/hooks';\n\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { useFormFieldContext } from '../hooks/UNSAFE_useFormFieldContext';\nimport { hide, maxLengthCounterBase, spanStyles } from './MaxLengthCounterStyles.css';\n\ntype Props = {\n maxLength: number;\n valueLength?: number;\n onClick?: () => void; // the calling component should focus on the appropriate element when clicked.\n};\n\nconst noop = () => {};\n\nexport function MaxLengthCounter({ maxLength, valueLength = 0, onClick }: Props) {\n const { isFocused } = useFormFieldContext();\n // We don't want mousedown on this component to do anything, so prevent the default behavior.\n const killEvent = useCallback((event: Event) => event.preventDefault(), []);\n const textClasses = classNames([!isFocused && hide]);\n const { pressProps } = usePress(onClick ?? noop);\n return (\n <div class={maxLengthCounterBase} onMouseDown={killEvent} {...pressProps}>\n <span class={textClasses}>\n <span class={spanStyles}>{valueLength}</span>\n <span class={spanStyles}>/</span>\n <span class={spanStyles}>{maxLength}</span>\n </span>\n </div>\n );\n}\n","import { ComponentProps, RefObject } from 'preact';\nimport { useCallback, useLayoutEffect, useState } from 'preact/hooks';\n\nimport { TextFieldInput } from '#UNSAFE_TextField';\nimport { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\n\ntype UseTextAreaAltEnterOptions = {\n /**\n * The onInput of the TextFieldInput\n */\n onInput: NonNullable<ComponentProps<typeof TextFieldInput>['onInput']>;\n /**\n * The ref to the textarea element\n */\n textAreaRef: RefObject<HTMLTextAreaElement>;\n};\n\n/**\n * A custom hook to enable an alternate way for entering a new line in the TextArea components using\n * Alt + Enter (or option + return in MacOS). This is particularly useful in scenarios where pressing Enter\n * could mean a different action, like exiting from edit mode in a Table/DataGrid containing a TextArea.\n */\nexport const useTextAreaAltEnter = ({ onInput, textAreaRef }: UseTextAreaAltEnterOptions) => {\n // We want to have alt/option+Enter to insert a newline like Enter does.\n const [selectionStart, setSelectionStart] = useState<number>();\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // If we see an alt+enter (or option+return on a Mac), we insert a newline and call onInputAndDispatch\n // since that is what is called any time the input value changes.\n if (event.altKey && event.key === 'Enter') {\n event.preventDefault(); // Prevent default Enter behavior\n const textarea = event.target as HTMLTextAreaElement;\n const { selectionStart: start, selectionEnd: end, value: previousValue } = textarea;\n const newValue = previousValue.substring(0, start) + '\\n' + previousValue.substring(end);\n\n const valueUpdateDetail: ValueUpdateDetail<string> = {\n previousValue: previousValue,\n value: newValue\n };\n setSelectionStart(start + 1);\n onInput(valueUpdateDetail);\n }\n },\n [onInput]\n );\n\n useLayoutEffect(() => {\n if (selectionStart) {\n textAreaRef.current?.setSelectionRange(selectionStart, selectionStart);\n // reset to undefined, so the next selectionStart will trigger the useLayoutEffect\n // even if it is the same as the previous selectionStart that was set. This is\n // because we are only setting selectionStart for alt+enter.\n setSelectionStart(undefined);\n }\n }, [selectionStart, textAreaRef]);\n\n return { handleKeyDown };\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ComponentProps, Ref } from 'preact';\nimport { forwardRef, useCallback } from 'preact/compat';\n\nimport { EmbeddedInputBase, InputBase, useInputBase } from '#PRIVATE_InputBase';\nimport { useCurrentValueReducer } from '#hooks/UNSAFE_useCurrentValueReducer';\nimport { FocusableHandle } from '#hooks/UNSAFE_useFocusableTextField';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { CountUnit, useLengthFilter } from '#hooks/UNSAFE_useLengthFilter';\nimport { SelectableHandle } from '#hooks/UNSAFE_useSelectableTextField';\nimport type { TestIdProps } from '#hooks/UNSAFE_useTestId';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { ComponentMessageItem } from '#UNSAFE_ComponentMessage';\nimport { HiddenAccessible } from '#UNSAFE_HiddenAccessible';\nimport {\n MaxLengthLiveRegion,\n ReadonlyTextFieldInput,\n TextField,\n TextFieldInput\n} from '#UNSAFE_TextField';\nimport type { InlineUserAssistance, UserAssistanceDensityType } from '#UNSAFE_UserAssistance';\nimport { defaultTextAlignForVariant, isEmbeddedVariant } from '#utils/PRIVATE_formControlUtils';\nimport { Size } from '#utils/UNSAFE_size';\nimport { LayoutColumnSpan } from '#utils/UNSAFE_styles/Layout';\nimport { classNames as combineIds } from '#utils/UNSAFE_classNames';\nimport { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { MaxLengthCounter } from './MaxLengthCounter';\nimport { useTextAreaAltEnter } from './useTextAreaAltEnter';\n\ntype TextFieldProps = ComponentProps<typeof TextField>;\ntype TextFieldInputProps = ComponentProps<typeof TextFieldInput>;\ntype InlineUserAssistanceProps = ComponentProps<typeof InlineUserAssistance>;\n\ntype Props = TestIdProps & {\n /**\n * The ID of an element (or space separated IDs of multiple elements) that\n * describes the input.\n */\n 'aria-describedby'?: TextFieldInputProps['aria-describedby'];\n\n /**\n * Text to provide guidance to help the user understand what to enter.\n */\n assistiveText?: InlineUserAssistanceProps['assistiveText'];\n /**\n * Dictates component's autocomplete state.\n * This attribute indicates whether the value of the control can be automatically completed by the browser.\n * The common values are \"on\" and \"off\".\n */\n autoComplete?: TextFieldInputProps['autoComplete'];\n /**\n * Autofocus specifies whether the component will get focus when the page is loaded.\n * If it is set to true then the associated component will get input focus when the page is loaded.\n * Setting this property doesn't set the focus to the component; it tells the browser to focus\n * to it when the element is inserted in the document.\n */\n autoFocus?: TextFieldInputProps['autoFocus'];\n /**\n * Specifies the AI bloom visual treatment.\n * Bloom is suppressed when the component is disabled, readonly, embedded, or showing\n * error or warning messages.\n */\n blooming?: TextFieldProps['blooming'];\n /**\n * Specifies how many columns to span in a FormLayout with direction === 'row'\n */\n columnSpan?: LayoutColumnSpan;\n /**\n * Help source URL associated with the component.\n */\n helpSourceLink?: InlineUserAssistanceProps['helpSourceLink'];\n /**\n * Custom text to be rendered for the <code>helpSourceLink</code>.\n */\n helpSourceText?: InlineUserAssistanceProps['helpSourceText'];\n /**\n * Specifies whether the component is disabled.\n */\n isDisabled?: boolean;\n /**\n * Specifies whether the component is readonly.\n */\n isReadonly?: boolean;\n /**\n * Specifies for accessibility purposes whether a value is required.\n *\n * Setting this property to <code>false</code> means that a value is not required to be\n * committed by the user. Setting this property to <code>true</code> means that a value\n * is required to be committed by the user.\n */\n isRequired?: TextFieldInputProps['isRequired'];\n /**\n * Specifies whether to show an indicator on screen that a value is required, for example\n * before the user has committed a value.\n */\n isRequiredShown?: InlineUserAssistanceProps['isRequiredShown'];\n /**\n * Specifies the label associated with the field.\n */\n label: string;\n /**\n * Specifies where the label is positioned relative to the field.\n */\n labelEdge?: 'inside' | 'start' | 'top' | 'none';\n /**\n * Specifies the width of the label when <code>labelEdge</code> is <code>\"start\"</code>\n */\n labelStartWidth?: Size;\n /**\n * Specifies the maximum number of characters that can be entered in the input field.\n */\n maxLength?: number;\n /**\n * Determines whether the remaining number of characters that can be entered is shown or not.\n */\n maxLengthCounter?: 'none' | 'remaining';\n /**\n * Specifies how the input text characters are to be counted when maxLength is specified.\n */\n maxLengthUnit?: CountUnit;\n /**\n * Messages to show on screen that are associated with the component.\n */\n messages?: InlineUserAssistanceProps['messages'];\n /**\n * A short hint to display before the user enters a value.\n */\n placeholder?: TextFieldInputProps['placeholder'];\n /**\n * Specifies how the user is allowed to manually resize the TextArea component.\n */\n resize?: TextFieldProps['resize'];\n /**\n * Specifies the ARIA role type.\n */\n role?: TextFieldInputProps['role'];\n /**\n * Specifies the number of rows to display\n */\n rows?: TextFieldInputProps['rows'];\n /**\n * Specifies how to align text within the field.\n */\n textAlign?: TextFieldInputProps['textAlign'];\n /**\n * Specifies the density of the user assistance presentation. It can be set to:\n * <ul>\n * <li><code>'efficient'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * <li><code>'reflow'</code>: Show inline. Layout will reflow when text is displayed.</li>\n * <li><code>'compact'</code>: Messages, help, hints, and required will not be shown inline; they will show in a mode that keeps the screen more compact, like a popup for the messages, and a required icon to indicate Required. </li>\n * </ul>\n */\n userAssistanceDensity?: UserAssistanceDensityType;\n /**\n * The current display value of the component.\n */\n value?: TextFieldInputProps['value'];\n /**\n * The style variant of the component.\n */\n variant?: TextFieldInputProps['variant'];\n /**\n * Callback invoked when the user commits the entered value by blurring out of the field.\n */\n onCommit?: TextFieldInputProps['onCommit'];\n /**\n * Callback invoked each time the user changes the value of the field. For example, if the user\n * types 'abcd', this callback will be called four times with the value as 'a', 'ab', 'abc' and 'abcd'\n * respectively.\n */\n onInput: TextFieldInputProps['onInput'];\n};\n\ntype FocusSelectHandle = FocusableHandle & SelectableHandle;\n\n/**\n * A text area displays a field that allows a user to enter a multi-line text value.\n */\nexport const TextArea = forwardRef(\n (\n {\n 'aria-describedby': ariaDescribedBy,\n assistiveText,\n autoComplete = 'off',\n autoFocus = false,\n blooming = 'off',\n columnSpan,\n helpSourceLink,\n helpSourceText,\n isDisabled: propIsDisabled,\n isReadonly: propIsReadonly,\n isRequired = false,\n isRequiredShown,\n label,\n labelEdge: propLabelEdge,\n labelStartWidth: propLabelStartWidth,\n maxLength,\n maxLengthCounter = 'remaining',\n maxLengthUnit,\n messages,\n placeholder,\n resize,\n role,\n rows,\n textAlign: propTextAlign,\n userAssistanceDensity: propUserAssistanceDensity,\n value,\n variant = 'default',\n onInput,\n onCommit,\n testId\n }: Props,\n ref?: Ref<FocusSelectHandle>\n ) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const formControl_limitReached = maxLength\n ? translations.formControl_limitReached({\n CHARACTER_LIMIT: maxLength\n })\n : '';\n const { isReadonly: formIsReadonly } = useFormContext();\n const isReadonlyForMessages = propIsReadonly ?? formIsReadonly ?? false;\n const { currentCommitValue, dispatch } = useCurrentValueReducer({ value });\n const onInputAndDispatch = useCallback(\n (detail: ValueUpdateDetail<string>) => {\n // Should dispatch happen first? This will queue up a re-render, ordering should not cause issues (this is async)\n dispatch({ type: 'input', payload: detail.value });\n onInput?.(detail);\n },\n [onInput, dispatch]\n );\n const onCommitAndDispatch = useCallback(\n (detail: ValueUpdateDetail<string>) => {\n // Should dispatch happen first? This will queue up a re-render, ordering should not cause issues (this is async)\n dispatch({ type: 'commit', payload: detail.value });\n onCommit?.(detail);\n },\n [onCommit, dispatch]\n );\n\n const maxLengthDescribedById = useId();\n\n // Handle length filter for user-typed inputs and controlled inputs\n const { isMaxLengthExceeded, isMaxLengthReached, valueLength, onFilteredInput } =\n useLengthFilter({\n maxLength,\n maxLengthUnit,\n value,\n onInput: onInputAndDispatch,\n onCommit: onCommitAndDispatch\n });\n\n const limitMessage = [{ detail: formControl_limitReached, severity: 'info' }];\n const allMessages = [\n ...(messages ?? []),\n // Readonly fields cannot be edited, so suppress the generated max-length\n // limit message for readonly.\n ...(isMaxLengthReached && !isReadonlyForMessages ? limitMessage : [])\n ] as ComponentMessageItem[];\n\n // `useInputBase` now owns the shared textarea shell: form defaults, refs, label plumbing,\n // assistance wiring, and readonly/editable shell selection. The max-length UX remains local\n // because the counter and live region are specific to textarea editing behavior.\n const base = useInputBase<HTMLTextAreaElement, HTMLTextAreaElement, string | undefined>({\n assistiveText,\n ariaDescribedBy,\n columnSpan,\n contentVariant: 'textarea',\n helpSourceLink,\n helpSourceText,\n isDisabled: propIsDisabled,\n isReadonly: propIsReadonly,\n isRequiredShown,\n isSelectable: true,\n label,\n labelEdge: propLabelEdge,\n labelStartWidth: propLabelStartWidth,\n messages: allMessages,\n textAlign: propTextAlign,\n userAssistanceDensity: propUserAssistanceDensity,\n value,\n variant\n });\n\n const {\n isDisabled,\n isReadonly,\n labelEdge,\n textAlign = defaultTextAlignForVariant(variant)\n } = base;\n const hasInsideLabel = label !== undefined && labelEdge === 'inside';\n\n // We want to have alt/option+Enter to insert a newline like Enter does.\n const { handleKeyDown } = useTextAreaAltEnter({\n onInput: onInputAndDispatch,\n textAreaRef: base.enabledElementRef\n });\n\n const onClickCounter = useCallback(() => {\n const elm = base.enabledElementRef.current;\n // for setSelectionRange(), len needs to be a number or null.\n const len = elm ? elm.value.length : null;\n // Since the counter element is after the text, clicking in this\n // should put the selection at the end of the text\n base.enabledElementRef.current?.setSelectionRange(len, len);\n // Clicking the counter should put the focus on the input field\n base.enabledElementRef.current?.focus();\n }, [base.enabledElementRef]);\n\n const hasMaxLength = maxLength !== undefined;\n const shouldAnnounceMaxLength = hasMaxLength && !isReadonly && !isDisabled;\n const { 'aria-describedby': inputAriaDescribedBy, ...inputPropsRest } = base.inputProps;\n // Regular TextArea keeps the browser's native scrollbar when content overflows. Reserve the\n // scrollbar gutter consistently for the default editable shell, even when bloom is off or\n // currently suppressed. Bloom can be toggled dynamically, and making this conditional would\n // visibly move the scrollport as bloom turns on or off. TextAreaAutosize handles this separately\n // because its measured textarea border box participates in autosize height calculations.\n const hasTextAreaScrollbarInset = !isEmbeddedVariant(variant);\n\n const mainContent = (\n <>\n <TextFieldInput\n as=\"textarea\"\n aria-describedby={\n combineIds([inputAriaDescribedBy, shouldAnnounceMaxLength && maxLengthDescribedById]) ||\n undefined\n }\n aria-label={base.ariaLabel}\n autoComplete={autoComplete}\n autoFocus={autoFocus}\n currentCommitValue={currentCommitValue}\n hasEmptyLabel={label === '' && labelEdge === 'none'}\n hasInsideLabel={hasInsideLabel}\n hasTextAreaScrollbarInset={hasTextAreaScrollbarInset}\n isRequired={isRequired}\n inputRef={base.enabledElementRef}\n onCommit={onCommitAndDispatch}\n onInput={onFilteredInput}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n role={role}\n rows={rows}\n textAlign={textAlign}\n value={value}\n {...inputPropsRest}\n />\n {maxLengthCounter === 'remaining' && hasMaxLength && (\n <MaxLengthCounter\n maxLength={maxLength}\n valueLength={valueLength}\n onClick={onClickCounter}\n />\n )}\n {hasMaxLength && (\n <HiddenAccessible id={maxLengthDescribedById} isHidden={true}>\n {translations.formControl_maxLength({\n MAX_LENGTH: `${maxLength}`\n })}\n </HiddenAccessible>\n )}\n {hasMaxLength && base.isFocused && (\n <MaxLengthLiveRegion\n isMaxLengthExceeded={isMaxLengthExceeded}\n maxLength={maxLength}\n valueLength={valueLength}\n testId={testId ? testId + '_maxLength' : undefined}\n />\n )}\n </>\n );\n\n const readonlyMainContent = (\n <ReadonlyTextFieldInput\n aria-describedby={base.inputProps['aria-describedby']}\n aria-label={base.ariaLabel}\n aria-labelledby={base.labelProps.id}\n as=\"textarea\"\n elementRef={base.readonlyElementRef}\n formVariant={variant}\n rows={rows}\n autoFocus={autoFocus}\n textAlign={textAlign}\n value={value}\n variant=\"textarea\"\n hasEmptyLabel={label === '' && labelEdge === 'none'}\n hasInsideLabel={hasInsideLabel}\n onBlur={base.inputProps.onBlur}\n onFocus={base.inputProps.onFocus}\n />\n );\n\n const inputBaseProps = {\n ref,\n base,\n mainContent,\n readonlyMainContent,\n resize,\n testId\n };\n\n return isEmbeddedVariant(variant) ? (\n <EmbeddedInputBase {...inputBaseProps} />\n ) : (\n <InputBase {...inputBaseProps} blooming={blooming} />\n );\n }\n);\n"],"names":["useFormFieldContext","useCallback","classNames","usePress","_jsx","_jsxs","useState","useLayoutEffect","forwardRef","useTranslationBundle","useFormContext","useCurrentValueReducer","useId","useLengthFilter","useInputBase","defaultTextAlignForVariant","isEmbeddedVariant","_Fragment","TextFieldInput","combineIds","HiddenAccessible","MaxLengthLiveRegion","ReadonlyTextFieldInput","EmbeddedInputBase","InputBase"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDetectHorizontalOverflow-622817d4.js","sources":["../../src/hooks/PRIVATE_useDetectHorizontalOverflow/useDetectHorizontalOverflow.ts"],"sourcesContent":["import { RefObject } from 'preact';\nimport { useState, useLayoutEffect, useRef, StateUpdater, useCallback } from 'preact/hooks';\nimport { useResizeObserver } from '../../hooks/UNSAFE_useResizeObserver';\nimport { Size } from '../../utils/UNSAFE_size';\nimport { getTabWidths } from '../../utils/PRIVATE_tabBarUtils';\nimport type { TrailingContentInfo } from '../../utils/PRIVATE_tabBarUtils';\n\ntype TabDimensions<K extends string | number> = {\n key: K;\n maxWidth: number;\n nonTextWidth?: number;\n needsTruncation?: boolean;\n cumulativeWidth?: number;\n};\n\n//The minimum width of the overflowtabbaritem, it can be rendered with width greater than this based on available width\nconst MORE_ITEM_WIDTH = 48;\nconst LABEL_MIN_WIDTH = 96;\nconst TAB_BORDER = 6;\n//This is the minWidth a tab will have if it has only a label.\nconst TAB_MIN_WIDTH = LABEL_MIN_WIDTH + TAB_BORDER;\n\nexport type useDetectOverflowProps<K extends string | number> = {\n rootRef: RefObject<HTMLDivElement>;\n keysArray: (K | undefined)[];\n isTruncationDisabled?: boolean;\n};\n\n/**\n * Implements overflow detection and calculation\n */\nexport function useDetectHorizontalOverflow<K extends string | number>({\n rootRef,\n keysArray,\n isTruncationDisabled = true\n}: useDetectOverflowProps<K>) {\n const [visibleItemKeys, setVisibleItemKeys] = useState<(K | undefined)[]>();\n const [overflowItemKeys, setOverflowingItemKeys] = useState<(K | undefined)[]>();\n const trailingContentWidths = useRef(new Map<K, TrailingContentInfo>());\n const [tabMaxWidth, setTabMaxWidth] = useState<Map<K, Size>>();\n // This state var is to only re-trigger the layout effect. Using it locally will not give the latest updated value hence we use current suffix vars\n const [tabBarWidth, setTabBarWidth] = useState<number>(0);\n const isAllItemsTruncatedMax = useRef<boolean>(false);\n const isAllItemsTruncatedFinal = useRef<boolean>(false);\n const tabDimensions = useRef<TabDimensions<K>[]>();\n\n useLayoutEffect(() => {\n // Store locally to avoid calling rootRef everytime within layouteffect\n const tabBarWidthCurrent = rootRef?.current?.clientWidth;\n const tabBarScrollWidthCurrent = rootRef?.current?.scrollWidth;\n if (\n rootRef.current &&\n keysArray &&\n keysArray.length > 0 &&\n tabBarWidthCurrent &&\n tabBarWidthCurrent > 0\n ) {\n //Set tabBarWidth if not the current value\n if (tabBarWidth !== tabBarWidthCurrent) {\n setTabBarWidth(tabBarWidthCurrent);\n }\n\n if (tabMaxWidth === undefined) {\n const isOverflow = tabBarWidthCurrent > 0 && tabBarWidthCurrent < tabBarScrollWidthCurrent!;\n\n //If there is no overflow maxWidth should be its prevState, prevState may also be undefined if truncation is disabled.\n if (!isOverflow) {\n setTabMaxWidth((prevState) => {\n return prevState;\n });\n } else {\n //We need to calculate maxWidth only if truncation threshold limit is not reached\n if (!isAllItemsTruncatedMax.current) {\n const tabWidths = getTabWidths(\n rootRef.current,\n trailingContentWidths,\n isTruncationDisabled,\n tabBarWidthCurrent,\n isAllItemsTruncatedMax?.current,\n keysArray as K[]\n );\n //If all items have reached max treshold of truncation then we set it to true\n if (tabWidths.every((item) => item.hasReachedLimit)) {\n isAllItemsTruncatedMax.current = true;\n }\n tabDimensions.current = tabWidths as any;\n }\n //If all items have reached max treshold of truncation then we do not have update tabDimensions are maxWidth cannot go lesser than 96px.\n else {\n tabDimensions.current = tabDimensions.current?.map((item) => ({\n ...item\n }));\n }\n }\n\n //Set calculated maxWidths\n if (!isTruncationDisabled) {\n const tabMaxWidthMap = new Map(\n tabDimensions.current?.map((tab) => [tab.key, (tab.maxWidth + 'px') as Size])\n );\n setTabMaxWidth(tabMaxWidthMap);\n }\n //Overflow calculation\n if (tabBarWidthCurrent < tabBarScrollWidthCurrent!) {\n const arr = tabDimensions.current?.map((item) => item.cumulativeWidth) as number[];\n const lastIndex = arr.length - 1;\n //In addition to scrollWidth we check if the cumulative width of last item is greater than rootRef clientwidth\n if (arr && tabBarWidthCurrent < arr[lastIndex]) {\n const { closestEntry, closestIndex } = searchClosest(arr, tabBarWidthCurrent);\n // Check for not null, because even for '0' value of closestIndex we want to slice in such cases only overflow item will be rendered\n if (closestEntry && closestIndex != null) {\n // Closest index refers to the index of the last item that would be visible.\n // While splicing we need to include it however if we check for closestIndex < lastIndex alone then closestIndex + 1 will be greater than the last item index so we check for one less.\n const lastVisibleItemIndex =\n closestIndex < lastIndex - 1 ? closestIndex + 1 : closestIndex;\n setVisibleItemKeys(keysArray.slice(0, lastVisibleItemIndex));\n setOverflowingItemKeys(keysArray?.slice(lastVisibleItemIndex));\n //Once OverflowTabBarItem is rendered, i.e overflowItemKeys move into overflow menu then space is available, which can be re-dsitributed to truncated visible items. We also check if these visible items have already gone through this calculation otherwise we skip it to avoid infinite loop.\n if (closestIndex > 0 && !isAllItemsTruncatedFinal.current && !isTruncationDisabled) {\n const tabWidthsAfterOverflow = getTabWidths(\n rootRef.current,\n trailingContentWidths,\n isTruncationDisabled,\n tabBarWidthCurrent,\n isAllItemsTruncatedMax?.current\n );\n const tabMaxWidthMapAfterOverflow = new Map(\n tabWidthsAfterOverflow.map((tab) => [tab.key, (tab.maxWidth + 'px') as Size])\n );\n //Flag to indicate that final truncation calculation has occured\n isAllItemsTruncatedFinal.current = true;\n setTabMaxWidth(tabMaxWidthMapAfterOverflow);\n }\n }\n }\n }\n }\n }\n }, [keysArray, rootRef, tabBarWidth, tabMaxWidth, isTruncationDisabled]);\n\n const updateTabBarWidth = useCallback(\n (entry: { contentRect: { width: StateUpdater<number> } }) => {\n const rectWidth = Math.ceil(entry.contentRect.width as number);\n // Sometimes entry.contentRect.width maybe a decimal value so we need to get absolute value\n if (Math.abs(tabBarWidth - (entry.contentRect.width as number)) > 1) {\n setTabBarWidth(entry.contentRect.width);\n if (tabMaxWidth !== undefined && !isAllItemsTruncatedMax.current) {\n setTabMaxWidth(undefined);\n }\n //Once there is change in the container width and there is no overflow we render all items as visible.\n if (rectWidth >= rootRef.current?.scrollWidth!) {\n setVisibleItemKeys(keysArray);\n setOverflowingItemKeys([]);\n }\n isAllItemsTruncatedFinal.current = false;\n }\n },\n [tabBarWidth, tabMaxWidth, rootRef, keysArray]\n );\n\n useResizeObserver(rootRef, updateTabBarWidth);\n\n return shouldRenderAllTabs(visibleItemKeys, overflowItemKeys, keysArray)\n ? {\n visibleItemKeys: keysArray,\n overflowItemKeys,\n maxWidths: tabMaxWidth\n }\n : {\n visibleItemKeys,\n overflowItemKeys,\n maxWidths: tabMaxWidth\n };\n}\n\n//If the overflow + visible keys or their quantity are not the same as keysArray then we first render all the keys as visible\nconst shouldRenderAllTabs = <K extends string | number>(\n visibleItemKeys: (K | undefined)[] | undefined,\n overflowItemKeys: (K | undefined)[] | undefined,\n keysArray: (K | undefined)[]\n) => {\n if (visibleItemKeys == null) return true;\n else if (visibleItemKeys && overflowItemKeys && keysArray) {\n const combinedArray = [...visibleItemKeys, ...overflowItemKeys];\n const isNotEqual =\n combinedArray.length !== keysArray.length ||\n JSON.stringify(keysArray) !== JSON.stringify(combinedArray);\n return isNotEqual;\n } else return false;\n};\n\n//Searches for a value closest and smaller than search value from the cumulative array\nconst searchClosest = (\n arr: number[] | undefined,\n searchValue: number | undefined | null\n): { closestEntry: number | null; closestIndex: number | null } => {\n {\n if (arr != null && searchValue != null) {\n let left = 0;\n let right = arr.length - 1;\n let closestEntry: number | null = null;\n let closestIndex: number | null = null;\n while (left <= right && left < arr.length && right > -1) {\n const mid = Math.floor((left + right) / 2);\n const midEntry = arr[mid];\n if (midEntry === searchValue) {\n return { closestEntry: midEntry!, closestIndex: mid! };\n } else if (midEntry < searchValue) {\n closestEntry = midEntry;\n closestIndex = mid;\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n //If the searchValue is greater than closest entry and their difference is greater more item width then we have space to fit more item. Otherwise we return the index with the closest and small value when compared to searchvalue\n if (closestEntry && searchValue > closestEntry) {\n //NOTE: Do not update closestEntry to midEntry here because value from const midEntry = arr[mid], midEntry maybe greater than searchValue and below it may end up updating closestIndex to mid +1 due to abs check\n //Sometimes closest entry may be much smaller than searchvalue so in such cases we maybe able to accomodate more items. The difference between searchValue and closestEntry should be greater than the minWidth needed for any item so that it can be rendered. If the difference is lesser than item min width we then check if space is available to render overflowitem alone else we reduce the closestIndex.\n closestIndex =\n Math.abs(searchValue - closestEntry) > TAB_MIN_WIDTH && mid + 1 <= arr.length - 2\n ? mid + 1\n : Math.abs(searchValue - closestEntry) > MORE_ITEM_WIDTH\n ? mid\n : mid - 1 >= 0\n ? mid - 1\n : 0;\n }\n //If the searchValue is lesser than closestEntry we return a value lesser than mid, this happens when all the values in the array are lesser than searchValue, i.e screensize is extremely small\n else {\n closestIndex = mid - 1 >= 0 ? mid - 1 : 0;\n }\n }\n return { closestEntry: closestEntry!, closestIndex: closestIndex! };\n } else return { closestEntry: null, closestIndex: null };\n }\n};\n"],"names":["useState","useRef","useLayoutEffect","getTabWidths","useCallback","useResizeObserver"],"mappings":";;;;;;;AAeA;AACA,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB;AACA,MAAM,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC;AAQnD;;AAEG;AACG,SAAU,2BAA2B,CAA4B,EACrE,OAAO,EACP,SAAS,EACT,oBAAoB,GAAG,IAAI,EACD,EAAA;IAC1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAGA,cAAQ,EAAqB,CAAC;IAC5E,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAGA,cAAQ,EAAqB,CAAC;IACjF,MAAM,qBAAqB,GAAGC,YAAM,CAAC,IAAI,GAAG,EAA0B,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGD,cAAQ,EAAgB,CAAC;;IAE/D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAS,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,sBAAsB,GAAGC,YAAM,CAAU,KAAK,CAAC,CAAC;AACtD,IAAA,MAAM,wBAAwB,GAAGA,YAAM,CAAU,KAAK,CAAC,CAAC;AACxD,IAAA,MAAM,aAAa,GAAGA,YAAM,EAAsB,CAAC;IAEnDC,qBAAe,CAAC,MAAK;;AAEnB,QAAA,MAAM,kBAAkB,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC;AACzD,QAAA,MAAM,wBAAwB,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC;QAC/D,IACE,OAAO,CAAC,OAAO;YACf,SAAS;YACT,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,kBAAkB;YAClB,kBAAkB,GAAG,CAAC,EACtB;;AAEA,YAAA,IAAI,WAAW,KAAK,kBAAkB,EAAE;gBACtC,cAAc,CAAC,kBAAkB,CAAC,CAAC;aACpC;AAED,YAAA,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,UAAU,GAAG,kBAAkB,GAAG,CAAC,IAAI,kBAAkB,GAAG,wBAAyB,CAAC;;gBAG5F,IAAI,CAAC,UAAU,EAAE;AACf,oBAAA,cAAc,CAAC,CAAC,SAAS,KAAI;AAC3B,wBAAA,OAAO,SAAS,CAAC;AACnB,qBAAC,CAAC,CAAC;iBACJ;qBAAM;;AAEL,oBAAA,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE;wBACnC,MAAM,SAAS,GAAGC,wBAAY,CAC5B,OAAO,CAAC,OAAO,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EAAE,OAAO,EAC/B,SAAgB,CACjB,CAAC;;AAEF,wBAAA,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,EAAE;AACnD,4BAAA,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;yBACvC;AACD,wBAAA,aAAa,CAAC,OAAO,GAAG,SAAgB,CAAC;qBAC1C;;yBAEI;AACH,wBAAA,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM;AAC5D,4BAAA,GAAG,IAAI;AACR,yBAAA,CAAC,CAAC,CAAC;qBACL;iBACF;;gBAGD,IAAI,CAAC,oBAAoB,EAAE;AACzB,oBAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAU,CAAC,CAC9E,CAAC;oBACF,cAAc,CAAC,cAAc,CAAC,CAAC;iBAChC;;AAED,gBAAA,IAAI,kBAAkB,GAAG,wBAAyB,EAAE;AAClD,oBAAA,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAa,CAAC;AACnF,oBAAA,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;;oBAEjC,IAAI,GAAG,IAAI,kBAAkB,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE;AAC9C,wBAAA,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;;AAE9E,wBAAA,IAAI,YAAY,IAAI,YAAY,IAAI,IAAI,EAAE;;;AAGxC,4BAAA,MAAM,oBAAoB,GACxB,YAAY,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC;4BACjE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;4BAC7D,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;;AAE/D,4BAAA,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,oBAAoB,EAAE;AAClF,gCAAA,MAAM,sBAAsB,GAAGA,wBAAY,CACzC,OAAO,CAAC,OAAO,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EAAE,OAAO,CAChC,CAAC;AACF,gCAAA,MAAM,2BAA2B,GAAG,IAAI,GAAG,CACzC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAU,CAAC,CAC9E,CAAC;;AAEF,gCAAA,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;gCACxC,cAAc,CAAC,2BAA2B,CAAC,CAAC;6BAC7C;yBACF;qBACF;iBACF;aACF;SACF;AACH,KAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAEzE,IAAA,MAAM,iBAAiB,GAAGC,iBAAW,CACnC,CAAC,KAAuD,KAAI;AAC1D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC;;AAE/D,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAI,KAAK,CAAC,WAAW,CAAC,KAAgB,CAAC,GAAG,CAAC,EAAE;AACnE,YAAA,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE;gBAChE,cAAc,CAAC,SAAS,CAAC,CAAC;aAC3B;;YAED,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,WAAY,EAAE;gBAC9C,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC9B,sBAAsB,CAAC,EAAE,CAAC,CAAC;aAC5B;AACD,YAAA,wBAAwB,CAAC,OAAO,GAAG,KAAK,CAAC;SAC1C;KACF,EACD,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAC/C,CAAC;AAEF,IAAAC,mCAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAE9C,IAAA,OAAO,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,EAAE,SAAS,CAAC;AACtE,UAAE;AACE,YAAA,eAAe,EAAE,SAAS;YAC1B,gBAAgB;AAChB,YAAA,SAAS,EAAE,WAAW;AACvB,SAAA;AACH,UAAE;YACE,eAAe;YACf,gBAAgB;AAChB,YAAA,SAAS,EAAE,WAAW;SACvB,CAAC;AACR,CAAC;AAED;AACA,MAAM,mBAAmB,GAAG,CAC1B,eAA8C,EAC9C,gBAA+C,EAC/C,SAA4B,KAC1B;IACF,IAAI,eAAe,IAAI,IAAI;AAAE,QAAA,OAAO,IAAI,CAAC;AACpC,SAAA,IAAI,eAAe,IAAI,gBAAgB,IAAI,SAAS,EAAE;QACzD,MAAM,aAAa,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAChE,MAAM,UAAU,GACd,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC9D,QAAA,OAAO,UAAU,CAAC;KACnB;;AAAM,QAAA,OAAO,KAAK,CAAC;AACtB,CAAC,CAAC;AAEF;AACA,MAAM,aAAa,GAAG,CACpB,GAAyB,EACzB,WAAsC,KAC0B;IAChE;QACE,IAAI,GAAG,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE;YACtC,IAAI,IAAI,GAAG,CAAC,CAAC;AACb,YAAA,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,IAAI,YAAY,GAAkB,IAAI,CAAC;YACvC,IAAI,YAAY,GAAkB,IAAI,CAAC;AACvC,YAAA,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACvD,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;AAC3C,gBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1B,gBAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;oBAC5B,OAAO,EAAE,YAAY,EAAE,QAAS,EAAE,YAAY,EAAE,GAAI,EAAE,CAAC;iBACxD;AAAM,qBAAA,IAAI,QAAQ,GAAG,WAAW,EAAE;oBACjC,YAAY,GAAG,QAAQ,CAAC;oBACxB,YAAY,GAAG,GAAG,CAAC;AACnB,oBAAA,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;iBAChB;qBAAM;AACL,oBAAA,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;iBACjB;;AAED,gBAAA,IAAI,YAAY,IAAI,WAAW,GAAG,YAAY,EAAE;;;oBAG9C,YAAY;AACV,wBAAA,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,aAAa,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;8BAC7E,GAAG,GAAG,CAAC;8BACP,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,eAAe;AACxD,kCAAE,GAAG;AACL,kCAAE,GAAG,GAAG,CAAC,IAAI,CAAC;sCACZ,GAAG,GAAG,CAAC;sCACP,CAAC,CAAC;iBACT;;qBAEI;AACH,oBAAA,YAAY,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC3C;aACF;YACD,OAAO,EAAE,YAAY,EAAE,YAAa,EAAE,YAAY,EAAE,YAAa,EAAE,CAAC;SACrE;;YAAM,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAC1D;AACH,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTabBar-ec20851a.js","sources":["../../src/hooks/PRIVATE_useTabBar/useTabBar.ts"],"sourcesContent":["import { useState, useRef, useEffect, useCallback } from 'preact/hooks';\nimport { mergeProps } from '../../utils/UNSAFE_mergeProps';\nimport {\n getPrevNextKeyUsingRef,\n getFirstVisibleKey,\n getKey,\n keyExtractor,\n findElementByKey,\n getItemKeysArray\n} from '../../utils/PRIVATE_collectionUtils';\nimport { useCollectionFocusRing } from '../PRIVATE_useCollectionFocusRing';\nimport { useCurrentKey } from '../PRIVATE_useCurrentKey';\nimport { useId } from '../UNSAFE_useId';\nimport type { ComponentProps, ContextType, RefObject } from 'preact';\nimport type { TabBarContext, TabBarLayout } from '../../UNSAFE_TabBarCommon';\nimport { useReorderableContext } from '../../hooks/PRIVATE_useReorderable/useReorderableContext';\nimport { Menu } from '../../UNSAFE_Menu';\nimport { TabBarContextMenuConfig } from '../../UNSAFE_TabBarCommon';\nimport { useContextMenuGesture } from '../../hooks/UNSAFE_useContextMenuGesture';\nimport { getDefaultContextMenu } from '../../UNSAFE_TabBar/TabBarContextMenu';\nimport { TabBarItemContextMenuContext } from '../../UNSAFE_TabBarCommon/TabBar.types';\nimport { useUser } from '../../hooks/UNSAFE_useUser';\nimport { useTranslationBundle } from '../../hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '../../resources/nls/bundle';\n\ntype TabBarContextValue = ContextType<typeof TabBarContext>;\n\nexport type useTabBarOptions<K extends string | number> = {\n class?: string;\n display?: TabBarContextValue['display'];\n edge?: 'bottom' | 'top';\n onRemove?: TabBarContextValue['onRemove'];\n onSelect?: TabBarContextValue['onSelect'];\n ref?: RefObject<HTMLDivElement>;\n selection?: TabBarContextValue['selection'];\n size?: TabBarContextValue['size'];\n children?: ComponentProps<typeof TabBarLayout>['children'];\n contextMenuConfig?: TabBarContextMenuConfig<K>;\n};\n\nconst ITEM_SELECTOR = '[role=\"tab\"]';\nconst REMOVABLE_ICON_SELECTOR = '[data-oj-tabbar-item-remove-icon]';\nexport const REMOVABLE_ITEM_ATTRIBUTE = 'data-oj-removable';\n\ntype MenuProps = Pick<\n ComponentProps<typeof Menu>,\n 'anchorRef' | 'initialFocus' | 'placement' | 'offsetValue' | 'isOpen'\n>;\n\nconst TOUCH_OFFSET_VALUE = 40;\n\nconst menuPropGestureStates: Record<\n 'mouse' | 'keyboard' | 'touch',\n Omit<Required<MenuProps>, 'anchorRef' | 'isOpen'>\n> = {\n mouse: {\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0\n },\n keyboard: {\n initialFocus: 'firstItem',\n placement: 'bottom-start',\n offsetValue: 0\n },\n touch: {\n initialFocus: 'menu',\n placement: 'end',\n offsetValue: TOUCH_OFFSET_VALUE\n }\n};\n\nconst initialMenuProps: MenuProps = {\n isOpen: false,\n initialFocus: 'menu',\n placement: 'bottom-start',\n offsetValue: 0,\n anchorRef: { current: null }\n};\n\n/**\n * Implements TabBar behavior for focus and keyboad handling\n */\nexport function useTabBar<K extends string | number>(options: useTabBarOptions<K>) {\n const {\n children,\n class: className,\n display,\n edge = 'top',\n selection,\n onSelect,\n onRemove,\n ref: userRef,\n size,\n contextMenuConfig\n } = options;\n\n const { direction } = useUser();\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const internalRef = useRef<HTMLDivElement>(null);\n const rootRef = userRef || internalRef;\n\n const tabId = useId();\n const [currentKey, setCurrentKey] = useState<K | undefined>(selection as K);\n const [hideTooltip, setHideTooltip] = useState(false);\n\n const tabItemPrefix = tabId + '_';\n\n const contextMenuDescriptionId = 'contextMenu_' + useId();\n const contextMenuDescription = translations.tabbar_labelContextMenu();\n\n /**\n * A reference to the previous set of tab keys that this TabBar\n * contains before children were re-rendered. In the event the \"current\" tab\n * is removed and the \"currentKey\" reference is broken, we can redirect\n * the \"currentKey\" to another tab based on the index of the removed tab.\n */\n const prevTabKeys = useRef<(string | number | undefined)[]>();\n\n useEffect(() => {\n if (rootRef.current) {\n const tabKeys = getItemKeysArray(rootRef.current, ITEM_SELECTOR);\n if (currentKey == null && tabKeys) {\n if (selection != null && tabKeys.includes(selection as K)) {\n setCurrentKey(selection as K);\n } else if (tabKeys.length > 0) {\n setCurrentKey(tabKeys[0] as K);\n }\n }\n if (currentKey != null && tabKeys && !tabKeys.includes(currentKey as K)) {\n //If prevTabs does not exist set the first visible key as currentKey\n prevTabKeys.current\n ? setCurrentKey(findNextValidKey(currentKey, tabKeys, prevTabKeys.current) as K)\n : setCurrentKey(tabKeys[0] as K);\n }\n prevTabKeys.current = tabKeys as K[];\n }\n }, [children, currentKey, rootRef, selection]);\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, [\n 'ArrowRight',\n 'ArrowLeft',\n 'Home',\n 'End'\n ]);\n\n const reorderableContext = useReorderableContext();\n const { currentKeyProps } = useCurrentKey(\n (element) =>\n onRemove\n ? extractOnlyItemKey(element, ITEM_SELECTOR, REMOVABLE_ICON_SELECTOR)\n : keyExtractor(element, ITEM_SELECTOR),\n false,\n false,\n undefined,\n undefined,\n getPrevNextKeyUsingRef(rootRef, currentKey, true, ITEM_SELECTOR),\n getPrevNextKeyUsingRef(rootRef, currentKey, false, ITEM_SELECTOR),\n currentKey,\n (detail) => {\n const key = detail.value as K;\n setCurrentKey(key);\n setHideTooltip(false);\n }\n );\n\n useEffect(() => {\n if (reorderableContext) {\n reorderableContext.currentItemKey.current = currentKey;\n }\n }, [currentKey, reorderableContext]);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (rootRef.current && currentKey != null) {\n if (event.key === 'Home' || event.key === 'End') {\n const tabBarItemKey = getItemKeysArray(rootRef.current, ITEM_SELECTOR);\n event.preventDefault();\n setCurrentKey?.(tabBarItemKey[event.key === 'Home' ? 0 : tabBarItemKey.length - 1] as K);\n }\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect?.({ value: currentKey });\n }\n if (event.key === 'Delete') {\n const tabBarItem = findElementByKey(\n rootRef.current,\n currentKey,\n ITEM_SELECTOR\n ) as HTMLElement;\n if (tabBarItem.hasAttribute(REMOVABLE_ITEM_ATTRIBUTE)) {\n onRemove?.({ value: currentKey });\n }\n }\n if (event.key === 'Escape') {\n setHideTooltip(true);\n }\n }\n };\n\n const onFocus = () => {\n if (rootRef.current && currentKey === undefined) {\n const key = getFirstVisibleKey(rootRef.current, ITEM_SELECTOR);\n if (key != null) {\n setCurrentKey(key as K);\n }\n }\n };\n\n const [contextMenuContext, setContextMenuContext] = useState<TabBarItemContextMenuContext<K>>();\n\n const [menuProps, setMenuProps] = useState<MenuProps>(initialMenuProps);\n const [accStatusInfo, setAccStatusInfo] = useState<string>();\n\n const { triggerProps } = useContextMenuGesture(\n ({ gesture, anchor, target }) => {\n let anchorBasedOnGesture = anchor;\n let itemKey = currentKey as K;\n if (gesture === 'keyboard') {\n //We find the element where the position of the menu is going to be based of\n const elem = findElementByKey(\n rootRef.current as HTMLElement,\n currentKey as K,\n ITEM_SELECTOR\n );\n //We set the correct anchor\n anchorBasedOnGesture = elem ? elem : anchor;\n } else {\n //We search for the key using the target of the event\n const key = keyExtractor(target as HTMLElement, ITEM_SELECTOR);\n\n //On touch devices, the keyExtractor returns null because target of touch event is the entire tabbar. Hence we make use of currentkey since the context menu is always launched from selected item and its key is currentKey\n itemKey = key != null ? (key as K) : (currentKey as K);\n }\n let tabKeysArray;\n let isRemovableItem = false;\n const isReorderable = reorderableContext?.onReorder != null;\n if (rootRef.current) {\n tabKeysArray = isReorderable\n ? (getItemKeysArray(rootRef.current, ITEM_SELECTOR) as K[])\n : undefined;\n isRemovableItem =\n getItemAttribute(itemKey, rootRef.current, REMOVABLE_ITEM_ATTRIBUTE) != null;\n }\n const isRemovable = onRemove != null && isRemovableItem;\n const defaultContext = getDefaultContextMenu<K>({\n // For default menu items the existence of REMOVABLE_ICON_SELECTOR is the indicator that it is removable because we render the default menu in touch devices not the application.\n // Furthermore in corepack due to delegations onRemove is always defined as it is a even handler hence not a good check for isRemovable.\n isRemovable: isRemovable,\n handleRemove: onRemove,\n handleReorder: isReorderable ? reorderableContext.onReorder : undefined,\n itemKey: itemKey,\n tabKeys: tabKeysArray,\n direction: direction,\n itemLabels: {\n labelRemove: isRemovable ? translations.tabbar_labelRemove() : undefined,\n labelMoveLeft: isReorderable ? translations.tabbar_labelMoveLeft() : undefined,\n labelMoveRight: isReorderable ? translations.tabbar_labelMoveRight() : undefined\n },\n handleAccStatus: (detail) => {\n const removeItemLabel = getItemLabel(detail.removedKey!, rootRef.current!) as string;\n const removeStatus =\n isRemovable && detail.removedKey\n ? translations.tabbar_accAnnounceRemovedKey({ itemKey: removeItemLabel })\n : '';\n const destinationItemLabel = getItemLabel(\n detail.destinationKey!,\n rootRef.current!\n ) as string;\n const reorderStatus =\n isReorderable && detail.destinationKey\n ? translations.accAnnounceMovedKey({\n // This acc info is for reordering using context menu hence as per spec source item key is not required.\n itemKey: '',\n position: detail.position!,\n referenceKey: destinationItemLabel\n })\n : '';\n setAccStatusInfo(removeStatus + reorderStatus);\n }\n });\n setContextMenuContext(defaultContext);\n\n setMenuProps({\n ...menuPropGestureStates[gesture],\n anchorRef: { current: anchorBasedOnGesture },\n // This is set so that when no contextMenuConfig is available we need not open it. Example: Apps may choose to open only for removable items and return contextMenuConfig as undefined for non removable ones in such cases it will prevent it from opening.\n isOpen: contextMenuConfig != null\n });\n },\n {\n isDisabled: !contextMenuConfig //If there is no a context menu renderer we disable the hook\n }\n );\n\n const handleCloseContextMenu = useCallback<Required<ComponentProps<typeof Menu>>['onClose']>(\n (detail) => {\n //Focus has to be set on the current target that was obtained\n //during context menu gesture when menu is dismissed or item is \"selected\"\n if (detail.reason === 'dismissed' || detail.reason === 'itemAction') {\n setCurrentKey(contextMenuContext?.itemKey);\n rootRef.current?.focus();\n }\n // We close the menu.The only prop that matters here is isOpen\n setMenuProps({ ...initialMenuProps });\n },\n [rootRef, contextMenuContext?.itemKey]\n );\n\n const eventProps = mergeProps({ onKeyDown, onFocus }, triggerProps);\n\n return {\n rootProps: mergeProps(\n {\n 'aria-activedescendant': currentKey ? tabItemPrefix + currentKey : '',\n 'aria-multiselectable': false,\n class: className,\n ref: rootRef,\n role: 'tablist',\n tabIndex: 0\n },\n currentKeyProps,\n focusRingProps,\n eventProps\n ),\n tabBarContext: {\n currentKey,\n display,\n isEdgeBottom: edge === 'bottom',\n layout: 'condense',\n onRemove,\n onSelect,\n showFocusRing,\n hideTooltip,\n selection,\n size,\n tabItemPrefix\n },\n menuProps: { ...menuProps, onClose: handleCloseContextMenu },\n contextMenuContext,\n contextMenuDescriptionId,\n contextMenuDescription,\n accStatusInfo\n } as const;\n}\n\n//useCurrentKey use click capture that captures first click, which is on remove button\n//when we remove and sets the item being removed to currentKey. So we should not allow\n//this if click is on remove button\nconst extractOnlyItemKey = (element: HTMLElement, itemSelector: string, itemEliminator: string) => {\n const tabBarItem = element.closest(itemSelector);\n if (tabBarItem) {\n if (tabBarItem.hasAttribute(REMOVABLE_ITEM_ATTRIBUTE)) {\n const removeButton = element.closest(itemEliminator);\n if (removeButton && tabBarItem?.contains(removeButton)) {\n return null;\n }\n }\n return getKey(tabBarItem as HTMLElement);\n }\n return null;\n};\n\nconst findNextValidKey = <K>(currentKey: K, currTabs: K[], prevTabs: K[]) => {\n const index = prevTabs.indexOf(currentKey);\n // update current key to be the first one if currentKey is invalid\n if (index === -1) {\n return currTabs[0];\n }\n let nextIndex = 0;\n let isLastKey = false;\n if (index === prevTabs.length - 1) {\n nextIndex = index - 1;\n isLastKey = true;\n } else {\n nextIndex = index + 1;\n }\n while (nextIndex !== index && nextIndex > -1 && nextIndex < prevTabs.length) {\n const nextKey = prevTabs[nextIndex];\n if (currTabs.indexOf(nextKey) !== -1) {\n return nextKey;\n }\n isLastKey ? nextIndex-- : nextIndex++;\n }\n // update current key to be the first one if we can't find a suitable next key\n return currTabs[0];\n};\n\n// Utility that returns the value for a attribute related to the role=\"tab\" item.\nexport const getItemAttribute = <K extends string | number>(\n itemKey: K,\n root: HTMLElement,\n attribute: string\n) => {\n const tabBarItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (tabBarItem) {\n const tabBarItemAttribute = tabBarItem.hasAttribute(attribute)\n ? tabBarItem.getAttribute(attribute)\n : null;\n return tabBarItemAttribute;\n }\n return;\n};\n\n// Utility that returns the visible inner text inside the role=\"tab\" item.\nconst getItemLabel = <K extends string | number>(itemKey: K, root: HTMLElement) => {\n const tabBarItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (tabBarItem) {\n return tabBarItem.innerText;\n }\n return;\n};\n"],"names":["useUser","useTranslationBundle","useRef","useId","useState","useEffect","getItemKeysArray","useCollectionFocusRing","useReorderableContext","useCurrentKey","keyExtractor","getPrevNextKeyUsingRef","findElementByKey","getFirstVisibleKey","useContextMenuGesture","getDefaultContextMenu","useCallback","mergeProps","getKey"],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- /* @oracle/oraclejet-preact: undefined */
2
- import { jsx } from 'preact/jsx-runtime';
3
- import { createContext, toChildArray } from 'preact';
4
- import { useContext, useMemo } from 'preact/hooks';
5
- import { forwardRef } from 'preact/compat';
6
- import './FormContext-be2a6313.js';
7
- import { u as useFormContext } from './useFormContext-66b908c0.js';
8
- import { F as FormFieldContext } from './FormFieldContext-47ca0c20.js';
9
- import { u as useFormFieldContextProps } from './useFormFieldContextProps-31bbc12f.js';
10
- import './CheckboxSetStyles.styles.css';
11
- import { u as useId } from './useId-03dbfdf0.js';
12
- import { F as Flex } from './Flex-f0f1bb0d.js';
13
- import { x as xUnits } from './utils-c307ad0a.js';
14
- import { d as defaultLabelEdgeForVariant } from './formControlUtils-301a8644.js';
15
- import { C as CheckboxRadioField } from './CheckboxRadioField-b332f3ef.js';
16
-
17
- const CheckboxSetContext = createContext({});
18
- const useCheckboxSetContext = () => useContext(CheckboxSetContext);
19
-
20
- var styles = {ul:'CheckboxSetStyles_styles_ul__68p6630'};
21
-
22
- /**
23
- * A CheckboxSet allows the user to select one or more options from a set.
24
- */
25
- const CheckboxSet = forwardRef(({ 'aria-describedby': ariaDescribedBy, assistiveText, columnSpan, direction = 'column', helpSourceLink, helpSourceText, isDisabled: propIsDisabled, isReadonly: propIsReadonly, isRequired = false, label, labelEdge: propLabelEdge, labelStartWidth: propLabelStartWidth, messages, onCommit, userAssistanceDensity: propUserAssistanceDensity, value, variant = 'default', children, testId }, ref) => {
26
- const hasValue = value !== undefined ? value.size > 0 : false;
27
- const baseId = useId();
28
- const { isDisabled: isFormDisabled, isReadonly: isFormReadonly, labelEdge: formLabelEdge, labelStartWidth: formLabelStartWidth, userAssistanceDensity: formUserAssistanceDensity } = useFormContext();
29
- // default to FormContext values if component properties are not specified
30
- const isDisabled = propIsDisabled ?? isFormDisabled;
31
- const isReadonly = propIsReadonly ?? isFormReadonly;
32
- const labelEdge = propLabelEdge ?? formLabelEdge ?? defaultLabelEdgeForVariant(variant);
33
- const labelStartWidth = propLabelStartWidth ?? formLabelStartWidth;
34
- const userAssistanceDensity = propUserAssistanceDensity ?? formUserAssistanceDensity;
35
- const formFieldContext = useFormFieldContextProps({
36
- hasValue,
37
- isDisabled,
38
- isReadonly
39
- });
40
- const checkboxSetContext = useMemo(() => ({
41
- name: baseId,
42
- value,
43
- onCommit
44
- }), [baseId, onCommit, value]);
45
- // wrap each CheckboxItem in an <li> tag and the entire set with <ul>
46
- const childrenArray = toChildArray(children).filter(Boolean);
47
- const wrappedChildren = childrenArray.map((item) => jsx("li", { children: item }));
48
- return (jsx(FormFieldContext.Provider, { value: formFieldContext, children: jsx(CheckboxRadioField, { "aria-describedby": ariaDescribedBy, assistiveText: assistiveText, baseId: baseId, columnSpan: columnSpan, helpSourceLink: helpSourceLink, helpSourceText: helpSourceText, isDisabled: isDisabled, isReadonly: isReadonly, isRequired: isRequired, label: label, labelEdge: labelEdge, labelStartWidth: labelStartWidth, parentComponentVariant: "checkboxSet", messages: messages, userAssistanceDensity: userAssistanceDensity, hasValue: hasValue, role: "group", testId: testId, ref: ref, children: jsx(CheckboxSetContext.Provider, { value: checkboxSetContext, children: jsx(Flex, { direction: direction, ...(direction === 'row' && { gap: [0, xUnits(8)], wrap: 'wrap' }), children: jsx("ul", { className: styles.ul, children: wrappedChildren }) }) }) }) }));
49
- });
50
-
51
- export { CheckboxSet as C, CheckboxSetContext as a, useCheckboxSetContext as u };
52
- //# sourceMappingURL=CheckboxSet-3e0ce80c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckboxSet-3e0ce80c.js","sources":["../../src/UNSAFE_CheckboxSet/CheckboxSetContext.ts","../../src/UNSAFE_CheckboxSet/CheckboxSet.tsx"],"sourcesContent":["import { createContext } from 'preact';\nimport { useContext } from 'preact/hooks';\n\nimport { ValueUpdateDetail } from '../utils/UNSAFE_valueUpdateDetail';\n\ntype CheckboxSetContextValue = {\n name: string;\n value?: Set<string | number>;\n onCommit?: (detail: ValueUpdateDetail<Set<string | number>>) => void;\n};\n\nconst CheckboxSetContext = createContext<CheckboxSetContextValue>({} as CheckboxSetContextValue);\nconst useCheckboxSetContext = () => useContext(CheckboxSetContext);\n\nexport { CheckboxSetContext, useCheckboxSetContext };\n","import { ComponentChildren, ComponentProps, ContextType, Ref, toChildArray, JSX } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport { forwardRef } from 'preact/compat';\n\nimport { CheckboxSetContext } from './CheckboxSetContext';\nimport { CheckboxRadioField } from '#PRIVATE_CheckboxRadioField';\nimport { InlineUserAssistance, UserAssistanceDensityType } from '#UNSAFE_UserAssistance';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { FormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { FormVariantContext } from '#hooks/UNSAFE_useFormVariantContext';\nimport { useFormFieldContextProps } from '#hooks/UNSAFE_useFormFieldContextProps';\nimport { FlexboxProps } from '#utils/UNSAFE_interpolations/flexbox';\nimport { Size } from '#utils/UNSAFE_size';\nimport { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { FocusableHandle } from '#hooks/UNSAFE_useFocusableTextField';\nimport { styles } from './CheckboxSetStyles.css';\nimport type { UnpackSignals } from '@oracle/oraclejet-internal-utilities/attributeUtils';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { LayoutColumnSpan } from '#utils/UNSAFE_styles/Layout';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\nimport { Flex } from '#UNSAFE_Flex';\nimport { xUnits } from '#UNSAFE_Theme';\nimport { defaultLabelEdgeForVariant } from '#utils/PRIVATE_formControlUtils';\n\ntype InlineUserAssistanceProps = ComponentProps<typeof InlineUserAssistance>;\n\ntype Props = {\n /**\n * The ID of an element (or space separated IDs of multiple elements) that\n * describes the input.\n */\n 'aria-describedby'?: UnpackSignals<JSX.AriaAttributes>['aria-describedby'];\n /**\n * Text to provide guidance to help the user understand what data to enter.\n */\n assistiveText?: InlineUserAssistanceProps['assistiveText'];\n /**\n * set of CheckboxItems\n */\n children: ComponentChildren;\n /**\n * Specifies how many columns to span in a FormLayout with direction === 'row'\n */\n columnSpan?: LayoutColumnSpan;\n /**\n * layout direction of the children elements\n */\n direction?: FlexboxProps['direction'];\n /**\n * Help source URL associated with the component.\n */\n helpSourceLink?: InlineUserAssistanceProps['helpSourceLink'];\n /**\n * Custom text to be rendered for the <code>helpSourceLink</code>.\n */\n helpSourceText?: InlineUserAssistanceProps['helpSourceText'];\n /**\n * Specifies whether the checkbox set requires a selection to be made.\n */\n isRequired?: boolean;\n /**\n * Specifies if the checkbox set is read-only.\n */\n isReadonly?: boolean;\n /**\n * Specifies if the checkbox set is disabled.\n */\n isDisabled?: boolean;\n /**\n * Label text for the group of checkbox items.\n */\n label: string;\n /**\n * Specifies where the label is positioned relative to the field.\n */\n labelEdge?: 'none' | 'top' | 'start' | 'inside';\n /**\n * Specifies the width of the label when <code>labelEdge</code> is <code>\"start\"</code>.\n */\n labelStartWidth?: Size;\n /**\n * Messages to show on screen that are associated with the component.\n */\n messages?: InlineUserAssistanceProps['messages'];\n /**\n * Callback invoked each time the user changes selected option.\n */\n onCommit: (detail: ValueUpdateDetail<Set<string | number>>) => void;\n /**\n * Specifies the density of the user assistance presentation. It can be set to:\n * <ul>\n * <li><code>'reflow'</code>: Show inline. Layout will reflow when text is displayed.</li>\n * <li><code>'efficient'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * <li><code>'compact'</code>: Show inline and reserve space to prevent layout reflow when user\n * assistance text is displayed.</li>\n * </ul>\n */\n userAssistanceDensity?: UserAssistanceDensityType;\n /**\n * Value of the selected checkbox option.\n */\n value?: Set<string | number>;\n /**\n * Specifies the form variant styling contract for the component.\n * Supported values are:\n * <ul>\n * <li><code>'default'</code>: the standalone/default form control presentation.</li>\n * <li><code>'embedded'</code>: embedded collection styling.</li>\n * <li><code>'legacyEmbedded'</code>: legacy collection styling.</li>\n * </ul>\n */\n variant?: ContextType<typeof FormVariantContext>;\n} & TestIdProps;\n/**\n * A CheckboxSet allows the user to select one or more options from a set.\n */\nexport const CheckboxSet = forwardRef(\n (\n {\n 'aria-describedby': ariaDescribedBy,\n assistiveText,\n columnSpan,\n direction = 'column',\n helpSourceLink,\n helpSourceText,\n isDisabled: propIsDisabled,\n isReadonly: propIsReadonly,\n isRequired = false,\n label,\n labelEdge: propLabelEdge,\n labelStartWidth: propLabelStartWidth,\n messages,\n onCommit,\n userAssistanceDensity: propUserAssistanceDensity,\n value,\n variant = 'default',\n children,\n testId\n }: Props,\n ref?: Ref<FocusableHandle>\n ) => {\n const hasValue = value !== undefined ? value.size > 0 : false;\n const baseId = useId();\n\n const {\n isDisabled: isFormDisabled,\n isReadonly: isFormReadonly,\n labelEdge: formLabelEdge,\n labelStartWidth: formLabelStartWidth,\n userAssistanceDensity: formUserAssistanceDensity\n } = useFormContext();\n\n // default to FormContext values if component properties are not specified\n const isDisabled = propIsDisabled ?? isFormDisabled;\n const isReadonly = propIsReadonly ?? isFormReadonly;\n const labelEdge = propLabelEdge ?? formLabelEdge ?? defaultLabelEdgeForVariant(variant);\n const labelStartWidth = propLabelStartWidth ?? formLabelStartWidth;\n const userAssistanceDensity = propUserAssistanceDensity ?? formUserAssistanceDensity;\n\n const formFieldContext = useFormFieldContextProps({\n hasValue,\n isDisabled,\n isReadonly\n });\n\n const checkboxSetContext = useMemo(\n () => ({\n name: baseId,\n value,\n onCommit\n }),\n [baseId, onCommit, value]\n );\n\n // wrap each CheckboxItem in an <li> tag and the entire set with <ul>\n const childrenArray = toChildArray(children).filter(Boolean);\n const wrappedChildren = childrenArray.map((item) => <li>{item}</li>);\n\n return (\n <FormFieldContext.Provider value={formFieldContext}>\n <CheckboxRadioField\n aria-describedby={ariaDescribedBy}\n assistiveText={assistiveText}\n baseId={baseId}\n columnSpan={columnSpan}\n helpSourceLink={helpSourceLink}\n helpSourceText={helpSourceText}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isRequired={isRequired}\n label={label}\n labelEdge={labelEdge}\n labelStartWidth={labelStartWidth}\n parentComponentVariant=\"checkboxSet\"\n messages={messages}\n userAssistanceDensity={userAssistanceDensity}\n hasValue={hasValue}\n role=\"group\"\n testId={testId}\n ref={ref}>\n <CheckboxSetContext.Provider value={checkboxSetContext}>\n <Flex\n direction={direction}\n {...(direction === 'row' && { gap: [0, xUnits(8) as Size], wrap: 'wrap' })}>\n <ul className={styles.ul}>{wrappedChildren}</ul>\n </Flex>\n </CheckboxSetContext.Provider>\n </CheckboxRadioField>\n </FormFieldContext.Provider>\n );\n }\n);\n"],"names":["_jsx"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabBar-36932ca2.js","sources":["../../src/UNSAFE_TabBar/TabBar.tsx"],"sourcesContent":["import type { ComponentChildren, Ref, RefObject } from 'preact';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { TabBarContext, TabBarLayout, TabBarContextMenuConfig } from '../UNSAFE_TabBarCommon';\nimport { styles } from './themes/TabBarStyles.css';\nimport { TestIdProps } from '../hooks/UNSAFE_useTestId';\nimport { useTabBar } from '../hooks/PRIVATE_useTabBar';\nimport { forwardRef } from 'preact/compat';\nimport { TabBarContextMenu } from './TabBarContextMenu';\nexport {\n TabBarItem,\n OverflowTabBarItem,\n TabBarContext,\n useTabBarContext,\n TabBarLayout,\n useProgressiveTruncation,\n TabBarLinkItem\n} from '../UNSAFE_TabBarCommon';\n\n/**\n * type for payload of current key change event handler\n */\nexport type CurrentKeyDetail<K> = {\n value: K;\n};\n\n/**\n * type for payload of selection change event handler\n */\ntype SelectionDetail<K> = {\n value: K;\n};\n\n/**\n * type for payload of remove event handler\n */\ntype RemoveDetail<K> = {\n value: K;\n};\n\ntype DisplayProps =\n | {\n /**\n * Controls the content layout of the TabBarItem: 'standard' lays out the contents horizontally,\n *'icons' hides the label,\n */\n display?: 'standard' | 'icons';\n /**\n * The size indicates how tall the TabBarItem is rendered.\n * Note: It is not possible to specify 'size' when 'display=\"stacked\".\n */\n size?: 'md' | 'lg';\n }\n | {\n /**\n *'stacked' stacks the icon on top of the label.\n * Note: It is not possible to specify 'size' when 'display=\"stacked\".\n */\n display?: 'stacked';\n size?: 'never';\n };\n\nexport type TabBarProps<K extends string | number> = DisplayProps & {\n /**\n * A set of TabBarItem(s) that TabBar will hold\n */\n children: ComponentChildren;\n /**\n * Whether to stretch the tab bar items to occupy available space or to condense items\n */\n layout?: 'stretch' | 'condense';\n /**\n * The position of the TabBar. Valid Values: top and bottom.\n * 'top' is used when TabBar is placed on top of content section and the selection\n * indicator would be placed below the TabBarItem.\n * 'bottom' is used when TabBar is placed on bottom of content section and the selection\n * indicator would be placed above the TabBarItem.\n */\n edge?: 'top' | 'bottom';\n /**\n * Key of the selected item.\n */\n selection?: K;\n /**\n * Callback function to handle when user selects a tab.\n * The callback is also invoked when a user selects a tab that is already selected.\n */\n onSelect?: <K extends string | number>(detail: SelectionDetail<K>) => void;\n /**\n * Callback function to handle remove\n */\n onRemove?: <K extends string | number>(detail: RemoveDetail<K>) => void;\n /**\n * Accepts the ID of an element that provides instructions for interaction with the TabBar.\n */\n 'aria-describedby'?: string;\n /**\n * An aria-label which defines a string value that labels this TabBar.\n * Either aria-label or aria-labelledby should be specified in order to make TabBar accessible.\n */\n 'aria-label'?: string;\n\n /**\n * An aria-labelledby which identifies the element(s) that labels this TabBar.\n * Either aria-label or aria-labelledby should be specified in order to make TabBar accessible.\n */\n 'aria-labelledby'?: string;\n\n /**\n * Configuration used to specify a context menu.\n */\n contextMenuConfig?: TabBarContextMenuConfig<K>;\n};\n/**\n * A tab bar allows navigation between different content sections.\n */\nexport const TabBar = forwardRef(\n <K extends string | number>(\n {\n children,\n layout = 'stretch',\n display = 'standard',\n size = 'md',\n edge = 'top',\n selection,\n onSelect,\n onRemove,\n 'aria-describedby': ariaDescribedBy,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n contextMenuConfig\n }: TabBarProps<K> & TestIdProps,\n ref?: Ref<HTMLDivElement>\n ) => {\n const rootRef = ref as RefObject<HTMLDivElement>;\n\n const {\n rootProps,\n tabBarContext,\n menuProps,\n contextMenuContext,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo\n } = useTabBar({\n class: styles.tabBarBase,\n edge: edge,\n onRemove,\n onSelect,\n ref: rootRef,\n selection,\n size,\n children,\n contextMenuConfig\n });\n\n const isContextMenuAvailable = contextMenuConfig != null;\n\n return (\n <>\n <TabBarContext.Provider value={tabBarContext}>\n <div\n {...rootProps}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-haspopup={contextMenuConfig != null ? true : false}\n aria-describedby={\n isContextMenuAvailable && contextMenuDescriptionId\n ? ariaDescribedBy\n ? `${ariaDescribedBy} ${contextMenuDescriptionId}`\n : contextMenuDescriptionId\n : ariaDescribedBy\n }>\n <TabBarLayout layout={layout} display={display}>\n {children}\n </TabBarLayout>\n </div>\n </TabBarContext.Provider>\n {isContextMenuAvailable && contextMenuDescriptionId && (\n <span id={contextMenuDescriptionId}>\n <HiddenAccessible>{contextMenuDescription}</HiddenAccessible>\n </span>\n )}\n {isContextMenuAvailable && accStatusInfo && <LiveRegion>{accStatusInfo}</LiveRegion>}\n {isContextMenuAvailable && (\n <TabBarContextMenu\n {...menuProps}\n contextMenuConfig={contextMenuConfig}\n contextMenuContext={contextMenuContext!}\n />\n )}\n </>\n );\n }\n);\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHA;;AAEG;MACU,MAAM,GAAG,UAAU,CAC9B,CACE,EACE,QAAQ,EACR,MAAM,GAAG,SAAS,EAClB,OAAO,GAAG,UAAU,EACpB,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,KAAK,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAAE,eAAe,EACnC,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,iBAAiB,EACY,EAC/B,GAAyB,KACvB;IACF,MAAM,OAAO,GAAG,GAAgC,CAAC;AAEjD,IAAA,MAAM,EACJ,SAAS,EACT,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,aAAa,EACd,GAAG,SAAS,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC,UAAU;AACxB,QAAA,IAAI,EAAE,IAAI;QACV,QAAQ;QACR,QAAQ;AACR,QAAA,GAAG,EAAE,OAAO;QACZ,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,iBAAiB;AAClB,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,sBAAsB,GAAG,iBAAiB,IAAI,IAAI,CAAC;AAEzD,IAAA,QACEA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEC,GAAC,CAAA,aAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,aAAa,EAAA,QAAA,EAC1CA,GACM,CAAA,KAAA,EAAA,EAAA,GAAA,SAAS,gBACD,SAAS,EAAA,iBAAA,EACJ,cAAc,EAAA,eAAA,EAChB,iBAAiB,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,EAErD,kBAAA,EAAA,sBAAsB,IAAI,wBAAwB;AAChD,0BAAE,eAAe;AACf,8BAAE,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,wBAAwB,CAAE,CAAA;AAClD,8BAAE,wBAAwB;AAC5B,0BAAE,eAAe,EAErB,QAAA,EAAAA,GAAA,CAAC,YAAY,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAC3C,QAAA,EAAA,QAAQ,EACI,CAAA,EAAA,CACX,EACiB,CAAA,EACxB,sBAAsB,IAAI,wBAAwB,KACjDA,GAAM,CAAA,MAAA,EAAA,EAAA,EAAE,EAAE,wBAAwB,EAChC,QAAA,EAAAA,GAAA,CAAC,gBAAgB,EAAE,EAAA,QAAA,EAAA,sBAAsB,EAAoB,CAAA,EAAA,CACxD,CACR,EACA,sBAAsB,IAAI,aAAa,IAAIA,GAAC,CAAA,UAAU,EAAE,EAAA,QAAA,EAAA,aAAa,EAAc,CAAA,EACnF,sBAAsB,KACrBA,GAAC,CAAA,iBAAiB,EACZ,EAAA,GAAA,SAAS,EACb,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAmB,EAAA,CACvC,CACH,CAAA,EAAA,CACA,EACH;AACJ,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDetectHorizontalOverflow-9b684feb.js","sources":["../../src/hooks/PRIVATE_useDetectHorizontalOverflow/useDetectHorizontalOverflow.ts"],"sourcesContent":["import { RefObject } from 'preact';\nimport { useState, useLayoutEffect, useRef, StateUpdater, useCallback } from 'preact/hooks';\nimport { useResizeObserver } from '../../hooks/UNSAFE_useResizeObserver';\nimport { Size } from '../../utils/UNSAFE_size';\nimport { getTabWidths } from '../../utils/PRIVATE_tabBarUtils';\nimport type { TrailingContentInfo } from '../../utils/PRIVATE_tabBarUtils';\n\ntype TabDimensions<K extends string | number> = {\n key: K;\n maxWidth: number;\n nonTextWidth?: number;\n needsTruncation?: boolean;\n cumulativeWidth?: number;\n};\n\n//The minimum width of the overflowtabbaritem, it can be rendered with width greater than this based on available width\nconst MORE_ITEM_WIDTH = 48;\nconst LABEL_MIN_WIDTH = 96;\nconst TAB_BORDER = 6;\n//This is the minWidth a tab will have if it has only a label.\nconst TAB_MIN_WIDTH = LABEL_MIN_WIDTH + TAB_BORDER;\n\nexport type useDetectOverflowProps<K extends string | number> = {\n rootRef: RefObject<HTMLDivElement>;\n keysArray: (K | undefined)[];\n isTruncationDisabled?: boolean;\n};\n\n/**\n * Implements overflow detection and calculation\n */\nexport function useDetectHorizontalOverflow<K extends string | number>({\n rootRef,\n keysArray,\n isTruncationDisabled = true\n}: useDetectOverflowProps<K>) {\n const [visibleItemKeys, setVisibleItemKeys] = useState<(K | undefined)[]>();\n const [overflowItemKeys, setOverflowingItemKeys] = useState<(K | undefined)[]>();\n const trailingContentWidths = useRef(new Map<K, TrailingContentInfo>());\n const [tabMaxWidth, setTabMaxWidth] = useState<Map<K, Size>>();\n // This state var is to only re-trigger the layout effect. Using it locally will not give the latest updated value hence we use current suffix vars\n const [tabBarWidth, setTabBarWidth] = useState<number>(0);\n const isAllItemsTruncatedMax = useRef<boolean>(false);\n const isAllItemsTruncatedFinal = useRef<boolean>(false);\n const tabDimensions = useRef<TabDimensions<K>[]>();\n\n useLayoutEffect(() => {\n // Store locally to avoid calling rootRef everytime within layouteffect\n const tabBarWidthCurrent = rootRef?.current?.clientWidth;\n const tabBarScrollWidthCurrent = rootRef?.current?.scrollWidth;\n if (\n rootRef.current &&\n keysArray &&\n keysArray.length > 0 &&\n tabBarWidthCurrent &&\n tabBarWidthCurrent > 0\n ) {\n //Set tabBarWidth if not the current value\n if (tabBarWidth !== tabBarWidthCurrent) {\n setTabBarWidth(tabBarWidthCurrent);\n }\n\n if (tabMaxWidth === undefined) {\n const isOverflow = tabBarWidthCurrent > 0 && tabBarWidthCurrent < tabBarScrollWidthCurrent!;\n\n //If there is no overflow maxWidth should be its prevState, prevState may also be undefined if truncation is disabled.\n if (!isOverflow) {\n setTabMaxWidth((prevState) => {\n return prevState;\n });\n } else {\n //We need to calculate maxWidth only if truncation threshold limit is not reached\n if (!isAllItemsTruncatedMax.current) {\n const tabWidths = getTabWidths(\n rootRef.current,\n trailingContentWidths,\n isTruncationDisabled,\n tabBarWidthCurrent,\n isAllItemsTruncatedMax?.current,\n keysArray as K[]\n );\n //If all items have reached max treshold of truncation then we set it to true\n if (tabWidths.every((item) => item.hasReachedLimit)) {\n isAllItemsTruncatedMax.current = true;\n }\n tabDimensions.current = tabWidths as any;\n }\n //If all items have reached max treshold of truncation then we do not have update tabDimensions are maxWidth cannot go lesser than 96px.\n else {\n tabDimensions.current = tabDimensions.current?.map((item) => ({\n ...item\n }));\n }\n }\n\n //Set calculated maxWidths\n if (!isTruncationDisabled) {\n const tabMaxWidthMap = new Map(\n tabDimensions.current?.map((tab) => [tab.key, (tab.maxWidth + 'px') as Size])\n );\n setTabMaxWidth(tabMaxWidthMap);\n }\n //Overflow calculation\n if (tabBarWidthCurrent < tabBarScrollWidthCurrent!) {\n const arr = tabDimensions.current?.map((item) => item.cumulativeWidth) as number[];\n const lastIndex = arr.length - 1;\n //In addition to scrollWidth we check if the cumulative width of last item is greater than rootRef clientwidth\n if (arr && tabBarWidthCurrent < arr[lastIndex]) {\n const { closestEntry, closestIndex } = searchClosest(arr, tabBarWidthCurrent);\n // Check for not null, because even for '0' value of closestIndex we want to slice in such cases only overflow item will be rendered\n if (closestEntry && closestIndex != null) {\n // Closest index refers to the index of the last item that would be visible.\n // While splicing we need to include it however if we check for closestIndex < lastIndex alone then closestIndex + 1 will be greater than the last item index so we check for one less.\n const lastVisibleItemIndex =\n closestIndex < lastIndex - 1 ? closestIndex + 1 : closestIndex;\n setVisibleItemKeys(keysArray.slice(0, lastVisibleItemIndex));\n setOverflowingItemKeys(keysArray?.slice(lastVisibleItemIndex));\n //Once OverflowTabBarItem is rendered, i.e overflowItemKeys move into overflow menu then space is available, which can be re-dsitributed to truncated visible items. We also check if these visible items have already gone through this calculation otherwise we skip it to avoid infinite loop.\n if (closestIndex > 0 && !isAllItemsTruncatedFinal.current && !isTruncationDisabled) {\n const tabWidthsAfterOverflow = getTabWidths(\n rootRef.current,\n trailingContentWidths,\n isTruncationDisabled,\n tabBarWidthCurrent,\n isAllItemsTruncatedMax?.current\n );\n const tabMaxWidthMapAfterOverflow = new Map(\n tabWidthsAfterOverflow.map((tab) => [tab.key, (tab.maxWidth + 'px') as Size])\n );\n //Flag to indicate that final truncation calculation has occured\n isAllItemsTruncatedFinal.current = true;\n setTabMaxWidth(tabMaxWidthMapAfterOverflow);\n }\n }\n }\n }\n }\n }\n }, [keysArray, rootRef, tabBarWidth, tabMaxWidth, isTruncationDisabled]);\n\n const updateTabBarWidth = useCallback(\n (entry: { contentRect: { width: StateUpdater<number> } }) => {\n const rectWidth = Math.ceil(entry.contentRect.width as number);\n // Sometimes entry.contentRect.width maybe a decimal value so we need to get absolute value\n if (Math.abs(tabBarWidth - (entry.contentRect.width as number)) > 1) {\n setTabBarWidth(entry.contentRect.width);\n if (tabMaxWidth !== undefined && !isAllItemsTruncatedMax.current) {\n setTabMaxWidth(undefined);\n }\n //Once there is change in the container width and there is no overflow we render all items as visible.\n if (rectWidth >= rootRef.current?.scrollWidth!) {\n setVisibleItemKeys(keysArray);\n setOverflowingItemKeys([]);\n }\n isAllItemsTruncatedFinal.current = false;\n }\n },\n [tabBarWidth, tabMaxWidth, rootRef, keysArray]\n );\n\n useResizeObserver(rootRef, updateTabBarWidth);\n\n return shouldRenderAllTabs(visibleItemKeys, overflowItemKeys, keysArray)\n ? {\n visibleItemKeys: keysArray,\n overflowItemKeys,\n maxWidths: tabMaxWidth\n }\n : {\n visibleItemKeys,\n overflowItemKeys,\n maxWidths: tabMaxWidth\n };\n}\n\n//If the overflow + visible keys or their quantity are not the same as keysArray then we first render all the keys as visible\nconst shouldRenderAllTabs = <K extends string | number>(\n visibleItemKeys: (K | undefined)[] | undefined,\n overflowItemKeys: (K | undefined)[] | undefined,\n keysArray: (K | undefined)[]\n) => {\n if (visibleItemKeys == null) return true;\n else if (visibleItemKeys && overflowItemKeys && keysArray) {\n const combinedArray = [...visibleItemKeys, ...overflowItemKeys];\n const isNotEqual =\n combinedArray.length !== keysArray.length ||\n JSON.stringify(keysArray) !== JSON.stringify(combinedArray);\n return isNotEqual;\n } else return false;\n};\n\n//Searches for a value closest and smaller than search value from the cumulative array\nconst searchClosest = (\n arr: number[] | undefined,\n searchValue: number | undefined | null\n): { closestEntry: number | null; closestIndex: number | null } => {\n {\n if (arr != null && searchValue != null) {\n let left = 0;\n let right = arr.length - 1;\n let closestEntry: number | null = null;\n let closestIndex: number | null = null;\n while (left <= right && left < arr.length && right > -1) {\n const mid = Math.floor((left + right) / 2);\n const midEntry = arr[mid];\n if (midEntry === searchValue) {\n return { closestEntry: midEntry!, closestIndex: mid! };\n } else if (midEntry < searchValue) {\n closestEntry = midEntry;\n closestIndex = mid;\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n //If the searchValue is greater than closest entry and their difference is greater more item width then we have space to fit more item. Otherwise we return the index with the closest and small value when compared to searchvalue\n if (closestEntry && searchValue > closestEntry) {\n //NOTE: Do not update closestEntry to midEntry here because value from const midEntry = arr[mid], midEntry maybe greater than searchValue and below it may end up updating closestIndex to mid +1 due to abs check\n //Sometimes closest entry may be much smaller than searchvalue so in such cases we maybe able to accomodate more items. The difference between searchValue and closestEntry should be greater than the minWidth needed for any item so that it can be rendered. If the difference is lesser than item min width we then check if space is available to render overflowitem alone else we reduce the closestIndex.\n closestIndex =\n Math.abs(searchValue - closestEntry) > TAB_MIN_WIDTH && mid + 1 <= arr.length - 2\n ? mid + 1\n : Math.abs(searchValue - closestEntry) > MORE_ITEM_WIDTH\n ? mid\n : mid - 1 >= 0\n ? mid - 1\n : 0;\n }\n //If the searchValue is lesser than closestEntry we return a value lesser than mid, this happens when all the values in the array are lesser than searchValue, i.e screensize is extremely small\n else {\n closestIndex = mid - 1 >= 0 ? mid - 1 : 0;\n }\n }\n return { closestEntry: closestEntry!, closestIndex: closestIndex! };\n } else return { closestEntry: null, closestIndex: null };\n }\n};\n"],"names":[],"mappings":"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"}