@oracle/oraclejet-preact 20.0.1 → 20.0.3

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 (632) hide show
  1. package/amd/BaseCardView-b8119561.js +2 -0
  2. package/amd/{BaseCardView-16fda4c3.js.map → BaseCardView-b8119561.js.map} +1 -1
  3. package/amd/CardFlexView-aa2f3de8.js +2 -0
  4. package/amd/{CardFlexView-d3eb7373.js.map → CardFlexView-aa2f3de8.js.map} +1 -1
  5. package/amd/CardGridView-85f90c75.js +2 -0
  6. package/amd/{CardGridView-842f70cd.js.map → CardGridView-85f90c75.js.map} +1 -1
  7. package/amd/ColorPicker-141fa49d.js +2 -0
  8. package/amd/{ColorPicker-e3167e4c.js.map → ColorPicker-141fa49d.js.map} +1 -1
  9. package/amd/{InlineSelectSingle-f4438110.js → InlineSelectSingle-87bc8a45.js} +2 -2
  10. package/amd/{InlineSelectSingle-f4438110.js.map → InlineSelectSingle-87bc8a45.js.map} +1 -1
  11. package/amd/{InputColor-51d7e40c.js → InputColor-58e3fce3.js} +2 -2
  12. package/amd/{InputColor-51d7e40c.js.map → InputColor-58e3fce3.js.map} +1 -1
  13. package/amd/InputDatePicker-7227a858.js +2 -0
  14. package/amd/{InputDatePicker-030e345a.js.map → InputDatePicker-7227a858.js.map} +1 -1
  15. package/amd/ListView-2678b2af.js +2 -0
  16. package/amd/{ListView-02a92d18.js.map → ListView-2678b2af.js.map} +1 -1
  17. package/amd/NavigationList-a6bb123d.js +2 -0
  18. package/amd/NavigationList-a6bb123d.js.map +1 -0
  19. package/amd/NavigationListItem-10bf6656.js +2 -0
  20. package/amd/NavigationListItem-10bf6656.js.map +1 -0
  21. package/amd/NavigationListLinkItem-df1826e6.js +2 -0
  22. package/amd/NavigationListLinkItem-df1826e6.js.map +1 -0
  23. package/amd/{OverflowTabBar-5ff68da7.js → OverflowTabBar-f8bf9356.js} +2 -2
  24. package/amd/{OverflowTabBar-5ff68da7.js.map → OverflowTabBar-f8bf9356.js.map} +1 -1
  25. package/amd/OverflowTabBarItem-0aa39512.js +2 -0
  26. package/amd/{OverflowTabBarItem-926b0c8a.js.map → OverflowTabBarItem-0aa39512.js.map} +1 -1
  27. package/amd/PRIVATE_BaseCardView.js +1 -1
  28. package/amd/PRIVATE_SelectCommon.js +1 -1
  29. package/amd/PRIVATE_TableList.js +1 -1
  30. package/amd/RemovableNavigationListItem-60593d4c.js +2 -0
  31. package/amd/{RemovableNavigationListItem-e298c5de.js.map → RemovableNavigationListItem-60593d4c.js.map} +1 -1
  32. package/amd/ReorderableTabBar-19a503c7.js +2 -0
  33. package/amd/{ReorderableTabBar-0c69bfd4.js.map → ReorderableTabBar-19a503c7.js.map} +1 -1
  34. package/amd/{SelectMobileFieldInput-83f56b22.js → SelectMobileFieldInput-4795a794.js} +2 -2
  35. package/amd/{SelectMobileFieldInput-83f56b22.js.map → SelectMobileFieldInput-4795a794.js.map} +1 -1
  36. package/amd/{SelectMultiple-cb5fdd20.js → SelectMultiple-e216b16c.js} +2 -2
  37. package/amd/{SelectMultiple-cb5fdd20.js.map → SelectMultiple-e216b16c.js.map} +1 -1
  38. package/amd/{SelectSingle-02e85b6e.js → SelectSingle-d53cf202.js} +2 -2
  39. package/amd/{SelectSingle-02e85b6e.js.map → SelectSingle-d53cf202.js.map} +1 -1
  40. package/amd/TabBar-92bac52f.js +2 -0
  41. package/amd/{TabBar-de723fbc.js.map → TabBar-92bac52f.js.map} +1 -1
  42. package/amd/TabBarMixed-5b5a5047.js +2 -0
  43. package/amd/{TabBarMixed-cfd346bf.js.map → TabBarMixed-5b5a5047.js.map} +1 -1
  44. package/amd/Theme-redwood/theme.css +80 -80
  45. package/amd/Theme-stable/theme.css +276 -276
  46. package/amd/UNSAFE_CardFlexView.js +1 -1
  47. package/amd/UNSAFE_CardGridView.js +1 -1
  48. package/amd/UNSAFE_ColorPicker.js +1 -1
  49. package/amd/UNSAFE_InlineSelectSingle.js +1 -1
  50. package/amd/UNSAFE_InputColor.js +1 -1
  51. package/amd/UNSAFE_InputDatePicker.js +1 -1
  52. package/amd/UNSAFE_ListView.js +1 -1
  53. package/amd/UNSAFE_NavigationList.js +1 -1
  54. package/amd/UNSAFE_NavigationListCommon.js +1 -1
  55. package/amd/UNSAFE_OverflowTabBar.js +1 -1
  56. package/amd/UNSAFE_ReorderableTabBar.js +1 -1
  57. package/amd/UNSAFE_SelectMultiple.js +1 -1
  58. package/amd/UNSAFE_SelectSingle.js +1 -1
  59. package/amd/UNSAFE_TabBar.js +1 -1
  60. package/amd/UNSAFE_TabBarCommon.js +1 -1
  61. package/amd/UNSAFE_TabBarMixed.js +1 -1
  62. package/amd/{useDisplayValue-e70c76d8.js → useDisplayValue-9b671893.js} +2 -2
  63. package/amd/{useDisplayValue-e70c76d8.js.map → useDisplayValue-9b671893.js.map} +1 -1
  64. package/amd/useNavigationListItem-582f5564.js +2 -0
  65. package/amd/useNavigationListItem-582f5564.js.map +1 -0
  66. package/amd/useSelectCommon-f33709d2.js +2 -0
  67. package/amd/useSelectCommon-f33709d2.js.map +1 -0
  68. package/cjs/{BaseCardView-c0909427.js → BaseCardView-ba63723a.js} +4 -1
  69. package/cjs/{BaseCardView-c0909427.js.map → BaseCardView-ba63723a.js.map} +1 -1
  70. package/cjs/{Chart-13a198f3.js → Chart-966da017.js} +2 -2
  71. package/cjs/{Chart-13a198f3.js.map → Chart-966da017.js.map} +1 -1
  72. package/cjs/{ColorPicker-2c99c0fb.js → ColorPicker-8f0b6000.js} +2 -2
  73. package/cjs/{ColorPicker-2c99c0fb.js.map → ColorPicker-8f0b6000.js.map} +1 -1
  74. package/cjs/{NavigationListItem-cdfd0740.js → NavigationList-d0d74565.js} +3 -8
  75. package/cjs/NavigationList-d0d74565.js.map +1 -0
  76. package/cjs/NavigationListItem-b0b03089.js +12 -0
  77. package/cjs/NavigationListItem-b0b03089.js.map +1 -0
  78. package/cjs/{NavigationListLinkItem-62c3912e.js → NavigationListLinkItem-317a5200.js} +8 -99
  79. package/cjs/NavigationListLinkItem-317a5200.js.map +1 -0
  80. package/cjs/{OverflowTabBarItem-4bbd5830.js → OverflowTabBarItem-19ad4971.js} +6 -4
  81. package/cjs/{OverflowTabBarItem-4bbd5830.js.map → OverflowTabBarItem-19ad4971.js.map} +1 -1
  82. package/cjs/PRIVATE_BaseCardView.js +1 -1
  83. package/cjs/PRIVATE_Chart.js +4 -4
  84. package/cjs/PRIVATE_SelectCommon.js +2 -2
  85. package/cjs/PRIVATE_TableList.js +4 -4
  86. package/cjs/SegmentStyles.styles.css +9 -12
  87. package/cjs/SegmentStyles.styles2.css +12 -9
  88. package/cjs/{SelectMobileFieldInput-111a95a5.js → SelectMobileFieldInput-cbf57541.js} +2 -2
  89. package/cjs/{SelectMobileFieldInput-111a95a5.js.map → SelectMobileFieldInput-cbf57541.js.map} +1 -1
  90. package/cjs/{TabBar-27ae2c21.js → TabBar-d84e222e.js} +9 -1
  91. package/cjs/{TabBar-27ae2c21.js.map → TabBar-d84e222e.js.map} +1 -1
  92. package/cjs/{TabBarLinkItem-891a5f10.js → TabBarLinkItem-e924f83b.js} +2 -2
  93. package/cjs/{TabBarLinkItem-891a5f10.js.map → TabBarLinkItem-e924f83b.js.map} +1 -1
  94. package/cjs/Theme-redwood/theme.css +160 -160
  95. package/cjs/Theme-stable/theme.css +150 -150
  96. package/cjs/UNSAFE_BarChart.js +4 -4
  97. package/cjs/UNSAFE_CardFlexView.js +1 -1
  98. package/cjs/UNSAFE_CardGridView.js +1 -1
  99. package/cjs/UNSAFE_ColorPicker.js +25 -25
  100. package/cjs/UNSAFE_ComboChart.js +4 -4
  101. package/cjs/UNSAFE_InlineSelectSingle.js +2 -2
  102. package/cjs/UNSAFE_InputColor.js +2 -2
  103. package/cjs/UNSAFE_LineAreaChart.js +4 -4
  104. package/cjs/UNSAFE_ListView.js +53 -53
  105. package/cjs/UNSAFE_NavigationList.js +10 -8
  106. package/cjs/UNSAFE_NavigationList.js.map +1 -1
  107. package/cjs/UNSAFE_NavigationListCommon.js +14 -13
  108. package/cjs/UNSAFE_NavigationListCommon.js.map +1 -1
  109. package/cjs/UNSAFE_OverflowTabBar.js +56 -53
  110. package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
  111. package/cjs/UNSAFE_ReorderableTabBar.js +43 -30
  112. package/cjs/UNSAFE_ReorderableTabBar.js.map +1 -1
  113. package/cjs/UNSAFE_ScatterChart.js +4 -4
  114. package/cjs/UNSAFE_SelectMultiple.js +2 -2
  115. package/cjs/UNSAFE_SelectSingle.js +3 -3
  116. package/cjs/UNSAFE_TabBar.js +57 -54
  117. package/cjs/UNSAFE_TabBar.js.map +1 -1
  118. package/cjs/UNSAFE_TabBarCommon.js +78 -75
  119. package/cjs/UNSAFE_TabBarCommon.js.map +1 -1
  120. package/cjs/UNSAFE_TabBarMixed.js +38 -35
  121. package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
  122. package/cjs/{useDisplayValue-60dbe1c3.js → useDisplayValue-4ace417c.js} +2 -2
  123. package/cjs/{useDisplayValue-60dbe1c3.js.map → useDisplayValue-4ace417c.js.map} +1 -1
  124. package/cjs/useNavigationListItem-b97e76d5.js +104 -0
  125. package/cjs/useNavigationListItem-b97e76d5.js.map +1 -0
  126. package/cjs/{useSelectCommon-b0d7feb3.js → useSelectCommon-27afecfa.js} +8 -3
  127. package/cjs/useSelectCommon-27afecfa.js.map +1 -0
  128. package/es/{BaseButton-243d200f.js → BaseButton-41068c85.js} +2 -2
  129. package/es/{BaseButton-243d200f.js.map → BaseButton-41068c85.js.map} +1 -1
  130. package/es/BaseCardView-b3d8bae0.js +6 -6
  131. package/es/BaseDiagram-b5b22e53.js +7 -7
  132. package/es/BaseRichSelection-223d9830.js +9 -9
  133. package/es/BaseSelector-7cbc48bc.js +1 -1
  134. package/es/BaseSwatchView-2e1e6bd2.js +2 -2
  135. package/es/{Button-a76ecfa8.js → Button-956f51c7.js} +2 -2
  136. package/es/{Button-a76ecfa8.js.map → Button-956f51c7.js.map} +1 -1
  137. package/es/ButtonSet-b7464e9a.js +2 -2
  138. package/es/ButtonSetButton-8685c752.js +1 -1
  139. package/es/ButtonSetIconButton-c8ed85f9.js +4 -4
  140. package/es/{Center-3860fe60.js → Center-71a03e65.js} +2 -2
  141. package/es/{Center-3860fe60.js.map → Center-71a03e65.js.map} +1 -1
  142. package/es/{Chart-b866a74c.js → Chart-8c63da28.js} +12 -12
  143. package/es/{Chart-b866a74c.js.map → Chart-8c63da28.js.map} +1 -1
  144. package/es/CheckboxControl-c008372a.js +6 -6
  145. package/es/CheckboxRadioField-a387b3cb.js +6 -6
  146. package/es/CheckboxRadioLabelValueLayout-e3845f16.js +1 -1
  147. package/es/CheckboxSet-3aab5935.js +1 -1
  148. package/es/Chip-4efea02e.js +1 -1
  149. package/es/ClearIcon-f85ea340.js +1 -1
  150. package/es/CollapseIcon-84f6ba8e.js +1 -1
  151. package/es/Collapsible-2608ce3b.js +2 -2
  152. package/es/ColorPalette-950c6fc6.js +2 -2
  153. package/es/{ColorPicker-8c297849.js → ColorPicker-ae648c4c.js} +3 -3
  154. package/es/{ColorPicker-8c297849.js.map → ColorPicker-ae648c4c.js.map} +1 -1
  155. package/es/ColorSwatch-8339ee2f.js +4 -4
  156. package/es/{CompactLabelAssistance-50ff3f7e.js → CompactLabelAssistance-e2fcfcab.js} +6 -6
  157. package/es/{CompactLabelAssistance-50ff3f7e.js.map → CompactLabelAssistance-e2fcfcab.js.map} +1 -1
  158. package/es/CompactUserAssistance-6aa8894b.js +5 -5
  159. package/es/ComponentMessageContainer-d16c8b1f.js +4 -4
  160. package/es/{DatePicker-fa7d39a7.js → DatePicker-7287f0f9.js} +8 -8
  161. package/es/{DatePicker-fa7d39a7.js.map → DatePicker-7287f0f9.js.map} +1 -1
  162. package/es/DatePickerHeader-f8cf86bb.js +3 -3
  163. package/es/DiagramStyles.styles2.css +16 -10
  164. package/es/DiagramStyles.styles3.css +10 -16
  165. package/es/{Dialog-d1de5b06.js → Dialog-83368f52.js} +7 -7
  166. package/es/{Dialog-d1de5b06.js.map → Dialog-83368f52.js.map} +1 -1
  167. package/es/DirectionalCollapseArrowIcon-132761da.js +1 -1
  168. package/es/DirectionalExpandArrowIcon-5bc45cad.js +1 -1
  169. package/es/{Dropdown-9d9813a9.js → Dropdown-019aba37.js} +6 -6
  170. package/es/{Dropdown-9d9813a9.js.map → Dropdown-019aba37.js.map} +1 -1
  171. package/es/{EmbeddedIconButton-9f0e56b7.js → EmbeddedIconButton-46434710.js} +2 -2
  172. package/es/{EmbeddedIconButton-9f0e56b7.js.map → EmbeddedIconButton-46434710.js.map} +1 -1
  173. package/es/{EnvironmentProvider-6cf8ed37.js → EnvironmentProvider-6a0a8212.js} +3 -3
  174. package/es/{EnvironmentProvider-6cf8ed37.js.map → EnvironmentProvider-6a0a8212.js.map} +1 -1
  175. package/es/Expander-1347e769.js +1 -1
  176. package/es/{Flex-fc483125.js → Flex-03129963.js} +2 -2
  177. package/es/{Flex-fc483125.js.map → Flex-03129963.js.map} +1 -1
  178. package/es/{Floating-be4c0cb6.js → Floating-4a82db94.js} +4 -4
  179. package/es/{Floating-be4c0cb6.js.map → Floating-4a82db94.js.map} +1 -1
  180. package/es/{Grid-6f92d323.js → Grid-9e4b4f19.js} +2 -2
  181. package/es/{Grid-6f92d323.js.map → Grid-9e4b4f19.js.map} +1 -1
  182. package/es/GroupLoadingIndicator-19c6545a.js +1 -1
  183. package/es/{HighlightText-dd484ffd.js → HighlightText-0205faef.js} +2 -2
  184. package/es/{HighlightText-dd484ffd.js.map → HighlightText-0205faef.js.map} +1 -1
  185. package/es/Icon-4983d06e.js +3 -3
  186. package/es/IconButton-7f91481c.js +4 -4
  187. package/es/IconSwitchButton-05f1f602.js +4 -4
  188. package/es/IconToggleButton-808818f5.js +4 -4
  189. package/es/{IconUserAssistance-6abc7837.js → IconUserAssistance-61978211.js} +3 -3
  190. package/es/{IconUserAssistance-6abc7837.js.map → IconUserAssistance-61978211.js.map} +1 -1
  191. package/es/InlineHelp-9eaac91c.js +1 -1
  192. package/es/InlineUserAssistance-890293dd.js +5 -5
  193. package/es/InputDateMask-ec27aee7.js +7 -7
  194. package/es/Label-5d1ae8d7.js +8 -8
  195. package/es/LabelValueLayout-c6b9945a.js +1 -1
  196. package/es/{Layer-6c27170e.js → Layer-535577b5.js} +3 -3
  197. package/es/{Layer-6c27170e.js.map → Layer-535577b5.js.map} +1 -1
  198. package/es/{LayerHost-3cf255a6.js → LayerHost-7931b424.js} +2 -2
  199. package/es/{LayerHost-3cf255a6.js.map → LayerHost-7931b424.js.map} +1 -1
  200. package/es/{LayerManager-e30fbfd6.js → LayerManager-52a26c55.js} +2 -2
  201. package/es/{LayerManager-e30fbfd6.js.map → LayerManager-52a26c55.js.map} +1 -1
  202. package/es/Link-8503aab2.js +1 -1
  203. package/es/List-4636ba9b.js +5 -5
  204. package/es/{LiveRegion-2e8830ae.js → LiveRegion-cebac18d.js} +2 -2
  205. package/es/{LiveRegion-2e8830ae.js.map → LiveRegion-cebac18d.js.map} +1 -1
  206. package/es/{MaxLengthLiveRegion-8f552ae2.js → MaxLengthLiveRegion-8099fde5.js} +3 -3
  207. package/es/{MaxLengthLiveRegion-8f552ae2.js.map → MaxLengthLiveRegion-8099fde5.js.map} +1 -1
  208. package/es/Message-510c2db8.js +2 -2
  209. package/es/{MessageLayer-1dbdc0b6.js → MessageLayer-2a7fdec7.js} +6 -6
  210. package/es/{MessageLayer-1dbdc0b6.js.map → MessageLayer-2a7fdec7.js.map} +1 -1
  211. package/es/MessagesManager-47000438.js +3 -3
  212. package/es/Modal-c0f730b8.js +3 -3
  213. package/es/{MonthView-4e05e712.js → MonthView-4b2b483a.js} +4 -4
  214. package/es/{MonthView-4e05e712.js.map → MonthView-4b2b483a.js.map} +1 -1
  215. package/es/NavigationListItem-340ab770.js +8 -8
  216. package/es/NavigationListLinkItem-e28fd846.js +5 -5
  217. package/es/NumberInputText-60be5757.js +6 -6
  218. package/es/OverflowTabBarItem-aa0ce915.js +5 -5
  219. package/es/PRIVATE_BaseCardView.js +22 -22
  220. package/es/PRIVATE_BaseDiagram.js +29 -29
  221. package/es/PRIVATE_BaseSelector.js +17 -17
  222. package/es/PRIVATE_BaseSwatchView.js +18 -18
  223. package/es/PRIVATE_Chart.js +38 -38
  224. package/es/PRIVATE_CheckboxControl.js +25 -25
  225. package/es/PRIVATE_CheckboxRadioField.js +27 -27
  226. package/es/PRIVATE_ClearIcon.js +18 -18
  227. package/es/PRIVATE_CollapsibleNavigationList.js +20 -20
  228. package/es/PRIVATE_DatePickerHeader.js +20 -20
  229. package/es/PRIVATE_DatePickerLayout.js +4 -4
  230. package/es/PRIVATE_EmbeddedIconButton.js +6 -6
  231. package/es/PRIVATE_Expander.js +19 -19
  232. package/es/PRIVATE_FormControls.js +21 -21
  233. package/es/PRIVATE_IconSwitchButton.js +17 -17
  234. package/es/PRIVATE_Icons/CheckboxCrossed.js +16 -16
  235. package/es/PRIVATE_Icons/CheckboxMixed.js +16 -16
  236. package/es/PRIVATE_Icons/CheckboxOff.js +16 -16
  237. package/es/PRIVATE_Icons/CheckboxOn.js +16 -16
  238. package/es/PRIVATE_Icons/DragV.js +16 -16
  239. package/es/PRIVATE_Icons/None.js +16 -16
  240. package/es/PRIVATE_List.js +21 -21
  241. package/es/PRIVATE_Message.js +20 -20
  242. package/es/PRIVATE_MessageLayer.js +12 -12
  243. package/es/PRIVATE_MonthView.js +7 -7
  244. package/es/PRIVATE_MonthYearGridView.js +7 -7
  245. package/es/PRIVATE_PlotArea.js +5 -5
  246. package/es/PRIVATE_RevealToggleIcon.js +18 -18
  247. package/es/PRIVATE_RichSelectionCommon.js +28 -28
  248. package/es/PRIVATE_SelectCommon.js +33 -33
  249. package/es/PRIVATE_StyledCard.js +3 -3
  250. package/es/PRIVATE_StyledCheckbox.js +16 -16
  251. package/es/PRIVATE_StyledSwitch.js +4 -4
  252. package/es/PRIVATE_SwatchFlexView.js +18 -18
  253. package/es/PRIVATE_Table.js +35 -35
  254. package/es/PRIVATE_TableDisplay.js +19 -19
  255. package/es/PRIVATE_TableList.js +26 -26
  256. package/es/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
  257. package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
  258. package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
  259. package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
  260. package/es/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
  261. package/es/PRIVATE_ThemedIcons/CheckboxCrossedIcon.js +16 -16
  262. package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
  263. package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
  264. package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
  265. package/es/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
  266. package/es/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
  267. package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
  268. package/es/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
  269. package/es/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
  270. package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
  271. package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
  272. package/es/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
  273. package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
  274. package/es/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
  275. package/es/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
  276. package/es/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
  277. package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
  278. package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
  279. package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
  280. package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
  281. package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
  282. package/es/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
  283. package/es/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
  284. package/es/PRIVATE_ThemedIcons/None.js +16 -16
  285. package/es/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
  286. package/es/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
  287. package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
  288. package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
  289. package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
  290. package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
  291. package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
  292. package/es/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
  293. package/es/PRIVATE_TimeComponent.js +19 -19
  294. package/es/PRIVATE_TruncatingLink.js +16 -16
  295. package/es/PRIVATE_VisOverview.js +16 -16
  296. package/es/PRIVATE_VisStatusMessage.js +5 -5
  297. package/es/PRIVATE_VisTabularDatatip.js +4 -4
  298. package/es/{Popup-22d51095.js → Popup-992b6c27.js} +10 -10
  299. package/es/{Popup-22d51095.js.map → Popup-992b6c27.js.map} +1 -1
  300. package/es/ProgressButtonLabelLayout-69549cf9.js +3 -3
  301. package/es/{ProgressCircle-bce87dad.js → ProgressCircle-46084d0b.js} +2 -2
  302. package/es/{ProgressCircle-bce87dad.js.map → ProgressCircle-46084d0b.js.map} +1 -1
  303. package/es/RadioItem-94909632.js +6 -6
  304. package/es/ReadonlyTextFieldInput-106ce959.js +1 -1
  305. package/es/{ReferenceLineArea-cc72b070.js → ReferenceLineArea-53129f72.js} +3 -3
  306. package/es/{ReferenceLineArea-cc72b070.js.map → ReferenceLineArea-53129f72.js.map} +1 -1
  307. package/es/RevealToggleIcon-2d622d8f.js +1 -1
  308. package/es/{SectionedContent-897e9c4e.js → SectionedContent-30e5bf98.js} +5 -5
  309. package/es/{SectionedContent-897e9c4e.js.map → SectionedContent-30e5bf98.js.map} +1 -1
  310. package/es/SelectMenuGroupContext-aa1fe822.js +6 -6
  311. package/es/{SelectMobileFieldInput-0a7c968c.js → SelectMobileFieldInput-345c4d45.js} +10 -10
  312. package/es/{SelectMobileFieldInput-0a7c968c.js.map → SelectMobileFieldInput-345c4d45.js.map} +1 -1
  313. package/es/{SelectorAll-3d39196b.js → SelectorAll-de7ba2e1.js} +5 -5
  314. package/es/{SelectorAll-3d39196b.js.map → SelectorAll-de7ba2e1.js.map} +1 -1
  315. package/es/Sheet-f9f8a4a4.js +2 -2
  316. package/es/SortControl-1044fcd9.js +3 -3
  317. package/es/SplitMenuButtonTheme.styles.css +4 -4
  318. package/es/SplitMenuButtonTheme.styles2.css +4 -4
  319. package/es/StyledCard-77623731.js +1 -1
  320. package/es/{StyledLabelValueLayout-bddfb884.js → StyledLabelValueLayout-bb05f474.js} +2 -2
  321. package/es/{StyledLabelValueLayout-bddfb884.js.map → StyledLabelValueLayout-bb05f474.js.map} +1 -1
  322. package/es/StyledSwitch-dbf29d95.js +2 -2
  323. package/es/StyledTextField-7605d76a.js +5 -5
  324. package/es/Submenu-cbd77756.js +1 -1
  325. package/es/TabBar-67ca442c.js +6 -6
  326. package/es/TabBarContextMenu-c3326d67.js +2 -2
  327. package/es/TabBarLayout-9b67d1b6.js +1 -1
  328. package/es/Table-2f197c6a.js +11 -11
  329. package/es/TableColGroup-d74bd4f5.js +1 -1
  330. package/es/TextArea-93ce78a7.js +225 -0
  331. package/es/TextArea-93ce78a7.js.map +1 -0
  332. package/es/TextField-7884fcd7.js +3 -3
  333. package/es/Theme-redwood/theme.css +465 -465
  334. package/es/Theme-stable/theme.css +481 -481
  335. package/es/TimeComponentCanvas2D-cfb0066d.js +6 -6
  336. package/es/ToggleButton-bb69cf10.js +1 -1
  337. package/es/TruncatingLink-298c6343.js +4 -4
  338. package/es/TruncatingText-1bf00351.js +1 -1
  339. package/es/UNSAFE_AccordionItemMultiple.js +18 -18
  340. package/es/UNSAFE_AccordionItemSingle.js +18 -18
  341. package/es/UNSAFE_ActionCard.js +2 -2
  342. package/es/UNSAFE_BarChart.js +39 -39
  343. package/es/UNSAFE_BareButton.js +2 -2
  344. package/es/UNSAFE_BaseButton.js +5 -5
  345. package/es/UNSAFE_Button.js +6 -6
  346. package/es/UNSAFE_ButtonSet.js +4 -4
  347. package/es/UNSAFE_ButtonSetButton.js +5 -5
  348. package/es/UNSAFE_ButtonSetIconButton.js +17 -17
  349. package/es/UNSAFE_ButtonSetItem.js +18 -18
  350. package/es/UNSAFE_ButtonSetMultiple.js +4 -4
  351. package/es/UNSAFE_ButtonSetSingle.js +4 -4
  352. package/es/UNSAFE_Card.js +3 -3
  353. package/es/UNSAFE_CardFlexView.js +22 -22
  354. package/es/UNSAFE_CardGridView.js +22 -22
  355. package/es/UNSAFE_Center.js +5 -5
  356. package/es/UNSAFE_Checkbox.js +25 -25
  357. package/es/UNSAFE_CheckboxItem.js +27 -27
  358. package/es/UNSAFE_CheckboxRadioField.js +4 -4
  359. package/es/UNSAFE_CheckboxSet.js +26 -26
  360. package/es/UNSAFE_Chip.js +2 -2
  361. package/es/UNSAFE_Collapsible.js +18 -18
  362. package/es/UNSAFE_ColorPalette.js +19 -19
  363. package/es/UNSAFE_ColorPicker.js +21 -21
  364. package/es/UNSAFE_ColorSwatch.js +17 -17
  365. package/es/UNSAFE_ComboChart.js +39 -39
  366. package/es/UNSAFE_ComponentMessage.js +20 -20
  367. package/es/UNSAFE_ContainerDiagram/themes/DiagramStyles.css.js +1 -1
  368. package/es/UNSAFE_ContainerDiagram.js +29 -29
  369. package/es/UNSAFE_ConveyorBelt.js +18 -18
  370. package/es/UNSAFE_DatePicker.js +27 -27
  371. package/es/UNSAFE_Diagram/themes/DiagramStyles.css.js +1 -1
  372. package/es/UNSAFE_Diagram.js +29 -29
  373. package/es/UNSAFE_Dialog.js +22 -22
  374. package/es/UNSAFE_DragHandle.js +17 -17
  375. package/es/UNSAFE_DrawerLayout.js +12 -12
  376. package/es/UNSAFE_DrawerPopup.js +11 -11
  377. package/es/UNSAFE_Dropdown.js +15 -15
  378. package/es/UNSAFE_Environment.js +4 -4
  379. package/es/UNSAFE_ExpandableList.js +25 -25
  380. package/es/UNSAFE_FilePicker.js +4 -4
  381. package/es/UNSAFE_FlatTreeView.js +25 -25
  382. package/es/UNSAFE_Flex.js +4 -4
  383. package/es/UNSAFE_Floating.js +11 -11
  384. package/es/UNSAFE_FormLayout.js +2 -2
  385. package/es/UNSAFE_Gantt.js +23 -23
  386. package/es/UNSAFE_Grid.js +4 -4
  387. package/es/UNSAFE_HighlightText.js +4 -4
  388. package/es/UNSAFE_Icon.js +16 -16
  389. package/es/UNSAFE_IconButton.js +17 -17
  390. package/es/UNSAFE_IconMenuButton.js +25 -25
  391. package/es/UNSAFE_IconProgressButton.js +21 -21
  392. package/es/UNSAFE_IconToggleButton.js +17 -17
  393. package/es/UNSAFE_Indexer.js +19 -19
  394. package/es/UNSAFE_InlineSelectSingle.js +34 -34
  395. package/es/UNSAFE_InputColor.js +32 -32
  396. package/es/UNSAFE_InputDateMask.js +26 -26
  397. package/es/UNSAFE_InputDatePicker.js +36 -36
  398. package/es/UNSAFE_InputPassword.js +26 -26
  399. package/es/UNSAFE_InputSensitiveText.js +27 -27
  400. package/es/UNSAFE_InputText.js +28 -28
  401. package/es/UNSAFE_InputTimeMask.js +26 -26
  402. package/es/UNSAFE_Label.js +25 -25
  403. package/es/UNSAFE_LabelValueLayout.js +4 -4
  404. package/es/UNSAFE_LabelledLink.js +27 -27
  405. package/es/UNSAFE_Layer.js +8 -8
  406. package/es/UNSAFE_Legend.js +27 -27
  407. package/es/UNSAFE_LineAreaChart.js +39 -39
  408. package/es/UNSAFE_Link.js +2 -2
  409. package/es/UNSAFE_ListItemLayout.js +4 -4
  410. package/es/UNSAFE_ListView.js +28 -28
  411. package/es/UNSAFE_LiveRegion.js +4 -4
  412. package/es/UNSAFE_Menu.js +26 -26
  413. package/es/UNSAFE_MenuButton.js +25 -25
  414. package/es/UNSAFE_MessageBanner.js +20 -20
  415. package/es/UNSAFE_MessageToast.js +22 -22
  416. package/es/UNSAFE_MeterBar.js +16 -16
  417. package/es/UNSAFE_MeterCircle.js +17 -17
  418. package/es/UNSAFE_Modal.js +8 -8
  419. package/es/UNSAFE_NavigationList.js +28 -28
  420. package/es/UNSAFE_NavigationListCommon.js +20 -20
  421. package/es/UNSAFE_NumberInputText.js +28 -28
  422. package/es/UNSAFE_OverflowTabBar.js +27 -27
  423. package/es/UNSAFE_PictoChart.js +25 -25
  424. package/es/UNSAFE_PieChart.js +26 -26
  425. package/es/UNSAFE_Popup.js +18 -18
  426. package/es/UNSAFE_ProgressBar.js +4 -4
  427. package/es/UNSAFE_ProgressButton.js +21 -21
  428. package/es/UNSAFE_ProgressButtonLabelLayout.js +10 -10
  429. package/es/UNSAFE_ProgressCircle.js +4 -4
  430. package/es/UNSAFE_RadioItem.js +25 -25
  431. package/es/UNSAFE_RadioSet.js +27 -27
  432. package/es/UNSAFE_RatingGauge.js +18 -18
  433. package/es/UNSAFE_ReorderableTabBar.js +27 -27
  434. package/es/UNSAFE_RichCheckboxSet.js +28 -28
  435. package/es/UNSAFE_RichRadioSet.js +29 -29
  436. package/es/UNSAFE_RichSelectionItem.js +30 -30
  437. package/es/UNSAFE_ScatterChart.js +39 -39
  438. package/es/UNSAFE_SectionalLegend.js +27 -27
  439. package/es/UNSAFE_SelectMultiple.js +37 -37
  440. package/es/UNSAFE_SelectSingle.js +37 -37
  441. package/es/UNSAFE_SelectionCard.js +3 -3
  442. package/es/UNSAFE_Selector.js +17 -17
  443. package/es/UNSAFE_SelectorAll.js +19 -19
  444. package/es/UNSAFE_Sheet.js +11 -11
  445. package/es/UNSAFE_SortControl.js +20 -20
  446. package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
  447. package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
  448. package/es/UNSAFE_SplitMenuButton.js +26 -26
  449. package/es/UNSAFE_Switch.js +26 -26
  450. package/es/UNSAFE_TabBar.js +28 -28
  451. package/es/UNSAFE_TabBarCommon.js +28 -28
  452. package/es/UNSAFE_TabBarMixed.js +28 -28
  453. package/es/UNSAFE_TableView.js +35 -35
  454. package/es/UNSAFE_TagCloud.js +26 -26
  455. package/es/UNSAFE_TextArea.js +117 -237
  456. package/es/UNSAFE_TextArea.js.map +1 -1
  457. package/es/UNSAFE_TextAreaAutosize.js +28 -28
  458. package/es/UNSAFE_TextField.js +20 -20
  459. package/es/UNSAFE_ToggleButton.js +5 -5
  460. package/es/UNSAFE_Toolbar.js +4 -4
  461. package/es/UNSAFE_Train.js +17 -17
  462. package/es/UNSAFE_TruncatingBadge.js +17 -17
  463. package/es/UNSAFE_TruncatingText.js +17 -17
  464. package/es/UNSAFE_UserAssistance.js +26 -26
  465. package/es/UNSAFE_View.js +7 -7
  466. package/es/UNSAFE_VirtualizedListView.js +21 -21
  467. package/es/UNSAFE_VisInvalidDataMessage.js +6 -6
  468. package/es/UNSAFE_VisNoDataMessage.js +6 -6
  469. package/es/UNSAFE_VisProgressiveLoader.js +5 -5
  470. package/es/UNSAFE_WindowOverlay.js +4 -4
  471. package/es/{View-818f2f31.js → View-5bdd9b3c.js} +5 -5
  472. package/es/{View-818f2f31.js.map → View-5bdd9b3c.js.map} +1 -1
  473. package/es/{VisStatusMessage-09c532e3.js → VisStatusMessage-e2d629bb.js} +2 -2
  474. package/es/{VisStatusMessage-09c532e3.js.map → VisStatusMessage-e2d629bb.js.map} +1 -1
  475. package/es/{VisTabularDatatip-f45069f1.js → VisTabularDatatip-85b00c1b.js} +2 -2
  476. package/es/{VisTabularDatatip-f45069f1.js.map → VisTabularDatatip-85b00c1b.js.map} +1 -1
  477. package/es/{WindowOverlay-467c2d12.js → WindowOverlay-7264c44a.js} +2 -2
  478. package/es/{WindowOverlay-467c2d12.js.map → WindowOverlay-7264c44a.js.map} +1 -1
  479. package/es/{YearsGridView-5286a756.js → YearsGridView-6c18094a.js} +4 -4
  480. package/es/{YearsGridView-5286a756.js.map → YearsGridView-6c18094a.js.map} +1 -1
  481. package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
  482. package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
  483. package/es/hoc/UNSAFE_withThemeProps.js +3 -3
  484. package/es/hooks/PRIVATE_useChartContextMenu.js +23 -23
  485. package/es/hooks/PRIVATE_useChartDatatip.js +14 -14
  486. package/es/hooks/PRIVATE_useChartEvents.js +19 -19
  487. package/es/hooks/PRIVATE_useChartMarquee.js +19 -19
  488. package/es/hooks/PRIVATE_useCollectionFocusRing.js +17 -17
  489. package/es/hooks/PRIVATE_useCssVars.js +7 -7
  490. package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
  491. package/es/hooks/PRIVATE_useDatatip.js +12 -12
  492. package/es/hooks/PRIVATE_useDetectHorizontalOverflow.js +16 -16
  493. package/es/hooks/PRIVATE_useFloating.js +4 -4
  494. package/es/hooks/PRIVATE_useItemAction.js +17 -17
  495. package/es/hooks/PRIVATE_useListCommon.js +19 -19
  496. package/es/hooks/PRIVATE_useOutsideMousedown.js +9 -9
  497. package/es/hooks/PRIVATE_useRadioFocusManager.js +4 -4
  498. package/es/hooks/PRIVATE_useReorderable.js +19 -19
  499. package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  500. package/es/hooks/PRIVATE_useSelection.js +4 -4
  501. package/es/hooks/PRIVATE_useTabBar.js +26 -26
  502. package/es/hooks/PRIVATE_useTabbableModeSet.js +17 -17
  503. package/es/hooks/PRIVATE_useTooltipOnTruncation.js +17 -17
  504. package/es/hooks/PRIVATE_useVisContextMenu.js +23 -23
  505. package/es/hooks/PRIVATE_useVisDragModeControls.js +19 -19
  506. package/es/hooks/PRIVATE_useVisEvents.js +4 -4
  507. package/es/hooks/PRIVATE_useVisMeterEvents.js +14 -14
  508. package/es/hooks/PRIVATE_useVisSelection.js +15 -15
  509. package/es/hooks/UNSAFE_useBareButton.js +2 -2
  510. package/es/hooks/UNSAFE_useColorScheme.js +3 -3
  511. package/es/hooks/UNSAFE_useCurrentBgColor.js +2 -2
  512. package/es/hooks/UNSAFE_useDensity.js +3 -3
  513. package/es/hooks/UNSAFE_useHiddenTestMethod.js +3 -3
  514. package/es/hooks/UNSAFE_useOutsideClick.js +8 -8
  515. package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  516. package/es/hooks/UNSAFE_useScale.js +3 -3
  517. package/es/hooks/UNSAFE_useTestId.js +3 -3
  518. package/es/hooks/UNSAFE_useTheme.js +3 -3
  519. package/es/hooks/UNSAFE_useThemeInterpolations.js +6 -6
  520. package/es/hooks/UNSAFE_useTooltip.js +17 -17
  521. package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
  522. package/es/hooks/UNSAFE_useUser.js +3 -3
  523. package/es/{popupUtils-7774330e.js → popupUtils-51366a29.js} +2 -2
  524. package/es/{popupUtils-7774330e.js.map → popupUtils-51366a29.js.map} +1 -1
  525. package/es/{tooltipUtils-90fb656f.js → tooltipUtils-af0abd38.js} +5 -5
  526. package/es/{tooltipUtils-90fb656f.js.map → tooltipUtils-af0abd38.js.map} +1 -1
  527. package/es/useBareButton-ff4bd21e.js +1 -1
  528. package/es/useCellNavigation-0565b6dd.js +1 -1
  529. package/es/useChartContextMenu-5de82cd7.js +2 -2
  530. package/es/{useChartDatatip-cba78e0f.js → useChartDatatip-8dd22b71.js} +4 -4
  531. package/es/{useChartDatatip-cba78e0f.js.map → useChartDatatip-8dd22b71.js.map} +1 -1
  532. package/es/{useColorScheme-67245285.js → useColorScheme-c4f6caab.js} +2 -2
  533. package/es/{useColorScheme-67245285.js.map → useColorScheme-c4f6caab.js.map} +1 -1
  534. package/es/useContextMenu-730d6c12.js +2 -2
  535. package/es/{useCssVars-048a52d8.js → useCssVars-bc2527ac.js} +5 -5
  536. package/es/{useCssVars-048a52d8.js.map → useCssVars-bc2527ac.js.map} +1 -1
  537. package/es/{useCurrentKey-38e5f097.js → useCurrentKey-5f865bbd.js} +2 -2
  538. package/es/{useCurrentKey-38e5f097.js.map → useCurrentKey-5f865bbd.js.map} +1 -1
  539. package/es/{useDatatip-ef5c47a7.js → useDatatip-4895a07a.js} +4 -4
  540. package/es/{useDatatip-ef5c47a7.js.map → useDatatip-4895a07a.js.map} +1 -1
  541. package/es/{useDensity-969273f3.js → useDensity-1acb0153.js} +2 -2
  542. package/es/{useDensity-969273f3.js.map → useDensity-1acb0153.js.map} +1 -1
  543. package/es/{useDisplayValue-5bbf2830.js → useDisplayValue-65bbc74e.js} +7 -7
  544. package/es/{useDisplayValue-5bbf2830.js.map → useDisplayValue-65bbc74e.js.map} +1 -1
  545. package/es/{useExpandCollapse-51f9bb4b.js → useExpandCollapse-5739cfd2.js} +2 -2
  546. package/es/{useExpandCollapse-51f9bb4b.js.map → useExpandCollapse-5739cfd2.js.map} +1 -1
  547. package/es/{useFloating-c74a7f54.js → useFloating-b9d680f7.js} +2 -2
  548. package/es/{useFloating-c74a7f54.js.map → useFloating-b9d680f7.js.map} +1 -1
  549. package/es/{useHiddenTestMethod-ec7b3989.js → useHiddenTestMethod-f3f25093.js} +2 -2
  550. package/es/{useHiddenTestMethod-ec7b3989.js.map → useHiddenTestMethod-f3f25093.js.map} +1 -1
  551. package/es/{useKeyboardEvents-a1495728.js → useKeyboardEvents-9aae7ea3.js} +2 -2
  552. package/es/{useKeyboardEvents-a1495728.js.map → useKeyboardEvents-9aae7ea3.js.map} +1 -1
  553. package/es/useLegendContextMenu-a678b26f.js +4 -4
  554. package/es/{useMeterDatatip-f61ca3e0.js → useMeterDatatip-538a4d53.js} +3 -3
  555. package/es/{useMeterDatatip-f61ca3e0.js.map → useMeterDatatip-538a4d53.js.map} +1 -1
  556. package/es/useNavigation-b257c33a.js +1 -1
  557. package/es/{useOutsideClick-01f3d3e1.js → useOutsideClick-b777a43e.js} +2 -2
  558. package/es/{useOutsideClick-01f3d3e1.js.map → useOutsideClick-b777a43e.js.map} +1 -1
  559. package/es/{useOutsideMousedown-e0866d58.js → useOutsideMousedown-c45c22c0.js} +2 -2
  560. package/es/{useOutsideMousedown-e0866d58.js.map → useOutsideMousedown-c45c22c0.js.map} +1 -1
  561. package/es/{usePopupAnimation-7c5db425.js → usePopupAnimation-96d2bc83.js} +2 -2
  562. package/es/{usePopupAnimation-7c5db425.js.map → usePopupAnimation-96d2bc83.js.map} +1 -1
  563. package/es/{usePrefixSuffix-95fc00fd.js → usePrefixSuffix-f981b65f.js} +2 -2
  564. package/es/{usePrefixSuffix-95fc00fd.js.map → usePrefixSuffix-f981b65f.js.map} +1 -1
  565. package/es/{useRadioFocusManager-d9eecfb4.js → useRadioFocusManager-36eb283e.js} +2 -2
  566. package/es/{useRadioFocusManager-d9eecfb4.js.map → useRadioFocusManager-36eb283e.js.map} +1 -1
  567. package/es/{useReorderableItem-06bd7a7b.js → useReorderableItem-857636b7.js} +3 -3
  568. package/es/{useReorderableItem-06bd7a7b.js.map → useReorderableItem-857636b7.js.map} +1 -1
  569. package/es/{useRovingTabIndexContainer-c0356f5d.js → useRovingTabIndexContainer-5992e107.js} +2 -2
  570. package/es/{useRovingTabIndexContainer-c0356f5d.js.map → useRovingTabIndexContainer-5992e107.js.map} +1 -1
  571. package/es/{useScale-93490e54.js → useScale-434ad939.js} +2 -2
  572. package/es/{useScale-93490e54.js.map → useScale-434ad939.js.map} +1 -1
  573. package/es/{useSelectCommon-309d0f07.js → useSelectCommon-a3c69d60.js} +13 -8
  574. package/es/useSelectCommon-a3c69d60.js.map +1 -0
  575. package/es/{useSelectDrill-2f855daa.js → useSelectDrill-f669e729.js} +3 -3
  576. package/es/{useSelectDrill-2f855daa.js.map → useSelectDrill-f669e729.js.map} +1 -1
  577. package/es/{useSelection-d6fefa3d.js → useSelection-65134722.js} +2 -2
  578. package/es/{useSelection-d6fefa3d.js.map → useSelection-65134722.js.map} +1 -1
  579. package/es/{useSelection-10ed8060.js → useSelection-82bec039.js} +6 -6
  580. package/es/{useSelection-10ed8060.js.map → useSelection-82bec039.js.map} +1 -1
  581. package/es/useTabBar-c5558e77.js +3 -3
  582. package/es/{useTestId-ab1bede6.js → useTestId-f24ac480.js} +2 -2
  583. package/es/{useTestId-ab1bede6.js.map → useTestId-f24ac480.js.map} +1 -1
  584. package/es/{useTheme-c2cfbc29.js → useTheme-0e7497db.js} +2 -2
  585. package/es/{useTheme-c2cfbc29.js.map → useTheme-0e7497db.js.map} +1 -1
  586. package/es/{useThemeInterpolations-5f358139.js → useThemeInterpolations-e144e8ec.js} +5 -5
  587. package/es/{useThemeInterpolations-5f358139.js.map → useThemeInterpolations-e144e8ec.js.map} +1 -1
  588. package/es/{useTooltip-ab739df0.js → useTooltip-94af94d4.js} +2 -2
  589. package/es/{useTooltip-ab739df0.js.map → useTooltip-94af94d4.js.map} +1 -1
  590. package/es/{useTooltipControlled-b7f30aee.js → useTooltipControlled-f2cfa454.js} +5 -5
  591. package/es/{useTooltipControlled-b7f30aee.js.map → useTooltipControlled-f2cfa454.js.map} +1 -1
  592. package/es/{useTooltipOnTruncation-31afc3f2.js → useTooltipOnTruncation-94282e75.js} +4 -4
  593. package/es/{useTooltipOnTruncation-31afc3f2.js.map → useTooltipOnTruncation-94282e75.js.map} +1 -1
  594. package/es/{useTranslationBundle-bc6e0896.js → useTranslationBundle-4822502f.js} +2 -2
  595. package/es/{useTranslationBundle-bc6e0896.js.map → useTranslationBundle-4822502f.js.map} +1 -1
  596. package/es/{useUser-e543b73c.js → useUser-06d34d19.js} +2 -2
  597. package/es/{useUser-e543b73c.js.map → useUser-06d34d19.js.map} +1 -1
  598. package/es/useVisDragModeControls-af64848c.js +1 -1
  599. package/es/{useVisEvents-0edc925f.js → useVisEvents-256dee29.js} +2 -2
  600. package/es/{useVisEvents-0edc925f.js.map → useVisEvents-256dee29.js.map} +1 -1
  601. package/es/utils/PRIVATE_collectionUtils.js +17 -17
  602. package/es/utils/PRIVATE_tabBarUtils.js +17 -17
  603. package/es/utils/PRIVATE_tooltipUtils.js +14 -14
  604. package/es/utils/PRIVATE_visTestUtils.js +4 -4
  605. package/es/utils/UNSAFE_popupUtils.js +8 -8
  606. package/es/{withDirectionIcon-b725a6d7.js → withDirectionIcon-a8d84a3d.js} +2 -2
  607. package/es/{withDirectionIcon-b725a6d7.js.map → withDirectionIcon-a8d84a3d.js.map} +1 -1
  608. package/es/withThemeProps-dbd4fedf.js +2 -2
  609. package/package.json +2 -2
  610. package/amd/BaseCardView-16fda4c3.js +0 -2
  611. package/amd/CardFlexView-d3eb7373.js +0 -2
  612. package/amd/CardGridView-842f70cd.js +0 -2
  613. package/amd/ColorPicker-e3167e4c.js +0 -2
  614. package/amd/InputDatePicker-030e345a.js +0 -2
  615. package/amd/ListView-02a92d18.js +0 -2
  616. package/amd/NavigationListItem-9df5446c.js +0 -2
  617. package/amd/NavigationListItem-9df5446c.js.map +0 -1
  618. package/amd/NavigationListLinkItem-161049bb.js +0 -2
  619. package/amd/NavigationListLinkItem-161049bb.js.map +0 -1
  620. package/amd/OverflowTabBarItem-926b0c8a.js +0 -2
  621. package/amd/RemovableNavigationListItem-e298c5de.js +0 -2
  622. package/amd/ReorderableTabBar-0c69bfd4.js +0 -2
  623. package/amd/TabBar-de723fbc.js +0 -2
  624. package/amd/TabBarMixed-cfd346bf.js +0 -2
  625. package/amd/useSelectCommon-28307b63.js +0 -2
  626. package/amd/useSelectCommon-28307b63.js.map +0 -1
  627. package/cjs/NavigationListItem-cdfd0740.js.map +0 -1
  628. package/cjs/NavigationListLinkItem-62c3912e.js.map +0 -1
  629. package/cjs/useSelectCommon-b0d7feb3.js.map +0 -1
  630. package/es/useSelectCommon-309d0f07.js.map +0 -1
  631. package/es/useTextAreaAltEnter-ac460f4c.js +0 -61
  632. package/es/useTextAreaAltEnter-ac460f4c.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelectCommon-28307b63.js","sources":["../../src/PRIVATE_SelectCommon/itemTextUtils.ts","../../src/PRIVATE_SelectCommon/DefaultList.tsx","../../src/PRIVATE_SelectCommon/eventUtils.ts","../../src/PRIVATE_SelectCommon/DropdownArrow.tsx","../../src/PRIVATE_SelectCommon/DropdownList.tsx","../../src/PRIVATE_SelectCommon/EmptyResults.tsx","../../src/PRIVATE_SelectCommon/selectUtils.ts","../../src/PRIVATE_SelectCommon/useCollectionRenderer.ts","../../src/PRIVATE_SelectCommon/useSelectCommon.ts"],"sourcesContent":["/**\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 { Item } from '#utils/UNSAFE_dataProvider';\nimport { error } from '#utils/UNSAFE_logger';\nimport { ItemTextFunctionType, ItemTextType } from '#utils/UNSAFE_selectUtils';\n\nexport type ComponentName = 'InlineSelectSingle' | 'SelectSingle' | 'SelectMultiple';\n\nexport function renderItemText<K, D>(\n item: Item<K, D>,\n itemText: ItemTextType<K, D>,\n componentName: ComponentName\n) {\n // if item-text is a string and the data has the specified field, return it;\n // otherwise log an error\n if (typeof itemText === 'string') {\n if (Object.prototype.hasOwnProperty.call(item.data, itemText)) {\n const retData = item.data[itemText];\n return String(retData);\n }\n error(`${componentName}: itemText specifies field that does not exist: ${itemText}`);\n // return undefined if the field doesn't exist\n return undefined;\n }\n // if item-text is a function, call it to create a display label\n return (itemText as ItemTextFunctionType<K, D>)(item);\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 type { ComponentChildren, ComponentProps } from 'preact';\n\nimport { List } from '#PRIVATE_List';\nimport type { DataState, ListItemRendererContext, Metadata } from '#UNSAFE_Collection';\nimport { Flex } from '#UNSAFE_Flex';\nimport { HighlightText } from '#UNSAFE_HighlightText';\nimport { ListItemText } from '#UNSAFE_ListItemLayout';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport type { Keys } from '#utils/UNSAFE_keys';\nimport type { ItemTextType } from '#utils/UNSAFE_selectUtils';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport { type ComponentName, renderItemText } from './itemTextUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype ListProps<K extends string | number, D> = ComponentProps<typeof List<K, D>>;\ntype PickedPropsFromList = Pick<\n ComponentProps<typeof List>,\n 'aria-label' | 'currentItemVariant' | 'selectionMode'\n>;\n\n// pick the props from the ListItemContext instead of extending it directly so that we\n// don't automatically expose any new props that may be added to it\ntype PickedPropsFromListItemContext<K, D> = Pick<\n ListItemRendererContext<K, D>,\n 'data' | 'index' | 'selector'\n>;\ntype ItemRendererSelectionDetail<K> = {\n value: Set<K>;\n target: EventTarget | null;\n};\ntype ItemRendererMetadata<K> = Pick<Metadata<K>, 'key' | 'suggestion'>;\ntype ItemRendererProps<K, D> = PickedPropsFromListItemContext<K, D> & {\n metadata: ItemRendererMetadata<K>;\n searchText?: string;\n selectedKeys?: Set<K>;\n onSelectionChange: (detail: ItemRendererSelectionDetail<K>) => void;\n};\n\ntype DefaultListCurrentKeyDetail<K> = { value: K };\ntype DefaultListItemActionDetail<K, D> = { context: Item<K, D> };\ntype DefaultListSelectionDetail<K> = { value: Set<K> };\n\ntype Props<K extends string | number, D extends Record<string, any>> = PickedPropsFromList & {\n itemRenderer?: (itemRendererProps: ItemRendererProps<K, D>) => ComponentChildren;\n itemText: ItemTextType<K, D>;\n // props from List that we constrain or unconstrain\n currentKey?: K;\n data?: DataState<K, D> | null;\n onCurrentKeyChange: (detail: DefaultListCurrentKeyDetail<K>) => void;\n onItemAction?: (detail: DefaultListItemActionDetail<K, D>) => void;\n onLoadRange?: ComponentProps<typeof List>['onLoadRange'];\n onSelectionChange?: (detail: DefaultListSelectionDetail<K>) => void;\n searchText?: string;\n selectedKeys?: Set<K>;\n // props for logging purposes\n componentName: ComponentName;\n};\n\nconst noOp = () => {};\n\nexport function DefaultList<K extends string | number, D extends Record<string, any>>({\n 'aria-label': ariaLabel,\n componentName,\n currentItemVariant,\n currentKey,\n data,\n itemRenderer,\n itemText,\n onCurrentKeyChange,\n onItemAction,\n onLoadRange = noOp,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n}: Props<K, D>) {\n const listItemRenderer = useCallback(\n (listItemContext: ListItemRendererContext<K, D>) => {\n // specify the listItemContext props that we want to expose individually instead of\n // spreading the whole object so that we don't automatically include any new props that\n // may be added to it\n const itemRendererProps: ItemRendererProps<K, D> = {\n data: listItemContext.data,\n index: listItemContext.index,\n metadata: listItemContext.metadata,\n selector: listItemContext.selector,\n searchText,\n selectedKeys,\n onSelectionChange: ({ value }) => {\n onSelectionChange?.({ value });\n }\n };\n const itemContext = {\n data: listItemContext.data,\n key: listItemContext.metadata.key,\n metadata: listItemContext.metadata\n };\n return itemRenderer ? (\n itemRenderer(itemRendererProps)\n ) : (\n <Flex align=\"center\">\n {listItemContext.selector && (\n <div class={dropdownStyles.selectorWrapper}>{listItemContext.selector()}</div>\n )}\n <div\n class={\n selectionMode === 'single'\n ? dropdownStyles.singleSelectItem\n : dropdownStyles.multiSelectItem\n }>\n <ListItemText variant=\"primary\">\n <HighlightText matchText={searchText}>\n {renderItemText(itemContext, itemText, componentName) as string}\n </HighlightText>\n </ListItemText>\n </div>\n </Flex>\n );\n },\n [\n componentName,\n itemRenderer,\n itemText,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n ]\n );\n\n const keys = useMemo(() => {\n return { all: false, keys: selectedKeys ?? new Set<K>() };\n }, [selectedKeys]) as Keys<K>;\n\n const currentItemOverride = useMemo(\n () => (currentKey !== undefined ? { rowKey: currentKey } : undefined),\n [currentKey]\n );\n const handleItemAction = useCallback<NonNullable<ListProps<K, D>['onItemAction']>>(\n ({ context: { data, metadata } }) => {\n onItemAction?.({ context: { data, key: metadata.key, metadata } });\n },\n [onItemAction]\n );\n const handleSelectionChange = useCallback<NonNullable<ListProps<K, D>['onSelectionChange']>>(\n ({ value }) => {\n onSelectionChange?.({ value: new Set(value.keys?.values()) });\n },\n [onSelectionChange]\n );\n\n return (\n <List<K, D>\n aria-label={ariaLabel}\n allowTabbableMode={false}\n currentItemVariant={currentItemVariant}\n currentItemOverride={currentItemOverride}\n data={data ?? null}\n onPersistCurrentItem={onCurrentKeyChange}\n onItemAction={handleItemAction}\n onLoadRange={onLoadRange}\n onSelectionChange={handleSelectionChange}\n role=\"listbox\"\n selectedKeys={keys}\n selectionMode={selectionMode}>\n {(context: ListItemRendererContext<K, D>) => listItemRenderer(context)}\n </List>\n );\n}\n","export const isSimpleClick = (event: MouseEvent) => {\n return event.button === 0 && !event.ctrlKey;\n};\n\nexport const preventDefault = (event: Event) => {\n event.preventDefault();\n};\n\nexport const preventDefaultForCurrentTarget = (event: MouseEvent) => {\n if (event.currentTarget === event.target) {\n event.preventDefault();\n }\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 { useCallback } from 'preact/hooks';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { DropdownArrowIcon } from '../PRIVATE_ThemedIcons/DropdownArrowIcon';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { ButtonLabelLayoutRedwoodTheme } from '#UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme';\nimport type { ButtonLabelLayoutVariantOptions } from '#UNSAFE_ButtonLabelLayout/themes/ButtonLabelLayoutStyles.css';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { BaseButtonRedwoodTheme } from '#UNSAFE_BaseButton/themes/redwood/BaseButtonTheme';\n\ntype Props = TestIdProps & {\n isDisabled?: boolean;\n onClick?: () => void;\n};\n\nconst noop = () => {};\n\nexport function DropdownArrow({ isDisabled = false, onClick, testId }: Props) {\n const { classes } = useComponentTheme<ButtonLabelLayoutVariantOptions>(\n ButtonLabelLayoutRedwoodTheme,\n { size: 'sm' }\n );\n const { baseTheme } = useComponentTheme(BaseButtonRedwoodTheme);\n\n const preventDefault = useCallback((event: Event) => {\n event.preventDefault();\n }, []);\n const { pressProps } = usePress(onClick ?? noop, { isDisabled });\n\n // TODO: JET-67410 replace this with a icon button\n const styleClasses = classNames([\n classes,\n baseTheme,\n dropdownStyles.arrow.base,\n isDisabled ? dropdownStyles.arrow.disabled : dropdownStyles.arrow.enabled\n ]);\n\n const testIdProps = useTestId(testId);\n\n return (\n <span\n aria-hidden=\"true\"\n class={styleClasses}\n tabIndex={-1}\n onMouseDown={preventDefault}\n {...testIdProps}\n {...pressProps}>\n <DropdownArrowIcon />\n </span>\n );\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 type { ComponentChildren, ComponentProps, Ref } from 'preact';\n\nimport { CollectionInteractionContext } from '#hooks/UNSAFE_useCollectionInteractionContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype Props = Pick<ComponentProps<'div'>, 'id' | 'onKeyDown'> & {\n children?: ComponentChildren;\n dropdownListRef?: Ref<HTMLDivElement>;\n hasTopGap?: boolean;\n hasBottomGap?: boolean;\n isLoading?: boolean;\n};\n\nexport function DropdownList({\n children,\n id,\n dropdownListRef,\n hasTopGap = true,\n hasBottomGap = true,\n isLoading = false,\n onKeyDown\n}: Props) {\n const styleClasses = classNames([\n dropdownStyles.list.base,\n hasTopGap && dropdownStyles.list.topGap,\n hasBottomGap && dropdownStyles.list.bottomGap,\n isLoading && dropdownStyles.list.loading\n ]);\n return (\n <CollectionInteractionContext.Provider value={'embedded'}>\n <div\n ref={dropdownListRef}\n class={styleClasses}\n id={id}\n onMouseDown={preventDefaultForCurrentTarget}\n onKeyDown={onKeyDown}>\n {children}\n </div>\n </CollectionInteractionContext.Provider>\n );\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 { Text } from '#UNSAFE_Text';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\nexport function EmptyResults() {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n // call preventDefault for mousedown on this div so that focus does not transfer from\n // the input\n return (\n <div class={dropdownStyles.results.extraItem} onMouseDown={preventDefaultForCurrentTarget}>\n <Text variant=\"primary\">{translations.select_noMatchesFound()}</Text>\n </div>\n );\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 type { DataState } from '#UNSAFE_Collection';\nimport { getClientHints } from '#utils/PRIVATE_clientHints';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\n\n/**\n * Helper function to determine whether the current device is a mobile device\n * @returns true if running on a mobile device, false otherwise\n */\nexport function isMobile() {\n const deviceType = getClientHints().deviceType;\n return deviceType === 'phone' || deviceType === 'tablet';\n}\n\n/**\n * Helper function to determine whether the current device is a phone\n * @returns true if running on a phone, false otherwise\n */\nexport function isPhone() {\n return getClientHints().deviceType === 'phone';\n}\n\n/**\n * Helper function to determine whether the current device is a tablet\n * @returns true if running on a tablet, false otherwise\n */\nexport function isTablet() {\n return getClientHints().deviceType === 'tablet';\n}\n\nexport function isBeforeDataFetch<K, D>(data: DataState<K, D>) {\n return data.sizePrecision === 'atLeast' && data.totalSize === 0;\n}\n\nexport function isSearchTextEmptyOrUndefined(searchText?: string) {\n return searchText === undefined || searchText.length === 0;\n}\n\nexport function isSearchClearedFirstTime(prevSearchText?: string, searchText?: string) {\n return prevSearchText === undefined && searchText === '';\n}\n\n/**\n * Extract keys from a value items array.\n *\n * @param valueItems The value items from which the keys are to be extracted\n * @returns The set of keys\n */\nexport function createKeysFromValueItems<K, D>(valueItems?: Item<K, D>[]) {\n const keys = valueItems?.reduce((accumKeys, currentItem) => {\n accumKeys.add(currentItem.key);\n return accumKeys;\n }, new Set<K>());\n return keys;\n}\n","import type { DataState } from '#UNSAFE_Collection';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport { useMemo } from 'preact/compat';\n\ntype Key = string | number;\ntype Data = Record<string, any>;\n\ntype UseCollectionRendererCommonParams<K> = {\n currentKey?: K;\n searchText?: string;\n selectedKeys?: Set<K>;\n onCurrentKeyChange: (detail: { value?: K }) => void;\n};\n\nexport type UseCollectionRendererSelectSingleParams<K, D> = UseCollectionRendererCommonParams<K> & {\n onItemAction: (detail: { context: Item<K, D> }) => void;\n onSelectedKeysChange?: never;\n selectedOnlyData?: never;\n};\n\nexport type UseCollectionRendererSelectMultipleParams<K, D> =\n UseCollectionRendererCommonParams<K> & {\n onItemAction?: never;\n onSelectedKeysChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n };\n\ntype UseCollectionRendererParams<K, D> =\n | UseCollectionRendererSelectSingleParams<K, D>\n | UseCollectionRendererSelectMultipleParams<K, D>;\n\ntype CommonCollectionRendererContext<K extends Key> = {\n searchText?: string;\n currentRowKeyOverride?: K;\n onPersistCurrentRowKey: (detail: { value?: K }) => void;\n selected?: Set<K>;\n};\n\nexport type SelectSingleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onRowAction: (detail: { context: Item<K, D> }) => void;\n};\n\nexport type SelectMultipleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onSelectedChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n};\n\ntype CollectionRendererContext<K extends Key, D extends Data> =\n | SelectSingleCollectionRendererContext<K, D>\n | SelectMultipleCollectionRendererContext<K, D>;\n\n// NOTE: We will using a single hook that constructs the collection renderer context for both select single and\n// select multiple. This is ok as they both share most of the properties and differ only in a few areas. So, we will\n// be using function overloading to determine which component is calling the hook (based on the args) and return the\n// correct context.\n\n/**\n * A custom hook that constructs the context for SelectSingle's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectSingleParams<K, D>\n): SelectSingleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectMultiple's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectMultipleParams<K, D>\n): SelectMultipleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectSingle/SelectMultiple's collectionRenderer.\n * @param param0 Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>({\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n}: UseCollectionRendererParams<K, D>) {\n return useMemo<CollectionRendererContext<K, D>>(() => {\n const common = {\n searchText,\n currentRowKeyOverride: currentKey,\n onPersistCurrentRowKey: onCurrentKeyChange,\n selected: selectedKeys\n } satisfies CommonCollectionRendererContext<K>;\n\n // If onItemAction is present, then we are constructing context for SelectSingle. So,\n // return the context satisfying SelectSingleCollectionRendererContext type.\n if (onItemAction !== undefined)\n return {\n ...common,\n onRowAction: onItemAction\n } satisfies SelectSingleCollectionRendererContext<K, D>;\n\n // If onItemAction is not present, then we are constructing context for SelectMultiple. So,\n // return the context satisfying SelectMultipleCollectionRendererContext type.\n return {\n ...common,\n onSelectedChange: onSelectedKeysChange,\n selectedOnlyData\n } satisfies SelectMultipleCollectionRendererContext<K, D>;\n }, [\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n ]);\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 type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport type { DataState } from '#UNSAFE_Collection';\nimport type { PositionData } from '#UNSAFE_Floating';\nimport { KEYS, isControlOrFunctionKey } from '#utils/PRIVATE_keyboardUtils';\nimport { allTabbableElements } from '#utils/PRIVATE_tabbableUtils';\nimport type { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { isSimpleClick } from './eventUtils';\n\ntype UseSelectCommonProps<K, D> = {\n data?: DataState<K, D> | null;\n inputRef: RefObject<HTMLElement>;\n isFocused?: boolean;\n onFilter?: ({ searchText }: { searchText?: string }) => void;\n};\n\nexport type CurrentKeyDetail<K> = {\n value?: K;\n};\n\n/**\n * Hook that manages state and behavior for a Select* component. This hook creates state\n * variables and event listeners, returning properties to apply to components internally\n * rendered by a Select* component, as well as state information.\n *\n * @param data Specifies data for the dropdown list.\n * @param inputRef Ref to the input element.\n * @param isFocused Specifies whether the component has focus.\n * @param onFilter Callback function to trigger loading data for the dropdown list,\n * which may or may not be filtered by user entered text.\n *\n * @returns Component state and event listeners.\n */\nexport function useSelectCommon<K, D>({\n data,\n inputRef,\n isFocused,\n onFilter\n}: UseSelectCommonProps<K, D>) {\n const mainFieldRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [isDropdownOpen, setDropdownOpen] = useState(false);\n const [isDropdownAbove, setDropdownAbove] = useState(false);\n\n // We only need to push currentRow when we need to override the\n // current row, like when the dropdown is opened and we want to set the initial\n // focused row or when filtering and we want to focus the first row.\n const [currentRowOverride, _setCurrentRowOverride] = useState<{ rowKey?: K }>({\n rowKey: undefined\n });\n // We still need information on what the current row actually is, but we do not need\n // to react to it until certain scenarios like pressing Tab from the dropdown. So, we\n // just store this in a ref.\n const currentRowKeyRef = useRef<K>();\n // When we want to update the currentRowOverride, we also want to keep the currentRowKeyRef\n // in sync as the collection will not call onChanged for this change.\n const setCurrentRowOverride = useCallback((currentRow: { rowKey?: K }) => {\n currentRowKeyRef.current = currentRow.rowKey;\n _setCurrentRowOverride(currentRow);\n }, []);\n const [isUserFiltering, setUserFiltering] = useState(false);\n const [userInput, setUserInput] = useState<string>();\n const [searchText, setSearchText] = useState<string>();\n\n const [prevIsDropdownOpen, setPrevIsDropdownOpen] = useState(isDropdownOpen);\n const [prevIsFocused, setPrevIsFocused] = useState(isFocused);\n const [prevIsUserFiltering, setPrevIsUserFiltering] = useState(isUserFiltering);\n\n const onMouseDown = useCallback(\n (event: MouseEvent) => {\n // const target = event.target as HTMLElement;\n if (event.defaultPrevented || !isSimpleClick(event)) {\n return;\n }\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n // this is needed to focus the input when clicking on the inside label when there is no\n // value; otherwise the component looks focused but doesn't actually have physical focus\n setTimeout(function () {\n inputRef.current?.focus();\n }, 0);\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownArrowClick = useCallback(() => {\n setDropdownOpen(!isDropdownOpen);\n\n // focus the input so that if the user Tabs afterwards, it loses focus and the dropdown closes\n inputRef.current?.focus();\n }, [inputRef, isDropdownOpen]);\n\n const handleDropdownAutoDismiss = useCallback(\n (event?: Event) => {\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n switch (event?.type) {\n case 'keydown': {\n const keyboardEvent = event as KeyboardEvent;\n switch (keyboardEvent.code) {\n case KEYS.ESC:\n // focus the input when the user cancels out of the dropdown\n inputRef.current?.focus();\n break;\n default:\n break;\n }\n break;\n }\n case 'mousedown':\n // if focus is in the dropdown, focus the input before the dropdown is hidden so that\n // focus will transfer correctly when the target is not focusable;\n // otherwise the text cursor appears in the input again\n if (dropdownRef.current?.contains(document.activeElement)) {\n inputRef.current?.focus();\n }\n break;\n default:\n break;\n }\n }\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownPosition = useCallback((data: PositionData) => {\n setDropdownAbove(data.placement.startsWith('top'));\n }, []);\n\n const getDropdownTabbableElems = useCallback(() => {\n return isDropdownOpen && dropdownRef.current\n ? allTabbableElements(dropdownRef.current)\n : undefined;\n }, [isDropdownOpen]);\n\n const handleUpDownArrowKeys = useCallback(\n (event: KeyboardEvent) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n } else {\n // JET-64909 - focus / 'current' dropped when arrow keying during loading\n // Transfer physical focus into the dropdown only if the data is present and the dropdown\n // has rendered the data. Otherwise, keep the focus in the field.\n if (data != null) {\n const tabbableElems = getDropdownTabbableElems();\n tabbableElems?.[0]?.focus();\n\n // if there is no current item set, make the first item current\n if (currentRowOverride.rowKey === undefined) {\n setCurrentRowOverride({ rowKey: data.data[0]?.metadata?.key });\n }\n }\n }\n\n // prevent the page from scrolling\n event.preventDefault();\n },\n [currentRowOverride, data, getDropdownTabbableElems, isDropdownOpen, setCurrentRowOverride]\n );\n\n const handleMainFieldKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // const target = event.target as HTMLElement;\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.PAGE_UP:\n case KEYS.PAGE_DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n\n return;\n\n case KEYS.UP:\n case KEYS.DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n break;\n\n case KEYS.ESC:\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n event.preventDefault();\n\n // JET-53183 - core pack compat: stop propagation of handled events\n // we don't want a parent collection component to stop editing the row when we close\n // the dropdown\n event.stopPropagation();\n }\n break;\n\n default:\n break;\n }\n },\n [isDropdownOpen]\n );\n\n const handleMainFieldKeyUp = useCallback(\n (event: KeyboardEvent) => {\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.UP:\n case KEYS.DOWN:\n handleUpDownArrowKeys(event);\n break;\n\n default:\n break;\n }\n },\n [handleUpDownArrowKeys]\n );\n\n const handleInput = useCallback(\n (detail: ValueUpdateDetail<string>) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n setUserFiltering(true);\n setUserInput(detail.value);\n const str = detail.value;\n setSearchText(str);\n onFilter?.({ searchText: str });\n },\n [isDropdownOpen, onFilter]\n );\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K>) => {\n // when the collection changes the current key, we only want to store the information\n // and not do anything.\n currentRowKeyRef.current = detail.value;\n }, []);\n\n const stopFiltering = useCallback(() => {\n setUserFiltering(false);\n setUserInput('');\n // Set this to `undefined` as this represents the initial state.\n // We need to do this for select-single as we need to highlight different\n // rows based on whether it is the initial dropdown navigation or empty filter navigation.\n setSearchText(undefined);\n }, []);\n\n const updateFiltering = useCallback((value?: string) => {\n setUserFiltering(true);\n setUserInput(value);\n setSearchText(value);\n }, []);\n\n // the user is not actively filtering if the dropdown is closed and the component doesn't\n // have focus\n if (\n prevIsDropdownOpen !== isDropdownOpen ||\n prevIsFocused !== isFocused ||\n prevIsUserFiltering !== isUserFiltering\n ) {\n if (!isDropdownOpen && !isFocused && isUserFiltering) {\n stopFiltering();\n }\n }\n\n // need to call onFilter with undefined searchText when the dropdown opens and the\n // user is NOT filtering\n useEffect(() => {\n if (isDropdownOpen && !isUserFiltering) {\n onFilter?.({ searchText: undefined });\n }\n }, [isDropdownOpen, isUserFiltering, onFilter]);\n\n // when the dropdown closes, reset the isDropdownAbove flag\n if (prevIsDropdownOpen !== isDropdownOpen) {\n if (!isDropdownOpen) {\n setDropdownAbove(false);\n }\n setPrevIsDropdownOpen(isDropdownOpen);\n }\n\n if (prevIsFocused !== isFocused) {\n setPrevIsFocused(isFocused);\n }\n if (prevIsUserFiltering !== isUserFiltering) {\n setPrevIsUserFiltering(isUserFiltering);\n }\n\n return {\n currentRowKeyRef,\n currentRowOverride,\n dropdownRef,\n getDropdownTabbableElems,\n handleDropdownArrowClick,\n handleDropdownAutoDismiss,\n handleDropdownPosition,\n handleInput,\n handleMainFieldKeyDown,\n handleMainFieldKeyUp,\n handleUpDownArrowKeys,\n isDropdownAbove,\n isDropdownOpen,\n // the field should remain to look focused while the dropdown is open,\n // in case physical focus is in the dropdown\n isFocused: isFocused || isDropdownOpen,\n isUserFiltering,\n mainFieldRef,\n onCurrentKeyChange,\n onMouseDown,\n searchText,\n setCurrentRowOverride,\n setDropdownOpen,\n setUserInput,\n stopFiltering,\n updateFiltering,\n userInput\n };\n}\n"],"names":["renderItemText","item","itemText","componentName","Object","prototype","hasOwnProperty","call","data","retData","String","error","noOp","isSimpleClick","event","button","ctrlKey","preventDefaultForCurrentTarget","currentTarget","target","preventDefault","noop","ariaLabel","currentItemVariant","currentKey","itemRenderer","onCurrentKeyChange","onItemAction","onLoadRange","onSelectionChange","searchText","selectedKeys","selectionMode","listItemRenderer","useCallback","listItemContext","itemRendererProps","index","metadata","selector","value","itemContext","key","_jsxs","jsxs","Flex","align","children","_jsx","class","dropdownStyles","selectorWrapper","singleSelectItem","multiSelectItem","ListItemText","variant","jsx","HighlightText","matchText","keys","useMemo","all","Set","currentItemOverride","undefined","rowKey","handleItemAction","context","handleSelectionChange","values","List","allowTabbableMode","onPersistCurrentItem","role","isDisabled","onClick","testId","classes","useComponentTheme","ButtonLabelLayoutRedwoodTheme","size","baseTheme","BaseButtonRedwoodTheme","pressProps","usePress","styleClasses","classNames","arrow","base","disabled","enabled","testIdProps","useTestId","tabIndex","onMouseDown","DropdownArrowIcon","SvgCaretDown","id","dropdownListRef","hasTopGap","hasBottomGap","isLoading","onKeyDown","list","topGap","bottomGap","loading","CollectionInteractionContext","Provider","ref","translations","useTranslationBundle","results","extraItem","Text","select_noMatchesFound","valueItems","reduce","accumKeys","currentItem","add","sizePrecision","totalSize","deviceType","getClientHints","prevSearchText","length","onSelectedKeysChange","selectedOnlyData","common","currentRowKeyOverride","onPersistCurrentRowKey","selected","onRowAction","onSelectedChange","inputRef","isFocused","onFilter","mainFieldRef","useRef","dropdownRef","isDropdownOpen","setDropdownOpen","useState","isDropdownAbove","setDropdownAbove","currentRowOverride","_setCurrentRowOverride","currentRowKeyRef","setCurrentRowOverride","currentRow","current","isUserFiltering","setUserFiltering","userInput","setUserInput","setSearchText","prevIsDropdownOpen","setPrevIsDropdownOpen","prevIsFocused","setPrevIsFocused","prevIsUserFiltering","setPrevIsUserFiltering","defaultPrevented","setTimeout","focus","handleDropdownArrowClick","handleDropdownAutoDismiss","type","code","KEYS","ESC","contains","document","activeElement","handleDropdownPosition","placement","startsWith","getDropdownTabbableElems","allTabbableElements","handleUpDownArrowKeys","tabbableElems","handleMainFieldKeyDown","isControlOrFunctionKey","PAGE_UP","PAGE_DOWN","UP","DOWN","stopPropagation","handleMainFieldKeyUp","handleInput","detail","str","stopFiltering","updateFiltering","useEffect"],"mappings":"gxBAcgBA,EACdC,EACAC,EACAC,GAIA,GAAwB,iBAAbD,EAUX,OAAQA,EAAwCD,GAT9C,GAAIG,OAAOC,UAAUC,eAAeC,KAAKN,EAAKO,KAAMN,GAAW,CAC7D,MAAMO,EAAUR,EAAKO,KAAKN,GAC1B,OAAOQ,OAAOD,EACf,CACDE,EAAKA,MAAC,GAAGR,oDAAgED,IAM7E,CCkCA,MAAMU,EAAO,OClEA,MAAAC,EAAiBC,GACJ,IAAjBA,EAAMC,SAAiBD,EAAME,QAOzBC,EAAkCH,IACzCA,EAAMI,gBAAkBJ,EAAMK,QAChCL,EAAMM,gBACP,ECaGC,EAAO,qBF4CG,UACd,aAAcC,EAASnB,cACvBA,EAAaoB,mBACbA,EAAkBC,WAClBA,EAAUhB,KACVA,EAAIiB,aACJA,EAAYvB,SACZA,EAAQwB,mBACRA,EAAkBC,aAClBA,EAAYC,YACZA,EAAchB,EAAIiB,kBAClBA,EAAiBC,WACjBA,EAAUC,aACVA,EAAYC,cACZA,IAEA,MAAMC,EAAmBC,eACtBC,IAIC,MAAMC,EAA6C,CACjD5B,KAAM2B,EAAgB3B,KACtB6B,MAAOF,EAAgBE,MACvBC,SAAUH,EAAgBG,SAC1BC,SAAUJ,EAAgBI,SAC1BT,aACAC,eACAF,kBAAmB,EAAGW,YACpBX,IAAoB,CAAEW,SAAQ,GAG5BC,EAAc,CAClBjC,KAAM2B,EAAgB3B,KACtBkC,IAAKP,EAAgBG,SAASI,IAC9BJ,SAAUH,EAAgBG,UAE5B,OAAOb,EACLA,EAAaW,GAEbO,EAACC,KAAAC,EAAIA,MAACC,MAAM,SACTC,SAAA,CAAAZ,EAAgBI,UACfS,EAAAA,IAAK,MAAA,CAAAC,MAAOC,EAAAA,eAAeC,gBAAkBJ,SAAAZ,EAAgBI,aAE/DS,EAAAA,WACEC,MACoB,WAAlBjB,EACIkB,EAAAA,eAAeE,iBACfF,EAAAA,eAAeG,yBAErBL,EAAAA,IAACM,EAAYA,aAAC,CAAAC,QAAQ,UACpBR,SAAAC,EAAAQ,IAACC,EAAaA,cAAC,CAAAC,UAAW5B,EACvBiB,SAAA/C,EAAeyC,EAAavC,EAAUC,WAKhD,GAEH,CACEA,EACAsB,EACAvB,EACA2B,EACAC,EACAC,EACAC,IAIE2B,EAAOC,EAAAA,SAAQ,KACZ,CAAEC,KAAK,EAAOF,KAAM5B,GAAgB,IAAI+B,OAC9C,CAAC/B,IAEEgC,EAAsBH,EAAAA,SAC1B,SAAsBI,IAAfxC,EAA2B,CAAEyC,OAAQzC,QAAewC,GAC3D,CAACxC,IAEG0C,EAAmBhC,EAAAA,aACvB,EAAGiC,SAAW3D,OAAM8B,gBAClBX,IAAe,CAAEwC,QAAS,CAAE3D,OAAMkC,IAAKJ,EAASI,IAAKJ,aAAa,GAEpE,CAACX,IAEGyC,EAAwBlC,EAAAA,aAC5B,EAAGM,YACDX,IAAoB,CAAEW,MAAO,IAAIsB,IAAItB,EAAMmB,MAAMU,WAAY,GAE/D,CAACxC,IAGH,OACEmB,EAAAA,IAACsB,EAAAA,KAAI,CAAA,aACShD,EACZiD,mBAAmB,EACnBhD,mBAAoBA,EACpBwC,oBAAqBA,EACrBvD,KAAMA,GAAQ,KACdgE,qBAAsB9C,EACtBC,aAAcuC,EACdtC,YAAaA,EACbC,kBAAmBuC,EACnBK,KAAK,UACL1C,aAAc4B,EACd3B,cAAeA,EAAae,SAC1BoB,GAA2ClC,EAAiBkC,IAGpE,kBEtJM,UAAwBO,WAAEA,GAAa,EAAKC,QAAEA,EAAOC,OAAEA,IAC3D,MAAMC,QAAEA,GAAYC,EAAiBA,kBACnCC,EAA6BA,8BAC7B,CAAEC,KAAM,QAEJC,UAAEA,GAAcH,EAAiBA,kBAACI,EAAsBA,wBAExD9D,EAAiBc,eAAapB,IAClCA,EAAMM,gBAAgB,GACrB,KACG+D,WAAEA,GAAeC,EAAQA,SAACT,GAAWtD,EAAM,CAAEqD,eAG7CW,EAAeC,EAAAA,WAAW,CAC9BT,EACAI,EACA/B,EAAcA,eAACqC,MAAMC,KACrBd,EAAaxB,EAAcA,eAACqC,MAAME,SAAWvC,EAAcA,eAACqC,MAAMG,UAG9DC,EAAcC,YAAUhB,GAE9B,OACE5B,EACcQ,IAAA,OAAA,CAAA,cAAA,OACZP,MAAOoC,EACPQ,UAAW,EACXC,YAAa1E,KACTuE,KACAR,EACJpC,SAAAC,EAAAA,IAAC+C,EAAiBC,aAAA,KAGxB,iBCpCM,UAAuBjD,SAC3BA,EAAQkD,GACRA,EAAEC,gBACFA,EAAeC,UACfA,GAAY,EAAIC,aAChBA,GAAe,EAAIC,UACnBA,GAAY,EAAKC,UACjBA,IAEA,MAAMjB,EAAeC,EAAAA,WAAW,CAC9BpC,EAAcA,eAACqD,KAAKf,KACpBW,GAAajD,EAAAA,eAAeqD,KAAKC,OACjCJ,GAAgBlD,EAAAA,eAAeqD,KAAKE,UACpCJ,GAAanD,EAAAA,eAAeqD,KAAKG,UAEnC,OACE1D,MAAC2D,EAAAA,6BAA6BC,SAAS,CAAApE,MAAO,oBAC5CQ,EACEQ,IAAA,MAAA,CAAAqD,IAAKX,EACLjD,MAAOoC,EACPY,GAAIA,EACJH,YAAa7E,EACbqF,UAAWA,EACVvD,SAAAA,KAIT,4BCnCE,MAAM+D,EAAeC,uBAAiC,4BAItD,OACE/D,EAAAQ,IAAA,MAAA,CAAKP,MAAOC,EAAcA,eAAC8D,QAAQC,UAAWnB,YAAa7E,EAA8B8B,SACvFC,EAAAA,IAACkE,EAAIA,KAAC,CAAA3D,QAAQ,UAAWR,SAAA+D,EAAaK,2BAG5C,6BC+BM,SAAyCC,GAC7C,MAAMzD,EAAOyD,GAAYC,QAAO,CAACC,EAAWC,KAC1CD,EAAUE,IAAID,EAAY7E,KACnB4E,IACN,IAAIxD,KACP,OAAOH,CACT,sBAxBM,SAAkCnD,GACtC,MAA8B,YAAvBA,EAAKiH,eAAkD,IAAnBjH,EAAKkH,SAClD,wBAtBE,MAAMC,EAAaC,mBAAiBD,WACpC,MAAsB,UAAfA,GAAyC,WAAfA,CACnC,uBAOE,MAAuC,UAAhCC,EAAcA,iBAAGD,UAC1B,6BAkBgB,SAAyBE,EAAyB/F,GAChE,YAA0BkC,IAAnB6D,GAA+C,KAAf/F,CACzC,iCANM,SAAuCA,GAC3C,YAAsBkC,IAAflC,GAAkD,IAAtBA,EAAWgG,MAChD,0CATE,MAAuC,WAAhCF,EAAcA,iBAAGD,UAC1B,mBJ/B+B7G,IAC7BA,EAAMM,gBAAgB,0FKgF6CI,WACnEA,EAAUE,mBACVA,EAAkBC,aAClBA,EAAYoG,qBACZA,EAAoBjG,WACpBA,EAAUC,aACVA,EAAYiG,iBACZA,IAEA,OAAOpE,EAAOA,SAAkC,KAC9C,MAAMqE,EAAS,CACbnG,aACAoG,sBAAuB1G,EACvB2G,uBAAwBzG,EACxB0G,SAAUrG,GAKZ,YAAqBiC,IAAjBrC,EACK,IACFsG,EACHI,YAAa1G,GAKV,IACFsG,EACHK,iBAAkBP,EAClBC,mBACuD,GACxD,CACDxG,EACAE,EACAC,EACAoG,EACAjG,EACAC,EACAiG,GAEJ,oBCpFM,UAAgCxH,KACpCA,EAAI+H,SACJA,EAAQC,UACRA,EAASC,SACTA,IAEA,MAAMC,EAAeC,SAAuB,MACtCC,EAAcD,SAAuB,OACpCE,EAAgBC,GAAmBC,EAAQA,UAAC,IAC5CC,EAAiBC,GAAoBF,EAAQA,UAAC,IAK9CG,EAAoBC,GAA0BJ,WAAyB,CAC5E9E,YAAQD,IAKJoF,EAAmBT,EAAAA,SAGnBU,EAAwBnH,eAAaoH,IACzCF,EAAiBG,QAAUD,EAAWrF,OACtCkF,EAAuBG,EAAW,GACjC,KACIE,EAAiBC,GAAoBV,EAAQA,UAAC,IAC9CW,EAAWC,GAAgBZ,EAAQA,YACnCjH,EAAY8H,GAAiBb,EAAQA,YAErCc,EAAoBC,GAAyBf,EAAQA,SAACF,IACtDkB,EAAeC,GAAoBjB,EAAQA,SAACP,IAC5CyB,EAAqBC,GAA0BnB,EAAQA,SAACS,GAEzD1D,EAAc5D,eACjBpB,KAEKA,EAAMqJ,kBAAqBtJ,EAAcC,KAGxC+H,GACHC,GAAgB,GAIlBsB,YAAW,WACT7B,EAASgB,SAASc,OACnB,GAAE,GAAE,GAEP,CAAC9B,EAAUM,IAGPyB,EAA2BpI,EAAAA,aAAY,KAC3C4G,GAAiBD,GAGjBN,EAASgB,SAASc,OAAO,GACxB,CAAC9B,EAAUM,IAER0B,EAA4BrI,eAC/BpB,IACC,GAAI+H,EAGF,OAFAC,GAAgB,GAERhI,GAAO0J,MACb,IAAK,UAEH,GADsB1J,EACA2J,OACfC,EAAIA,KAACC,IAERpC,EAASgB,SAASc,QAKtB,MAEF,IAAK,YAICzB,EAAYW,SAASqB,SAASC,SAASC,gBACzCvC,EAASgB,SAASc,QAMzB,GAEH,CAAC9B,EAAUM,IAGPkC,EAAyB7I,eAAa1B,IAC1CyI,EAAiBzI,EAAKwK,UAAUC,WAAW,OAAO,GACjD,IAEGC,EAA2BhJ,EAAAA,aAAY,IACpC2G,GAAkBD,EAAYW,QACjC4B,EAAmBA,oBAACvC,EAAYW,cAChCvF,GACH,CAAC6E,IAEEuC,EAAwBlJ,eAC3BpB,IACC,GAAK+H,GAMH,GAAY,MAARrI,EAAc,CAChB,MAAM6K,EAAgBH,IACtBG,IAAgB,IAAIhB,aAGcrG,IAA9BkF,EAAmBjF,QACrBoF,EAAsB,CAAEpF,OAAQzD,EAAKA,KAAK,IAAI8B,UAAUI,KAE3D,OAbDoG,GAAgB,GAiBlBhI,EAAMM,gBAAgB,GAExB,CAAC8H,EAAoB1I,EAAM0K,EAA0BrC,EAAgBQ,IAGjEiC,EAAyBpJ,eAC5BpB,IAGC,IAAIyK,EAAAA,uBAAuBzK,GAI3B,OAAQA,EAAM2J,MACZ,KAAKC,EAAAA,KAAKc,QACV,KAAKd,EAAIA,KAACe,UAIR,YAFA3K,EAAMM,iBAIR,KAAKsJ,EAAAA,KAAKgB,GACV,KAAKhB,EAAIA,KAACiB,KAER7K,EAAMM,iBACN,MAEF,KAAKsJ,EAAIA,KAACC,IACJ9B,IACFC,GAAgB,GAEhBhI,EAAMM,iBAKNN,EAAM8K,mBAMX,GAEH,CAAC/C,IAGGgD,EAAuB3J,eAC1BpB,IAEC,IAAIyK,EAAAA,uBAAuBzK,GAI3B,OAAQA,EAAM2J,MACZ,KAAKC,EAAAA,KAAKgB,GACV,KAAKhB,EAAIA,KAACiB,KACRP,EAAsBtK,GAKzB,GAEH,CAACsK,IAGGU,EAAc5J,eACjB6J,IACMlD,GACHC,GAAgB,GAElBW,GAAiB,GACjBE,EAAaoC,EAAOvJ,OACpB,MAAMwJ,EAAMD,EAAOvJ,MACnBoH,EAAcoC,GACdvD,IAAW,CAAE3G,WAAYkK,GAAM,GAEjC,CAACnD,EAAgBJ,IAGb/G,EAAqBQ,eAAa6J,IAGtC3C,EAAiBG,QAAUwC,EAAOvJ,KAAK,GACtC,IAEGyJ,EAAgB/J,EAAAA,aAAY,KAChCuH,GAAiB,GACjBE,EAAa,IAIbC,OAAc5F,EAAU,GACvB,IAEGkI,EAAkBhK,eAAaM,IACnCiH,GAAiB,GACjBE,EAAanH,GACboH,EAAcpH,EAAM,GACnB,IAqCH,OAhCEqH,IAAuBhB,GACvBkB,IAAkBvB,GAClByB,IAAwBT,GAEnBX,GAAmBL,IAAagB,GACnCyC,IAMJE,EAAAA,WAAU,KACJtD,IAAmBW,GACrBf,IAAW,CAAE3G,gBAAYkC,GAC1B,GACA,CAAC6E,EAAgBW,EAAiBf,IAGjCoB,IAAuBhB,IACpBA,GACHI,GAAiB,GAEnBa,EAAsBjB,IAGpBkB,IAAkBvB,GACpBwB,EAAiBxB,GAEfyB,IAAwBT,GAC1BU,EAAuBV,GAGlB,CACLJ,mBACAF,qBACAN,cACAsC,2BACAZ,2BACAC,4BACAQ,yBACAe,cACAR,yBACAO,uBACAT,wBACApC,kBACAH,iBAGAL,UAAWA,GAAaK,EACxBW,kBACAd,eACAhH,qBACAoE,cACAhE,aACAuH,wBACAP,kBACAa,eACAsC,gBACAC,kBACAxC,YAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationListItem-cdfd0740.js","sources":["../../src/UNSAFE_NavigationList/useNavigationList.ts","../../src/UNSAFE_NavigationList/NavigationList.tsx","../../src/UNSAFE_NavigationList/NavigationListItem.tsx"],"sourcesContent":["import { ComponentChildren, ComponentProps } from 'preact';\nimport { useState, useCallback, MutableRef, useRef, useEffect, useId } from 'preact/hooks';\nimport {\n keyExtractor,\n getFirstVisibleKey,\n getKey,\n getPrevNextKeyUsingRef,\n findElementByKey\n} from '../utils/PRIVATE_collectionUtils';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { MenuProps } from '../hooks/PRIVATE_useVisContextMenu/util';\nimport { useContextMenuGesture } from '../hooks/UNSAFE_useContextMenuGesture';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '../resources/nls/bundle';\nimport { Menu } from '../UNSAFE_Menu';\nimport { getDefaultContextMenu } from '../UNSAFE_TabBar/TabBarContextMenu';\nimport { TabBarContextMenuConfig, TabBarItemContextMenuContext } from '../UNSAFE_TabBarCommon';\nimport { NavigationListContextProps } from '../UNSAFE_NavigationListCommon';\n\nconst ITEM_SELECTOR = '[role=\"tab\"]';\nexport const REMOVE_ICON_SELECTOR = '[data-oj-navigationlist-item-remove-icon]';\nconst TOUCH_OFFSET_VALUE = 40;\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\n/**\n * type for payload of current key change event handler\n */\ntype CurrentKeyDetail<K> = {\n value: K;\n};\n/**\n * type for payload of selection change event handler\n */\ntype SelectionDetail<K> = {\n value: K;\n reason: 'pointer' | 'keyboard';\n};\n/**\n * type for payload of remove event handler\n */\ntype RemoveDetail<K> = {\n value: K;\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/*TODO: JET-58534. Create a hook to share some logic between navlist and tabbar. Hook will be used inside this one. */\nexport function useNavigationList<K extends string | number>({\n containerRef,\n selection,\n onRemove,\n onSelectionChange,\n children,\n contextMenuConfig\n}: {\n containerRef: MutableRef<HTMLDivElement>;\n selection?: K;\n onRemove?: <K extends string | number>(detail: RemoveDetail<K>) => void;\n onSelectionChange?: <K extends string | number>(detail: SelectionDetail<K>) => void;\n children: ComponentChildren;\n contextMenuConfig?: TabBarContextMenuConfig<K>;\n}) {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const [currentKey, setCurrentKey] = useState<K | undefined>(selection);\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K | undefined>) => {\n setCurrentKey(detail.value);\n }, []) as NavigationListContextProps<K>['onCurrentKeyChange'];\n\n const { currentKeyProps } = useCurrentKey(\n (element) =>\n onRemove\n ? (extractOnlyItemKey(element, ITEM_SELECTOR, REMOVE_ICON_SELECTOR) as K)\n : keyExtractor(element, ITEM_SELECTOR),\n false,\n false,\n getPrevNextKeyUsingRef(containerRef, currentKey, true, ITEM_SELECTOR),\n getPrevNextKeyUsingRef(containerRef, currentKey, false, ITEM_SELECTOR),\n undefined,\n undefined,\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(containerRef, [\n 'Home',\n 'End',\n 'ArrowUp',\n 'ArrowDown'\n ]);\n\n const onFocus = useCallback(() => {\n if (containerRef.current && currentKey === undefined) {\n const key = getFirstVisibleKey(containerRef.current, ITEM_SELECTOR);\n if (key) {\n setCurrentKey(key as K);\n }\n }\n }, [currentKey, containerRef]);\n\n const onFocusProps = { onFocus };\n const prevNavItems = useRef<K[]>();\n\n useEffect(() => {\n if (containerRef.current) {\n const navListItemKeys = Array.from(\n containerRef.current.querySelectorAll(ITEM_SELECTOR),\n (elem) => getKey(elem as HTMLElement) as K\n );\n if (currentKey != null && navListItemKeys.indexOf(currentKey) !== -1) {\n const navListItem = findElementByKey(\n containerRef.current,\n currentKey,\n ITEM_SELECTOR\n ) as any;\n if (navListItem.scrollIntoViewIfNeeded) {\n // for some browsers, we'll need the non-standard scrollIntoViewIfNeeded\n navListItem.scrollIntoViewIfNeeded();\n } else {\n navListItem.scrollIntoView({ block: 'nearest' });\n }\n } else {\n if (currentKey && navListItemKeys.indexOf(currentKey) === -1) {\n prevNavItems.current\n ? setCurrentKey(findNextCurrentKey(currentKey, navListItemKeys, prevNavItems.current))\n : setCurrentKey(navListItemKeys[0] as K);\n }\n prevNavItems.current = navListItemKeys;\n }\n }\n }, [children, currentKey, containerRef]);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if ((event.key === 'Home' || event.key === 'End') && containerRef.current && currentKey) {\n const navListItemKey = Array.from(\n containerRef.current.querySelectorAll(ITEM_SELECTOR),\n (elem) => getKey(elem as HTMLElement) as K\n );\n onCurrentKeyChange?.({\n value: navListItemKey[event.key === 'Home' ? 0 : navListItemKey.length - 1] as K\n });\n }\n if (currentKey && (event.key === 'Enter' || event.key === ' ')) {\n // Prevent default to avoid page scrolling on Space (and native actions on Enter)\n event.preventDefault();\n onSelectionChange?.({\n value: currentKey as K,\n reason: 'keyboard'\n });\n }\n if (currentKey && event.key === 'Delete') {\n onRemove?.({ value: currentKey as K });\n }\n },\n [currentKey, onSelectionChange, onRemove, onCurrentKeyChange, containerRef]\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 containerRef.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 isRemovable = false;\n if (containerRef.current) {\n isRemovable = getItemAttribute(itemKey, containerRef.current, REMOVE_ICON_SELECTOR) != null;\n }\n const defaultContext = getDefaultContextMenu<K>({\n // For default menu items the existence of REMOVE_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: undefined,\n itemKey: itemKey,\n tabKeys: undefined,\n // As direction is only needed for reorder to switch the labels\n direction: undefined,\n itemLabels: {\n labelRemove: isRemovable ? translations.tabbar_labelRemove() : undefined\n },\n handleAccStatus: (detail) => {\n const removeItemLabel = getItemLabel(detail.removedKey!, containerRef.current!) as string;\n const removeStatus =\n isRemovable && detail.removedKey ? ` Removed ${removeItemLabel}` : '';\n\n setAccStatusInfo(removeStatus);\n }\n });\n setContextMenuContext(defaultContext);\n\n setMenuProps({\n ...menuPropGestureStates[gesture],\n anchorRef: { current: anchorBasedOnGesture },\n // This is set so that when no contextMenuConfig and when items is not removable we need not open it.\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 containerRef.current?.focus();\n }\n // We close the menu.The only prop that matters here is isOpen\n setMenuProps({ ...initialMenuProps });\n },\n [containerRef, contextMenuContext?.itemKey]\n );\n\n const contextMenuDescriptionId = 'contextMenu_' + useId();\n const contextMenuDescription = translations.tabbar_labelContextMenu();\n\n return {\n showFocusRing,\n currentKey,\n onCurrentKeyChange,\n onKeyDown,\n menuProps: { ...menuProps, onClose: handleCloseContextMenu },\n contextMenuContext,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo,\n containerHandlers: mergeProps(focusRingProps, currentKeyProps, onFocusProps, triggerProps)\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 navItem = findElementByKey(root, itemKey as K, ITEM_SELECTOR) as HTMLElement;\n if (navItem) {\n const tabBarItemAttribute = navItem.querySelector(attribute);\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\nconst extractOnlyItemKey = (element: HTMLElement, itemSelector: string, itemEliminator: string) => {\n const navigationListItem = element.closest(itemSelector);\n const removeButton = element.closest(itemEliminator);\n return navigationListItem?.contains(removeButton) ? null : keyExtractor(element, itemSelector);\n};\n\nconst findNextCurrentKey = <K>(currentKey: K, currNavs: K[], prevNavs: K[]) => {\n const index = prevNavs.indexOf(currentKey);\n if (index > 0) {\n const nextIndex = index === prevNavs.length - 1 ? index - 1 : index + 1;\n const nextKey = prevNavs[nextIndex];\n if (currNavs.indexOf(nextKey) !== -1) {\n return nextKey;\n }\n }\n // update current key to be the first one if we can't find a suitable next key\n return currNavs[0];\n};\n","import { Ref } from 'preact';\nimport { MutableRef, useMemo, useRef } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { isMobile } from '#utils/UNSAFE_clientUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { navigationListStyles } from './themes/NavigationListStyles.css';\nimport { getItemAttribute, REMOVE_ICON_SELECTOR, useNavigationList } from './useNavigationList';\nimport { forwardRef, useImperativeHandle } from 'preact/compat';\nimport { useTestId, TestIdProps } from '../hooks/UNSAFE_useTestId';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LiveRegion } from '../UNSAFE_LiveRegion';\nimport { NavigationListProps, NavigationListContext } from '../UNSAFE_NavigationListCommon';\nimport { TabBarContextMenu } from '../UNSAFE_TabBar/TabBarContextMenu';\nimport type { TabBarContextMenuConfig as NavigationListContextMenuConfig } from '../UNSAFE_TabBarCommon';\nexport {\n RemovableNavigationListItem,\n NavigationListLinkItem\n} from '../UNSAFE_NavigationListCommon';\n\nexport type FocusableHandle = {\n focus: () => void;\n blur: () => void;\n};\n\nexport const NavigationList = forwardRef(\n <K extends string | number>(\n {\n children,\n selection,\n edge = 'start',\n onSelectionChange,\n onRemove,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelLedBy,\n testId,\n display = 'standard'\n }: NavigationListProps<K> & TestIdProps,\n ref?: Ref<FocusableHandle>\n ) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const isMobileDevice = isMobile();\n const defaultContextMenuConfig = useMemo<\n NavigationListContextMenuConfig<string | number> | undefined\n >(() => {\n return isMobileDevice\n ? {\n itemsRenderer: (context) => {\n //Only if context is available, it is a mobile device and it is removable item, we will return remove context menu item\n if (context) {\n const isRemovableItem =\n getItemAttribute(context.itemKey, containerRef.current!, REMOVE_ICON_SELECTOR) !=\n null;\n if (isRemovableItem) {\n const defaultItems = context.defaultMenuItems;\n return <>{defaultItems}</>;\n }\n }\n return null;\n }\n }\n : undefined;\n }, [isMobileDevice]);\n\n const {\n showFocusRing,\n currentKey,\n onCurrentKeyChange,\n containerHandlers,\n onKeyDown,\n contextMenuContext,\n menuProps,\n contextMenuDescription,\n contextMenuDescriptionId,\n accStatusInfo\n } = useNavigationList({\n containerRef: containerRef as MutableRef<HTMLDivElement>,\n selection,\n onRemove,\n onSelectionChange,\n children,\n contextMenuConfig: defaultContextMenuConfig\n });\n\n const eventProps = { onKeyDown };\n const navigationListClass = classNames([navigationListStyles.uListStyle]);\n const navigationListItemPrefix = useId() + '_';\n const testIdProps = useTestId(testId);\n\n //Allows to call focus on rootRef without having to expose it\n useImperativeHandle(ref!, () => ({\n focus: () => {\n if (containerRef.current) {\n containerRef.current.focus();\n }\n },\n blur: () => {\n if (containerRef.current) {\n containerRef.current.focus();\n }\n }\n }));\n\n return (\n <>\n <div\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelLedBy}\n role=\"tablist\"\n ref={containerRef}\n aria-orientation={'vertical'}\n tabIndex={0}\n aria-activedescendant={currentKey ? navigationListItemPrefix + currentKey : ''}\n {...mergeProps(eventProps, containerHandlers)}\n {...testIdProps}\n class={navigationListClass}>\n <NavigationListContext.Provider\n value={{\n selection,\n display,\n onSelectionChange,\n onCurrentKeyChange,\n currentKey,\n showFocusRing,\n navigationListItemPrefix,\n onRemove,\n edge\n }}>\n {children}\n </NavigationListContext.Provider>\n </div>\n {defaultContextMenuConfig && contextMenuDescriptionId && contextMenuDescription && (\n <span id={contextMenuDescriptionId}>\n <HiddenAccessible>{contextMenuDescription}</HiddenAccessible>\n </span>\n )}\n {defaultContextMenuConfig && accStatusInfo && <LiveRegion>{accStatusInfo}</LiveRegion>}\n {defaultContextMenuConfig && (\n <TabBarContextMenu\n {...menuProps}\n contextMenuConfig={defaultContextMenuConfig}\n contextMenuContext={contextMenuContext!}\n />\n )}\n </>\n );\n }\n);\n","import {\n BaseNavigationListItem,\n BaseNavigationListItemProps\n} from '../UNSAFE_NavigationListCommon/BaseNavigationListItem';\n\nexport type NavigationListItemProps<K extends string | number> = Omit<\n BaseNavigationListItemProps<K>,\n 'removeIcon'\n>;\n\nexport function NavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity,\n icon\n}: NavigationListItemProps<K>) {\n return (\n <BaseNavigationListItem\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n icon={icon}\n />\n );\n}\n"],"names":["useTranslationBundle","useState","useCallback","useCurrentKey","keyExtractor","getPrevNextKeyUsingRef","useCollectionFocusRing","getFirstVisibleKey","useRef","useEffect","getKey","findElementByKey","useContextMenuGesture","getDefaultContextMenu","useId","mergeProps","forwardRef","isMobile","useMemo","_jsx","_Fragment","classNames","navigationListStyles","useTestId","useImperativeHandle","_jsxs","NavigationListContext","HiddenAccessible","LiveRegion","TabBarContextMenu","BaseNavigationListItem"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationListLinkItem-62c3912e.js","sources":["../../src/UNSAFE_NavigationListCommon/NavigationListContext.ts","../../src/UNSAFE_NavigationListCommon/useNavigationListContext.ts","../../src/UNSAFE_NavigationListCommon/useNavigationListItem.ts","../../src/UNSAFE_TabBarCommon/useTabBarItemTooltip.ts","../../src/UNSAFE_NavigationListCommon/BaseNavigationListItem.tsx","../../src/UNSAFE_NavigationListCommon/RemovableNavigationListItem.tsx","../../src/UNSAFE_NavigationListCommon/NavigationListLinkItem.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { createContext } from 'preact';\nimport { NavigationListProps } from './NavigationListProps';\n\ntype CurrentKeyDetail<K> = {\n value: K;\n};\n\nexport type NavigationListContextProps<K extends string | number> = Pick<\n NavigationListProps<K>,\n 'selection' | 'onSelectionChange' | 'onRemove' | 'edge' | 'display'\n> & {\n currentKey?: K;\n showFocusRing: boolean;\n onCurrentKeyChange:\n | (<K extends string | number>(detail: CurrentKeyDetail<K>) => void)\n | undefined;\n navigationListItemPrefix: string;\n};\n\n/**\n * Context used to pass navlist information without having to pass it to navlist children props.\n * We want to communicate information down to any interested navlist item children.\n */\n\nconst NavigationListContext = createContext<NavigationListContextProps<string | number>>(null!);\n\nexport { NavigationListContext };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { useContext } from 'preact/hooks';\nimport { NavigationListContext } from './NavigationListContext';\n\n/**\n * Utility hook for consuming the NavigationListContext\n *\n * @returns The value of NavigationListContext provider\n */\nfunction useNavigationListContext() {\n return useContext(NavigationListContext);\n}\n\nexport { useNavigationListContext };\n","import { useCallback } from 'preact/hooks';\n\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { useNavigationListContext } from './useNavigationListContext';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport {\n NavigationListItemStyles,\n NavigationListItemVariantOptions\n} from '../UNSAFE_NavigationList/themes/NavigationListItemStyles.css';\nimport { NavigationListItemRedwoodTheme } from './themes/redwood/NavigationListItemTheme';\nimport { useUser } from '../hooks/UNSAFE_useUser';\n\nconst flexItemStyleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n]);\nconst { class: labelContainerFlexItemClasses, ...labelContainerFlexItemStyle } =\n flexItemStyleInterpolations({\n alignSelf: 'center'\n });\n\nexport function useNavigationListItem<K extends string | number>({ itemKey }: { itemKey: K }) {\n const {\n onSelectionChange,\n selection,\n currentKey,\n showFocusRing,\n navigationListItemPrefix,\n edge,\n display\n } = useNavigationListContext();\n\n //Selection and focus state\n const isCurrent = currentKey === itemKey;\n\n const isSelected = selection === itemKey;\n\n const isIconOnly = display === 'icons' ? true : false;\n const isEdgeEnd = edge === 'end' ? true : false;\n\n //Styling\n const { interactionProps, applyPseudoHoverStyle, applyHoverStyle, applyActiveStyle } =\n useInteractionStyle();\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const {\n classes: listItemClasses,\n styles: {\n labelContainerClasses,\n navigationItemStackedBadge,\n navigationItemStackedBadgeRtl,\n startIconStacked\n }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme,\n {\n focusRing: showFocusRing ? 'isFocusRing' : 'notFocusRing',\n current: isCurrent ? 'isCurrent' : 'notCurrtent',\n selected: isSelected ? 'isSelected' : 'notSelected',\n direction: isRtl ? 'isRtl' : 'notRtl',\n hybridHover: applyHoverStyle ? 'isHybridHover' : 'notHybridHover',\n pseudoHover: applyPseudoHoverStyle ? 'isPseudoHover' : 'notPseudoHover',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n edgeEnd: edge === 'end' ? 'isEnd' : 'notEnd',\n iconOnly: isIconOnly ? 'isIconOnly' : 'notIconOnly'\n }\n );\n\n const navigationItemIconOnlyClasses = classNames([startIconStacked]);\n\n const navigationItemStackedBadgeClasses = classNames([\n navigationItemStackedBadge,\n direction === 'rtl' && navigationItemStackedBadgeRtl\n ]);\n\n //Item handlers\n const handlePress = useCallback(() => {\n onSelectionChange?.({ value: itemKey as K, reason: 'pointer' });\n }, [itemKey, onSelectionChange]);\n\n //Legacy navlist makes selection on keyDown, but since preact tabbar made selection after keyUp, will do the same\n //for preact navlist\n const { pressProps } = usePress(handlePress);\n\n return {\n itemId: navigationListItemPrefix + itemKey,\n itemHandlers: mergeProps(interactionProps, pressProps /*,onFocusProps*/),\n itemClasses: classNames([listItemClasses]),\n isSelected,\n labelContainerClasses: classNames([labelContainerClasses, labelContainerFlexItemClasses]),\n labelContainerStyle: labelContainerFlexItemStyle,\n isIconOnly,\n isEdgeEnd,\n stackedBadgeClasses: classNames([navigationItemStackedBadgeClasses]),\n iconOnlyClasses: classNames([navigationItemIconOnlyClasses]),\n isCurrent,\n showFocusRing\n };\n}\n","import { ComponentChild } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { useTooltipControlled } from '../hooks/UNSAFE_useTooltip';\nimport { Placement } from '#UNSAFE_Floating';\n\ntype Props = {\n label: string;\n isDisabled: boolean;\n position?: Position;\n};\n\ntype Position = Omit<Placement, 'center'>;\n\nexport const useTabBarItemTooltip = ({\n label,\n isDisabled,\n position\n}: Props): {\n tooltipContent: ComponentChild;\n tooltipEventHandlerProps: Record<string, any>;\n onLogicalFocus: (elem: HTMLElement) => void;\n onLogicalBlur: () => void;\n} => {\n const [isOpen, setOpen] = useState<boolean>(false);\n const { tooltipProps, tooltipContent } = useTooltipControlled({\n isOpen: isOpen,\n isDisabled,\n position: position,\n focusStrategy: 'logical',\n text: label,\n onToggle: ({ value }) => {\n setOpen(value);\n }\n });\n const { onLogicalFocus, onLogicalBlur, ...tooltipEventHandlerProps } = tooltipProps;\n\n return { tooltipContent, tooltipEventHandlerProps, onLogicalFocus, onLogicalBlur };\n};\n","import { useRef } from 'preact/hooks';\n\nimport { Text } from '../UNSAFE_Text';\n\nimport { useNavigationListItem } from './useNavigationListItem';\nimport { Flex } from '../UNSAFE_Flex';\nimport { Badge } from '../UNSAFE_Badge';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { WarningS } from '../UNSAFE_RedwoodIcons/WarningS';\nimport { ErrorS } from '../UNSAFE_RedwoodIcons/ErrorS';\nimport { InformationS } from '../UNSAFE_RedwoodIcons/InformationS';\nimport { SuccessS } from '../UNSAFE_RedwoodIcons/SuccessS';\nimport {\n NavigationListItemStyles,\n NavigationListItemVariantOptions\n} from '../UNSAFE_NavigationList/themes/NavigationListItemStyles.css';\nimport { NavigationListItemRedwoodTheme } from './themes/redwood/NavigationListItemTheme';\nimport { ComponentChild, ComponentChildren } from 'preact';\nimport { useTabBarItemTooltip } from '#UNSAFE_TabBarCommon/useTabBarItemTooltip';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\n\ntype Severity = 'warning' | 'info' | 'none' | 'error' | 'confirmation';\ntype AriaProps = {\n /**\n * Accepts the panel element's ID associated with the item\n **/\n 'aria-controls'?: string;\n};\n\nexport type BaseNavigationListItemProps<K extends string | number> = {\n /**\n * Key of the NavigationListItem.\n */\n itemKey: K;\n /**\n * Label of the NavigationListItem.\n */\n label: string;\n /**\n * The content to be rendered inside the Badge component.\n */\n badge?: string;\n /**\n * The content to be rendered inside the Text component as a metadata.\n */\n metadata?: string;\n /**\n * The status icon to be rendered after the label.\n */\n severity?: Severity;\n /**\n * The content to be rendered for remove icon\n */\n removeIcon?: ComponentChildren;\n /**\n * The icon before the label or the stand alone icon\n */\n icon?: ComponentChild;\n /**\n * Sets the URL that the hyperlink points to. If there is no valid URL use \"#\" for href value to navigate to the top of the page.\n */\n href?: string;\n} & AriaProps;\n\nconst onClickLink = (event: MouseEvent) => {\n event.preventDefault();\n};\n/*TODO: JET-58535. Add ripple effect when touching navigationListItem. */\nexport function BaseNavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity = 'none',\n removeIcon,\n icon,\n href,\n 'aria-controls': ariaControls\n}: BaseNavigationListItemProps<K>) {\n const itemRef = useRef<HTMLDivElement | null>(null);\n\n //Logic of the component handled here\n const {\n itemId,\n itemHandlers,\n itemClasses,\n isSelected,\n labelContainerClasses,\n labelContainerStyle,\n isIconOnly,\n isEdgeEnd,\n stackedBadgeClasses,\n iconOnlyClasses,\n isCurrent,\n showFocusRing\n } = useNavigationListItem({\n itemKey\n });\n\n const severityRequirement = !(severity === 'none' || severity === undefined);\n\n const IconComponent = (severityValue: Severity) => {\n switch (severityValue) {\n case 'error':\n return <ErrorS color=\"danger\" />;\n case 'warning':\n return <WarningS color=\"warning\" />;\n case 'info':\n return <InformationS color=\"info\" />;\n case 'confirmation':\n return <SuccessS color=\"success\" />;\n default:\n return null;\n }\n };\n\n const {\n styles: {\n iconLabelContainer,\n iconContainer,\n startIconPadding,\n endContentPadding,\n removeIconPaddingWithEndContent,\n navigationItemMetadata,\n navigationListItemLink\n }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme\n );\n\n const navigationItemMatadata = classNames([navigationItemMetadata, endContentPadding]);\n const navigationItemLinkClass = classNames([navigationListItemLink]);\n\n const endIconContainerClasses = classNames([\n iconLabelContainer,\n iconContainer,\n endContentPadding\n ]);\n const startIconContainerClasses = classNames([\n !isIconOnly && iconLabelContainer,\n iconContainer,\n //For icon only icon to label padding is not required.\n !isIconOnly && startIconPadding,\n isIconOnly && iconOnlyClasses\n ]);\n const {\n styles: { navigationlistRemoveIcon }\n } = useComponentTheme<NavigationListItemVariantOptions, NavigationListItemStyles>(\n NavigationListItemRedwoodTheme\n );\n\n const isComplexItem = metadata || severityRequirement || badge;\n const removeClass = classNames([\n navigationlistRemoveIcon,\n isComplexItem && removeIconPaddingWithEndContent,\n !isComplexItem && endContentPadding\n ]);\n\n const isLinkItem = href != null;\n const labelRequirement = label && !(label === ' ' && label === undefined);\n const iconOnlyRequirement = icon && icon != null && isIconOnly;\n const showTooltip = iconOnlyRequirement;\n\n const { tooltipContent, tooltipEventHandlerProps, onLogicalFocus, onLogicalBlur } =\n useTabBarItemTooltip({\n label,\n isDisabled: !showTooltip,\n // For edge end the tooltip will appear after icon in the order tooltip, icon, selection when navlist is placed at end of page.\n position: !isEdgeEnd ? 'end' : 'start'\n });\n if (showTooltip) {\n if ((isCurrent && showFocusRing) || isSelected) {\n onLogicalFocus(itemRef.current as HTMLElement);\n } else if (!isCurrent || !showFocusRing) {\n onLogicalBlur();\n }\n }\n\n const labelRenderer = () => {\n return (\n <>\n {icon && (\n <Flex justify=\"start\">\n <span class={startIconContainerClasses}>{icon}</span>\n </Flex>\n )}\n {!isIconOnly && labelRequirement && (\n <Flex align=\"center\" justify=\"start\" flex=\"1 1 auto\">\n <span class={labelContainerClasses} style={labelContainerStyle}>\n <Text size=\"inherit\" weight=\"inherit\" variant=\"inherit\">\n {label}\n </Text>\n </span>\n </Flex>\n )}\n {removeIcon && !isLinkItem && <span class={removeClass}>{removeIcon}</span>}\n </>\n );\n };\n\n const complexItemRenderer = () => {\n return (\n <>\n {iconOnlyRequirement && (\n <div class={startIconContainerClasses}>\n {icon}\n <span class={stackedBadgeClasses}>\n {badge ? (\n <Badge size=\"xs\" variant=\"neutral\">\n {badge}\n </Badge>\n ) : null}\n </span>\n </div>\n )}\n {!isIconOnly && icon && (\n <Flex justify=\"start\">\n <span class={startIconContainerClasses}>{icon}</span>\n </Flex>\n )}\n {(!isIconOnly || /* This covers invalid cases*/ (isIconOnly && !iconOnlyRequirement)) &&\n labelRequirement && (\n <Flex align=\"center\" justify=\"start\" flex=\"1 1 auto\">\n <span class={labelContainerClasses} style={labelContainerStyle}>\n <Text size=\"inherit\" weight=\"inherit\" variant=\"inherit\">\n {label}\n </Text>\n </span>\n </Flex>\n )}\n {(metadata || severityRequirement || badge || removeIcon) && (\n <Flex align=\"center\" justify=\"end\">\n {' '}\n {(!isIconOnly || /* This covers invalid cases*/ (isIconOnly && !iconOnlyRequirement)) &&\n badge && (\n <span class={endIconContainerClasses}>\n <Badge size=\"md\" variant=\"neutralSubtle\">\n {badge}\n </Badge>\n </span>\n )}\n {metadata && (\n <span class={navigationItemMatadata}>\n <Text>{'( ' + metadata + ' )'}</Text>\n </span>\n )}\n {severityRequirement && (\n <span class={endIconContainerClasses}>{IconComponent(severity)}</span>\n )}\n {removeIcon && !isLinkItem && <span class={removeClass}>{removeIcon}</span>}\n </Flex>\n )}\n </>\n );\n };\n const navlistItemRenderer = () => {\n return (\n <div\n role=\"tab\"\n {...mergeProps(tooltipEventHandlerProps, itemHandlers)}\n data-oj-key={itemKey}\n id={itemId}\n class={itemClasses}\n aria-selected={isSelected}\n ref={itemRef}\n aria-controls={ariaControls}>\n {isComplexItem ? complexItemRenderer() : labelRenderer()}\n {isIconOnly && tooltipContent}\n </div>\n );\n };\n const navlistLinkItemRenderer = () => {\n return (\n <div {...itemHandlers} class={itemClasses}>\n <a\n tabindex={-1}\n role=\"tab\"\n data-oj-key={itemKey}\n id={itemId}\n class={navigationItemLinkClass}\n aria-selected={isSelected}\n aria-controls={ariaControls}\n href={href}\n onClick={onClickLink}>\n {isComplexItem ? complexItemRenderer() : labelRenderer()}\n </a>\n </div>\n );\n };\n return isLinkItem ? navlistLinkItemRenderer() : navlistItemRenderer();\n}\n","import { BaseNavigationListItem, BaseNavigationListItemProps } from './BaseNavigationListItem';\nimport { useNavigationListContext } from './useNavigationListContext';\nimport { Close } from '../UNSAFE_RedwoodIcons/Close';\nimport { EmbeddedIconButton } from '../PRIVATE_EmbeddedIconButton';\nimport { useCallback } from 'preact/hooks';\nimport { useHover } from '#hooks/UNSAFE_useHover';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\n\ntype RemovableNavigationListItemProps<K extends string | number> = Omit<\n BaseNavigationListItemProps<K>,\n 'removeIcon'\n>;\n\nexport function RemovableNavigationListItem<K extends string | number>({\n itemKey,\n label,\n badge,\n metadata,\n severity\n}: RemovableNavigationListItemProps<K>) {\n const { selection, currentKey, onRemove } = useNavigationListContext();\n const isSelected = selection === itemKey;\n const isCurrent = currentKey === itemKey;\n\n const handleRemove = useCallback(() => {\n onRemove?.({ value: itemKey as K });\n }, [onRemove, itemKey]);\n\n const { hoverProps, isHover } = useHover({});\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n //instead of specifying flex: '1 0 auto' in cssProps var\n return (\n <div {...hoverProps}>\n <BaseNavigationListItem\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n removeIcon={\n <span data-oj-navigationlist-item-remove-icon={true}>\n <EmbeddedIconButton\n aria-label={translations.tabBarNavigationList_removeCueText()}\n size=\"xs\"\n onAction={handleRemove}>\n {(isHover || isSelected || isCurrent) && <Close />}\n </EmbeddedIconButton>\n </span>\n }\n />\n </div>\n );\n}\n","import { BaseNavigationListItem, BaseNavigationListItemProps } from './BaseNavigationListItem';\n\ntype Link = {\n /**\n * Sets the URL that the hyperlink points to. If there is no valid URL do not use NavigationListLinkItem, use other types of NavigationListItem instead.\n */\n href: string;\n};\nexport type NavigationListLinkItemProps<K extends string | number> = Link &\n Pick<\n BaseNavigationListItemProps<K>,\n 'label' | 'itemKey' | 'badge' | 'metadata' | 'severity' | 'aria-controls'\n >;\n/**\n * NavigationListLinkItem is used to render links in a NavigationList. It allows to view the browser's built in link context menu to open the link in new browser tab.\n */\nexport function NavigationListLinkItem<K extends string | number>({\n itemKey,\n badge,\n metadata,\n severity,\n href,\n label,\n 'aria-controls': ariaControls\n}: NavigationListLinkItemProps<K>) {\n return (\n <BaseNavigationListItem\n aria-controls={ariaControls}\n itemKey={itemKey}\n label={label}\n badge={badge}\n metadata={metadata}\n severity={severity}\n href={href}></BaseNavigationListItem>\n );\n}\n"],"names":["createContext","useContext","mergeInterpolations","flexitemInterpolations","useInteractionStyle","useUser","useComponentTheme","NavigationListItemRedwoodTheme","classNames","useCallback","usePress","mergeProps","useState","useTooltipControlled","useRef","_jsx","ErrorS","WarningS","InformationS","SuccessS","_jsxs","_Fragment","Flex","Text","Badge","useHover","useTranslationBundle","EmbeddedIconButton","Close"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelectCommon-b0d7feb3.js","sources":["../../src/PRIVATE_SelectCommon/itemTextUtils.ts","../../src/PRIVATE_SelectCommon/DefaultList.tsx","../../src/PRIVATE_SelectCommon/eventUtils.ts","../../src/PRIVATE_SelectCommon/DropdownArrow.tsx","../../src/PRIVATE_SelectCommon/DropdownList.tsx","../../src/PRIVATE_SelectCommon/EmptyResults.tsx","../../src/PRIVATE_SelectCommon/selectUtils.ts","../../src/PRIVATE_SelectCommon/useCollectionRenderer.ts","../../src/PRIVATE_SelectCommon/useSelectCommon.ts"],"sourcesContent":["/**\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 { Item } from '#utils/UNSAFE_dataProvider';\nimport { error } from '#utils/UNSAFE_logger';\nimport { ItemTextFunctionType, ItemTextType } from '#utils/UNSAFE_selectUtils';\n\nexport type ComponentName = 'InlineSelectSingle' | 'SelectSingle' | 'SelectMultiple';\n\nexport function renderItemText<K, D>(\n item: Item<K, D>,\n itemText: ItemTextType<K, D>,\n componentName: ComponentName\n) {\n // if item-text is a string and the data has the specified field, return it;\n // otherwise log an error\n if (typeof itemText === 'string') {\n if (Object.prototype.hasOwnProperty.call(item.data, itemText)) {\n const retData = item.data[itemText];\n return String(retData);\n }\n error(`${componentName}: itemText specifies field that does not exist: ${itemText}`);\n // return undefined if the field doesn't exist\n return undefined;\n }\n // if item-text is a function, call it to create a display label\n return (itemText as ItemTextFunctionType<K, D>)(item);\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 type { ComponentChildren, ComponentProps } from 'preact';\n\nimport { List } from '#PRIVATE_List';\nimport type { DataState, ListItemRendererContext, Metadata } from '#UNSAFE_Collection';\nimport { Flex } from '#UNSAFE_Flex';\nimport { HighlightText } from '#UNSAFE_HighlightText';\nimport { ListItemText } from '#UNSAFE_ListItemLayout';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport type { Keys } from '#utils/UNSAFE_keys';\nimport type { ItemTextType } from '#utils/UNSAFE_selectUtils';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport { type ComponentName, renderItemText } from './itemTextUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype ListProps<K extends string | number, D> = ComponentProps<typeof List<K, D>>;\ntype PickedPropsFromList = Pick<\n ComponentProps<typeof List>,\n 'aria-label' | 'currentItemVariant' | 'selectionMode'\n>;\n\n// pick the props from the ListItemContext instead of extending it directly so that we\n// don't automatically expose any new props that may be added to it\ntype PickedPropsFromListItemContext<K, D> = Pick<\n ListItemRendererContext<K, D>,\n 'data' | 'index' | 'selector'\n>;\ntype ItemRendererSelectionDetail<K> = {\n value: Set<K>;\n target: EventTarget | null;\n};\ntype ItemRendererMetadata<K> = Pick<Metadata<K>, 'key' | 'suggestion'>;\ntype ItemRendererProps<K, D> = PickedPropsFromListItemContext<K, D> & {\n metadata: ItemRendererMetadata<K>;\n searchText?: string;\n selectedKeys?: Set<K>;\n onSelectionChange: (detail: ItemRendererSelectionDetail<K>) => void;\n};\n\ntype DefaultListCurrentKeyDetail<K> = { value: K };\ntype DefaultListItemActionDetail<K, D> = { context: Item<K, D> };\ntype DefaultListSelectionDetail<K> = { value: Set<K> };\n\ntype Props<K extends string | number, D extends Record<string, any>> = PickedPropsFromList & {\n itemRenderer?: (itemRendererProps: ItemRendererProps<K, D>) => ComponentChildren;\n itemText: ItemTextType<K, D>;\n // props from List that we constrain or unconstrain\n currentKey?: K;\n data?: DataState<K, D> | null;\n onCurrentKeyChange: (detail: DefaultListCurrentKeyDetail<K>) => void;\n onItemAction?: (detail: DefaultListItemActionDetail<K, D>) => void;\n onLoadRange?: ComponentProps<typeof List>['onLoadRange'];\n onSelectionChange?: (detail: DefaultListSelectionDetail<K>) => void;\n searchText?: string;\n selectedKeys?: Set<K>;\n // props for logging purposes\n componentName: ComponentName;\n};\n\nconst noOp = () => {};\n\nexport function DefaultList<K extends string | number, D extends Record<string, any>>({\n 'aria-label': ariaLabel,\n componentName,\n currentItemVariant,\n currentKey,\n data,\n itemRenderer,\n itemText,\n onCurrentKeyChange,\n onItemAction,\n onLoadRange = noOp,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n}: Props<K, D>) {\n const listItemRenderer = useCallback(\n (listItemContext: ListItemRendererContext<K, D>) => {\n // specify the listItemContext props that we want to expose individually instead of\n // spreading the whole object so that we don't automatically include any new props that\n // may be added to it\n const itemRendererProps: ItemRendererProps<K, D> = {\n data: listItemContext.data,\n index: listItemContext.index,\n metadata: listItemContext.metadata,\n selector: listItemContext.selector,\n searchText,\n selectedKeys,\n onSelectionChange: ({ value }) => {\n onSelectionChange?.({ value });\n }\n };\n const itemContext = {\n data: listItemContext.data,\n key: listItemContext.metadata.key,\n metadata: listItemContext.metadata\n };\n return itemRenderer ? (\n itemRenderer(itemRendererProps)\n ) : (\n <Flex align=\"center\">\n {listItemContext.selector && (\n <div class={dropdownStyles.selectorWrapper}>{listItemContext.selector()}</div>\n )}\n <div\n class={\n selectionMode === 'single'\n ? dropdownStyles.singleSelectItem\n : dropdownStyles.multiSelectItem\n }>\n <ListItemText variant=\"primary\">\n <HighlightText matchText={searchText}>\n {renderItemText(itemContext, itemText, componentName) as string}\n </HighlightText>\n </ListItemText>\n </div>\n </Flex>\n );\n },\n [\n componentName,\n itemRenderer,\n itemText,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n ]\n );\n\n const keys = useMemo(() => {\n return { all: false, keys: selectedKeys ?? new Set<K>() };\n }, [selectedKeys]) as Keys<K>;\n\n const currentItemOverride = useMemo(\n () => (currentKey !== undefined ? { rowKey: currentKey } : undefined),\n [currentKey]\n );\n const handleItemAction = useCallback<NonNullable<ListProps<K, D>['onItemAction']>>(\n ({ context: { data, metadata } }) => {\n onItemAction?.({ context: { data, key: metadata.key, metadata } });\n },\n [onItemAction]\n );\n const handleSelectionChange = useCallback<NonNullable<ListProps<K, D>['onSelectionChange']>>(\n ({ value }) => {\n onSelectionChange?.({ value: new Set(value.keys?.values()) });\n },\n [onSelectionChange]\n );\n\n return (\n <List<K, D>\n aria-label={ariaLabel}\n allowTabbableMode={false}\n currentItemVariant={currentItemVariant}\n currentItemOverride={currentItemOverride}\n data={data ?? null}\n onPersistCurrentItem={onCurrentKeyChange}\n onItemAction={handleItemAction}\n onLoadRange={onLoadRange}\n onSelectionChange={handleSelectionChange}\n role=\"listbox\"\n selectedKeys={keys}\n selectionMode={selectionMode}>\n {(context: ListItemRendererContext<K, D>) => listItemRenderer(context)}\n </List>\n );\n}\n","export const isSimpleClick = (event: MouseEvent) => {\n return event.button === 0 && !event.ctrlKey;\n};\n\nexport const preventDefault = (event: Event) => {\n event.preventDefault();\n};\n\nexport const preventDefaultForCurrentTarget = (event: MouseEvent) => {\n if (event.currentTarget === event.target) {\n event.preventDefault();\n }\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 { useCallback } from 'preact/hooks';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { DropdownArrowIcon } from '../PRIVATE_ThemedIcons/DropdownArrowIcon';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { ButtonLabelLayoutRedwoodTheme } from '#UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme';\nimport type { ButtonLabelLayoutVariantOptions } from '#UNSAFE_ButtonLabelLayout/themes/ButtonLabelLayoutStyles.css';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { BaseButtonRedwoodTheme } from '#UNSAFE_BaseButton/themes/redwood/BaseButtonTheme';\n\ntype Props = TestIdProps & {\n isDisabled?: boolean;\n onClick?: () => void;\n};\n\nconst noop = () => {};\n\nexport function DropdownArrow({ isDisabled = false, onClick, testId }: Props) {\n const { classes } = useComponentTheme<ButtonLabelLayoutVariantOptions>(\n ButtonLabelLayoutRedwoodTheme,\n { size: 'sm' }\n );\n const { baseTheme } = useComponentTheme(BaseButtonRedwoodTheme);\n\n const preventDefault = useCallback((event: Event) => {\n event.preventDefault();\n }, []);\n const { pressProps } = usePress(onClick ?? noop, { isDisabled });\n\n // TODO: JET-67410 replace this with a icon button\n const styleClasses = classNames([\n classes,\n baseTheme,\n dropdownStyles.arrow.base,\n isDisabled ? dropdownStyles.arrow.disabled : dropdownStyles.arrow.enabled\n ]);\n\n const testIdProps = useTestId(testId);\n\n return (\n <span\n aria-hidden=\"true\"\n class={styleClasses}\n tabIndex={-1}\n onMouseDown={preventDefault}\n {...testIdProps}\n {...pressProps}>\n <DropdownArrowIcon />\n </span>\n );\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 type { ComponentChildren, ComponentProps, Ref } from 'preact';\n\nimport { CollectionInteractionContext } from '#hooks/UNSAFE_useCollectionInteractionContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype Props = Pick<ComponentProps<'div'>, 'id' | 'onKeyDown'> & {\n children?: ComponentChildren;\n dropdownListRef?: Ref<HTMLDivElement>;\n hasTopGap?: boolean;\n hasBottomGap?: boolean;\n isLoading?: boolean;\n};\n\nexport function DropdownList({\n children,\n id,\n dropdownListRef,\n hasTopGap = true,\n hasBottomGap = true,\n isLoading = false,\n onKeyDown\n}: Props) {\n const styleClasses = classNames([\n dropdownStyles.list.base,\n hasTopGap && dropdownStyles.list.topGap,\n hasBottomGap && dropdownStyles.list.bottomGap,\n isLoading && dropdownStyles.list.loading\n ]);\n return (\n <CollectionInteractionContext.Provider value={'embedded'}>\n <div\n ref={dropdownListRef}\n class={styleClasses}\n id={id}\n onMouseDown={preventDefaultForCurrentTarget}\n onKeyDown={onKeyDown}>\n {children}\n </div>\n </CollectionInteractionContext.Provider>\n );\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 { Text } from '#UNSAFE_Text';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\nexport function EmptyResults() {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n // call preventDefault for mousedown on this div so that focus does not transfer from\n // the input\n return (\n <div class={dropdownStyles.results.extraItem} onMouseDown={preventDefaultForCurrentTarget}>\n <Text variant=\"primary\">{translations.select_noMatchesFound()}</Text>\n </div>\n );\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 type { DataState } from '#UNSAFE_Collection';\nimport { getClientHints } from '#utils/PRIVATE_clientHints';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\n\n/**\n * Helper function to determine whether the current device is a mobile device\n * @returns true if running on a mobile device, false otherwise\n */\nexport function isMobile() {\n const deviceType = getClientHints().deviceType;\n return deviceType === 'phone' || deviceType === 'tablet';\n}\n\n/**\n * Helper function to determine whether the current device is a phone\n * @returns true if running on a phone, false otherwise\n */\nexport function isPhone() {\n return getClientHints().deviceType === 'phone';\n}\n\n/**\n * Helper function to determine whether the current device is a tablet\n * @returns true if running on a tablet, false otherwise\n */\nexport function isTablet() {\n return getClientHints().deviceType === 'tablet';\n}\n\nexport function isBeforeDataFetch<K, D>(data: DataState<K, D>) {\n return data.sizePrecision === 'atLeast' && data.totalSize === 0;\n}\n\nexport function isSearchTextEmptyOrUndefined(searchText?: string) {\n return searchText === undefined || searchText.length === 0;\n}\n\nexport function isSearchClearedFirstTime(prevSearchText?: string, searchText?: string) {\n return prevSearchText === undefined && searchText === '';\n}\n\n/**\n * Extract keys from a value items array.\n *\n * @param valueItems The value items from which the keys are to be extracted\n * @returns The set of keys\n */\nexport function createKeysFromValueItems<K, D>(valueItems?: Item<K, D>[]) {\n const keys = valueItems?.reduce((accumKeys, currentItem) => {\n accumKeys.add(currentItem.key);\n return accumKeys;\n }, new Set<K>());\n return keys;\n}\n","import type { DataState } from '#UNSAFE_Collection';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport { useMemo } from 'preact/compat';\n\ntype Key = string | number;\ntype Data = Record<string, any>;\n\ntype UseCollectionRendererCommonParams<K> = {\n currentKey?: K;\n searchText?: string;\n selectedKeys?: Set<K>;\n onCurrentKeyChange: (detail: { value?: K }) => void;\n};\n\nexport type UseCollectionRendererSelectSingleParams<K, D> = UseCollectionRendererCommonParams<K> & {\n onItemAction: (detail: { context: Item<K, D> }) => void;\n onSelectedKeysChange?: never;\n selectedOnlyData?: never;\n};\n\nexport type UseCollectionRendererSelectMultipleParams<K, D> =\n UseCollectionRendererCommonParams<K> & {\n onItemAction?: never;\n onSelectedKeysChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n };\n\ntype UseCollectionRendererParams<K, D> =\n | UseCollectionRendererSelectSingleParams<K, D>\n | UseCollectionRendererSelectMultipleParams<K, D>;\n\ntype CommonCollectionRendererContext<K extends Key> = {\n searchText?: string;\n currentRowKeyOverride?: K;\n onPersistCurrentRowKey: (detail: { value?: K }) => void;\n selected?: Set<K>;\n};\n\nexport type SelectSingleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onRowAction: (detail: { context: Item<K, D> }) => void;\n};\n\nexport type SelectMultipleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onSelectedChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n};\n\ntype CollectionRendererContext<K extends Key, D extends Data> =\n | SelectSingleCollectionRendererContext<K, D>\n | SelectMultipleCollectionRendererContext<K, D>;\n\n// NOTE: We will using a single hook that constructs the collection renderer context for both select single and\n// select multiple. This is ok as they both share most of the properties and differ only in a few areas. So, we will\n// be using function overloading to determine which component is calling the hook (based on the args) and return the\n// correct context.\n\n/**\n * A custom hook that constructs the context for SelectSingle's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectSingleParams<K, D>\n): SelectSingleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectMultiple's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectMultipleParams<K, D>\n): SelectMultipleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectSingle/SelectMultiple's collectionRenderer.\n * @param param0 Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>({\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n}: UseCollectionRendererParams<K, D>) {\n return useMemo<CollectionRendererContext<K, D>>(() => {\n const common = {\n searchText,\n currentRowKeyOverride: currentKey,\n onPersistCurrentRowKey: onCurrentKeyChange,\n selected: selectedKeys\n } satisfies CommonCollectionRendererContext<K>;\n\n // If onItemAction is present, then we are constructing context for SelectSingle. So,\n // return the context satisfying SelectSingleCollectionRendererContext type.\n if (onItemAction !== undefined)\n return {\n ...common,\n onRowAction: onItemAction\n } satisfies SelectSingleCollectionRendererContext<K, D>;\n\n // If onItemAction is not present, then we are constructing context for SelectMultiple. So,\n // return the context satisfying SelectMultipleCollectionRendererContext type.\n return {\n ...common,\n onSelectedChange: onSelectedKeysChange,\n selectedOnlyData\n } satisfies SelectMultipleCollectionRendererContext<K, D>;\n }, [\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n ]);\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 type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport type { DataState } from '#UNSAFE_Collection';\nimport type { PositionData } from '#UNSAFE_Floating';\nimport { KEYS, isControlOrFunctionKey } from '#utils/PRIVATE_keyboardUtils';\nimport { allTabbableElements } from '#utils/PRIVATE_tabbableUtils';\nimport type { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { isSimpleClick } from './eventUtils';\n\ntype UseSelectCommonProps<K, D> = {\n data?: DataState<K, D> | null;\n inputRef: RefObject<HTMLElement>;\n isFocused?: boolean;\n onFilter?: ({ searchText }: { searchText?: string }) => void;\n};\n\nexport type CurrentKeyDetail<K> = {\n value?: K;\n};\n\n/**\n * Hook that manages state and behavior for a Select* component. This hook creates state\n * variables and event listeners, returning properties to apply to components internally\n * rendered by a Select* component, as well as state information.\n *\n * @param data Specifies data for the dropdown list.\n * @param inputRef Ref to the input element.\n * @param isFocused Specifies whether the component has focus.\n * @param onFilter Callback function to trigger loading data for the dropdown list,\n * which may or may not be filtered by user entered text.\n *\n * @returns Component state and event listeners.\n */\nexport function useSelectCommon<K, D>({\n data,\n inputRef,\n isFocused,\n onFilter\n}: UseSelectCommonProps<K, D>) {\n const mainFieldRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [isDropdownOpen, setDropdownOpen] = useState(false);\n const [isDropdownAbove, setDropdownAbove] = useState(false);\n\n // We only need to push currentRow when we need to override the\n // current row, like when the dropdown is opened and we want to set the initial\n // focused row or when filtering and we want to focus the first row.\n const [currentRowOverride, _setCurrentRowOverride] = useState<{ rowKey?: K }>({\n rowKey: undefined\n });\n // We still need information on what the current row actually is, but we do not need\n // to react to it until certain scenarios like pressing Tab from the dropdown. So, we\n // just store this in a ref.\n const currentRowKeyRef = useRef<K>();\n // When we want to update the currentRowOverride, we also want to keep the currentRowKeyRef\n // in sync as the collection will not call onChanged for this change.\n const setCurrentRowOverride = useCallback((currentRow: { rowKey?: K }) => {\n currentRowKeyRef.current = currentRow.rowKey;\n _setCurrentRowOverride(currentRow);\n }, []);\n const [isUserFiltering, setUserFiltering] = useState(false);\n const [userInput, setUserInput] = useState<string>();\n const [searchText, setSearchText] = useState<string>();\n\n const [prevIsDropdownOpen, setPrevIsDropdownOpen] = useState(isDropdownOpen);\n const [prevIsFocused, setPrevIsFocused] = useState(isFocused);\n const [prevIsUserFiltering, setPrevIsUserFiltering] = useState(isUserFiltering);\n\n const onMouseDown = useCallback(\n (event: MouseEvent) => {\n // const target = event.target as HTMLElement;\n if (event.defaultPrevented || !isSimpleClick(event)) {\n return;\n }\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n // this is needed to focus the input when clicking on the inside label when there is no\n // value; otherwise the component looks focused but doesn't actually have physical focus\n setTimeout(function () {\n inputRef.current?.focus();\n }, 0);\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownArrowClick = useCallback(() => {\n setDropdownOpen(!isDropdownOpen);\n\n // focus the input so that if the user Tabs afterwards, it loses focus and the dropdown closes\n inputRef.current?.focus();\n }, [inputRef, isDropdownOpen]);\n\n const handleDropdownAutoDismiss = useCallback(\n (event?: Event) => {\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n switch (event?.type) {\n case 'keydown': {\n const keyboardEvent = event as KeyboardEvent;\n switch (keyboardEvent.code) {\n case KEYS.ESC:\n // focus the input when the user cancels out of the dropdown\n inputRef.current?.focus();\n break;\n default:\n break;\n }\n break;\n }\n case 'mousedown':\n // if focus is in the dropdown, focus the input before the dropdown is hidden so that\n // focus will transfer correctly when the target is not focusable;\n // otherwise the text cursor appears in the input again\n if (dropdownRef.current?.contains(document.activeElement)) {\n inputRef.current?.focus();\n }\n break;\n default:\n break;\n }\n }\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownPosition = useCallback((data: PositionData) => {\n setDropdownAbove(data.placement.startsWith('top'));\n }, []);\n\n const getDropdownTabbableElems = useCallback(() => {\n return isDropdownOpen && dropdownRef.current\n ? allTabbableElements(dropdownRef.current)\n : undefined;\n }, [isDropdownOpen]);\n\n const handleUpDownArrowKeys = useCallback(\n (event: KeyboardEvent) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n } else {\n // JET-64909 - focus / 'current' dropped when arrow keying during loading\n // Transfer physical focus into the dropdown only if the data is present and the dropdown\n // has rendered the data. Otherwise, keep the focus in the field.\n if (data != null) {\n const tabbableElems = getDropdownTabbableElems();\n tabbableElems?.[0]?.focus();\n\n // if there is no current item set, make the first item current\n if (currentRowOverride.rowKey === undefined) {\n setCurrentRowOverride({ rowKey: data.data[0]?.metadata?.key });\n }\n }\n }\n\n // prevent the page from scrolling\n event.preventDefault();\n },\n [currentRowOverride, data, getDropdownTabbableElems, isDropdownOpen, setCurrentRowOverride]\n );\n\n const handleMainFieldKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // const target = event.target as HTMLElement;\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.PAGE_UP:\n case KEYS.PAGE_DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n\n return;\n\n case KEYS.UP:\n case KEYS.DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n break;\n\n case KEYS.ESC:\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n event.preventDefault();\n\n // JET-53183 - core pack compat: stop propagation of handled events\n // we don't want a parent collection component to stop editing the row when we close\n // the dropdown\n event.stopPropagation();\n }\n break;\n\n default:\n break;\n }\n },\n [isDropdownOpen]\n );\n\n const handleMainFieldKeyUp = useCallback(\n (event: KeyboardEvent) => {\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.UP:\n case KEYS.DOWN:\n handleUpDownArrowKeys(event);\n break;\n\n default:\n break;\n }\n },\n [handleUpDownArrowKeys]\n );\n\n const handleInput = useCallback(\n (detail: ValueUpdateDetail<string>) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n setUserFiltering(true);\n setUserInput(detail.value);\n const str = detail.value;\n setSearchText(str);\n onFilter?.({ searchText: str });\n },\n [isDropdownOpen, onFilter]\n );\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K>) => {\n // when the collection changes the current key, we only want to store the information\n // and not do anything.\n currentRowKeyRef.current = detail.value;\n }, []);\n\n const stopFiltering = useCallback(() => {\n setUserFiltering(false);\n setUserInput('');\n // Set this to `undefined` as this represents the initial state.\n // We need to do this for select-single as we need to highlight different\n // rows based on whether it is the initial dropdown navigation or empty filter navigation.\n setSearchText(undefined);\n }, []);\n\n const updateFiltering = useCallback((value?: string) => {\n setUserFiltering(true);\n setUserInput(value);\n setSearchText(value);\n }, []);\n\n // the user is not actively filtering if the dropdown is closed and the component doesn't\n // have focus\n if (\n prevIsDropdownOpen !== isDropdownOpen ||\n prevIsFocused !== isFocused ||\n prevIsUserFiltering !== isUserFiltering\n ) {\n if (!isDropdownOpen && !isFocused && isUserFiltering) {\n stopFiltering();\n }\n }\n\n // need to call onFilter with undefined searchText when the dropdown opens and the\n // user is NOT filtering\n useEffect(() => {\n if (isDropdownOpen && !isUserFiltering) {\n onFilter?.({ searchText: undefined });\n }\n }, [isDropdownOpen, isUserFiltering, onFilter]);\n\n // when the dropdown closes, reset the isDropdownAbove flag\n if (prevIsDropdownOpen !== isDropdownOpen) {\n if (!isDropdownOpen) {\n setDropdownAbove(false);\n }\n setPrevIsDropdownOpen(isDropdownOpen);\n }\n\n if (prevIsFocused !== isFocused) {\n setPrevIsFocused(isFocused);\n }\n if (prevIsUserFiltering !== isUserFiltering) {\n setPrevIsUserFiltering(isUserFiltering);\n }\n\n return {\n currentRowKeyRef,\n currentRowOverride,\n dropdownRef,\n getDropdownTabbableElems,\n handleDropdownArrowClick,\n handleDropdownAutoDismiss,\n handleDropdownPosition,\n handleInput,\n handleMainFieldKeyDown,\n handleMainFieldKeyUp,\n handleUpDownArrowKeys,\n isDropdownAbove,\n isDropdownOpen,\n // the field should remain to look focused while the dropdown is open,\n // in case physical focus is in the dropdown\n isFocused: isFocused || isDropdownOpen,\n isUserFiltering,\n mainFieldRef,\n onCurrentKeyChange,\n onMouseDown,\n searchText,\n setCurrentRowOverride,\n setDropdownOpen,\n setUserInput,\n stopFiltering,\n updateFiltering,\n userInput\n };\n}\n"],"names":["error","useCallback","_jsxs","Flex","_jsx","dropdownStyles","ListItemText","HighlightText","useMemo","List","useComponentTheme","ButtonLabelLayoutRedwoodTheme","BaseButtonRedwoodTheme","usePress","classNames","useTestId","DropdownArrowIcon","CollectionInteractionContext","useTranslationBundle","Text","getClientHints","useRef","useState","KEYS","allTabbableElements","isControlOrFunctionKey","useEffect"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelectCommon-309d0f07.js","sources":["../../src/PRIVATE_SelectCommon/itemTextUtils.ts","../../src/PRIVATE_SelectCommon/DefaultList.tsx","../../src/PRIVATE_SelectCommon/eventUtils.ts","../../src/PRIVATE_SelectCommon/DropdownArrow.tsx","../../src/PRIVATE_SelectCommon/DropdownList.tsx","../../src/PRIVATE_SelectCommon/EmptyResults.tsx","../../src/PRIVATE_SelectCommon/selectUtils.ts","../../src/PRIVATE_SelectCommon/useCollectionRenderer.ts","../../src/PRIVATE_SelectCommon/useSelectCommon.ts"],"sourcesContent":["/**\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 { Item } from '#utils/UNSAFE_dataProvider';\nimport { error } from '#utils/UNSAFE_logger';\nimport { ItemTextFunctionType, ItemTextType } from '#utils/UNSAFE_selectUtils';\n\nexport type ComponentName = 'InlineSelectSingle' | 'SelectSingle' | 'SelectMultiple';\n\nexport function renderItemText<K, D>(\n item: Item<K, D>,\n itemText: ItemTextType<K, D>,\n componentName: ComponentName\n) {\n // if item-text is a string and the data has the specified field, return it;\n // otherwise log an error\n if (typeof itemText === 'string') {\n if (Object.prototype.hasOwnProperty.call(item.data, itemText)) {\n const retData = item.data[itemText];\n return String(retData);\n }\n error(`${componentName}: itemText specifies field that does not exist: ${itemText}`);\n // return undefined if the field doesn't exist\n return undefined;\n }\n // if item-text is a function, call it to create a display label\n return (itemText as ItemTextFunctionType<K, D>)(item);\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 type { ComponentChildren, ComponentProps } from 'preact';\n\nimport { List } from '#PRIVATE_List';\nimport type { DataState, ListItemRendererContext, Metadata } from '#UNSAFE_Collection';\nimport { Flex } from '#UNSAFE_Flex';\nimport { HighlightText } from '#UNSAFE_HighlightText';\nimport { ListItemText } from '#UNSAFE_ListItemLayout';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport type { Keys } from '#utils/UNSAFE_keys';\nimport type { ItemTextType } from '#utils/UNSAFE_selectUtils';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport { type ComponentName, renderItemText } from './itemTextUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype ListProps<K extends string | number, D> = ComponentProps<typeof List<K, D>>;\ntype PickedPropsFromList = Pick<\n ComponentProps<typeof List>,\n 'aria-label' | 'currentItemVariant' | 'selectionMode'\n>;\n\n// pick the props from the ListItemContext instead of extending it directly so that we\n// don't automatically expose any new props that may be added to it\ntype PickedPropsFromListItemContext<K, D> = Pick<\n ListItemRendererContext<K, D>,\n 'data' | 'index' | 'selector'\n>;\ntype ItemRendererSelectionDetail<K> = {\n value: Set<K>;\n target: EventTarget | null;\n};\ntype ItemRendererMetadata<K> = Pick<Metadata<K>, 'key' | 'suggestion'>;\ntype ItemRendererProps<K, D> = PickedPropsFromListItemContext<K, D> & {\n metadata: ItemRendererMetadata<K>;\n searchText?: string;\n selectedKeys?: Set<K>;\n onSelectionChange: (detail: ItemRendererSelectionDetail<K>) => void;\n};\n\ntype DefaultListCurrentKeyDetail<K> = { value: K };\ntype DefaultListItemActionDetail<K, D> = { context: Item<K, D> };\ntype DefaultListSelectionDetail<K> = { value: Set<K> };\n\ntype Props<K extends string | number, D extends Record<string, any>> = PickedPropsFromList & {\n itemRenderer?: (itemRendererProps: ItemRendererProps<K, D>) => ComponentChildren;\n itemText: ItemTextType<K, D>;\n // props from List that we constrain or unconstrain\n currentKey?: K;\n data?: DataState<K, D> | null;\n onCurrentKeyChange: (detail: DefaultListCurrentKeyDetail<K>) => void;\n onItemAction?: (detail: DefaultListItemActionDetail<K, D>) => void;\n onLoadRange?: ComponentProps<typeof List>['onLoadRange'];\n onSelectionChange?: (detail: DefaultListSelectionDetail<K>) => void;\n searchText?: string;\n selectedKeys?: Set<K>;\n // props for logging purposes\n componentName: ComponentName;\n};\n\nconst noOp = () => {};\n\nexport function DefaultList<K extends string | number, D extends Record<string, any>>({\n 'aria-label': ariaLabel,\n componentName,\n currentItemVariant,\n currentKey,\n data,\n itemRenderer,\n itemText,\n onCurrentKeyChange,\n onItemAction,\n onLoadRange = noOp,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n}: Props<K, D>) {\n const listItemRenderer = useCallback(\n (listItemContext: ListItemRendererContext<K, D>) => {\n // specify the listItemContext props that we want to expose individually instead of\n // spreading the whole object so that we don't automatically include any new props that\n // may be added to it\n const itemRendererProps: ItemRendererProps<K, D> = {\n data: listItemContext.data,\n index: listItemContext.index,\n metadata: listItemContext.metadata,\n selector: listItemContext.selector,\n searchText,\n selectedKeys,\n onSelectionChange: ({ value }) => {\n onSelectionChange?.({ value });\n }\n };\n const itemContext = {\n data: listItemContext.data,\n key: listItemContext.metadata.key,\n metadata: listItemContext.metadata\n };\n return itemRenderer ? (\n itemRenderer(itemRendererProps)\n ) : (\n <Flex align=\"center\">\n {listItemContext.selector && (\n <div class={dropdownStyles.selectorWrapper}>{listItemContext.selector()}</div>\n )}\n <div\n class={\n selectionMode === 'single'\n ? dropdownStyles.singleSelectItem\n : dropdownStyles.multiSelectItem\n }>\n <ListItemText variant=\"primary\">\n <HighlightText matchText={searchText}>\n {renderItemText(itemContext, itemText, componentName) as string}\n </HighlightText>\n </ListItemText>\n </div>\n </Flex>\n );\n },\n [\n componentName,\n itemRenderer,\n itemText,\n onSelectionChange,\n searchText,\n selectedKeys,\n selectionMode\n ]\n );\n\n const keys = useMemo(() => {\n return { all: false, keys: selectedKeys ?? new Set<K>() };\n }, [selectedKeys]) as Keys<K>;\n\n const currentItemOverride = useMemo(\n () => (currentKey !== undefined ? { rowKey: currentKey } : undefined),\n [currentKey]\n );\n const handleItemAction = useCallback<NonNullable<ListProps<K, D>['onItemAction']>>(\n ({ context: { data, metadata } }) => {\n onItemAction?.({ context: { data, key: metadata.key, metadata } });\n },\n [onItemAction]\n );\n const handleSelectionChange = useCallback<NonNullable<ListProps<K, D>['onSelectionChange']>>(\n ({ value }) => {\n onSelectionChange?.({ value: new Set(value.keys?.values()) });\n },\n [onSelectionChange]\n );\n\n return (\n <List<K, D>\n aria-label={ariaLabel}\n allowTabbableMode={false}\n currentItemVariant={currentItemVariant}\n currentItemOverride={currentItemOverride}\n data={data ?? null}\n onPersistCurrentItem={onCurrentKeyChange}\n onItemAction={handleItemAction}\n onLoadRange={onLoadRange}\n onSelectionChange={handleSelectionChange}\n role=\"listbox\"\n selectedKeys={keys}\n selectionMode={selectionMode}>\n {(context: ListItemRendererContext<K, D>) => listItemRenderer(context)}\n </List>\n );\n}\n","export const isSimpleClick = (event: MouseEvent) => {\n return event.button === 0 && !event.ctrlKey;\n};\n\nexport const preventDefault = (event: Event) => {\n event.preventDefault();\n};\n\nexport const preventDefaultForCurrentTarget = (event: MouseEvent) => {\n if (event.currentTarget === event.target) {\n event.preventDefault();\n }\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 { useCallback } from 'preact/hooks';\nimport { usePress } from '../hooks/UNSAFE_usePress';\nimport { DropdownArrowIcon } from '../PRIVATE_ThemedIcons/DropdownArrowIcon';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { ButtonLabelLayoutRedwoodTheme } from '#UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutTheme';\nimport type { ButtonLabelLayoutVariantOptions } from '#UNSAFE_ButtonLabelLayout/themes/ButtonLabelLayoutStyles.css';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { BaseButtonRedwoodTheme } from '#UNSAFE_BaseButton/themes/redwood/BaseButtonTheme';\n\ntype Props = TestIdProps & {\n isDisabled?: boolean;\n onClick?: () => void;\n};\n\nconst noop = () => {};\n\nexport function DropdownArrow({ isDisabled = false, onClick, testId }: Props) {\n const { classes } = useComponentTheme<ButtonLabelLayoutVariantOptions>(\n ButtonLabelLayoutRedwoodTheme,\n { size: 'sm' }\n );\n const { baseTheme } = useComponentTheme(BaseButtonRedwoodTheme);\n\n const preventDefault = useCallback((event: Event) => {\n event.preventDefault();\n }, []);\n const { pressProps } = usePress(onClick ?? noop, { isDisabled });\n\n // TODO: JET-67410 replace this with a icon button\n const styleClasses = classNames([\n classes,\n baseTheme,\n dropdownStyles.arrow.base,\n isDisabled ? dropdownStyles.arrow.disabled : dropdownStyles.arrow.enabled\n ]);\n\n const testIdProps = useTestId(testId);\n\n return (\n <span\n aria-hidden=\"true\"\n class={styleClasses}\n tabIndex={-1}\n onMouseDown={preventDefault}\n {...testIdProps}\n {...pressProps}>\n <DropdownArrowIcon />\n </span>\n );\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 type { ComponentChildren, ComponentProps, Ref } from 'preact';\n\nimport { CollectionInteractionContext } from '#hooks/UNSAFE_useCollectionInteractionContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\ntype Props = Pick<ComponentProps<'div'>, 'id' | 'onKeyDown'> & {\n children?: ComponentChildren;\n dropdownListRef?: Ref<HTMLDivElement>;\n hasTopGap?: boolean;\n hasBottomGap?: boolean;\n isLoading?: boolean;\n};\n\nexport function DropdownList({\n children,\n id,\n dropdownListRef,\n hasTopGap = true,\n hasBottomGap = true,\n isLoading = false,\n onKeyDown\n}: Props) {\n const styleClasses = classNames([\n dropdownStyles.list.base,\n hasTopGap && dropdownStyles.list.topGap,\n hasBottomGap && dropdownStyles.list.bottomGap,\n isLoading && dropdownStyles.list.loading\n ]);\n return (\n <CollectionInteractionContext.Provider value={'embedded'}>\n <div\n ref={dropdownListRef}\n class={styleClasses}\n id={id}\n onMouseDown={preventDefaultForCurrentTarget}\n onKeyDown={onKeyDown}>\n {children}\n </div>\n </CollectionInteractionContext.Provider>\n );\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 { Text } from '#UNSAFE_Text';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '#resources/nls/bundle';\nimport { preventDefaultForCurrentTarget } from './eventUtils';\nimport { dropdownStyles } from './themes/dropdownStyles.css';\n\nexport function EmptyResults() {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n // call preventDefault for mousedown on this div so that focus does not transfer from\n // the input\n return (\n <div class={dropdownStyles.results.extraItem} onMouseDown={preventDefaultForCurrentTarget}>\n <Text variant=\"primary\">{translations.select_noMatchesFound()}</Text>\n </div>\n );\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 type { DataState } from '#UNSAFE_Collection';\nimport { getClientHints } from '#utils/PRIVATE_clientHints';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\n\n/**\n * Helper function to determine whether the current device is a mobile device\n * @returns true if running on a mobile device, false otherwise\n */\nexport function isMobile() {\n const deviceType = getClientHints().deviceType;\n return deviceType === 'phone' || deviceType === 'tablet';\n}\n\n/**\n * Helper function to determine whether the current device is a phone\n * @returns true if running on a phone, false otherwise\n */\nexport function isPhone() {\n return getClientHints().deviceType === 'phone';\n}\n\n/**\n * Helper function to determine whether the current device is a tablet\n * @returns true if running on a tablet, false otherwise\n */\nexport function isTablet() {\n return getClientHints().deviceType === 'tablet';\n}\n\nexport function isBeforeDataFetch<K, D>(data: DataState<K, D>) {\n return data.sizePrecision === 'atLeast' && data.totalSize === 0;\n}\n\nexport function isSearchTextEmptyOrUndefined(searchText?: string) {\n return searchText === undefined || searchText.length === 0;\n}\n\nexport function isSearchClearedFirstTime(prevSearchText?: string, searchText?: string) {\n return prevSearchText === undefined && searchText === '';\n}\n\n/**\n * Extract keys from a value items array.\n *\n * @param valueItems The value items from which the keys are to be extracted\n * @returns The set of keys\n */\nexport function createKeysFromValueItems<K, D>(valueItems?: Item<K, D>[]) {\n const keys = valueItems?.reduce((accumKeys, currentItem) => {\n accumKeys.add(currentItem.key);\n return accumKeys;\n }, new Set<K>());\n return keys;\n}\n","import type { DataState } from '#UNSAFE_Collection';\nimport type { Item } from '#utils/UNSAFE_dataProvider';\nimport { useMemo } from 'preact/compat';\n\ntype Key = string | number;\ntype Data = Record<string, any>;\n\ntype UseCollectionRendererCommonParams<K> = {\n currentKey?: K;\n searchText?: string;\n selectedKeys?: Set<K>;\n onCurrentKeyChange: (detail: { value?: K }) => void;\n};\n\nexport type UseCollectionRendererSelectSingleParams<K, D> = UseCollectionRendererCommonParams<K> & {\n onItemAction: (detail: { context: Item<K, D> }) => void;\n onSelectedKeysChange?: never;\n selectedOnlyData?: never;\n};\n\nexport type UseCollectionRendererSelectMultipleParams<K, D> =\n UseCollectionRendererCommonParams<K> & {\n onItemAction?: never;\n onSelectedKeysChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n };\n\ntype UseCollectionRendererParams<K, D> =\n | UseCollectionRendererSelectSingleParams<K, D>\n | UseCollectionRendererSelectMultipleParams<K, D>;\n\ntype CommonCollectionRendererContext<K extends Key> = {\n searchText?: string;\n currentRowKeyOverride?: K;\n onPersistCurrentRowKey: (detail: { value?: K }) => void;\n selected?: Set<K>;\n};\n\nexport type SelectSingleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onRowAction: (detail: { context: Item<K, D> }) => void;\n};\n\nexport type SelectMultipleCollectionRendererContext<\n K extends Key,\n D extends Data\n> = CommonCollectionRendererContext<K> & {\n onSelectedChange: (detail: { value: Set<K> }) => void;\n selectedOnlyData?: DataState<K, D>;\n};\n\ntype CollectionRendererContext<K extends Key, D extends Data> =\n | SelectSingleCollectionRendererContext<K, D>\n | SelectMultipleCollectionRendererContext<K, D>;\n\n// NOTE: We will using a single hook that constructs the collection renderer context for both select single and\n// select multiple. This is ok as they both share most of the properties and differ only in a few areas. So, we will\n// be using function overloading to determine which component is calling the hook (based on the args) and return the\n// correct context.\n\n/**\n * A custom hook that constructs the context for SelectSingle's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectSingleParams<K, D>\n): SelectSingleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectMultiple's collectionRenderer.\n * @param params Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>(\n params: UseCollectionRendererSelectMultipleParams<K, D>\n): SelectMultipleCollectionRendererContext<K, D>;\n\n/**\n * A custom hook that constructs the context for SelectSingle/SelectMultiple's collectionRenderer.\n * @param param0 Parameters for constructing the collection renderer context\n * @returns the CollectionRendererContext object\n */\nexport function useCollectionRenderer<K extends Key, D extends Data>({\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n}: UseCollectionRendererParams<K, D>) {\n return useMemo<CollectionRendererContext<K, D>>(() => {\n const common = {\n searchText,\n currentRowKeyOverride: currentKey,\n onPersistCurrentRowKey: onCurrentKeyChange,\n selected: selectedKeys\n } satisfies CommonCollectionRendererContext<K>;\n\n // If onItemAction is present, then we are constructing context for SelectSingle. So,\n // return the context satisfying SelectSingleCollectionRendererContext type.\n if (onItemAction !== undefined)\n return {\n ...common,\n onRowAction: onItemAction\n } satisfies SelectSingleCollectionRendererContext<K, D>;\n\n // If onItemAction is not present, then we are constructing context for SelectMultiple. So,\n // return the context satisfying SelectMultipleCollectionRendererContext type.\n return {\n ...common,\n onSelectedChange: onSelectedKeysChange,\n selectedOnlyData\n } satisfies SelectMultipleCollectionRendererContext<K, D>;\n }, [\n currentKey,\n onCurrentKeyChange,\n onItemAction,\n onSelectedKeysChange,\n searchText,\n selectedKeys,\n selectedOnlyData\n ]);\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 type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\n\nimport type { DataState } from '#UNSAFE_Collection';\nimport type { PositionData } from '#UNSAFE_Floating';\nimport { KEYS, isControlOrFunctionKey } from '#utils/PRIVATE_keyboardUtils';\nimport { allTabbableElements } from '#utils/PRIVATE_tabbableUtils';\nimport type { ValueUpdateDetail } from '#utils/UNSAFE_valueUpdateDetail';\nimport { isSimpleClick } from './eventUtils';\n\ntype UseSelectCommonProps<K, D> = {\n data?: DataState<K, D> | null;\n inputRef: RefObject<HTMLElement>;\n isFocused?: boolean;\n onFilter?: ({ searchText }: { searchText?: string }) => void;\n};\n\nexport type CurrentKeyDetail<K> = {\n value?: K;\n};\n\n/**\n * Hook that manages state and behavior for a Select* component. This hook creates state\n * variables and event listeners, returning properties to apply to components internally\n * rendered by a Select* component, as well as state information.\n *\n * @param data Specifies data for the dropdown list.\n * @param inputRef Ref to the input element.\n * @param isFocused Specifies whether the component has focus.\n * @param onFilter Callback function to trigger loading data for the dropdown list,\n * which may or may not be filtered by user entered text.\n *\n * @returns Component state and event listeners.\n */\nexport function useSelectCommon<K, D>({\n data,\n inputRef,\n isFocused,\n onFilter\n}: UseSelectCommonProps<K, D>) {\n const mainFieldRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [isDropdownOpen, setDropdownOpen] = useState(false);\n const [isDropdownAbove, setDropdownAbove] = useState(false);\n\n // We only need to push currentRow when we need to override the\n // current row, like when the dropdown is opened and we want to set the initial\n // focused row or when filtering and we want to focus the first row.\n const [currentRowOverride, _setCurrentRowOverride] = useState<{ rowKey?: K }>({\n rowKey: undefined\n });\n // We still need information on what the current row actually is, but we do not need\n // to react to it until certain scenarios like pressing Tab from the dropdown. So, we\n // just store this in a ref.\n const currentRowKeyRef = useRef<K>();\n // When we want to update the currentRowOverride, we also want to keep the currentRowKeyRef\n // in sync as the collection will not call onChanged for this change.\n const setCurrentRowOverride = useCallback((currentRow: { rowKey?: K }) => {\n currentRowKeyRef.current = currentRow.rowKey;\n _setCurrentRowOverride(currentRow);\n }, []);\n const [isUserFiltering, setUserFiltering] = useState(false);\n const [userInput, setUserInput] = useState<string>();\n const [searchText, setSearchText] = useState<string>();\n\n const [prevIsDropdownOpen, setPrevIsDropdownOpen] = useState(isDropdownOpen);\n const [prevIsFocused, setPrevIsFocused] = useState(isFocused);\n const [prevIsUserFiltering, setPrevIsUserFiltering] = useState(isUserFiltering);\n\n const onMouseDown = useCallback(\n (event: MouseEvent) => {\n // const target = event.target as HTMLElement;\n if (event.defaultPrevented || !isSimpleClick(event)) {\n return;\n }\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n // this is needed to focus the input when clicking on the inside label when there is no\n // value; otherwise the component looks focused but doesn't actually have physical focus\n setTimeout(function () {\n inputRef.current?.focus();\n }, 0);\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownArrowClick = useCallback(() => {\n setDropdownOpen(!isDropdownOpen);\n\n // focus the input so that if the user Tabs afterwards, it loses focus and the dropdown closes\n inputRef.current?.focus();\n }, [inputRef, isDropdownOpen]);\n\n const handleDropdownAutoDismiss = useCallback(\n (event?: Event) => {\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n switch (event?.type) {\n case 'keydown': {\n const keyboardEvent = event as KeyboardEvent;\n switch (keyboardEvent.code) {\n case KEYS.ESC:\n // focus the input when the user cancels out of the dropdown\n inputRef.current?.focus();\n break;\n default:\n break;\n }\n break;\n }\n case 'mousedown':\n // if focus is in the dropdown, focus the input before the dropdown is hidden so that\n // focus will transfer correctly when the target is not focusable;\n // otherwise the text cursor appears in the input again\n if (dropdownRef.current?.contains(document.activeElement)) {\n inputRef.current?.focus();\n }\n break;\n default:\n break;\n }\n }\n },\n [inputRef, isDropdownOpen]\n );\n\n const handleDropdownPosition = useCallback((data: PositionData) => {\n setDropdownAbove(data.placement.startsWith('top'));\n }, []);\n\n const getDropdownTabbableElems = useCallback(() => {\n return isDropdownOpen && dropdownRef.current\n ? allTabbableElements(dropdownRef.current)\n : undefined;\n }, [isDropdownOpen]);\n\n const handleUpDownArrowKeys = useCallback(\n (event: KeyboardEvent) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n } else {\n // JET-64909 - focus / 'current' dropped when arrow keying during loading\n // Transfer physical focus into the dropdown only if the data is present and the dropdown\n // has rendered the data. Otherwise, keep the focus in the field.\n if (data != null) {\n const tabbableElems = getDropdownTabbableElems();\n tabbableElems?.[0]?.focus();\n\n // if there is no current item set, make the first item current\n if (currentRowOverride.rowKey === undefined) {\n setCurrentRowOverride({ rowKey: data.data[0]?.metadata?.key });\n }\n }\n }\n\n // prevent the page from scrolling\n event.preventDefault();\n },\n [currentRowOverride, data, getDropdownTabbableElems, isDropdownOpen, setCurrentRowOverride]\n );\n\n const handleMainFieldKeyDown = useCallback(\n (event: KeyboardEvent) => {\n // const target = event.target as HTMLElement;\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.PAGE_UP:\n case KEYS.PAGE_DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n\n return;\n\n case KEYS.UP:\n case KEYS.DOWN:\n // prevent the page from scrolling\n event.preventDefault();\n break;\n\n case KEYS.ESC:\n if (isDropdownOpen) {\n setDropdownOpen(false);\n\n event.preventDefault();\n\n // JET-53183 - core pack compat: stop propagation of handled events\n // we don't want a parent collection component to stop editing the row when we close\n // the dropdown\n event.stopPropagation();\n }\n break;\n\n default:\n break;\n }\n },\n [isDropdownOpen]\n );\n\n const handleMainFieldKeyUp = useCallback(\n (event: KeyboardEvent) => {\n // ignore control key and function key\n if (isControlOrFunctionKey(event)) {\n return;\n }\n\n switch (event.code) {\n case KEYS.UP:\n case KEYS.DOWN:\n handleUpDownArrowKeys(event);\n break;\n\n default:\n break;\n }\n },\n [handleUpDownArrowKeys]\n );\n\n const handleInput = useCallback(\n (detail: ValueUpdateDetail<string>) => {\n if (!isDropdownOpen) {\n setDropdownOpen(true);\n }\n setUserFiltering(true);\n setUserInput(detail.value);\n const str = detail.value;\n setSearchText(str);\n onFilter?.({ searchText: str });\n },\n [isDropdownOpen, onFilter]\n );\n\n const onCurrentKeyChange = useCallback((detail: CurrentKeyDetail<K>) => {\n // when the collection changes the current key, we only want to store the information\n // and not do anything.\n currentRowKeyRef.current = detail.value;\n }, []);\n\n const stopFiltering = useCallback(() => {\n setUserFiltering(false);\n setUserInput('');\n // Set this to `undefined` as this represents the initial state.\n // We need to do this for select-single as we need to highlight different\n // rows based on whether it is the initial dropdown navigation or empty filter navigation.\n setSearchText(undefined);\n }, []);\n\n const updateFiltering = useCallback((value?: string) => {\n setUserFiltering(true);\n setUserInput(value);\n setSearchText(value);\n }, []);\n\n // the user is not actively filtering if the dropdown is closed and the component doesn't\n // have focus\n if (\n prevIsDropdownOpen !== isDropdownOpen ||\n prevIsFocused !== isFocused ||\n prevIsUserFiltering !== isUserFiltering\n ) {\n if (!isDropdownOpen && !isFocused && isUserFiltering) {\n stopFiltering();\n }\n }\n\n // need to call onFilter with undefined searchText when the dropdown opens and the\n // user is NOT filtering\n useEffect(() => {\n if (isDropdownOpen && !isUserFiltering) {\n onFilter?.({ searchText: undefined });\n }\n }, [isDropdownOpen, isUserFiltering, onFilter]);\n\n // when the dropdown closes, reset the isDropdownAbove flag\n if (prevIsDropdownOpen !== isDropdownOpen) {\n if (!isDropdownOpen) {\n setDropdownAbove(false);\n }\n setPrevIsDropdownOpen(isDropdownOpen);\n }\n\n if (prevIsFocused !== isFocused) {\n setPrevIsFocused(isFocused);\n }\n if (prevIsUserFiltering !== isUserFiltering) {\n setPrevIsUserFiltering(isUserFiltering);\n }\n\n return {\n currentRowKeyRef,\n currentRowOverride,\n dropdownRef,\n getDropdownTabbableElems,\n handleDropdownArrowClick,\n handleDropdownAutoDismiss,\n handleDropdownPosition,\n handleInput,\n handleMainFieldKeyDown,\n handleMainFieldKeyUp,\n handleUpDownArrowKeys,\n isDropdownAbove,\n isDropdownOpen,\n // the field should remain to look focused while the dropdown is open,\n // in case physical focus is in the dropdown\n isFocused: isFocused || isDropdownOpen,\n isUserFiltering,\n mainFieldRef,\n onCurrentKeyChange,\n onMouseDown,\n searchText,\n setCurrentRowOverride,\n setDropdownOpen,\n setUserInput,\n stopFiltering,\n updateFiltering,\n userInput\n };\n}\n"],"names":["_jsxs","_jsx","DropdownArrowIcon","useMemo"],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- /* @oracle/oraclejet-preact: undefined */
2
- import { jsx, jsxs } from 'preact/jsx-runtime';
3
- import { useCallback, useState, useLayoutEffect } from 'preact/hooks';
4
- import { c as classNames } from './classNames-4e12b00d.js';
5
- import { u as usePress } from './usePress-051f5adb.js';
6
- import './FormFieldContext-47ca0c20.js';
7
- import { u as useFormFieldContext } from './useFormFieldContext-daf7a676.js';
8
- import './MaxLengthCounterStyles.styles.css';
9
-
10
- var hide = 'MaxLengthCounterStyles_hide__7dy9j71';
11
- var maxLengthCounterBase = 'MaxLengthCounterStyles_maxLengthCounterBase__7dy9j70';
12
- var spanStyles = 'MaxLengthCounterStyles_spanStyles__7dy9j72';
13
-
14
- const noop = () => { };
15
- function MaxLengthCounter({ maxLength, valueLength = 0, onClick }) {
16
- const { isFocused } = useFormFieldContext();
17
- // We don't want mousedown on this component to do anything, so prevent the default behavior.
18
- const killEvent = useCallback((event) => event.preventDefault(), []);
19
- const textClasses = classNames([!isFocused && hide]);
20
- const { pressProps } = usePress(onClick ?? noop);
21
- return (jsx("div", { class: maxLengthCounterBase, onMouseDown: killEvent, ...pressProps, children: jsxs("span", { class: textClasses, children: [jsx("span", { class: spanStyles, children: valueLength }), jsx("span", { class: spanStyles, children: "/" }), jsx("span", { class: spanStyles, children: maxLength })] }) }));
22
- }
23
-
24
- /**
25
- * A custom hook to enable an alternate way for entering a new line in the TextArea components using
26
- * Alt + Enter (or option + return in MacOS). This is particularly useful in scenarios where pressing Enter
27
- * could mean a different action, like exiting from edit mode in a Table/DataGrid containing a TextArea.
28
- */
29
- const useTextAreaAltEnter = ({ onInput, textAreaRef }) => {
30
- // We want to have alt/option+Enter to insert a newline like Enter does.
31
- const [selectionStart, setSelectionStart] = useState();
32
- const handleKeyDown = useCallback((event) => {
33
- // If we see an alt+enter (or option+return on a Mac), we insert a newline and call onInputAndDispatch
34
- // since that is what is called any time the input value changes.
35
- if (event.altKey && event.key === 'Enter') {
36
- event.preventDefault(); // Prevent default Enter behavior
37
- const textarea = event.target;
38
- const { selectionStart: start, selectionEnd: end, value: previousValue } = textarea;
39
- const newValue = previousValue.substring(0, start) + '\n' + previousValue.substring(end);
40
- const valueUpdateDetail = {
41
- previousValue: previousValue,
42
- value: newValue
43
- };
44
- setSelectionStart(start + 1);
45
- onInput(valueUpdateDetail);
46
- }
47
- }, [onInput]);
48
- useLayoutEffect(() => {
49
- if (selectionStart) {
50
- textAreaRef.current?.setSelectionRange(selectionStart, selectionStart);
51
- // reset to undefined, so the next selectionStart will trigger the useLayoutEffect
52
- // even if it is the same as the previous selectionStart that was set. This is
53
- // because we are only setting selectionStart for alt+enter.
54
- setSelectionStart(undefined);
55
- }
56
- }, [selectionStart, textAreaRef]);
57
- return { handleKeyDown };
58
- };
59
-
60
- export { MaxLengthCounter as M, useTextAreaAltEnter as u };
61
- //# sourceMappingURL=useTextAreaAltEnter-ac460f4c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTextAreaAltEnter-ac460f4c.js","sources":["../../src/UNSAFE_TextArea/MaxLengthCounter.tsx","../../src/UNSAFE_TextArea/useTextAreaAltEnter.ts"],"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"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAaA,MAAM,IAAI,GAAG,MAAK,GAAG,CAAC;AAEhB,SAAU,gBAAgB,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,EAAE,OAAO,EAAS,EAAA;AAC7E,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,EAAE,CAAC;;AAE5C,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;AACjD,IAAA,QACEA,GAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAM,GAAA,UAAU,YACtEC,IAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,WAAW,EAAA,QAAA,EAAA,CACtBD,cAAM,KAAK,EAAE,UAAU,EAAA,QAAA,EAAG,WAAW,EAAQ,CAAA,EAC7CA,cAAM,KAAK,EAAE,UAAU,EAAU,QAAA,EAAA,GAAA,EAAA,CAAA,EACjCA,cAAM,KAAK,EAAE,UAAU,EAAG,QAAA,EAAA,SAAS,GAAQ,CACtC,EAAA,CAAA,EAAA,CACH,EACN;AACJ;;ACbA;;;;AAIG;AACU,MAAA,mBAAmB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAA8B,KAAI;;IAE1F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,EAAU,CAAC;AAC/D,IAAA,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAoB,KAAI;;;QAGvB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACzC,YAAA,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA6B,CAAC;AACrD,YAAA,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;AACpF,YAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAEzF,YAAA,MAAM,iBAAiB,GAA8B;AACnD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,KAAK,EAAE,QAAQ;aAChB,CAAC;AACF,YAAA,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC5B;AACH,KAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,eAAe,CAAC,MAAK;QACnB,IAAI,cAAc,EAAE;YAClB,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;;;;YAIvE,iBAAiB,CAAC,SAAS,CAAC,CAAC;SAC9B;AACH,KAAC,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;IAElC,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B;;;;"}