@oracle/oraclejet-preact 17.1.4 → 17.1.6

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 (649) hide show
  1. package/amd/{BaseCardView-a11e4dec.js → BaseCardView-c5624c8a.js} +2 -2
  2. package/amd/{BaseCardView-a11e4dec.js.map → BaseCardView-c5624c8a.js.map} +1 -1
  3. package/amd/CardFlexView-14fada63.js +2 -0
  4. package/amd/{CardFlexView-9688d264.js.map → CardFlexView-14fada63.js.map} +1 -1
  5. package/amd/{CardGridView-b7f4f205.js → CardGridView-00ba53a9.js} +2 -2
  6. package/amd/{CardGridView-b7f4f205.js.map → CardGridView-00ba53a9.js.map} +1 -1
  7. package/amd/GroupLoadingIndicator-cd9192c9.js +1 -1
  8. package/amd/{Indexer-6833ad40.js → Indexer-74c989ce.js} +2 -2
  9. package/amd/{Indexer-6833ad40.js.map → Indexer-74c989ce.js.map} +1 -1
  10. package/amd/InputDatePicker-97756bcd.js +2 -0
  11. package/amd/{InputDatePicker-6167ff45.js.map → InputDatePicker-97756bcd.js.map} +1 -1
  12. package/amd/List-61d64cd6.js +2 -0
  13. package/amd/{List-3ebac3fc.js.map → List-61d64cd6.js.map} +1 -1
  14. package/amd/{ListView-c8082c0c.js → ListView-a49e52c3.js} +2 -2
  15. package/amd/{ListView-c8082c0c.js.map → ListView-a49e52c3.js.map} +1 -1
  16. package/amd/LoadMoreCollection-83413a59.js +2 -0
  17. package/amd/{LoadMoreCollection-a6adbc3f.js.map → LoadMoreCollection-83413a59.js.map} +1 -1
  18. package/amd/MaxLengthCounter-caafceef.js +2 -0
  19. package/amd/MaxLengthCounter-caafceef.js.map +1 -0
  20. package/amd/PRIVATE_BaseCardView.js +1 -1
  21. package/amd/PRIVATE_List.js +1 -1
  22. package/amd/PRIVATE_LoadMoreCollection.js +1 -1
  23. package/amd/PRIVATE_SelectCommon.js +1 -1
  24. package/amd/PRIVATE_Table.js +1 -1
  25. package/amd/PRIVATE_VirtualizedCollection.js +1 -1
  26. package/amd/{SelectMultiple-3eb4a268.js → SelectMultiple-1ff92cc3.js} +2 -2
  27. package/amd/{SelectMultiple-3eb4a268.js.map → SelectMultiple-1ff92cc3.js.map} +1 -1
  28. package/amd/{SelectSingle-9fcc38fc.js → SelectSingle-641a4cac.js} +2 -2
  29. package/amd/{SelectSingle-9fcc38fc.js.map → SelectSingle-641a4cac.js.map} +1 -1
  30. package/amd/{Table-611e08d5.js → Table-986ae70c.js} +2 -2
  31. package/amd/{Table-611e08d5.js.map → Table-986ae70c.js.map} +1 -1
  32. package/amd/{TableView-cf113195.js → TableView-452fa547.js} +2 -2
  33. package/amd/{TableView-cf113195.js.map → TableView-452fa547.js.map} +1 -1
  34. package/amd/TextArea-259d741c.js +2 -0
  35. package/amd/TextArea-259d741c.js.map +1 -0
  36. package/amd/TextAreaAutosize-e8dc13b4.js +2 -0
  37. package/amd/{TextAreaAutosize-1f47b470.js.map → TextAreaAutosize-e8dc13b4.js.map} +1 -1
  38. package/amd/Theme-redwood/theme.css +280 -280
  39. package/amd/Theme-stable/theme.css +332 -332
  40. package/amd/UNSAFE_CardFlexView.js +1 -1
  41. package/amd/UNSAFE_CardGridView.js +1 -1
  42. package/amd/UNSAFE_ExpandableList.js +1 -1
  43. package/amd/UNSAFE_Indexer.js +1 -1
  44. package/amd/UNSAFE_InputDatePicker.js +1 -1
  45. package/amd/UNSAFE_ListView.js +1 -1
  46. package/amd/UNSAFE_SelectMultiple.js +1 -1
  47. package/amd/UNSAFE_SelectSingle.js +1 -1
  48. package/amd/UNSAFE_TableView.js +1 -1
  49. package/amd/UNSAFE_TextArea.js +1 -1
  50. package/amd/UNSAFE_TextAreaAutosize.js +1 -1
  51. package/amd/UNSAFE_VirtualizedListView.js +1 -1
  52. package/amd/{VirtualizedCollection-63223f5e.js → VirtualizedCollection-897516a5.js} +2 -2
  53. package/amd/{VirtualizedCollection-63223f5e.js.map → VirtualizedCollection-897516a5.js.map} +1 -1
  54. package/amd/VirtualizedListView-96ddfd98.js +2 -0
  55. package/amd/{VirtualizedListView-cf795207.js.map → VirtualizedListView-96ddfd98.js.map} +1 -1
  56. package/amd/{useSelectCommon-94d5e5bb.js → useSelectCommon-4e256cf0.js} +2 -2
  57. package/amd/{useSelectCommon-94d5e5bb.js.map → useSelectCommon-4e256cf0.js.map} +1 -1
  58. package/cjs/{BaseCardView-b5471a69.js → BaseCardView-55bc5e6f.js} +2 -2
  59. package/cjs/{BaseCardView-b5471a69.js.map → BaseCardView-55bc5e6f.js.map} +1 -1
  60. package/cjs/{CardFlexView-075d4013.js → CardFlexView-ae79f8f1.js} +2 -2
  61. package/cjs/{CardFlexView-075d4013.js.map → CardFlexView-ae79f8f1.js.map} +1 -1
  62. package/cjs/{CardGridView-3c07cf2a.js → CardGridView-4936ffd6.js} +2 -2
  63. package/cjs/{CardGridView-3c07cf2a.js.map → CardGridView-4936ffd6.js.map} +1 -1
  64. package/cjs/GroupLoadingIndicator-397feb37.js +1 -1
  65. package/cjs/{Indexer-8ba89fa5.js → Indexer-1dfa7ec4.js} +2 -2
  66. package/cjs/{Indexer-8ba89fa5.js.map → Indexer-1dfa7ec4.js.map} +1 -1
  67. package/cjs/{List-5374e621.js → List-2baf37ae.js} +4 -3
  68. package/cjs/{List-5374e621.js.map → List-2baf37ae.js.map} +1 -1
  69. package/cjs/{ListView-a8278334.js → ListView-4db96cfd.js} +2 -2
  70. package/cjs/{ListView-a8278334.js.map → ListView-4db96cfd.js.map} +1 -1
  71. package/cjs/{LoadMoreCollection-69bc038c.js → LoadMoreCollection-73112ff0.js} +2 -2
  72. package/cjs/{LoadMoreCollection-69bc038c.js.map → LoadMoreCollection-73112ff0.js.map} +1 -1
  73. package/cjs/{NavigationListItem-7550547a.js → NavigationListItem-d9228979.js} +1 -14
  74. package/cjs/{NavigationListItem-7550547a.js.map → NavigationListItem-d9228979.js.map} +1 -1
  75. package/cjs/{OverflowTabBar-76c75781.js → OverflowTabBar-081cc41e.js} +2 -2
  76. package/cjs/{OverflowTabBar-76c75781.js.map → OverflowTabBar-081cc41e.js.map} +1 -1
  77. package/cjs/{OverflowTabBarItem-76059bad.js → OverflowTabBarItem-57899880.js} +2 -2
  78. package/cjs/{OverflowTabBarItem-76059bad.js.map → OverflowTabBarItem-57899880.js.map} +1 -1
  79. package/cjs/PRIVATE_BaseCardView.js +3 -3
  80. package/cjs/PRIVATE_List.js +4 -4
  81. package/cjs/PRIVATE_LoadMoreCollection.js +2 -2
  82. package/cjs/PRIVATE_SelectCommon.js +5 -5
  83. package/cjs/PRIVATE_Table.js +3 -3
  84. package/cjs/PRIVATE_VirtualizedCollection.js +2 -2
  85. package/cjs/{SelectMultiple-79cebd04.js → SelectMultiple-2d4eba14.js} +2 -2
  86. package/cjs/{SelectMultiple-79cebd04.js.map → SelectMultiple-2d4eba14.js.map} +1 -1
  87. package/cjs/{SelectSingle-d8cf56db.js → SelectSingle-731c2ecd.js} +2 -2
  88. package/cjs/{SelectSingle-d8cf56db.js.map → SelectSingle-731c2ecd.js.map} +1 -1
  89. package/cjs/{Table-d70de040.js → Table-b137c360.js} +2 -2
  90. package/cjs/{Table-d70de040.js.map → Table-b137c360.js.map} +1 -1
  91. package/cjs/{TableView-d91ebb19.js → TableView-3a1f0c38.js} +2 -2
  92. package/cjs/{TableView-d91ebb19.js.map → TableView-3a1f0c38.js.map} +1 -1
  93. package/cjs/Theme-redwood/theme.css +136 -136
  94. package/cjs/Theme-stable/theme.css +373 -373
  95. package/cjs/UNSAFE_BaseButton/themes/stable/BaseButtonTheme.js +1 -0
  96. package/cjs/UNSAFE_BaseButton/themes/stable/BaseButtonTheme.js.map +1 -1
  97. package/cjs/UNSAFE_CardFlexView.js +4 -4
  98. package/cjs/UNSAFE_CardGridView.js +4 -4
  99. package/cjs/UNSAFE_ExpandableList.js +3 -3
  100. package/cjs/UNSAFE_Indexer.js +2 -2
  101. package/cjs/UNSAFE_ListView.js +5 -5
  102. package/cjs/UNSAFE_NavigationList.js +4 -4
  103. package/cjs/UNSAFE_OverflowTabBar.js +3 -3
  104. package/cjs/UNSAFE_SelectMultiple.js +6 -6
  105. package/cjs/UNSAFE_SelectSingle.js +6 -6
  106. package/cjs/UNSAFE_TabBar.js +2 -2
  107. package/cjs/UNSAFE_TabBarCommon.js +2 -2
  108. package/cjs/UNSAFE_TabBarMixed.js +2 -2
  109. package/cjs/UNSAFE_TableView.js +4 -4
  110. package/cjs/UNSAFE_VirtualizedListView.js +5 -5
  111. package/cjs/{VirtualizedCollection-9e8c48b9.js → VirtualizedCollection-00aedb8b.js} +2 -2
  112. package/cjs/{VirtualizedCollection-9e8c48b9.js.map → VirtualizedCollection-00aedb8b.js.map} +1 -1
  113. package/cjs/{VirtualizedListView-16222e22.js → VirtualizedListView-75610c90.js} +2 -2
  114. package/cjs/{VirtualizedListView-16222e22.js.map → VirtualizedListView-75610c90.js.map} +1 -1
  115. package/cjs/{useSelectCommon-309c1746.js → useSelectCommon-12313cdd.js} +2 -2
  116. package/cjs/{useSelectCommon-309c1746.js.map → useSelectCommon-12313cdd.js.map} +1 -1
  117. package/es/ActionCard-ba1c946e.js +1 -1
  118. package/es/AvatarVariants.styles.css +25 -25
  119. package/es/AvatarVariants.styles2.css +25 -25
  120. package/es/BadgeVariants.styles.css +14 -14
  121. package/es/BadgeVariants.styles2.css +14 -14
  122. package/es/{BarChart-cbd9c2bf.js → BarChart-c68a559c.js} +4 -4
  123. package/es/{BarChart-cbd9c2bf.js.map → BarChart-c68a559c.js.map} +1 -1
  124. package/es/BaseButton-5a3335d9.js +2 -2
  125. package/es/BaseCardView-e0e8a69b.js +6 -6
  126. package/es/{BaseCardViewSelectionTest-120542e8.js → BaseCardViewSelectionTest-2159b609.js} +6 -6
  127. package/es/{BaseCardViewSelectionTest-120542e8.js.map → BaseCardViewSelectionTest-2159b609.js.map} +1 -1
  128. package/es/BaseNavigationListItem-ac7ef3c3.js +1 -1
  129. package/es/ButtonLayoutVariants.styles.css +2 -2
  130. package/es/ButtonLayoutVariants.styles2.css +2 -2
  131. package/es/ButtonSet-ac76e6e2.js +2 -2
  132. package/es/ButtonSetIconButton-9241b9fb.js +3 -3
  133. package/es/{Center-8b48ab02.js → Center-9f355d44.js} +2 -2
  134. package/es/{Center-8b48ab02.js.map → Center-9f355d44.js.map} +1 -1
  135. package/es/{Chart-8922a0b3.js → Chart-f2438968.js} +11 -11
  136. package/es/{Chart-8922a0b3.js.map → Chart-f2438968.js.map} +1 -1
  137. package/es/CheckboxControl-f5e36d0d.js +6 -6
  138. package/es/CheckboxRadioField-bdda2573.js +6 -6
  139. package/es/Chip-f2df2078.js +1 -1
  140. package/es/ClearIcon-b5083cc8.js +1 -1
  141. package/es/CollapseIcon-de129943.js +1 -1
  142. package/es/Collapsible-09cc493a.js +2 -2
  143. package/es/CompactHelpSource-1686edf6.js +2 -2
  144. package/es/{CompactLabelAssistance-fa8264fa.js → CompactLabelAssistance-61df6dbf.js} +5 -5
  145. package/es/{CompactLabelAssistance-fa8264fa.js.map → CompactLabelAssistance-61df6dbf.js.map} +1 -1
  146. package/es/CompactUserAssistance-3a10afd4.js +4 -4
  147. package/es/ComponentMessageContainer-18e7fe34.js +4 -4
  148. package/es/ConveyorBeltItem-c8d4ba1b.js +2 -2
  149. package/es/ConveyorBeltVariants.styles.css +6 -6
  150. package/es/ConveyorBeltVariants.styles2.css +6 -6
  151. package/es/{DatePicker-4fb6d86d.js → DatePicker-d4e027c2.js} +6 -6
  152. package/es/{DatePicker-4fb6d86d.js.map → DatePicker-d4e027c2.js.map} +1 -1
  153. package/es/DatePickerHeader-79f0b61b.js +3 -3
  154. package/es/{Diagram-6f1ad2ea.js → Diagram-d7fdc75f.js} +5 -5
  155. package/es/{Diagram-6f1ad2ea.js.map → Diagram-d7fdc75f.js.map} +1 -1
  156. package/es/{Dialog-5e92dcd1.js → Dialog-cf69547f.js} +6 -6
  157. package/es/{Dialog-5e92dcd1.js.map → Dialog-cf69547f.js.map} +1 -1
  158. package/es/DirectionalCollapseArrowIcon-20259aab.js +1 -1
  159. package/es/DirectionalExpandArrowIcon-36ba273c.js +1 -1
  160. package/es/DragHandle-3b768189.js +1 -1
  161. package/es/{Dropdown-f45f823c.js → Dropdown-d017dd0a.js} +5 -5
  162. package/es/{Dropdown-f45f823c.js.map → Dropdown-d017dd0a.js.map} +1 -1
  163. package/es/{EnvironmentProvider-0fc2fd0c.js → EnvironmentProvider-a3819bde.js} +3 -3
  164. package/es/{EnvironmentProvider-0fc2fd0c.js.map → EnvironmentProvider-a3819bde.js.map} +1 -1
  165. package/es/FilePicker-f4582615.js +2 -2
  166. package/es/{Flex-8696b27b.js → Flex-2d51e914.js} +2 -2
  167. package/es/{Flex-8696b27b.js.map → Flex-2d51e914.js.map} +1 -1
  168. package/es/{Floating-f9bbd276.js → Floating-aebc0f85.js} +4 -4
  169. package/es/{Floating-f9bbd276.js.map → Floating-aebc0f85.js.map} +1 -1
  170. package/es/FormLayout-221e1aa8.js +1 -1
  171. package/es/Gantt-46f5f954.js +9 -9
  172. package/es/{Grid-7fd29a9e.js → Grid-c2385b22.js} +2 -2
  173. package/es/{Grid-7fd29a9e.js.map → Grid-c2385b22.js.map} +1 -1
  174. package/es/{Gridlines-dcdc34bc.js → Gridlines-0e7b33f5.js} +2 -2
  175. package/es/{Gridlines-dcdc34bc.js.map → Gridlines-0e7b33f5.js.map} +1 -1
  176. package/es/GroupLoadingIndicator-2bfdba44.js +1 -1
  177. package/es/{HighlightText-cc043982.js → HighlightText-d505bf35.js} +2 -2
  178. package/es/{HighlightText-cc043982.js.map → HighlightText-d505bf35.js.map} +1 -1
  179. package/es/Icon-4171c0d7.js +3 -3
  180. package/es/IconButton-451a225c.js +3 -3
  181. package/es/IconMenuButton-e46f8d54.js +4 -4
  182. package/es/IconProgressButton-8f2f6b27.js +3 -3
  183. package/es/IconSwitchButton-5ff7b0fe.js +3 -3
  184. package/es/IconToggleButton-375f006f.js +3 -3
  185. package/es/{IconUserAssistance-dd56b812.js → IconUserAssistance-7cfd1ed2.js} +3 -3
  186. package/es/{IconUserAssistance-dd56b812.js.map → IconUserAssistance-7cfd1ed2.js.map} +1 -1
  187. package/es/Indexer-658cee69.js +4 -4
  188. package/es/InlineHelpSource-fcdcd122.js +1 -1
  189. package/es/InlineUserAssistance-e6deb149.js +5 -5
  190. package/es/InputDateMask-3d511e39.js +7 -7
  191. package/es/InputDatePicker-fe26a952.js +8 -8
  192. package/es/InputPassword-47130b3c.js +4 -4
  193. package/es/InputText-4799b2ed.js +6 -6
  194. package/es/Label-ab276ca9.js +5 -5
  195. package/es/LabelValueLayout-bcf482be.js +1 -1
  196. package/es/{Layer-71fc666f.js → Layer-915d986a.js} +3 -3
  197. package/es/{Layer-71fc666f.js.map → Layer-915d986a.js.map} +1 -1
  198. package/es/{LayerHost-15b42a3e.js → LayerHost-7a2149f5.js} +2 -2
  199. package/es/{LayerHost-15b42a3e.js.map → LayerHost-7a2149f5.js.map} +1 -1
  200. package/es/{LayerManager-af39e736.js → LayerManager-be34be40.js} +2 -2
  201. package/es/{LayerManager-af39e736.js.map → LayerManager-be34be40.js.map} +1 -1
  202. package/es/Legend-ae0296f0.js +3 -3
  203. package/es/{LineAreaChart-cfb9b43d.js → LineAreaChart-e2e762e8.js} +4 -4
  204. package/es/{LineAreaChart-cfb9b43d.js.map → LineAreaChart-e2e762e8.js.map} +1 -1
  205. package/es/Link-9072aa54.js +1 -1
  206. package/es/LinkVariants.styles.css +14 -14
  207. package/es/LinkVariants.styles2.css +14 -14
  208. package/es/List-1d23e84f.js +5 -5
  209. package/es/{ListItemLayout-32895900.js → ListItemLayout-01286b56.js} +2 -2
  210. package/es/{ListItemLayout-32895900.js.map → ListItemLayout-01286b56.js.map} +1 -1
  211. package/es/ListView-8eba90e8.js +3 -3
  212. package/es/{LiveRegion-cb4f8a54.js → LiveRegion-5302331c.js} +2 -2
  213. package/es/{LiveRegion-cb4f8a54.js.map → LiveRegion-5302331c.js.map} +1 -1
  214. package/es/{MaxLengthLiveRegion-59087064.js → MaxLengthLiveRegion-9b386b63.js} +3 -3
  215. package/es/{MaxLengthLiveRegion-59087064.js.map → MaxLengthLiveRegion-9b386b63.js.map} +1 -1
  216. package/es/{Menu-b5deea24.js → Menu-e44a3e0b.js} +8 -8
  217. package/es/{Menu-b5deea24.js.map → Menu-e44a3e0b.js.map} +1 -1
  218. package/es/MenuButton-49b7965d.js +3 -3
  219. package/es/MenuItem-be46866f.js +1 -1
  220. package/es/Message-322f8d63.js +2 -2
  221. package/es/{MessageLayer-34a390eb.js → MessageLayer-f09b0a1b.js} +6 -6
  222. package/es/{MessageLayer-34a390eb.js.map → MessageLayer-f09b0a1b.js.map} +1 -1
  223. package/es/MessageToast-66bdffe6.js +8 -8
  224. package/es/MessagesManager-a1c3e92e.js +3 -3
  225. package/es/MeterBar-9ad34b98.js +5 -5
  226. package/es/MeterBarVariants.styles.css +4 -4
  227. package/es/MeterBarVariants.styles2.css +4 -4
  228. package/es/MeterCircle-6bd257c8.js +5 -5
  229. package/es/{Modal-3fd86d5a.js → Modal-862b8167.js} +3 -3
  230. package/es/{Modal-3fd86d5a.js.map → Modal-862b8167.js.map} +1 -1
  231. package/es/{MonthView-c3b82ace.js → MonthView-3d90f424.js} +4 -4
  232. package/es/{MonthView-c3b82ace.js.map → MonthView-3d90f424.js.map} +1 -1
  233. package/es/NavigationListItem-a336f06f.js +5 -5
  234. package/es/NavigationListItemVariants.styles.css +5 -5
  235. package/es/NavigationListItemVariants.styles2.css +5 -5
  236. package/es/NumberInputText-eca11601.js +6 -6
  237. package/es/OverflowTabBarItem-12249753.js +3 -3
  238. package/es/PRIVATE_BaseCardView.js +20 -20
  239. package/es/PRIVATE_Chart.js +34 -34
  240. package/es/PRIVATE_CheckboxControl.js +22 -22
  241. package/es/PRIVATE_CheckboxRadioField.js +23 -23
  242. package/es/PRIVATE_ClearIcon.js +17 -17
  243. package/es/PRIVATE_DatePickerHeader.js +19 -19
  244. package/es/PRIVATE_DatePickerLayout.js +4 -4
  245. package/es/PRIVATE_EmbeddedIconButton.js +3 -3
  246. package/es/PRIVATE_FormControls.js +19 -19
  247. package/es/PRIVATE_IconSwitchButton.js +15 -15
  248. package/es/PRIVATE_Icons/CheckboxMixed.js +15 -15
  249. package/es/PRIVATE_Icons/CheckboxOff.js +15 -15
  250. package/es/PRIVATE_Icons/CheckboxOn.js +15 -15
  251. package/es/PRIVATE_Icons/RadiobuttonOff.js +15 -15
  252. package/es/PRIVATE_Icons/RadiobuttonOn.js +15 -15
  253. package/es/PRIVATE_Icons/WarningS.js +15 -15
  254. package/es/PRIVATE_List.js +19 -19
  255. package/es/PRIVATE_Message.js +18 -18
  256. package/es/PRIVATE_MessageLayer.js +11 -11
  257. package/es/PRIVATE_MonthView.js +7 -7
  258. package/es/PRIVATE_MonthYearGridView.js +7 -7
  259. package/es/PRIVATE_PlotArea.js +4 -4
  260. package/es/PRIVATE_RevealToggleIcon.js +16 -16
  261. package/es/PRIVATE_SelectCommon.js +28 -28
  262. package/es/PRIVATE_StyledCheckbox.js +15 -15
  263. package/es/PRIVATE_Table.js +18 -18
  264. package/es/PRIVATE_ThemedIcons/CalendarIcon.js +15 -15
  265. package/es/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +15 -15
  266. package/es/PRIVATE_ThemedIcons/ChartPanIcon.js +15 -15
  267. package/es/PRIVATE_ThemedIcons/ChartZoomIcon.js +15 -15
  268. package/es/PRIVATE_ThemedIcons/CheckIcon.js +15 -15
  269. package/es/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +15 -15
  270. package/es/PRIVATE_ThemedIcons/CheckboxOffIcon.js +15 -15
  271. package/es/PRIVATE_ThemedIcons/CheckboxOnIcon.js +15 -15
  272. package/es/PRIVATE_ThemedIcons/CloseIcon.js +15 -15
  273. package/es/PRIVATE_ThemedIcons/CollapseIcon.js +16 -16
  274. package/es/PRIVATE_ThemedIcons/CollapseUpIcon.js +15 -15
  275. package/es/PRIVATE_ThemedIcons/DecrementIcon.js +15 -15
  276. package/es/PRIVATE_ThemedIcons/DeleteIcon.js +15 -15
  277. package/es/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +16 -16
  278. package/es/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +16 -16
  279. package/es/PRIVATE_ThemedIcons/DropdownArrowIcon.js +15 -15
  280. package/es/PRIVATE_ThemedIcons/ExpandIcon.js +15 -15
  281. package/es/PRIVATE_ThemedIcons/HelpIcon.js +15 -15
  282. package/es/PRIVATE_ThemedIcons/IncrementIcon.js +15 -15
  283. package/es/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +15 -15
  284. package/es/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +15 -15
  285. package/es/PRIVATE_ThemedIcons/MessageErrorIcon.js +15 -15
  286. package/es/PRIVATE_ThemedIcons/MessageInfoIcon.js +15 -15
  287. package/es/PRIVATE_ThemedIcons/MessageWarningIcon.js +15 -15
  288. package/es/PRIVATE_ThemedIcons/MinusIcon.js +15 -15
  289. package/es/PRIVATE_ThemedIcons/NavDownIcon.js +15 -15
  290. package/es/PRIVATE_ThemedIcons/PlusIcon.js +15 -15
  291. package/es/PRIVATE_ThemedIcons/RadioOffIcon.js +15 -15
  292. package/es/PRIVATE_ThemedIcons/RadioOnIcon.js +15 -15
  293. package/es/PRIVATE_ThemedIcons/SortAscendingIcon.js +15 -15
  294. package/es/PRIVATE_ThemedIcons/SortDefaultIcon.js +15 -15
  295. package/es/PRIVATE_ThemedIcons/SortDescendingIcon.js +15 -15
  296. package/es/PRIVATE_ThemedIcons/ViewHideIcon.js +15 -15
  297. package/es/PRIVATE_ThemedIcons/ViewIcon.js +15 -15
  298. package/es/PRIVATE_TimeComponent.js +18 -18
  299. package/es/PRIVATE_VisTabularDatatip.js +4 -4
  300. package/es/PictoChart-3dd90503.js +6 -6
  301. package/es/{PieChart-cdb56906.js → PieChart-d4f63bd8.js} +5 -5
  302. package/es/{PieChart-cdb56906.js.map → PieChart-d4f63bd8.js.map} +1 -1
  303. package/es/{Popup-8becd87a.js → Popup-7cc4028b.js} +9 -9
  304. package/es/{Popup-8becd87a.js.map → Popup-7cc4028b.js.map} +1 -1
  305. package/es/{ProgressBar-2565d814.js → ProgressBar-d647bba4.js} +3 -3
  306. package/es/{ProgressBar-2565d814.js.map → ProgressBar-d647bba4.js.map} +1 -1
  307. package/es/ProgressButton-645ce827.js +3 -3
  308. package/es/ProgressButtonLabelLayout-6cf150e0.js +3 -3
  309. package/es/{ProgressCircle-c7f945c0.js → ProgressCircle-13dc0e4f.js} +2 -2
  310. package/es/{ProgressCircle-c7f945c0.js.map → ProgressCircle-13dc0e4f.js.map} +1 -1
  311. package/es/ProgressCircleVariants.styles.css +4 -4
  312. package/es/ProgressCircleVariants.styles2.css +4 -4
  313. package/es/RadioItem-af1bbece.js +6 -6
  314. package/es/RatingGauge-82a6a416.js +7 -7
  315. package/es/RatingGaugeVariants.styles.css +15 -15
  316. package/es/RatingGaugeVariants.styles2.css +15 -15
  317. package/es/ReadonlyTextFieldInput-a15badb6.js +1 -1
  318. package/es/RemovableNavigationListItem-7032ce3e.js +1 -1
  319. package/es/RemovableTabBarItem-16d04210.js +2 -2
  320. package/es/ReorderableTabBar-981af0f2.js +2 -2
  321. package/es/RevealToggleIcon-563c241c.js +1 -1
  322. package/es/SectionalLegend-a9b719ff.js +4 -4
  323. package/es/{SectionedContent-237bf539.js → SectionedContent-7e36073f.js} +5 -5
  324. package/es/{SectionedContent-237bf539.js.map → SectionedContent-7e36073f.js.map} +1 -1
  325. package/es/SelectMultiple-c1264885.js +8 -8
  326. package/es/SelectSingle-8336ec24.js +7 -7
  327. package/es/{SelectionCard-1711aae6.js → SelectionCard-a27bce15.js} +2 -2
  328. package/es/{SelectionCard-1711aae6.js.map → SelectionCard-a27bce15.js.map} +1 -1
  329. package/es/Selector-9f40e909.js +1 -1
  330. package/es/{SelectorAll-42ce8707.js → SelectorAll-40c76f0b.js} +7 -7
  331. package/es/{SelectorAll-42ce8707.js.map → SelectorAll-40c76f0b.js.map} +1 -1
  332. package/es/{Sheet-f7117b12.js → Sheet-34f3bcb4.js} +3 -3
  333. package/es/{Sheet-f7117b12.js.map → Sheet-34f3bcb4.js.map} +1 -1
  334. package/es/SplitMenuButton-74913bcc.js +3 -3
  335. package/es/SplitMenuButtonTheme.styles.css +4 -4
  336. package/es/SplitMenuButtonTheme.styles2.css +4 -4
  337. package/es/StyledTextField-9df27ab4.js +3 -3
  338. package/es/Submenu-c6663c1d.js +1 -1
  339. package/es/TabBar-90cea652.js +6 -6
  340. package/es/TabBarItem-ba695c75.js +3 -3
  341. package/es/TabBarLayout-8caaa060.js +1 -1
  342. package/es/TabBarMixed-52ac388e.js +6 -6
  343. package/es/{TabBarMixedSeparator-da56f4c0.js → TabBarMixedSeparator-16c88691.js} +2 -2
  344. package/es/{TabBarMixedSeparator-da56f4c0.js.map → TabBarMixedSeparator-16c88691.js.map} +1 -1
  345. package/es/Table-3d484e2c.js +8 -8
  346. package/es/TagCloud-823b3d82.js +9 -9
  347. package/es/TextArea-6f18b955.js +5 -5
  348. package/es/TextAreaAutosize-4cf2754b.js +5 -5
  349. package/es/TextField-d4b4661d.js +3 -3
  350. package/es/TextFieldInput-84280715.js +1 -1
  351. package/es/Theme-redwood/theme.css +515 -515
  352. package/es/Theme-stable/theme.css +881 -881
  353. package/es/TimeComponentCanvas2D-72f4af98.js +5 -5
  354. package/es/Toolbar-85379f64.js +1 -1
  355. package/es/TrainVariants.styles.css +6 -6
  356. package/es/TrainVariants.styles2.css +6 -6
  357. package/es/{TruncatingBadge-7eb77ed3.js → TruncatingBadge-e5f38bc8.js} +4 -4
  358. package/es/{TruncatingBadge-7eb77ed3.js.map → TruncatingBadge-e5f38bc8.js.map} +1 -1
  359. package/es/{TruncatingText-93807530.js → TruncatingText-c3719839.js} +4 -4
  360. package/es/{TruncatingText-93807530.js.map → TruncatingText-c3719839.js.map} +1 -1
  361. package/es/UNSAFE_ActionCard.js +2 -2
  362. package/es/UNSAFE_Avatar/themes/redwood/AvatarTheme.js +1 -1
  363. package/es/UNSAFE_Avatar/themes/redwood/AvatarVariants.css.js +1 -1
  364. package/es/UNSAFE_Avatar/themes/stable/AvatarTheme.js +1 -1
  365. package/es/UNSAFE_Avatar/themes/stable/AvatarVariants.css.js +1 -1
  366. package/es/UNSAFE_Avatar.js +1 -1
  367. package/es/UNSAFE_Badge/themes/redwood/BadgeTheme.js +1 -1
  368. package/es/UNSAFE_Badge/themes/redwood/BadgeVariants.css.js +1 -1
  369. package/es/UNSAFE_Badge/themes/stable/BadgeTheme.js +1 -1
  370. package/es/UNSAFE_Badge/themes/stable/BadgeVariants.css.js +1 -1
  371. package/es/UNSAFE_Badge.js +1 -1
  372. package/es/UNSAFE_BarChart/__test__/BarChart.spec.js +35 -35
  373. package/es/UNSAFE_BarChart.js +35 -35
  374. package/es/UNSAFE_BaseButton.js +3 -3
  375. package/es/UNSAFE_Button.js +3 -3
  376. package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +21 -21
  377. package/es/UNSAFE_ButtonLayout/themes/redwood/ButtonLayoutTheme.js +1 -1
  378. package/es/UNSAFE_ButtonLayout/themes/redwood/ButtonLayoutVariants.css.js +1 -1
  379. package/es/UNSAFE_ButtonLayout/themes/stable/ButtonLayoutTheme.js +1 -1
  380. package/es/UNSAFE_ButtonLayout/themes/stable/ButtonLayoutVariants.css.js +1 -1
  381. package/es/UNSAFE_ButtonLayout.js +1 -1
  382. package/es/UNSAFE_ButtonSet.js +4 -4
  383. package/es/UNSAFE_ButtonSetButton.js +3 -3
  384. package/es/UNSAFE_ButtonSetIconButton.js +15 -15
  385. package/es/UNSAFE_ButtonSetItem.js +15 -15
  386. package/es/UNSAFE_ButtonSetMultiple.js +4 -4
  387. package/es/UNSAFE_ButtonSetSingle.js +4 -4
  388. package/es/UNSAFE_CardFlexView.js +20 -20
  389. package/es/UNSAFE_CardGridView.js +20 -20
  390. package/es/UNSAFE_Center.js +5 -5
  391. package/es/UNSAFE_ChartWithLegend.js +4 -4
  392. package/es/UNSAFE_Checkbox.js +22 -22
  393. package/es/UNSAFE_CheckboxItem.js +23 -23
  394. package/es/UNSAFE_CheckboxSet.js +22 -22
  395. package/es/UNSAFE_Chip.js +2 -2
  396. package/es/UNSAFE_Collapsible.js +17 -17
  397. package/es/UNSAFE_ComponentMessage.js +18 -18
  398. package/es/UNSAFE_ConveyorBelt/themes/redwood/ConveyorBeltTheme.js +1 -1
  399. package/es/UNSAFE_ConveyorBelt/themes/redwood/ConveyorBeltVariants.css.js +1 -1
  400. package/es/UNSAFE_ConveyorBelt/themes/stable/ConveyorBeltTheme.js +1 -1
  401. package/es/UNSAFE_ConveyorBelt/themes/stable/ConveyorBeltVariants.css.js +1 -1
  402. package/es/UNSAFE_ConveyorBelt.js +16 -16
  403. package/es/UNSAFE_DatePicker.js +24 -24
  404. package/es/UNSAFE_Diagram.js +15 -15
  405. package/es/UNSAFE_Dialog.js +11 -11
  406. package/es/UNSAFE_DragHandle.js +16 -16
  407. package/es/UNSAFE_DrawerLayout.js +11 -11
  408. package/es/UNSAFE_DrawerPopup.js +10 -10
  409. package/es/UNSAFE_Dropdown.js +12 -12
  410. package/es/UNSAFE_Environment.js +4 -4
  411. package/es/UNSAFE_ExpandableList.js +22 -22
  412. package/es/UNSAFE_FilePicker.js +4 -4
  413. package/es/UNSAFE_Flex.js +4 -4
  414. package/es/UNSAFE_Floating.js +10 -10
  415. package/es/UNSAFE_FormLayout.js +2 -2
  416. package/es/UNSAFE_Gantt.js +22 -22
  417. package/es/UNSAFE_Grid.js +4 -4
  418. package/es/UNSAFE_HighlightText.js +4 -4
  419. package/es/UNSAFE_Icon.js +15 -15
  420. package/es/UNSAFE_IconButton.js +15 -15
  421. package/es/UNSAFE_IconMenuButton.js +19 -19
  422. package/es/UNSAFE_IconProgressButton.js +20 -20
  423. package/es/UNSAFE_IconToggleButton.js +15 -15
  424. package/es/UNSAFE_Indexer.js +6 -6
  425. package/es/UNSAFE_InputDateMask.js +23 -23
  426. package/es/UNSAFE_InputDatePicker.js +32 -32
  427. package/es/UNSAFE_InputPassword.js +22 -22
  428. package/es/UNSAFE_InputSensitiveText.js +24 -24
  429. package/es/UNSAFE_InputText.js +25 -25
  430. package/es/UNSAFE_Label.js +22 -22
  431. package/es/UNSAFE_LabelValueLayout.js +4 -4
  432. package/es/UNSAFE_LabelledLink.js +25 -25
  433. package/es/UNSAFE_Layer.js +7 -7
  434. package/es/UNSAFE_Legend.js +22 -22
  435. package/es/UNSAFE_LineAreaChart/__test__/LineChart.spec.js +34 -34
  436. package/es/UNSAFE_LineAreaChart.js +35 -35
  437. package/es/UNSAFE_Link/themes/redwood/LinkTheme.js +1 -1
  438. package/es/UNSAFE_Link/themes/redwood/LinkVariants.css.js +1 -1
  439. package/es/UNSAFE_Link/themes/stable/LinkTheme.js +1 -1
  440. package/es/UNSAFE_Link/themes/stable/LinkVariants.css.js +1 -1
  441. package/es/UNSAFE_Link.js +3 -3
  442. package/es/UNSAFE_ListItemLayout.js +5 -5
  443. package/es/UNSAFE_ListView.js +25 -25
  444. package/es/UNSAFE_LiveRegion.js +4 -4
  445. package/es/UNSAFE_Menu.js +21 -21
  446. package/es/UNSAFE_MenuButton.js +19 -19
  447. package/es/UNSAFE_MessageBanner.js +18 -18
  448. package/es/UNSAFE_MessageToast.js +21 -21
  449. package/es/UNSAFE_MeterBar/themes/redwood/MeterBarTheme.js +1 -1
  450. package/es/UNSAFE_MeterBar/themes/redwood/MeterBarVariants.css.js +1 -1
  451. package/es/UNSAFE_MeterBar/themes/stable/MeterBarTheme.js +1 -1
  452. package/es/UNSAFE_MeterBar/themes/stable/MeterBarVariants.css.js +1 -1
  453. package/es/UNSAFE_MeterBar.js +17 -17
  454. package/es/UNSAFE_MeterCircle.js +16 -16
  455. package/es/UNSAFE_Modal.js +7 -7
  456. package/es/UNSAFE_NavigationList/themes/redwood/NavigationListItemVariants.css.js +1 -1
  457. package/es/UNSAFE_NavigationList/themes/stable/NavigationListItemTheme.js +1 -1
  458. package/es/UNSAFE_NavigationList/themes/stable/NavigationListItemVariants.css.js +1 -1
  459. package/es/UNSAFE_NavigationList.js +21 -21
  460. package/es/UNSAFE_NavigationListCommon/themes/redwood/NavigationListItemTheme.js +1 -1
  461. package/es/UNSAFE_NavigationListCommon.js +19 -19
  462. package/es/UNSAFE_NumberInputText.js +24 -24
  463. package/es/UNSAFE_OverflowTabBar.js +26 -26
  464. package/es/UNSAFE_PictoChart.js +13 -13
  465. package/es/UNSAFE_PieChart/__test__/PieChart.spec.js +14 -14
  466. package/es/UNSAFE_PieChart.js +14 -14
  467. package/es/UNSAFE_Popup.js +15 -15
  468. package/es/UNSAFE_ProgressBar.js +5 -5
  469. package/es/UNSAFE_ProgressButton.js +20 -20
  470. package/es/UNSAFE_ProgressButtonLabelLayout.js +11 -11
  471. package/es/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleTheme.js +1 -1
  472. package/es/UNSAFE_ProgressCircle/themes/redwood/ProgressCircleVariants.css.js +1 -1
  473. package/es/UNSAFE_ProgressCircle/themes/stable/ProgressCircleTheme.js +1 -1
  474. package/es/UNSAFE_ProgressCircle/themes/stable/ProgressCircleVariants.css.js +1 -1
  475. package/es/UNSAFE_ProgressCircle.js +5 -5
  476. package/es/UNSAFE_RadioItem.js +22 -22
  477. package/es/UNSAFE_RadioSet.js +22 -22
  478. package/es/UNSAFE_RatingGauge/themes/redwood/RatingGaugeTheme.js +1 -1
  479. package/es/UNSAFE_RatingGauge/themes/redwood/RatingGaugeVariants.css.js +1 -1
  480. package/es/UNSAFE_RatingGauge/themes/stable/RatingGaugeTheme.js +1 -1
  481. package/es/UNSAFE_RatingGauge/themes/stable/RatingGaugeVariants.css.js +1 -1
  482. package/es/UNSAFE_RatingGauge.js +17 -17
  483. package/es/UNSAFE_ReorderableTabBar.js +21 -21
  484. package/es/UNSAFE_SectionalLegend.js +23 -23
  485. package/es/UNSAFE_SelectMultiple.js +31 -31
  486. package/es/UNSAFE_SelectSingle.js +31 -31
  487. package/es/UNSAFE_SelectionCard.js +4 -4
  488. package/es/UNSAFE_Selector.js +15 -15
  489. package/es/UNSAFE_SelectorAll.js +19 -19
  490. package/es/UNSAFE_Sheet/__test__/Sheet.spec.js +13 -13
  491. package/es/UNSAFE_Sheet.js +10 -10
  492. package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
  493. package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
  494. package/es/UNSAFE_SplitMenuButton.js +20 -20
  495. package/es/UNSAFE_TabBar.js +27 -27
  496. package/es/UNSAFE_TabBarCommon.js +26 -26
  497. package/es/UNSAFE_TabBarMixed.js +30 -30
  498. package/es/UNSAFE_TableView.js +18 -18
  499. package/es/UNSAFE_TagCloud.js +22 -22
  500. package/es/UNSAFE_TextArea.js +24 -24
  501. package/es/UNSAFE_TextAreaAutosize.js +24 -24
  502. package/es/UNSAFE_TextField.js +7 -7
  503. package/es/UNSAFE_ToggleButton.js +3 -3
  504. package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +23 -23
  505. package/es/UNSAFE_Toolbar.js +5 -5
  506. package/es/UNSAFE_Train/themes/redwood/TrainTheme.js +1 -1
  507. package/es/UNSAFE_Train/themes/redwood/TrainVariants.css.js +1 -1
  508. package/es/UNSAFE_Train/themes/stable/TrainTheme.js +1 -1
  509. package/es/UNSAFE_Train/themes/stable/TrainVariants.css.js +1 -1
  510. package/es/UNSAFE_Train.js +17 -17
  511. package/es/UNSAFE_TruncatingBadge.js +18 -18
  512. package/es/UNSAFE_TruncatingText.js +17 -17
  513. package/es/UNSAFE_UserAssistance.js +23 -23
  514. package/es/UNSAFE_View.js +7 -7
  515. package/es/UNSAFE_VirtualizedListView.js +19 -19
  516. package/es/UNSAFE_VisProgressiveLoader/__test__/VisProgressiveLoader.spec.js +8 -8
  517. package/es/UNSAFE_VisProgressiveLoader.js +6 -6
  518. package/es/UNSAFE_VisStatusMessage.js +6 -6
  519. package/es/UNSAFE_WindowOverlay.js +4 -4
  520. package/es/{View-63980a9b.js → View-a8a64eb1.js} +5 -5
  521. package/es/{View-63980a9b.js.map → View-a8a64eb1.js.map} +1 -1
  522. package/es/{VisNoData-da540cbd.js → VisNoData-673b58e9.js} +3 -3
  523. package/es/{VisNoData-da540cbd.js.map → VisNoData-673b58e9.js.map} +1 -1
  524. package/es/{VisProgressiveLoader-2b2103c8.js → VisProgressiveLoader-66dde1ff.js} +3 -3
  525. package/es/{VisProgressiveLoader-2b2103c8.js.map → VisProgressiveLoader-66dde1ff.js.map} +1 -1
  526. package/es/{VisTabularDatatip-2ae7ee48.js → VisTabularDatatip-6aa607bb.js} +2 -2
  527. package/es/{VisTabularDatatip-2ae7ee48.js.map → VisTabularDatatip-6aa607bb.js.map} +1 -1
  528. package/es/{WindowOverlay-9b43e658.js → WindowOverlay-de5d0819.js} +2 -2
  529. package/es/{WindowOverlay-9b43e658.js.map → WindowOverlay-de5d0819.js.map} +1 -1
  530. package/es/{YearsGridView-37dfce0c.js → YearsGridView-5b5c1746.js} +4 -4
  531. package/es/{YearsGridView-37dfce0c.js.map → YearsGridView-5b5c1746.js.map} +1 -1
  532. package/es/hoc/PRIVATE_withDirectionIcon.js +4 -4
  533. package/es/hoc/PRIVATE_withThemeIcon.js +3 -3
  534. package/es/hoc/UNSAFE_withThemeProps.js +3 -3
  535. package/es/hooks/PRIVATE_useChartContextMenu.js +18 -18
  536. package/es/hooks/PRIVATE_useChartDatatip.js +13 -13
  537. package/es/hooks/PRIVATE_useChartEvents.js +17 -17
  538. package/es/hooks/PRIVATE_useChartMarquee.js +17 -17
  539. package/es/hooks/PRIVATE_useCssVars.js +7 -7
  540. package/es/hooks/PRIVATE_useCurrentKey.js +4 -4
  541. package/es/hooks/PRIVATE_useDatatip.js +11 -11
  542. package/es/hooks/PRIVATE_useFloating.js +4 -4
  543. package/es/hooks/PRIVATE_useReorderable.js +4 -4
  544. package/es/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
  545. package/es/hooks/PRIVATE_useSelection.js +4 -4
  546. package/es/hooks/PRIVATE_useTabBar.js +5 -5
  547. package/es/hooks/PRIVATE_useVisContextMenu.js +18 -18
  548. package/es/hooks/PRIVATE_useVisEvents.js +4 -4
  549. package/es/hooks/PRIVATE_useVisMeterEvents.js +13 -13
  550. package/es/hooks/PRIVATE_useVisSelection.js +12 -12
  551. package/es/hooks/UNSAFE_useColorScheme.js +3 -3
  552. package/es/hooks/UNSAFE_useCurrentBgColor.js +3 -3
  553. package/es/hooks/UNSAFE_useDensity.js +3 -3
  554. package/es/hooks/UNSAFE_useOutsideClick.js +7 -7
  555. package/es/hooks/UNSAFE_usePrefixSuffix.js +4 -4
  556. package/es/hooks/UNSAFE_useScale.js +3 -3
  557. package/es/hooks/UNSAFE_useTestId.js +3 -3
  558. package/es/hooks/UNSAFE_useTheme.js +3 -3
  559. package/es/hooks/UNSAFE_useThemeInterpolations.js +5 -5
  560. package/es/hooks/UNSAFE_useTooltip.js +16 -16
  561. package/es/hooks/UNSAFE_useTranslationBundle.js +3 -3
  562. package/es/hooks/UNSAFE_useUser.js +3 -3
  563. package/es/{index-e65c9009.js → index-fee93bf9.js} +2 -2
  564. package/es/index-fee93bf9.js.map +1 -0
  565. package/es/listViewSelectionTests-0dfdcc5d.js +4 -4
  566. package/es/{render-ff141a3d.js → render-d92a7051.js} +3 -3
  567. package/es/{render-ff141a3d.js.map → render-d92a7051.js.map} +1 -1
  568. package/es/{tabbableUtils-375a33ee.js → tabbableUtils-1b4c2eea.js} +3 -3
  569. package/es/{tabbableUtils-375a33ee.js.map → tabbableUtils-1b4c2eea.js.map} +1 -1
  570. package/es/{testData-748c19ef.js → testData-ca9503e6.js} +3 -3
  571. package/es/{testData-748c19ef.js.map → testData-ca9503e6.js.map} +1 -1
  572. package/es/{tooltipUtils-1131b3ca.js → tooltipUtils-06c93436.js} +5 -5
  573. package/es/{tooltipUtils-1131b3ca.js.map → tooltipUtils-06c93436.js.map} +1 -1
  574. package/es/useCellNavigation-00d575ca.js +1 -1
  575. package/es/useChartContextMenu-8c49f584.js +3 -3
  576. package/es/{useChartDatatip-25f6bc69.js → useChartDatatip-82dba484.js} +4 -4
  577. package/es/{useChartDatatip-25f6bc69.js.map → useChartDatatip-82dba484.js.map} +1 -1
  578. package/es/useChartMarquee-08025a83.js +1 -1
  579. package/es/{useColorScheme-d8a80e2b.js → useColorScheme-f69d53b5.js} +2 -2
  580. package/es/{useColorScheme-d8a80e2b.js.map → useColorScheme-f69d53b5.js.map} +1 -1
  581. package/es/useContextMenu-12845847.js +3 -3
  582. package/es/{useCssVars-8e6932f8.js → useCssVars-48595cd2.js} +5 -5
  583. package/es/{useCssVars-8e6932f8.js.map → useCssVars-48595cd2.js.map} +1 -1
  584. package/es/{useCurrentBgColor-5418492b.js → useCurrentBgColor-894d059b.js} +2 -2
  585. package/es/{useCurrentBgColor-5418492b.js.map → useCurrentBgColor-894d059b.js.map} +1 -1
  586. package/es/{useCurrentKey-76e7d7b1.js → useCurrentKey-55123e83.js} +2 -2
  587. package/es/{useCurrentKey-76e7d7b1.js.map → useCurrentKey-55123e83.js.map} +1 -1
  588. package/es/{useDatatip-73566627.js → useDatatip-01d7ddeb.js} +4 -4
  589. package/es/{useDatatip-73566627.js.map → useDatatip-01d7ddeb.js.map} +1 -1
  590. package/es/{useDensity-64ecb649.js → useDensity-04a01caf.js} +2 -2
  591. package/es/{useDensity-64ecb649.js.map → useDensity-04a01caf.js.map} +1 -1
  592. package/es/{useFloating-d60cc8b4.js → useFloating-c9278755.js} +2 -2
  593. package/es/{useFloating-d60cc8b4.js.map → useFloating-c9278755.js.map} +1 -1
  594. package/es/{useKeyboardEvents-5c311766.js → useKeyboardEvents-b02e5fda.js} +2 -2
  595. package/es/{useKeyboardEvents-5c311766.js.map → useKeyboardEvents-b02e5fda.js.map} +1 -1
  596. package/es/useLegendContextMenu-926aca66.js +5 -5
  597. package/es/{useMeterDatatip-2cedbd5c.js → useMeterDatatip-43e31c05.js} +3 -3
  598. package/es/{useMeterDatatip-2cedbd5c.js.map → useMeterDatatip-43e31c05.js.map} +1 -1
  599. package/es/{useOutsideClick-725542a2.js → useOutsideClick-388c62bd.js} +2 -2
  600. package/es/{useOutsideClick-725542a2.js.map → useOutsideClick-388c62bd.js.map} +1 -1
  601. package/es/{usePopupAnimation-340f04b6.js → usePopupAnimation-b4577940.js} +2 -2
  602. package/es/{usePopupAnimation-340f04b6.js.map → usePopupAnimation-b4577940.js.map} +1 -1
  603. package/es/{usePrefixSuffix-435a9c59.js → usePrefixSuffix-995d4cda.js} +2 -2
  604. package/es/{usePrefixSuffix-435a9c59.js.map → usePrefixSuffix-995d4cda.js.map} +1 -1
  605. package/es/useReorderableItem-c715c504.js +2 -2
  606. package/es/{useRovingTabIndexContainer-b9833086.js → useRovingTabIndexContainer-097f96a6.js} +2 -2
  607. package/es/{useRovingTabIndexContainer-b9833086.js.map → useRovingTabIndexContainer-097f96a6.js.map} +1 -1
  608. package/es/{useScale-c86ecc6e.js → useScale-3b323ab2.js} +2 -2
  609. package/es/{useScale-c86ecc6e.js.map → useScale-3b323ab2.js.map} +1 -1
  610. package/es/useSelectCommon-7ebc86eb.js +11 -11
  611. package/es/{useSelectDrill-fbe57d95.js → useSelectDrill-8b53d932.js} +3 -3
  612. package/es/{useSelectDrill-fbe57d95.js.map → useSelectDrill-8b53d932.js.map} +1 -1
  613. package/es/{useSelection-1e1e89df.js → useSelection-7c94a24f.js} +2 -2
  614. package/es/{useSelection-1e1e89df.js.map → useSelection-7c94a24f.js.map} +1 -1
  615. package/es/{useSelection-dfbd140d.js → useSelection-b7c3e75e.js} +5 -5
  616. package/es/{useSelection-dfbd140d.js.map → useSelection-b7c3e75e.js.map} +1 -1
  617. package/es/{useTabBar-b826570d.js → useTabBar-6c6847ef.js} +2 -2
  618. package/es/{useTabBar-b826570d.js.map → useTabBar-6c6847ef.js.map} +1 -1
  619. package/es/{useTestId-3bc3958c.js → useTestId-af32a9eb.js} +2 -2
  620. package/es/{useTestId-3bc3958c.js.map → useTestId-af32a9eb.js.map} +1 -1
  621. package/es/{useTheme-4b0f211c.js → useTheme-73aca0e4.js} +2 -2
  622. package/es/{useTheme-4b0f211c.js.map → useTheme-73aca0e4.js.map} +1 -1
  623. package/es/{useThemeInterpolations-41ac870d.js → useThemeInterpolations-4f6cc83c.js} +4 -4
  624. package/es/{useThemeInterpolations-41ac870d.js.map → useThemeInterpolations-4f6cc83c.js.map} +1 -1
  625. package/es/{useTooltip-227887ea.js → useTooltip-e258ea41.js} +2 -2
  626. package/es/{useTooltip-227887ea.js.map → useTooltip-e258ea41.js.map} +1 -1
  627. package/es/{useTooltipControlled-7ccb5919.js → useTooltipControlled-50d5dac9.js} +5 -5
  628. package/es/{useTooltipControlled-7ccb5919.js.map → useTooltipControlled-50d5dac9.js.map} +1 -1
  629. package/es/{useTranslationBundle-98df6291.js → useTranslationBundle-6da03e52.js} +2 -2
  630. package/es/{useTranslationBundle-98df6291.js.map → useTranslationBundle-6da03e52.js.map} +1 -1
  631. package/es/{useUser-a15426fc.js → useUser-bca8cf2d.js} +2 -2
  632. package/es/{useUser-a15426fc.js.map → useUser-bca8cf2d.js.map} +1 -1
  633. package/es/{useVisEvents-ff4204b5.js → useVisEvents-cd3616aa.js} +2 -2
  634. package/es/{useVisEvents-ff4204b5.js.map → useVisEvents-cd3616aa.js.map} +1 -1
  635. package/es/utils/PRIVATE_tooltipUtils.js +13 -13
  636. package/es/utils/PRIVATE_visTestUtils.js +6 -6
  637. package/es/{withDirectionIcon-90d7c798.js → withDirectionIcon-389870a2.js} +2 -2
  638. package/es/{withDirectionIcon-90d7c798.js.map → withDirectionIcon-389870a2.js.map} +1 -1
  639. package/es/withThemeProps-6545df54.js +2 -2
  640. package/package.json +2 -2
  641. package/amd/CardFlexView-9688d264.js +0 -2
  642. package/amd/InputDatePicker-6167ff45.js +0 -2
  643. package/amd/List-3ebac3fc.js +0 -2
  644. package/amd/LoadMoreCollection-a6adbc3f.js +0 -2
  645. package/amd/TextArea-916c5bb1.js +0 -2
  646. package/amd/TextArea-916c5bb1.js.map +0 -1
  647. package/amd/TextAreaAutosize-1f47b470.js +0 -2
  648. package/amd/VirtualizedListView-cf795207.js +0 -2
  649. package/es/index-e65c9009.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCardView-b5471a69.js","sources":["../../src/PRIVATE_BaseCardView/BaseCardViewReorderableItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewLayout.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeletonContainer.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeleton.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewUtils.ts","../../src/PRIVATE_BaseCardView/useCardViewReorder.ts","../../src/PRIVATE_BaseCardView/BaseCardView.tsx"],"sourcesContent":["import { useRef, useCallback } from 'preact/hooks';\nimport { useReorderableItem } from '../hooks/PRIVATE_useReorderable';\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { ITEM_SELECTOR } from '../utils/PRIVATE_collectionUtils';\nimport { ListItemRendererContext } from '../UNSAFE_Collection';\nimport { ReorderableItemProps } from '../UNSAFE_Collection/Reorderable.types';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport { GutterSize } from './BaseCardViewUtils';\n\nexport type BaseCardViewReorderableItemProps<K> = ReorderableItemProps<K> & {\n currentKey: K | undefined;\n gutterSize: GutterSize;\n columns: number;\n};\n\n/**\n * The internal component used to render a reorderable item in CardView.\n */\nexport function BaseCardViewReorderableItem<K extends string | number, D>({\n currentKey,\n children,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns,\n context\n}: BaseCardViewReorderableItemProps<K> & { context: ListItemRendererContext<K, D> }) {\n const itemRef = useRef<HTMLDivElement | null>(null);\n const isOneColumn = columns === 1;\n const isFirstColumn = context.index % columns === 0;\n const isLastColumn = context.index % columns === columns - 1;\n const variantClasses = multiVariantStyles({\n itemOverlayFront: gutterSize\n });\n const variantClassesVertical = multiVariantStyles({\n itemOverlayFrontVertical: gutterSize\n });\n const itemStyles = {\n itemOverlayFront: isOneColumn ? variantClassesVertical : variantClasses,\n itemOverlayRear: isOneColumn ? styles.itemOverlayRearVertical : styles.itemOverlayRear,\n itemDragger: styles.itemDragger\n };\n const getItem = useCallback(() => itemRef?.current?.closest(ITEM_SELECTOR) as HTMLElement, []);\n const setTransferData = useCallback(\n (event: DragEvent) => {\n event.dataTransfer?.setData('text/cardview-items-key', JSON.stringify(context.metadata.key));\n },\n [context.metadata.key]\n );\n const { rootProps, isDragged, overlayZoneBeforeProps, overlayZoneAfterProps } =\n useReorderableItem({\n currentKey,\n isDisabled: onReorder ? false : true,\n draggable: onReorder ? true : false,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n ref: itemRef,\n getItem,\n setTransferData,\n itemStyles,\n itemSelector: ITEM_SELECTOR,\n isVertical: isOneColumn\n });\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const overlayZoneBeforeClass = classNames([\n overlayZoneBeforeProps?.class,\n !isOneColumn && !isRtl && isFirstColumn && styles.itemOverlayFrontEdge,\n !isOneColumn && isRtl && isLastColumn && styles.itemOverlayFrontEdge\n ]);\n\n const overlayZoneAfterClass = classNames([\n overlayZoneAfterProps?.class,\n !isOneColumn && !isRtl && isLastColumn && styles.itemOverlayRearEdge,\n !isOneColumn && isRtl && isFirstColumn && styles.itemOverlayRearEdge\n ]);\n\n return (\n <div {...rootProps} draggable={false}>\n {children}\n {!isDragged && dragKey && (\n <>\n <div {...overlayZoneBeforeProps} class={overlayZoneBeforeClass}></div>\n <div {...overlayZoneAfterProps} class={overlayZoneAfterClass}></div>\n </>\n )}\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 */\nimport { ComponentChildren } from 'preact';\nimport { memo } from 'preact/compat';\nimport {\n useRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useEffect,\n StateUpdater,\n Dispatch,\n MutableRef\n} from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeRefs } from '../utils/PRIVATE_refUtils';\nimport { warn } from '../utils/UNSAFE_logger';\nimport { allTabbableElements } from '../utils/PRIVATE_tabbableUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { useAnimation, UseAnimationConfig } from '../hooks/UNSAFE_useAnimation';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { SelectionMode, ListItemRendererContext } from '../UNSAFE_Collection';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport { compareListItemContext } from '../utils/PRIVATE_collectionUtils';\nimport {\n BaseCardViewReorderableItem,\n BaseCardViewReorderableItemProps\n} from './BaseCardViewReorderableItem';\n\n/**\n * Props for the BaseCardViewItem Component\n */\nexport type Props<K, D> = {\n children: (context: ListItemRendererContext<K, D>) => ComponentChildren;\n context: ListItemRendererContext<K, D>;\n isTabbable: boolean;\n isFocused: boolean;\n isFocusRingVisible: boolean;\n isSelected: boolean;\n selectionMode: SelectionMode;\n focusBehavior: 'card' | 'content';\n setIsFocusBehaviorValid?: Dispatch<StateUpdater<boolean>>;\n initialAnimation?: 'slideUp' | 'slideDown';\n isGridLayout?: boolean;\n updateCardSize?: (width: number, height: number) => void;\n} & {\n reorderItemProps?: Omit<BaseCardViewReorderableItemProps<K>, 'children'>;\n};\n\n/**\n * The internal component used to render a single item in CardView.\n */\nexport function BaseCardViewItem<K extends string | number, D>({\n children,\n context,\n isTabbable,\n isFocused,\n isFocusRingVisible,\n isSelected,\n selectionMode,\n focusBehavior,\n setIsFocusBehaviorValid,\n initialAnimation,\n isGridLayout,\n updateCardSize,\n reorderItemProps\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>();\n const itemKey = context.metadata.key;\n const itemIndex = context.index;\n\n const isItemFocused = isFocused && isFocusRingVisible;\n const variantClasses = multiVariantStyles({\n itemFocused: focusBehavior === 'card' && isItemFocused ? 'isItemFocused' : 'isNotItemFocused',\n itemInitialOpacity: initialAnimation ? 'isTransparent' : 'isNotTransparent',\n itemInGridLayout: isGridLayout ? 'isInGridLayout' : 'isNotInGridLayout'\n });\n const classes = classNames([styles.itemStyle, variantClasses]);\n\n /*********************************** Tabbable Mode ***********************************/\n\n // don't bubble Arrow Up/Down/Left/Right events to parent when in isTabbable mode\n // this bubbling causes the outer CollectionFocus ring to change index while in the isTabbable mode.\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n focusBehavior === 'card' &&\n isTabbable &&\n (event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n };\n\n /************************************ Card Size ************************************/\n\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n updateCardSize?.(entry.contentRect.width, entry.contentRect.height);\n },\n [updateCardSize]\n );\n\n const nullRef = useRef<HTMLDivElement>(null);\n useResizeObserver(updateCardSize ? rootRef : nullRef, handleResize);\n\n /********************************* Focus Behavior *********************************/\n\n useLayoutEffect(() => {\n if (focusBehavior === 'content' && isItemFocused) {\n // rootRef is cardview item, its first child is the focus trap div, so its first grand child\n // is the actual content\n const content = rootRef.current?.firstElementChild?.firstElementChild as HTMLElement;\n const focusable = allTabbableElements(content, true, true);\n if (focusable.length === 0 || focusable.length > 1) {\n warn(\n `${focusable.length} focusable elements are detected in the card. 'content' focusBehavior is intended only for use when the card has single focusable element. Please specify one focusable element in the card or switch the focusBehavior to 'card'.`\n );\n setIsFocusBehaviorValid?.(false);\n } else {\n focusable[0].focus();\n }\n }\n }, [focusBehavior, isItemFocused, setIsFocusBehaviorValid]);\n\n /******************************** Initial Animation ********************************/\n\n // animation for slide up/down\n const { nodeRef: nodeRefSlide, controller: controllerSlide } = useAnimation<\n 'slideUp' | 'slideDown' | 'none',\n HTMLDivElement\n >(initialAnimation || 'none', animationConfigSlide(itemIndex));\n\n // animation for opacity change\n const { nodeRef: nodeRefOpacity, controller: controllerOpacity } = useAnimation<\n 'opacity' | 'none',\n HTMLDivElement\n >((initialAnimation && 'opacity') || 'none', animationConfigOpacity(itemIndex, timeoutRef));\n\n // max cap for animation is 1s\n useEffect(() => {\n if (initialAnimation !== undefined) {\n timeoutRef.current = setTimeout(() => {\n controllerSlide.cancel();\n controllerOpacity.cancel();\n if (rootRef.current) {\n rootRef.current.style.opacity = '1';\n }\n }, 1000);\n }\n }, [controllerOpacity, controllerSlide, initialAnimation]);\n\n // TODO: issue track in JET-57681, we currently have two useAnimation() because the opacity and\n // slide up/down have different durations, and the current API couldn't handle this case, we will\n // update this once the API is updated\n\n /********************************** Child Component **********************************/\n\n const itemRefs = useMemo(() => {\n // NOTE: spot an issue when we click the cards during animation is processing, the cards would not finish\n // the current animations and stay as what it is, e.g. leave itself as half transparent.\n // need to remove nodeRefSlide and nodeRefOpacity to avoid this issue.\n if (initialAnimation === undefined) {\n return mergeRefs(rootRef);\n }\n return mergeRefs(rootRef, nodeRefSlide, nodeRefOpacity);\n }, [rootRef, nodeRefSlide, nodeRefOpacity, initialAnimation]);\n\n const childrenComponent = reorderItemProps ? (\n <BaseCardViewReorderableItem {...reorderItemProps} context={context}>\n {children(context)}\n </BaseCardViewReorderableItem>\n ) : (\n children(context)\n );\n\n return (\n <div\n id={useId()}\n ref={itemRefs}\n class={classes}\n role=\"gridcell\"\n data-oj-key={itemKey}\n onKeyDown={handleKeyDown}\n aria-selected={selectionMode === 'none' ? undefined : isSelected}\n {...(typeof itemKey === 'number' && { 'data-oj-key-type': 'number' })}>\n <TabbableModeContext.Provider value={{ isTabbable }}>\n <FocusTrap isDisabled={!isTabbable} restoreFocusRef={false}>\n {childrenComponent}\n </FocusTrap>\n </TabbableModeContext.Provider>\n </div>\n );\n}\n\nconst animationConfigSlide = (\n index: number\n): UseAnimationConfig<'slideUp' | 'slideDown' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n slideUp: {\n from: {\n translateY: '50px'\n },\n to: {\n translateY: '0px'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n },\n slideDown: {\n from: {\n translateY: '-50px'\n },\n to: {\n translateY: '0'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n }\n },\n isAnimatedOnMount: true\n };\n};\n\nconst animationConfigOpacity = (\n index: number,\n timeoutRef: MutableRef<ReturnType<typeof setTimeout> | undefined>\n): UseAnimationConfig<'opacity' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n opacity: {\n from: {\n opacity: 0\n },\n to: {\n opacity: 1\n },\n options: {\n duration: 150,\n delay: index * 50,\n easing: 'linear'\n }\n }\n },\n isAnimatedOnMount: true,\n onAnimationEnd: () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n }\n };\n};\n\n/**\n * Compare the equality between two reorderItemProps, especially useful for memoized items\n */\nconst compareReorderItemProps = <K, D>(\n props1: Props<K, D>['reorderItemProps'],\n props2: Props<K, D>['reorderItemProps']\n) => {\n return (\n props1?.['currentKey'] === props2?.['currentKey'] &&\n props1?.['dragKey'] === props2?.['dragKey'] &&\n props1?.['columns'] === props2?.['columns']\n );\n};\n\nexport const MemoizeBaseCardViewItem = memo(\n BaseCardViewItem,\n <K, D>(prev: Props<K, D>, next: Props<K, D>) => {\n if (prev && next) {\n return (\n prev.children === next.children &&\n prev.isTabbable === next.isTabbable &&\n prev.isFocused === next.isFocused &&\n prev.isFocusRingVisible === next.isFocusRingVisible &&\n prev.isSelected === next.isSelected &&\n prev.initialAnimation === next.initialAnimation &&\n prev.focusBehavior === next.focusBehavior &&\n compareListItemContext(prev.context, next.context) &&\n compareReorderItemProps(prev.reorderItemProps, next.reorderItemProps)\n );\n }\n return false;\n }\n);\n","import { ComponentChildren } from 'preact';\nimport { Grid } from '../UNSAFE_Grid';\nimport { Flex } from '../UNSAFE_Flex';\nimport { GutterSize } from './BaseCardViewUtils';\nimport { cardViewVars } from './themes/BaseCardViewContract.css';\n\ntype Props = {\n children: ComponentChildren;\n layout: 'grid' | 'flex';\n gutterSize: GutterSize;\n columns: number;\n};\n\nexport function BaseCardViewLayout({ children, layout, gutterSize, columns }: Props) {\n const gap = cardViewVars.gutterSize[gutterSize];\n if (layout === 'grid') {\n return columns < 1 ? null : (\n <Grid gridTemplateColumns={`repeat(${columns}, 1fr)`} gap={gap}>\n {children}\n </Grid>\n );\n } else {\n return (\n <Flex wrap=\"wrap\" gap={gap}>\n {children}\n </Flex>\n );\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 */\nimport { ComponentChildren, Fragment } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\n\ntype Props = {\n /**\n * Allows to pass skeletons\n **/\n children: ComponentChildren;\n};\n\n/**\n * Allows to specify the time delay for rendering the component\n **/\nconst timerValue = 50;\n\n/**\n * BaseCardViewSkeletonContainer renders skeletons after 50ms threshold defined in the Redwood spec\n **/\nexport function BaseCardViewSkeletonContainer({ children }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsVisible(true);\n }, timerValue);\n }, []);\n\n return isVisible ? <Fragment>{children}</Fragment> : <div class={LOADMORE_STYLE_CLASS}></div>;\n}\n","import { Size } from '../utils/UNSAFE_size';\nimport { Skeleton } from '../UNSAFE_Skeleton';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { BaseCardViewSkeletonContainer } from './BaseCardViewSkeletonContainer';\n\n// these are arbitrary values by now, might update them with definite values in the future\nconst DEFAULT_SKELETON_NUMBER = 25;\nconst DEFAULT_SKELETON_WIDTH = '60x';\nconst DEFAULT_SKELETON_HEIGHT = '70x';\n\ntype SkeletonProps = {\n layout: 'flex' | 'grid';\n colCount: number;\n totalCount: number;\n cardWidth?: number;\n cardHeight?: number;\n};\n\n/**\n * A function that returns an array of skeletons based on count\n * @param count the number of skeletons\n */\nconst getSkeletonsByCount = (\n layout: 'flex' | 'grid',\n count = DEFAULT_SKELETON_NUMBER,\n width?: Size,\n height?: Size,\n isUnique = true\n) => {\n const sw = width || (layout === 'flex' ? DEFAULT_SKELETON_WIDTH : '100%');\n const sh = height || DEFAULT_SKELETON_HEIGHT;\n\n return [...Array(count)].map((_v, i) => (\n // create unique keys if needed, otherwise the animations won't start at the same time, because the old copy of skeletons\n // could be reused, even the key is specified by useId(), combine count with time to make the key unique.\n <Skeleton key={isUnique && `${i}${new Date().getTime()}`} width={sw} height={sh} />\n ));\n};\n\n/**\n * When there is no data (i.e. data is an empty array or null, and hasMore is false), we will show 25 card skeletons with default size\n */\nexport const InitialLoadSkeletons = (props: { layout: SkeletonProps['layout'] }) => (\n <BaseCardViewSkeletonContainer>{getSkeletonsByCount(props.layout)}</BaseCardViewSkeletonContainer>\n);\n\n/**\n * When we are fetching the initial data (i.e. data is an empty array, and hasMore is true), we will show 25 card skeletons with default size,\n * because we don't know the card dimension at this time. Since there is more data to load, we will specify LOADMORE_STYLE_CLASS on skeletons\n */\nexport const DefaultLoadMoreSkeletons = (props: { layout: SkeletonProps['layout'] }) => {\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1)}</div>\n );\n const otherSkeletons = getSkeletonsByCount(props.layout, DEFAULT_SKELETON_NUMBER - 1);\n const skeletons = [firstSkeleton, ...otherSkeletons];\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n};\n\n/**\n * During the render that we measure and update card dimension, we will hide skeletons temporarily\n * to avoid showing incorrect skeletons\n */\nconst InvisibleSkeletons = () => {\n return <div class={LOADMORE_STYLE_CLASS}></div>;\n};\n\nexport const LoadMoreSkeletons = (props: SkeletonProps) => {\n if (props.colCount < 1 || props.cardWidth == null || props.cardHeight == null) {\n // if column count / card width / card height are invalid, we will show the invisible skeletons\n return <InvisibleSkeletons />;\n } else {\n // after initial renders, show skeletons with correct dimension and count\n const skeletons = [];\n\n const firstRowColCount = props.colCount - (props.totalCount % props.colCount);\n const isOnlyOneRow = firstRowColCount === props.colCount;\n\n const cardWidth = `calc(${props.cardWidth}px)` as Size;\n const cardHeight = props.cardHeight\n ? (`calc(${props.cardHeight}px)` as Size)\n : DEFAULT_SKELETON_HEIGHT;\n\n const width: Size = props.layout === 'flex' ? cardWidth : '100%';\n const height: Size = props.layout === 'flex' || isOnlyOneRow ? cardHeight : '100%';\n\n // first row\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1, width, height)}</div>\n );\n skeletons.push(firstSkeleton);\n skeletons.push(getSkeletonsByCount(props.layout, firstRowColCount - 1, width, height));\n\n // second row\n if (!isOnlyOneRow) {\n skeletons.push(getSkeletonsByCount(props.layout, props.colCount, width, cardHeight));\n }\n\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n }\n};\n","import { Size } from '../utils/UNSAFE_size';\n\nexport const emptyKeys = { all: false, keys: new Set() };\nexport type GutterSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * A mapping of gutterSize to concrete size in pixels\n */\nexport const gutterSizeToPX: Record<string, number> = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 48,\n xl: 64\n};\n\nexport const getGapSize = (gutterSize?: GutterSize) => {\n const px = gutterSizeToPX[gutterSize || 'sm'];\n const gap = `${px / 4}x` as Size;\n return gap;\n};\n\nexport const getColCount = (gapWidth: number, cardWidth?: number, rootWidth?: number) => {\n if (!cardWidth || !rootWidth) return 0;\n\n // if we have n cards, we have n-1 gaps\n const colCount = Math.floor((rootWidth + gapWidth) / (gapWidth + cardWidth));\n return Math.max(1, colCount);\n};\n","import { RefObject } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { ITEM_SELECTOR, dragToScroll } from '../utils/PRIVATE_collectionUtils';\nimport { useReorderable } from '../hooks/PRIVATE_useReorderable';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { GutterSize } from './BaseCardViewUtils';\n\ntype useCardViewReorderProps<K, D> = Pick<Props<K, D>, 'currentKey' | 'onReorder'> & {\n gutterSize: GutterSize;\n columns: number;\n rootRef: RefObject<HTMLDivElement>;\n scrollCurrItemIntoView: RefObject<boolean>;\n};\n\nexport const useCardViewReorder = <K extends string | number, D>({\n currentKey,\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n}: useCardViewReorderProps<K, D>) => {\n const isReorderEnabled = onReorder != undefined;\n\n const [dragKey, setDragKey] = useState<K | undefined>(undefined);\n const { reorderProps, reorderContext, reorderInstructionsId, reorderInstructions } =\n useReorderable({\n onReorder,\n rootRef,\n itemSelector: ITEM_SELECTOR,\n isDisabled: !isReorderEnabled,\n columns\n });\n\n if (!isReorderEnabled) {\n return {\n reorderProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\n }\n\n const handleDragOver = (event: DragEvent) => {\n dragToScroll(event, dragKey !== undefined, rootRef.current);\n // during mouse reordering, the drag item might not be the same as current item,\n // so we should disallow current item scroll into view\n scrollCurrItemIntoView.current = false;\n };\n\n const reorderEventProps = { ...reorderProps, onDragOver: handleDragOver };\n\n const reorderItemProps = {\n currentKey,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns\n };\n\n return {\n reorderProps: reorderEventProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\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 */\nimport { Fragment } from 'preact';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { useRef, useCallback, useEffect, useState, useImperativeHandle } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { containsKey, Keys, isKeyDefined } from '../utils/UNSAFE_keys';\nimport {\n getPrevNextKeyByCount,\n getFirstVisibleKey,\n getViewportConfig,\n findElementByKey,\n keyExtractor,\n handleSelectionRange,\n ITEM_SELECTOR\n} from '../utils/PRIVATE_collectionUtils';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useTabbableModeSet } from '../hooks/PRIVATE_useTabbableModeSet';\nimport { useSelection, SelectionRangeDetail } from '../hooks/PRIVATE_useSelection';\nimport { ReorderableContext } from '../hooks/PRIVATE_useReorderable';\nimport { ItemContext, ListItemRendererContext, SelectionDetail } from '../UNSAFE_Collection';\nimport { Selector } from '../UNSAFE_Selector';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LoadMoreCollection } from '../PRIVATE_LoadMoreCollection';\nimport { styles } from './themes/BaseCardViewStyles.css';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { MemoizeBaseCardViewItem } from './BaseCardViewItem';\nimport { BaseCardViewLayout } from './BaseCardViewLayout';\nimport {\n DefaultLoadMoreSkeletons,\n LoadMoreSkeletons,\n InitialLoadSkeletons\n} from './BaseCardViewSkeleton';\nimport { gutterSizeToPX, emptyKeys } from './BaseCardViewUtils';\nimport { useCardViewReorder } from './useCardViewReorder';\n// TODO: add this import due to issue JET-67485, need to update once Stable is introduced\nimport './themes/redwood/BaseCardViewBaseTheme.css';\n\n/**\n * Props specific for the GradGridBaseImpl Component\n */\ntype BaseCardViewImplProps<K, D> = Props<K, D> & {\n /**\n * Provide the number of columns to render;\n */\n columns: number;\n /**\n * The layout of the BaseCardView. When we use CardGridView as parent, we will use grid layout;\n * when we use CardFlexView as parent, we will use flex layout.\n */\n layout: 'grid' | 'flex';\n /**\n * Card dimension, including width and height\n */\n cardSize: { width?: number; height?: number };\n /**\n * A callback function to update card dimension, including width and height\n */\n updateCardSize: (width: number, height: number) => void;\n};\n\nconst BaseCardViewImpl = forwardRef(\n <K extends string | number, D>(\n {\n children,\n data,\n onLoadMore = () => {},\n hasMore = false,\n getRowKey,\n currentKey,\n onCurrentKeyChange,\n selectionMode = 'none',\n selectedKeys = emptyKeys as Keys<K>,\n onSelectionChange,\n onReorder,\n viewportConfig,\n focusBehavior = 'card',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n initialAnimation = 'slideUp',\n gutterSize = 'sm',\n columns,\n layout,\n cardSize,\n updateCardSize\n }: BaseCardViewImplProps<K, D>,\n ref?: ForwardedRef<HTMLDivElement>\n ) => {\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref!, () => rootRef.current!, [rootRef]);\n\n // tracking the anchor key which is used for shift+click selection\n const anchorKey = useRef<K | undefined>();\n // tracking pending current key in pointer down event\n const pendingCurrentKey = useRef<K>();\n\n const gutterSizePX = gutterSizeToPX[gutterSize];\n const layoutProps = { layout, columns, gutterSize };\n const isInitialAnimation = useRef(true);\n useEffect(() => {\n if (cardSize.height != undefined && cardSize.width != undefined) {\n isInitialAnimation.current = false;\n }\n }, [cardSize]);\n\n const ariaMultiSelectable = selectionMode === 'none' ? undefined : selectionMode === 'multiple';\n const ariaRowcount = hasMore || !data || columns < 1 ? -1 : Math.ceil(data?.length / columns);\n const ariaColcount = columns < 1 ? -1 : columns;\n\n const [isFocusBehaviorValid, setIsFocusBehaviorValid] = useState(true);\n const validFocusBehavior = isFocusBehaviorValid ? focusBehavior : 'card';\n\n // ensure current item is scrolled into view when current item is updated\n // during reordering, enable that during keyboard reordering, disable that during mouse reordering\n const scrollCurrItemIntoView = useRef(false);\n const isReorderEnabled = onReorder != undefined;\n\n const isFetching = useRef(false);\n\n /*****************************************************************************************/\n /************************************* Tabbable Mode *************************************/\n /*****************************************************************************************/\n\n const [isCurrentTabbableKey, tabbableModeProps] = useTabbableModeSet(\n rootRef,\n (element) => {\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n currentKey,\n onCurrentKeyChange\n );\n\n /*****************************************************************************************/\n /********************************* Current Key and Focus *********************************/\n /*****************************************************************************************/\n\n const { currentKeyProps } = useCurrentKey(\n (element) => keyExtractor(element, ITEM_SELECTOR),\n selectionMode !== 'multiple',\n // init a function every time to make sure we pass in the latest columns,\n // otherwise the new key might be wrong after resize\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, -columns),\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, columns),\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, -1),\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, 1),\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight'\n ]);\n\n const handleFocus = () => {\n // handle initial focus\n if (\n !isKeyDefined(currentKey) &&\n onCurrentKeyChange &&\n isCurrentTabbableKey(undefined) &&\n rootRef.current\n ) {\n const firstKey =\n pendingCurrentKey.current || (getFirstVisibleKey(rootRef.current, ITEM_SELECTOR) as K);\n if (isKeyDefined(firstKey)) {\n onCurrentKeyChange({ value: firstKey });\n }\n } else if (isKeyDefined(currentKey) && rootRef.current) {\n // if currentKey is defined, make sure scroll the current item into view when cardview regains focus\n const elem = findElementByKey(rootRef.current, currentKey as K, ITEM_SELECTOR);\n elem?.scrollIntoView({ block: 'nearest' });\n }\n };\n\n // need to track pointer down element to set currentItem when initial focus happens\n const handlePointerDown = (event: PointerEvent) => {\n const key = keyExtractor(event.target as HTMLElement, ITEM_SELECTOR);\n if (isKeyDefined(key)) {\n pendingCurrentKey.current = key as K;\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // for content focusBehavior, when users tab out, we need to focus back to card grid, to ensure\n // the tabbing order works properly, otherwise the focus might get stuck at the current item\n if (validFocusBehavior === 'content' && event.key === 'Tab') {\n rootRef.current?.focus({ preventScroll: true });\n }\n // during keyboard reordering, the current item should be scrolled into view\n const keyHandlers = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];\n if (\n isReorderEnabled &&\n (event.metaKey || event.ctrlKey) &&\n event.shiftKey &&\n keyHandlers.includes(event.key)\n ) {\n scrollCurrItemIntoView.current = true;\n }\n };\n\n useEffect(() => {\n if (currentKey != null && rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey, ITEM_SELECTOR);\n if (elem) {\n // only update aria-activedescendant for screen reader in default focusBehavior\n if (validFocusBehavior === 'card') {\n const cell = elem.closest(`[role=gridcell]`);\n const activeDescendant = rootRef.current.getAttribute('aria-activedescendant');\n if (cell && activeDescendant !== cell.id) {\n rootRef.current.setAttribute('aria-activedescendant', cell.id);\n scrollCurrItemIntoView.current = true;\n }\n }\n // make sure current item is visible\n if (scrollCurrItemIntoView.current) {\n elem.scrollIntoView({ block: 'nearest' });\n scrollCurrItemIntoView.current = false;\n }\n }\n }\n // listen to data because the current item would re-render when data is updated, i.e. the id\n // of current item would be updated, so the currentKey itself couldn't guarantee the root has\n // the latest aria-activedescendant\n }, [currentKey, data, validFocusBehavior, isReorderEnabled]);\n\n /*****************************************************************************************/\n /*************************************** Selection ***************************************/\n /*****************************************************************************************/\n\n const handleSelectionChange = useCallback(\n (detail: SelectionDetail<K>) => {\n if (onSelectionChange) {\n if (detail.value.all === false && detail.value.keys.size > 0) {\n // during regular selection, the last key selected by a user gesture is the anchor key\n anchorKey.current = Array.from(detail.value.keys.values()).pop();\n }\n onSelectionChange(detail);\n }\n },\n [anchorKey, onSelectionChange]\n );\n\n const handleSelectionRangeChange = useCallback(\n (detail: SelectionRangeDetail<K>) => {\n if (data && onSelectionChange) {\n const value = handleSelectionRange(detail, data, getRowKey);\n // for non-virtualized CardView, value should always be an array\n if (Array.isArray(value)) {\n if (detail.eventType === 'shiftSpace') {\n // during range selection by shift+space, the first key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.start;\n } else {\n // during range selection by shift+click/arrow keys, the last key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.end;\n }\n onSelectionChange({ value: { all: false, keys: new Set(value) }, target: null });\n }\n }\n },\n [data, onSelectionChange, getRowKey]\n );\n\n const { selectionProps } = useSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n selectedKeys,\n selectionMode,\n false,\n 'toggle',\n false,\n handleSelectionChange,\n anchorKey.current,\n currentKey,\n (currentKey: K | undefined, isPrev: boolean) => () =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -columns : columns),\n (currentKey: K | undefined, isPrev: boolean) => () =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -1 : 1),\n (key: K) => {\n if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, key, ITEM_SELECTOR);\n if (elem) {\n elem.scrollIntoView({ block: 'nearest' });\n }\n }\n },\n handleSelectionRangeChange\n );\n\n /*****************************************************************************************/\n /**************************************** Reorder ****************************************/\n /*****************************************************************************************/\n\n const {\n reorderProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } = useCardViewReorder({\n currentKey,\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n });\n\n const reorderAcc = isReorderEnabled && (\n <>\n <span id={reorderInstructionsId}>\n <HiddenAccessible>{reorderInstructions}</HiddenAccessible>\n </span>\n </>\n );\n\n /*****************************************************************************************/\n /************************************* Load More *****************************************/\n /*****************************************************************************************/\n\n const handleLoadMore = useCallback(() => {\n // check isFetching to avoid multiple load more at the same time (details in JET-61117)\n if (!isFetching.current) {\n isFetching.current = true;\n onLoadMore();\n }\n }, [isFetching, onLoadMore]);\n\n useEffect(() => {\n isFetching.current = false;\n // listen to data and hasMore because when one of them gets updated, the fetching is done\n }, [data, hasMore]);\n\n /*****************************************************************************************/\n /************************************ Child Component ************************************/\n /*****************************************************************************************/\n\n const getItemContext = useCallback(\n (context: ItemContext<D>) => {\n const key = getRowKey(context.data);\n const selectorRenderer =\n selectionMode === 'multiple'\n ? () => (\n <Selector\n onChange={onSelectionChange}\n rowKey={key}\n selectedKeys={selectedKeys}></Selector>\n )\n : undefined;\n\n return {\n index: context.index,\n data: context.data,\n metadata: { key: key },\n selector: selectorRenderer,\n isSelected: containsKey(selectedKeys, key)\n };\n },\n [selectionMode, selectedKeys, onSelectionChange, getRowKey]\n );\n\n const childrenComponent = (context: ItemContext<D>) => {\n const cardItemContext = getItemContext(context);\n const isTabbable = isCurrentTabbableKey(cardItemContext.metadata.key);\n const isFocused = currentKey === cardItemContext.metadata.key && !isTabbable;\n const isFocusRingVisible = isFocused && showFocusRing;\n const isSelected = cardItemContext.isSelected;\n const itemRenderFunc = (context: ListItemRendererContext<K, D>) => (\n <MemoizeBaseCardViewItem\n key={cardItemContext.metadata.key}\n context={context}\n isTabbable={isTabbable}\n isFocused={isFocused}\n isFocusRingVisible={isFocusRingVisible}\n isGridLayout={layout === 'grid'}\n isSelected={isSelected}\n selectionMode={selectionMode}\n focusBehavior={validFocusBehavior}\n {...(focusBehavior === 'content' && { setIsFocusBehaviorValid })}\n {...(isInitialAnimation.current && { initialAnimation })}\n {...(cardItemContext.index === 0 && !cardSize.width && { updateCardSize })}\n {...(isReorderEnabled && { reorderItemProps })}>\n {children}\n </MemoizeBaseCardViewItem>\n );\n return itemRenderFunc(cardItemContext);\n };\n\n // todo: issue track in JET-57952, need a way to show the skeletons in keyboard navigation\n const skeletons =\n data && !data.length && hasMore ? (\n <DefaultLoadMoreSkeletons layout={layout} />\n ) : (\n <LoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data?.length || 0}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n />\n );\n\n viewportConfig = getViewportConfig(rootRef, viewportConfig);\n const collectionComponent = (\n <div role=\"row\">\n <BaseCardViewLayout {...layoutProps}>\n <LoadMoreCollection\n data={data}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loadMoreIndicator={skeletons}\n loadMoreThreshold={gutterSizePX + 4} // gap size + padding\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </LoadMoreCollection>\n </BaseCardViewLayout>\n </div>\n );\n\n const initialLoadSkeletons = (\n <BaseCardViewLayout {...layoutProps}>\n <InitialLoadSkeletons layout={layout} />\n </BaseCardViewLayout>\n );\n\n return (\n <div\n {...mergeProps(\n currentKeyProps,\n focusRingProps,\n selectionProps,\n reorderProps,\n {\n onFocus: handleFocus,\n onPointerDown: handlePointerDown,\n onKeyDown: handleKeyDown\n },\n // only enable tabbable mode in default focusBehavior\n { ...(validFocusBehavior === 'card' && tabbableModeProps) }\n )}\n ref={rootRef}\n role=\"grid\"\n class={styles.baseStyle}\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-multiselectable={ariaMultiSelectable}\n aria-rowcount={ariaRowcount}\n aria-colcount={ariaColcount}>\n <ReorderableContext.Provider value={reorderContext}>\n {!data ? (\n initialLoadSkeletons\n ) : data.length || hasMore ? (\n collectionComponent\n ) : (\n <Fragment />\n )}\n </ReorderableContext.Provider>\n {reorderAcc}\n </div>\n );\n }\n);\n\n/**\n * Props specific for the BaseCardView\n */\ntype BaseCardViewProps<K, D> = BaseCardViewImplProps<K, D> & {\n ref?: ForwardedRef<HTMLDivElement>;\n};\n\n/**\n * Cast BaseCardViewImpl to generic type, because BaseCardViewImpl would infer the generic type to specific type,\n * i.e infer <K extends string | number, D> to <string | number, unknown>, which will cause type issues in the parent component\n */\nexport const BaseCardView = BaseCardViewImpl as <K extends string | number, D>(\n props: BaseCardViewProps<K, D>\n) => JSX.Element;\n"],"names":["useRef","multiVariantStyles","styles","useCallback","ITEM_SELECTOR","useReorderableItem","useUser","classNames","_jsxs","_Fragment","_jsx","useResizeObserver","useLayoutEffect","allTabbableElements","warn","useAnimation","useEffect","useMemo","mergeRefs","useId","TabbableModeContext","FocusTrap","memo","compareListItemContext","cardViewVars","Grid","Flex","useState","Fragment","LOADMORE_STYLE_CLASS","Skeleton","useReorderable","dragToScroll","forwardRef","useImperativeHandle","useTabbableModeSet","keyExtractor","useCurrentKey","getPrevNextKeyByCount","useCollectionFocusRing","isKeyDefined","getFirstVisibleKey","findElementByKey","handleSelectionRange","useSelection","HiddenAccessible","Selector","containsKey","getViewportConfig","LoadMoreCollection","mergeProps","ReorderableContext"],"mappings":"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"}
1
+ {"version":3,"file":"BaseCardView-55bc5e6f.js","sources":["../../src/PRIVATE_BaseCardView/BaseCardViewReorderableItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewItem.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewLayout.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeletonContainer.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewSkeleton.tsx","../../src/PRIVATE_BaseCardView/BaseCardViewUtils.ts","../../src/PRIVATE_BaseCardView/useCardViewReorder.ts","../../src/PRIVATE_BaseCardView/BaseCardView.tsx"],"sourcesContent":["import { useRef, useCallback } from 'preact/hooks';\nimport { useReorderableItem } from '../hooks/PRIVATE_useReorderable';\nimport { useUser } from '../hooks/UNSAFE_useUser';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { ITEM_SELECTOR } from '../utils/PRIVATE_collectionUtils';\nimport { ListItemRendererContext } from '../UNSAFE_Collection';\nimport { ReorderableItemProps } from '../UNSAFE_Collection/Reorderable.types';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport { GutterSize } from './BaseCardViewUtils';\n\nexport type BaseCardViewReorderableItemProps<K> = ReorderableItemProps<K> & {\n currentKey: K | undefined;\n gutterSize: GutterSize;\n columns: number;\n};\n\n/**\n * The internal component used to render a reorderable item in CardView.\n */\nexport function BaseCardViewReorderableItem<K extends string | number, D>({\n currentKey,\n children,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns,\n context\n}: BaseCardViewReorderableItemProps<K> & { context: ListItemRendererContext<K, D> }) {\n const itemRef = useRef<HTMLDivElement | null>(null);\n const isOneColumn = columns === 1;\n const isFirstColumn = context.index % columns === 0;\n const isLastColumn = context.index % columns === columns - 1;\n const variantClasses = multiVariantStyles({\n itemOverlayFront: gutterSize\n });\n const variantClassesVertical = multiVariantStyles({\n itemOverlayFrontVertical: gutterSize\n });\n const itemStyles = {\n itemOverlayFront: isOneColumn ? variantClassesVertical : variantClasses,\n itemOverlayRear: isOneColumn ? styles.itemOverlayRearVertical : styles.itemOverlayRear,\n itemDragger: styles.itemDragger\n };\n const getItem = useCallback(() => itemRef?.current?.closest(ITEM_SELECTOR) as HTMLElement, []);\n const setTransferData = useCallback(\n (event: DragEvent) => {\n event.dataTransfer?.setData('text/cardview-items-key', JSON.stringify(context.metadata.key));\n },\n [context.metadata.key]\n );\n const { rootProps, isDragged, overlayZoneBeforeProps, overlayZoneAfterProps } =\n useReorderableItem({\n currentKey,\n isDisabled: onReorder ? false : true,\n draggable: onReorder ? true : false,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n ref: itemRef,\n getItem,\n setTransferData,\n itemStyles,\n itemSelector: ITEM_SELECTOR,\n isVertical: isOneColumn\n });\n\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const overlayZoneBeforeClass = classNames([\n overlayZoneBeforeProps?.class,\n !isOneColumn && !isRtl && isFirstColumn && styles.itemOverlayFrontEdge,\n !isOneColumn && isRtl && isLastColumn && styles.itemOverlayFrontEdge\n ]);\n\n const overlayZoneAfterClass = classNames([\n overlayZoneAfterProps?.class,\n !isOneColumn && !isRtl && isLastColumn && styles.itemOverlayRearEdge,\n !isOneColumn && isRtl && isFirstColumn && styles.itemOverlayRearEdge\n ]);\n\n return (\n <div {...rootProps} draggable={false}>\n {children}\n {!isDragged && dragKey && (\n <>\n <div {...overlayZoneBeforeProps} class={overlayZoneBeforeClass}></div>\n <div {...overlayZoneAfterProps} class={overlayZoneAfterClass}></div>\n </>\n )}\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 */\nimport { ComponentChildren } from 'preact';\nimport { memo } from 'preact/compat';\nimport {\n useRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useEffect,\n StateUpdater,\n Dispatch,\n MutableRef\n} from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeRefs } from '../utils/PRIVATE_refUtils';\nimport { warn } from '../utils/UNSAFE_logger';\nimport { allTabbableElements } from '../utils/PRIVATE_tabbableUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { useAnimation, UseAnimationConfig } from '../hooks/UNSAFE_useAnimation';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { SelectionMode, ListItemRendererContext } from '../UNSAFE_Collection';\nimport { multiVariantStyles, styles } from './themes/BaseCardViewStyles.css';\nimport { compareListItemContext } from '../utils/PRIVATE_collectionUtils';\nimport {\n BaseCardViewReorderableItem,\n BaseCardViewReorderableItemProps\n} from './BaseCardViewReorderableItem';\n\n/**\n * Props for the BaseCardViewItem Component\n */\nexport type Props<K, D> = {\n children: (context: ListItemRendererContext<K, D>) => ComponentChildren;\n context: ListItemRendererContext<K, D>;\n isTabbable: boolean;\n isFocused: boolean;\n isFocusRingVisible: boolean;\n isSelected: boolean;\n selectionMode: SelectionMode;\n focusBehavior: 'card' | 'content';\n setIsFocusBehaviorValid?: Dispatch<StateUpdater<boolean>>;\n initialAnimation?: 'slideUp' | 'slideDown';\n isGridLayout?: boolean;\n updateCardSize?: (width: number, height: number) => void;\n} & {\n reorderItemProps?: Omit<BaseCardViewReorderableItemProps<K>, 'children'>;\n};\n\n/**\n * The internal component used to render a single item in CardView.\n */\nexport function BaseCardViewItem<K extends string | number, D>({\n children,\n context,\n isTabbable,\n isFocused,\n isFocusRingVisible,\n isSelected,\n selectionMode,\n focusBehavior,\n setIsFocusBehaviorValid,\n initialAnimation,\n isGridLayout,\n updateCardSize,\n reorderItemProps\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const timeoutRef = useRef<ReturnType<typeof setTimeout>>();\n const itemKey = context.metadata.key;\n const itemIndex = context.index;\n\n const isItemFocused = isFocused && isFocusRingVisible;\n const variantClasses = multiVariantStyles({\n itemFocused: focusBehavior === 'card' && isItemFocused ? 'isItemFocused' : 'isNotItemFocused',\n itemInitialOpacity: initialAnimation ? 'isTransparent' : 'isNotTransparent',\n itemInGridLayout: isGridLayout ? 'isInGridLayout' : 'isNotInGridLayout'\n });\n const classes = classNames([styles.itemStyle, variantClasses]);\n\n /*********************************** Tabbable Mode ***********************************/\n\n // don't bubble Arrow Up/Down/Left/Right events to parent when in isTabbable mode\n // this bubbling causes the outer CollectionFocus ring to change index while in the isTabbable mode.\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n focusBehavior === 'card' &&\n isTabbable &&\n (event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight')\n ) {\n event.stopPropagation();\n }\n };\n\n /************************************ Card Size ************************************/\n\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n updateCardSize?.(entry.contentRect.width, entry.contentRect.height);\n },\n [updateCardSize]\n );\n\n const nullRef = useRef<HTMLDivElement>(null);\n useResizeObserver(updateCardSize ? rootRef : nullRef, handleResize);\n\n /********************************* Focus Behavior *********************************/\n\n useLayoutEffect(() => {\n if (focusBehavior === 'content' && isItemFocused) {\n // rootRef is cardview item, its first child is the focus trap div, so its first grand child\n // is the actual content\n const content = rootRef.current?.firstElementChild?.firstElementChild as HTMLElement;\n const focusable = allTabbableElements(content, true, true);\n if (focusable.length === 0 || focusable.length > 1) {\n warn(\n `${focusable.length} focusable elements are detected in the card. 'content' focusBehavior is intended only for use when the card has single focusable element. Please specify one focusable element in the card or switch the focusBehavior to 'card'.`\n );\n setIsFocusBehaviorValid?.(false);\n } else {\n focusable[0].focus();\n }\n }\n }, [focusBehavior, isItemFocused, setIsFocusBehaviorValid]);\n\n /******************************** Initial Animation ********************************/\n\n // animation for slide up/down\n const { nodeRef: nodeRefSlide, controller: controllerSlide } = useAnimation<\n 'slideUp' | 'slideDown' | 'none',\n HTMLDivElement\n >(initialAnimation || 'none', animationConfigSlide(itemIndex));\n\n // animation for opacity change\n const { nodeRef: nodeRefOpacity, controller: controllerOpacity } = useAnimation<\n 'opacity' | 'none',\n HTMLDivElement\n >((initialAnimation && 'opacity') || 'none', animationConfigOpacity(itemIndex, timeoutRef));\n\n // max cap for animation is 1s\n useEffect(() => {\n if (initialAnimation !== undefined) {\n timeoutRef.current = setTimeout(() => {\n controllerSlide.cancel();\n controllerOpacity.cancel();\n if (rootRef.current) {\n rootRef.current.style.opacity = '1';\n }\n }, 1000);\n }\n }, [controllerOpacity, controllerSlide, initialAnimation]);\n\n // TODO: issue track in JET-57681, we currently have two useAnimation() because the opacity and\n // slide up/down have different durations, and the current API couldn't handle this case, we will\n // update this once the API is updated\n\n /********************************** Child Component **********************************/\n\n const itemRefs = useMemo(() => {\n // NOTE: spot an issue when we click the cards during animation is processing, the cards would not finish\n // the current animations and stay as what it is, e.g. leave itself as half transparent.\n // need to remove nodeRefSlide and nodeRefOpacity to avoid this issue.\n if (initialAnimation === undefined) {\n return mergeRefs(rootRef);\n }\n return mergeRefs(rootRef, nodeRefSlide, nodeRefOpacity);\n }, [rootRef, nodeRefSlide, nodeRefOpacity, initialAnimation]);\n\n const childrenComponent = reorderItemProps ? (\n <BaseCardViewReorderableItem {...reorderItemProps} context={context}>\n {children(context)}\n </BaseCardViewReorderableItem>\n ) : (\n children(context)\n );\n\n return (\n <div\n id={useId()}\n ref={itemRefs}\n class={classes}\n role=\"gridcell\"\n data-oj-key={itemKey}\n onKeyDown={handleKeyDown}\n aria-selected={selectionMode === 'none' ? undefined : isSelected}\n {...(typeof itemKey === 'number' && { 'data-oj-key-type': 'number' })}>\n <TabbableModeContext.Provider value={{ isTabbable }}>\n <FocusTrap isDisabled={!isTabbable} restoreFocusRef={false}>\n {childrenComponent}\n </FocusTrap>\n </TabbableModeContext.Provider>\n </div>\n );\n}\n\nconst animationConfigSlide = (\n index: number\n): UseAnimationConfig<'slideUp' | 'slideDown' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n slideUp: {\n from: {\n translateY: '50px'\n },\n to: {\n translateY: '0px'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n },\n slideDown: {\n from: {\n translateY: '-50px'\n },\n to: {\n translateY: '0'\n },\n options: {\n duration: 300,\n delay: index * 50,\n easing: [0, 0, 0.2, 1]\n }\n }\n },\n isAnimatedOnMount: true\n };\n};\n\nconst animationConfigOpacity = (\n index: number,\n timeoutRef: MutableRef<ReturnType<typeof setTimeout> | undefined>\n): UseAnimationConfig<'opacity' | 'none', HTMLDivElement> => {\n return {\n animationStates: {\n opacity: {\n from: {\n opacity: 0\n },\n to: {\n opacity: 1\n },\n options: {\n duration: 150,\n delay: index * 50,\n easing: 'linear'\n }\n }\n },\n isAnimatedOnMount: true,\n onAnimationEnd: () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n }\n };\n};\n\n/**\n * Compare the equality between two reorderItemProps, especially useful for memoized items\n */\nconst compareReorderItemProps = <K, D>(\n props1: Props<K, D>['reorderItemProps'],\n props2: Props<K, D>['reorderItemProps']\n) => {\n return (\n props1?.['currentKey'] === props2?.['currentKey'] &&\n props1?.['dragKey'] === props2?.['dragKey'] &&\n props1?.['columns'] === props2?.['columns']\n );\n};\n\nexport const MemoizeBaseCardViewItem = memo(\n BaseCardViewItem,\n <K, D>(prev: Props<K, D>, next: Props<K, D>) => {\n if (prev && next) {\n return (\n prev.children === next.children &&\n prev.isTabbable === next.isTabbable &&\n prev.isFocused === next.isFocused &&\n prev.isFocusRingVisible === next.isFocusRingVisible &&\n prev.isSelected === next.isSelected &&\n prev.initialAnimation === next.initialAnimation &&\n prev.focusBehavior === next.focusBehavior &&\n compareListItemContext(prev.context, next.context) &&\n compareReorderItemProps(prev.reorderItemProps, next.reorderItemProps)\n );\n }\n return false;\n }\n);\n","import { ComponentChildren } from 'preact';\nimport { Grid } from '../UNSAFE_Grid';\nimport { Flex } from '../UNSAFE_Flex';\nimport { GutterSize } from './BaseCardViewUtils';\nimport { cardViewVars } from './themes/BaseCardViewContract.css';\n\ntype Props = {\n children: ComponentChildren;\n layout: 'grid' | 'flex';\n gutterSize: GutterSize;\n columns: number;\n};\n\nexport function BaseCardViewLayout({ children, layout, gutterSize, columns }: Props) {\n const gap = cardViewVars.gutterSize[gutterSize];\n if (layout === 'grid') {\n return columns < 1 ? null : (\n <Grid gridTemplateColumns={`repeat(${columns}, 1fr)`} gap={gap}>\n {children}\n </Grid>\n );\n } else {\n return (\n <Flex wrap=\"wrap\" gap={gap}>\n {children}\n </Flex>\n );\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 */\nimport { ComponentChildren, Fragment } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\n\ntype Props = {\n /**\n * Allows to pass skeletons\n **/\n children: ComponentChildren;\n};\n\n/**\n * Allows to specify the time delay for rendering the component\n **/\nconst timerValue = 50;\n\n/**\n * BaseCardViewSkeletonContainer renders skeletons after 50ms threshold defined in the Redwood spec\n **/\nexport function BaseCardViewSkeletonContainer({ children }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsVisible(true);\n }, timerValue);\n }, []);\n\n return isVisible ? <Fragment>{children}</Fragment> : <div class={LOADMORE_STYLE_CLASS}></div>;\n}\n","import { Size } from '../utils/UNSAFE_size';\nimport { Skeleton } from '../UNSAFE_Skeleton';\nimport { LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { BaseCardViewSkeletonContainer } from './BaseCardViewSkeletonContainer';\n\n// these are arbitrary values by now, might update them with definite values in the future\nconst DEFAULT_SKELETON_NUMBER = 25;\nconst DEFAULT_SKELETON_WIDTH = '60x';\nconst DEFAULT_SKELETON_HEIGHT = '70x';\n\ntype SkeletonProps = {\n layout: 'flex' | 'grid';\n colCount: number;\n totalCount: number;\n cardWidth?: number;\n cardHeight?: number;\n};\n\n/**\n * A function that returns an array of skeletons based on count\n * @param count the number of skeletons\n */\nconst getSkeletonsByCount = (\n layout: 'flex' | 'grid',\n count = DEFAULT_SKELETON_NUMBER,\n width?: Size,\n height?: Size,\n isUnique = true\n) => {\n const sw = width || (layout === 'flex' ? DEFAULT_SKELETON_WIDTH : '100%');\n const sh = height || DEFAULT_SKELETON_HEIGHT;\n\n return [...Array(count)].map((_v, i) => (\n // create unique keys if needed, otherwise the animations won't start at the same time, because the old copy of skeletons\n // could be reused, even the key is specified by useId(), combine count with time to make the key unique.\n <Skeleton key={isUnique && `${i}${new Date().getTime()}`} width={sw} height={sh} />\n ));\n};\n\n/**\n * When there is no data (i.e. data is an empty array or null, and hasMore is false), we will show 25 card skeletons with default size\n */\nexport const InitialLoadSkeletons = (props: { layout: SkeletonProps['layout'] }) => (\n <BaseCardViewSkeletonContainer>{getSkeletonsByCount(props.layout)}</BaseCardViewSkeletonContainer>\n);\n\n/**\n * When we are fetching the initial data (i.e. data is an empty array, and hasMore is true), we will show 25 card skeletons with default size,\n * because we don't know the card dimension at this time. Since there is more data to load, we will specify LOADMORE_STYLE_CLASS on skeletons\n */\nexport const DefaultLoadMoreSkeletons = (props: { layout: SkeletonProps['layout'] }) => {\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1)}</div>\n );\n const otherSkeletons = getSkeletonsByCount(props.layout, DEFAULT_SKELETON_NUMBER - 1);\n const skeletons = [firstSkeleton, ...otherSkeletons];\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n};\n\n/**\n * During the render that we measure and update card dimension, we will hide skeletons temporarily\n * to avoid showing incorrect skeletons\n */\nconst InvisibleSkeletons = () => {\n return <div class={LOADMORE_STYLE_CLASS}></div>;\n};\n\nexport const LoadMoreSkeletons = (props: SkeletonProps) => {\n if (props.colCount < 1 || props.cardWidth == null || props.cardHeight == null) {\n // if column count / card width / card height are invalid, we will show the invisible skeletons\n return <InvisibleSkeletons />;\n } else {\n // after initial renders, show skeletons with correct dimension and count\n const skeletons = [];\n\n const firstRowColCount = props.colCount - (props.totalCount % props.colCount);\n const isOnlyOneRow = firstRowColCount === props.colCount;\n\n const cardWidth = `calc(${props.cardWidth}px)` as Size;\n const cardHeight = props.cardHeight\n ? (`calc(${props.cardHeight}px)` as Size)\n : DEFAULT_SKELETON_HEIGHT;\n\n const width: Size = props.layout === 'flex' ? cardWidth : '100%';\n const height: Size = props.layout === 'flex' || isOnlyOneRow ? cardHeight : '100%';\n\n // first row\n const firstSkeleton = (\n <div class={LOADMORE_STYLE_CLASS}>{getSkeletonsByCount(props.layout, 1, width, height)}</div>\n );\n skeletons.push(firstSkeleton);\n skeletons.push(getSkeletonsByCount(props.layout, firstRowColCount - 1, width, height));\n\n // second row\n if (!isOnlyOneRow) {\n skeletons.push(getSkeletonsByCount(props.layout, props.colCount, width, cardHeight));\n }\n\n return <BaseCardViewSkeletonContainer>{skeletons}</BaseCardViewSkeletonContainer>;\n }\n};\n","import { Size } from '../utils/UNSAFE_size';\n\nexport const emptyKeys = { all: false, keys: new Set() };\nexport type GutterSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * A mapping of gutterSize to concrete size in pixels\n */\nexport const gutterSizeToPX: Record<string, number> = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 48,\n xl: 64\n};\n\nexport const getGapSize = (gutterSize?: GutterSize) => {\n const px = gutterSizeToPX[gutterSize || 'sm'];\n const gap = `${px / 4}x` as Size;\n return gap;\n};\n\nexport const getColCount = (gapWidth: number, cardWidth?: number, rootWidth?: number) => {\n if (!cardWidth || !rootWidth) return 0;\n\n // if we have n cards, we have n-1 gaps\n const colCount = Math.floor((rootWidth + gapWidth) / (gapWidth + cardWidth));\n return Math.max(1, colCount);\n};\n","import { RefObject } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { ITEM_SELECTOR, dragToScroll } from '../utils/PRIVATE_collectionUtils';\nimport { useReorderable } from '../hooks/PRIVATE_useReorderable';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { GutterSize } from './BaseCardViewUtils';\n\ntype useCardViewReorderProps<K, D> = Pick<Props<K, D>, 'currentKey' | 'onReorder'> & {\n gutterSize: GutterSize;\n columns: number;\n rootRef: RefObject<HTMLDivElement>;\n scrollCurrItemIntoView: RefObject<boolean>;\n};\n\nexport const useCardViewReorder = <K extends string | number, D>({\n currentKey,\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n}: useCardViewReorderProps<K, D>) => {\n const isReorderEnabled = onReorder != undefined;\n\n const [dragKey, setDragKey] = useState<K | undefined>(undefined);\n const { reorderProps, reorderContext, reorderInstructionsId, reorderInstructions } =\n useReorderable({\n onReorder,\n rootRef,\n itemSelector: ITEM_SELECTOR,\n isDisabled: !isReorderEnabled,\n columns\n });\n\n if (!isReorderEnabled) {\n return {\n reorderProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\n }\n\n const handleDragOver = (event: DragEvent) => {\n dragToScroll(event, dragKey !== undefined, rootRef.current);\n // during mouse reordering, the drag item might not be the same as current item,\n // so we should disallow current item scroll into view\n scrollCurrItemIntoView.current = false;\n };\n\n const reorderEventProps = { ...reorderProps, onDragOver: handleDragOver };\n\n const reorderItemProps = {\n currentKey,\n dragKey,\n setDragKey,\n onReorder,\n rootRef,\n gutterSize,\n columns\n };\n\n return {\n reorderProps: reorderEventProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } as const;\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 */\nimport { Fragment } from 'preact';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { useRef, useCallback, useEffect, useState, useImperativeHandle } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { containsKey, Keys, isKeyDefined } from '../utils/UNSAFE_keys';\nimport {\n getPrevNextKeyByCount,\n getFirstVisibleKey,\n getViewportConfig,\n findElementByKey,\n keyExtractor,\n handleSelectionRange,\n ITEM_SELECTOR\n} from '../utils/PRIVATE_collectionUtils';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useTabbableModeSet } from '../hooks/PRIVATE_useTabbableModeSet';\nimport { useSelection, SelectionRangeDetail } from '../hooks/PRIVATE_useSelection';\nimport { ReorderableContext } from '../hooks/PRIVATE_useReorderable';\nimport { ItemContext, ListItemRendererContext, SelectionDetail } from '../UNSAFE_Collection';\nimport { Selector } from '../UNSAFE_Selector';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { LoadMoreCollection } from '../PRIVATE_LoadMoreCollection';\nimport { styles } from './themes/BaseCardViewStyles.css';\nimport { Props } from '../UNSAFE_CardFlexView';\nimport { MemoizeBaseCardViewItem } from './BaseCardViewItem';\nimport { BaseCardViewLayout } from './BaseCardViewLayout';\nimport {\n DefaultLoadMoreSkeletons,\n LoadMoreSkeletons,\n InitialLoadSkeletons\n} from './BaseCardViewSkeleton';\nimport { gutterSizeToPX, emptyKeys } from './BaseCardViewUtils';\nimport { useCardViewReorder } from './useCardViewReorder';\n// TODO: add this import due to issue JET-67485, need to update once Stable is introduced\nimport './themes/redwood/BaseCardViewBaseTheme.css';\n\n/**\n * Props specific for the GradGridBaseImpl Component\n */\ntype BaseCardViewImplProps<K, D> = Props<K, D> & {\n /**\n * Provide the number of columns to render;\n */\n columns: number;\n /**\n * The layout of the BaseCardView. When we use CardGridView as parent, we will use grid layout;\n * when we use CardFlexView as parent, we will use flex layout.\n */\n layout: 'grid' | 'flex';\n /**\n * Card dimension, including width and height\n */\n cardSize: { width?: number; height?: number };\n /**\n * A callback function to update card dimension, including width and height\n */\n updateCardSize: (width: number, height: number) => void;\n};\n\nconst BaseCardViewImpl = forwardRef(\n <K extends string | number, D>(\n {\n children,\n data,\n onLoadMore = () => {},\n hasMore = false,\n getRowKey,\n currentKey,\n onCurrentKeyChange,\n selectionMode = 'none',\n selectedKeys = emptyKeys as Keys<K>,\n onSelectionChange,\n onReorder,\n viewportConfig,\n focusBehavior = 'card',\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n initialAnimation = 'slideUp',\n gutterSize = 'sm',\n columns,\n layout,\n cardSize,\n updateCardSize\n }: BaseCardViewImplProps<K, D>,\n ref?: ForwardedRef<HTMLDivElement>\n ) => {\n const rootRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(ref!, () => rootRef.current!, [rootRef]);\n\n // tracking the anchor key which is used for shift+click selection\n const anchorKey = useRef<K | undefined>();\n // tracking pending current key in pointer down event\n const pendingCurrentKey = useRef<K>();\n\n const gutterSizePX = gutterSizeToPX[gutterSize];\n const layoutProps = { layout, columns, gutterSize };\n const isInitialAnimation = useRef(true);\n useEffect(() => {\n if (cardSize.height != undefined && cardSize.width != undefined) {\n isInitialAnimation.current = false;\n }\n }, [cardSize]);\n\n const ariaMultiSelectable = selectionMode === 'none' ? undefined : selectionMode === 'multiple';\n const ariaRowcount = hasMore || !data || columns < 1 ? -1 : Math.ceil(data?.length / columns);\n const ariaColcount = columns < 1 ? -1 : columns;\n\n const [isFocusBehaviorValid, setIsFocusBehaviorValid] = useState(true);\n const validFocusBehavior = isFocusBehaviorValid ? focusBehavior : 'card';\n\n // ensure current item is scrolled into view when current item is updated\n // during reordering, enable that during keyboard reordering, disable that during mouse reordering\n const scrollCurrItemIntoView = useRef(false);\n const isReorderEnabled = onReorder != undefined;\n\n const isFetching = useRef(false);\n\n /*****************************************************************************************/\n /************************************* Tabbable Mode *************************************/\n /*****************************************************************************************/\n\n const [isCurrentTabbableKey, tabbableModeProps] = useTabbableModeSet(\n rootRef,\n (element) => {\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n currentKey,\n onCurrentKeyChange\n );\n\n /*****************************************************************************************/\n /********************************* Current Key and Focus *********************************/\n /*****************************************************************************************/\n\n const { currentKeyProps } = useCurrentKey(\n (element) => keyExtractor(element, ITEM_SELECTOR),\n selectionMode !== 'multiple',\n // init a function every time to make sure we pass in the latest columns,\n // otherwise the new key might be wrong after resize\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, -columns),\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, columns),\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, -1),\n () => getPrevNextKeyByCount(data, getRowKey, currentKey, 1),\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight'\n ]);\n\n const handleFocus = () => {\n // handle initial focus\n if (\n !isKeyDefined(currentKey) &&\n onCurrentKeyChange &&\n isCurrentTabbableKey(undefined) &&\n rootRef.current\n ) {\n const firstKey =\n pendingCurrentKey.current || (getFirstVisibleKey(rootRef.current, ITEM_SELECTOR) as K);\n if (isKeyDefined(firstKey)) {\n onCurrentKeyChange({ value: firstKey });\n }\n } else if (isKeyDefined(currentKey) && rootRef.current) {\n // if currentKey is defined, make sure scroll the current item into view when cardview regains focus\n const elem = findElementByKey(rootRef.current, currentKey as K, ITEM_SELECTOR);\n elem?.scrollIntoView({ block: 'nearest' });\n }\n };\n\n // need to track pointer down element to set currentItem when initial focus happens\n const handlePointerDown = (event: PointerEvent) => {\n const key = keyExtractor(event.target as HTMLElement, ITEM_SELECTOR);\n if (isKeyDefined(key)) {\n pendingCurrentKey.current = key as K;\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n // for content focusBehavior, when users tab out, we need to focus back to card grid, to ensure\n // the tabbing order works properly, otherwise the focus might get stuck at the current item\n if (validFocusBehavior === 'content' && event.key === 'Tab') {\n rootRef.current?.focus({ preventScroll: true });\n }\n // during keyboard reordering, the current item should be scrolled into view\n const keyHandlers = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];\n if (\n isReorderEnabled &&\n (event.metaKey || event.ctrlKey) &&\n event.shiftKey &&\n keyHandlers.includes(event.key)\n ) {\n scrollCurrItemIntoView.current = true;\n }\n };\n\n useEffect(() => {\n if (currentKey != null && rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey, ITEM_SELECTOR);\n if (elem) {\n // only update aria-activedescendant for screen reader in default focusBehavior\n if (validFocusBehavior === 'card') {\n const cell = elem.closest(`[role=gridcell]`);\n const activeDescendant = rootRef.current.getAttribute('aria-activedescendant');\n if (cell && activeDescendant !== cell.id) {\n rootRef.current.setAttribute('aria-activedescendant', cell.id);\n scrollCurrItemIntoView.current = true;\n }\n }\n // make sure current item is visible\n if (scrollCurrItemIntoView.current) {\n elem.scrollIntoView({ block: 'nearest' });\n scrollCurrItemIntoView.current = false;\n }\n }\n }\n // listen to data because the current item would re-render when data is updated, i.e. the id\n // of current item would be updated, so the currentKey itself couldn't guarantee the root has\n // the latest aria-activedescendant\n }, [currentKey, data, validFocusBehavior, isReorderEnabled]);\n\n /*****************************************************************************************/\n /*************************************** Selection ***************************************/\n /*****************************************************************************************/\n\n const handleSelectionChange = useCallback(\n (detail: SelectionDetail<K>) => {\n if (onSelectionChange) {\n if (detail.value.all === false && detail.value.keys.size > 0) {\n // during regular selection, the last key selected by a user gesture is the anchor key\n anchorKey.current = Array.from(detail.value.keys.values()).pop();\n }\n onSelectionChange(detail);\n }\n },\n [anchorKey, onSelectionChange]\n );\n\n const handleSelectionRangeChange = useCallback(\n (detail: SelectionRangeDetail<K>) => {\n if (data && onSelectionChange) {\n const value = handleSelectionRange(detail, data, getRowKey);\n // for non-virtualized CardView, value should always be an array\n if (Array.isArray(value)) {\n if (detail.eventType === 'shiftSpace') {\n // during range selection by shift+space, the first key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.start;\n } else {\n // during range selection by shift+click/arrow keys, the last key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.end;\n }\n onSelectionChange({ value: { all: false, keys: new Set(value) }, target: null });\n }\n }\n },\n [data, onSelectionChange, getRowKey]\n );\n\n const { selectionProps } = useSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n selectedKeys,\n selectionMode,\n false,\n 'toggle',\n false,\n handleSelectionChange,\n anchorKey.current,\n currentKey,\n (currentKey: K | undefined, isPrev: boolean) => () =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -columns : columns),\n (currentKey: K | undefined, isPrev: boolean) => () =>\n getPrevNextKeyByCount(data, getRowKey, currentKey, isPrev ? -1 : 1),\n (key: K) => {\n if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, key, ITEM_SELECTOR);\n if (elem) {\n elem.scrollIntoView({ block: 'nearest' });\n }\n }\n },\n handleSelectionRangeChange\n );\n\n /*****************************************************************************************/\n /**************************************** Reorder ****************************************/\n /*****************************************************************************************/\n\n const {\n reorderProps,\n reorderItemProps,\n reorderContext,\n reorderInstructionsId,\n reorderInstructions\n } = useCardViewReorder({\n currentKey,\n onReorder,\n gutterSize,\n columns,\n rootRef,\n scrollCurrItemIntoView\n });\n\n const reorderAcc = isReorderEnabled && (\n <>\n <span id={reorderInstructionsId}>\n <HiddenAccessible>{reorderInstructions}</HiddenAccessible>\n </span>\n </>\n );\n\n /*****************************************************************************************/\n /************************************* Load More *****************************************/\n /*****************************************************************************************/\n\n const handleLoadMore = useCallback(() => {\n // check isFetching to avoid multiple load more at the same time (details in JET-61117)\n if (!isFetching.current) {\n isFetching.current = true;\n onLoadMore();\n }\n }, [isFetching, onLoadMore]);\n\n useEffect(() => {\n isFetching.current = false;\n // listen to data and hasMore because when one of them gets updated, the fetching is done\n }, [data, hasMore]);\n\n /*****************************************************************************************/\n /************************************ Child Component ************************************/\n /*****************************************************************************************/\n\n const getItemContext = useCallback(\n (context: ItemContext<D>) => {\n const key = getRowKey(context.data);\n const selectorRenderer =\n selectionMode === 'multiple'\n ? () => (\n <Selector\n onChange={onSelectionChange}\n rowKey={key}\n selectedKeys={selectedKeys}></Selector>\n )\n : undefined;\n\n return {\n index: context.index,\n data: context.data,\n metadata: { key: key },\n selector: selectorRenderer,\n isSelected: containsKey(selectedKeys, key)\n };\n },\n [selectionMode, selectedKeys, onSelectionChange, getRowKey]\n );\n\n const childrenComponent = (context: ItemContext<D>) => {\n const cardItemContext = getItemContext(context);\n const isTabbable = isCurrentTabbableKey(cardItemContext.metadata.key);\n const isFocused = currentKey === cardItemContext.metadata.key && !isTabbable;\n const isFocusRingVisible = isFocused && showFocusRing;\n const isSelected = cardItemContext.isSelected;\n const itemRenderFunc = (context: ListItemRendererContext<K, D>) => (\n <MemoizeBaseCardViewItem\n key={cardItemContext.metadata.key}\n context={context}\n isTabbable={isTabbable}\n isFocused={isFocused}\n isFocusRingVisible={isFocusRingVisible}\n isGridLayout={layout === 'grid'}\n isSelected={isSelected}\n selectionMode={selectionMode}\n focusBehavior={validFocusBehavior}\n {...(focusBehavior === 'content' && { setIsFocusBehaviorValid })}\n {...(isInitialAnimation.current && { initialAnimation })}\n {...(cardItemContext.index === 0 && !cardSize.width && { updateCardSize })}\n {...(isReorderEnabled && { reorderItemProps })}>\n {children}\n </MemoizeBaseCardViewItem>\n );\n return itemRenderFunc(cardItemContext);\n };\n\n // todo: issue track in JET-57952, need a way to show the skeletons in keyboard navigation\n const skeletons =\n data && !data.length && hasMore ? (\n <DefaultLoadMoreSkeletons layout={layout} />\n ) : (\n <LoadMoreSkeletons\n layout={layout}\n colCount={columns}\n totalCount={data?.length || 0}\n cardWidth={cardSize.width}\n cardHeight={cardSize.height}\n />\n );\n\n viewportConfig = getViewportConfig(rootRef, viewportConfig);\n const collectionComponent = (\n <div role=\"row\">\n <BaseCardViewLayout {...layoutProps}>\n <LoadMoreCollection\n data={data}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loadMoreIndicator={skeletons}\n loadMoreThreshold={gutterSizePX + 4} // gap size + padding\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </LoadMoreCollection>\n </BaseCardViewLayout>\n </div>\n );\n\n const initialLoadSkeletons = (\n <BaseCardViewLayout {...layoutProps}>\n <InitialLoadSkeletons layout={layout} />\n </BaseCardViewLayout>\n );\n\n return (\n <div\n {...mergeProps(\n currentKeyProps,\n focusRingProps,\n selectionProps,\n reorderProps,\n {\n onFocus: handleFocus,\n onPointerDown: handlePointerDown,\n onKeyDown: handleKeyDown\n },\n // only enable tabbable mode in default focusBehavior\n { ...(validFocusBehavior === 'card' && tabbableModeProps) }\n )}\n ref={rootRef}\n role=\"grid\"\n class={styles.baseStyle}\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-multiselectable={ariaMultiSelectable}\n aria-rowcount={ariaRowcount}\n aria-colcount={ariaColcount}>\n <ReorderableContext.Provider value={reorderContext}>\n {!data ? (\n initialLoadSkeletons\n ) : data.length || hasMore ? (\n collectionComponent\n ) : (\n <Fragment />\n )}\n </ReorderableContext.Provider>\n {reorderAcc}\n </div>\n );\n }\n);\n\n/**\n * Props specific for the BaseCardView\n */\ntype BaseCardViewProps<K, D> = BaseCardViewImplProps<K, D> & {\n ref?: ForwardedRef<HTMLDivElement>;\n};\n\n/**\n * Cast BaseCardViewImpl to generic type, because BaseCardViewImpl would infer the generic type to specific type,\n * i.e infer <K extends string | number, D> to <string | number, unknown>, which will cause type issues in the parent component\n */\nexport const BaseCardView = BaseCardViewImpl as <K extends string | number, D>(\n props: BaseCardViewProps<K, D>\n) => JSX.Element;\n"],"names":["useRef","multiVariantStyles","styles","useCallback","ITEM_SELECTOR","useReorderableItem","useUser","classNames","_jsxs","_Fragment","_jsx","useResizeObserver","useLayoutEffect","allTabbableElements","warn","useAnimation","useEffect","useMemo","mergeRefs","useId","TabbableModeContext","FocusTrap","memo","compareListItemContext","cardViewVars","Grid","Flex","useState","Fragment","LOADMORE_STYLE_CLASS","Skeleton","useReorderable","dragToScroll","forwardRef","useImperativeHandle","useTabbableModeSet","keyExtractor","useCurrentKey","getPrevNextKeyByCount","useCollectionFocusRing","isKeyDefined","getFirstVisibleKey","findElementByKey","handleSelectionRange","useSelection","HiddenAccessible","Selector","containsKey","getViewportConfig","LoadMoreCollection","mergeProps","ReorderableContext"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  var jsxRuntime = require('preact/jsx-runtime');
5
5
  var hooks = require('preact/hooks');
6
6
  var useResizeObserver = require('./useResizeObserver-819b1236.js');
7
- var BaseCardView = require('./BaseCardView-b5471a69.js');
7
+ var BaseCardView = require('./BaseCardView-55bc5e6f.js');
8
8
 
9
9
  function CardFlexView(props) {
10
10
  const rootRef = hooks.useRef(null);
@@ -26,4 +26,4 @@ function CardFlexView(props) {
26
26
  }
27
27
 
28
28
  exports.CardFlexView = CardFlexView;
29
- //# sourceMappingURL=CardFlexView-075d4013.js.map
29
+ //# sourceMappingURL=CardFlexView-ae79f8f1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardFlexView-075d4013.js","sources":["../../src/UNSAFE_CardFlexView/CardFlexView.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'preact/hooks';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\nimport { BaseCardView, gutterSizeToPX, getColCount } from '../PRIVATE_BaseCardView';\nimport { BaseCardViewPublicProps as Props } from './BaseCardView.types';\n\ntype CardFlexViewProps<K extends string | number, D> = Props<K, D>;\ntype SizeInfo = {\n cardWidth?: number;\n cardHeight?: number;\n containerWidth?: number;\n};\n\nexport function CardFlexView<K extends string | number, D>(props: CardFlexViewProps<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState<SizeInfo>({});\n const updateCardSize = (cardWidth: number, cardHeight: number) => {\n setSize((size) => ({ ...size, cardWidth, cardHeight }));\n };\n\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n const containerWidth = entry.contentRect.width;\n if (size.containerWidth !== containerWidth) {\n setSize((size) => ({ ...size, containerWidth }));\n }\n },\n [size]\n );\n useResizeObserver(rootRef, handleResize);\n\n const gutterSizePX = gutterSizeToPX[props.gutterSize || 'sm'];\n const columns = getColCount(gutterSizePX, size.cardWidth, size.containerWidth);\n const cardSize = { width: size.cardWidth, height: size.cardHeight };\n\n return (\n <BaseCardView\n {...props}\n ref={rootRef}\n layout=\"flex\"\n columns={columns}\n cardSize={cardSize}\n updateCardSize={updateCardSize}\n />\n );\n}\n"],"names":["useRef","useState","useCallback","useResizeObserver","gutterSizeToPX","getColCount","_jsx","BaseCardView"],"mappings":";;;;;;;;AAYM,SAAU,YAAY,CAA+B,KAA8B,EAAA;AACvF,IAAA,MAAM,OAAO,GAAGA,YAAM,CAAiB,IAAI,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAW,EAAE,CAAC,CAAC;AAC/C,IAAA,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,UAAkB,KAAI;AAC/D,QAAA,OAAO,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAC,CAAC;AAEF,IAAA,MAAM,YAAY,GAAGC,iBAAW,CAC9B,CAAC,KAA0B,KAAI;AAC7B,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,EAAE;AAC1C,YAAA,OAAO,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;SAClD;AACH,KAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;AACF,IAAAC,mCAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,YAAY,GAAGC,2BAAc,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;AAC9D,IAAA,MAAM,OAAO,GAAGC,wBAAW,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/E,IAAA,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAEpE,QACEC,cAAC,CAAAC,yBAAY,EACP,EAAA,GAAA,KAAK,EACT,GAAG,EAAE,OAAO,EACZ,MAAM,EAAC,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,CAAA,EACF;AACJ;;;;"}
1
+ {"version":3,"file":"CardFlexView-ae79f8f1.js","sources":["../../src/UNSAFE_CardFlexView/CardFlexView.tsx"],"sourcesContent":["import { useCallback, useRef, useState } from 'preact/hooks';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\nimport { BaseCardView, gutterSizeToPX, getColCount } from '../PRIVATE_BaseCardView';\nimport { BaseCardViewPublicProps as Props } from './BaseCardView.types';\n\ntype CardFlexViewProps<K extends string | number, D> = Props<K, D>;\ntype SizeInfo = {\n cardWidth?: number;\n cardHeight?: number;\n containerWidth?: number;\n};\n\nexport function CardFlexView<K extends string | number, D>(props: CardFlexViewProps<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState<SizeInfo>({});\n const updateCardSize = (cardWidth: number, cardHeight: number) => {\n setSize((size) => ({ ...size, cardWidth, cardHeight }));\n };\n\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n const containerWidth = entry.contentRect.width;\n if (size.containerWidth !== containerWidth) {\n setSize((size) => ({ ...size, containerWidth }));\n }\n },\n [size]\n );\n useResizeObserver(rootRef, handleResize);\n\n const gutterSizePX = gutterSizeToPX[props.gutterSize || 'sm'];\n const columns = getColCount(gutterSizePX, size.cardWidth, size.containerWidth);\n const cardSize = { width: size.cardWidth, height: size.cardHeight };\n\n return (\n <BaseCardView\n {...props}\n ref={rootRef}\n layout=\"flex\"\n columns={columns}\n cardSize={cardSize}\n updateCardSize={updateCardSize}\n />\n );\n}\n"],"names":["useRef","useState","useCallback","useResizeObserver","gutterSizeToPX","getColCount","_jsx","BaseCardView"],"mappings":";;;;;;;;AAYM,SAAU,YAAY,CAA+B,KAA8B,EAAA;AACvF,IAAA,MAAM,OAAO,GAAGA,YAAM,CAAiB,IAAI,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAW,EAAE,CAAC,CAAC;AAC/C,IAAA,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,UAAkB,KAAI;AAC/D,QAAA,OAAO,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAC,CAAC;AAEF,IAAA,MAAM,YAAY,GAAGC,iBAAW,CAC9B,CAAC,KAA0B,KAAI;AAC7B,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,EAAE;AAC1C,YAAA,OAAO,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;SAClD;AACH,KAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;AACF,IAAAC,mCAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,YAAY,GAAGC,2BAAc,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;AAC9D,IAAA,MAAM,OAAO,GAAGC,wBAAW,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/E,IAAA,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IAEpE,QACEC,cAAC,CAAAC,yBAAY,EACP,EAAA,GAAA,KAAK,EACT,GAAG,EAAE,OAAO,EACZ,MAAM,EAAC,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,CAAA,EACF;AACJ;;;;"}
@@ -3,7 +3,7 @@
3
3
 
4
4
  var jsxRuntime = require('preact/jsx-runtime');
5
5
  var hooks = require('preact/hooks');
6
- var BaseCardView = require('./BaseCardView-b5471a69.js');
6
+ var BaseCardView = require('./BaseCardView-55bc5e6f.js');
7
7
 
8
8
  function CardGridView(props) {
9
9
  const [cardSize, setCardSize] = hooks.useState({});
@@ -14,4 +14,4 @@ function CardGridView(props) {
14
14
  }
15
15
 
16
16
  exports.CardGridView = CardGridView;
17
- //# sourceMappingURL=CardGridView-3c07cf2a.js.map
17
+ //# sourceMappingURL=CardGridView-4936ffd6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardGridView-3c07cf2a.js","sources":["../../src/UNSAFE_CardGridView/CardGridView.tsx"],"sourcesContent":["import { useState } from 'preact/hooks';\nimport { BaseCardView } from '../PRIVATE_BaseCardView';\nimport { Props } from '../UNSAFE_CardFlexView';\n\ntype CardGridProps<K extends string | number, D> = Props<K, D> & {\n /**\n * Provide the number of columns to render. The number of columns is required for CardGridView component.\n * If the number of columns is not provided, please use CardFlexView component.\n */\n columns: number;\n};\n\nexport function CardGridView<K extends string | number, D>(props: CardGridProps<K, D>) {\n const [cardSize, setCardSize] = useState<{ width?: number; height?: number }>({});\n const updateCardSize = (width: number, height: number) => {\n setCardSize({ width, height });\n };\n\n return (\n <BaseCardView {...props} layout=\"grid\" cardSize={cardSize} updateCardSize={updateCardSize} />\n );\n}\n"],"names":["useState","_jsx","BaseCardView"],"mappings":";;;;;;;AAYM,SAAU,YAAY,CAA+B,KAA0B,EAAA;IACnF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAsC,EAAE,CAAC,CAAC;AAClF,IAAA,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,KAAI;AACvD,QAAA,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACjC,KAAC,CAAC;AAEF,IAAA,QACEC,cAAC,CAAAC,yBAAY,OAAK,KAAK,EAAE,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAA,CAAI,EAC7F;AACJ;;;;"}
1
+ {"version":3,"file":"CardGridView-4936ffd6.js","sources":["../../src/UNSAFE_CardGridView/CardGridView.tsx"],"sourcesContent":["import { useState } from 'preact/hooks';\nimport { BaseCardView } from '../PRIVATE_BaseCardView';\nimport { Props } from '../UNSAFE_CardFlexView';\n\ntype CardGridProps<K extends string | number, D> = Props<K, D> & {\n /**\n * Provide the number of columns to render. The number of columns is required for CardGridView component.\n * If the number of columns is not provided, please use CardFlexView component.\n */\n columns: number;\n};\n\nexport function CardGridView<K extends string | number, D>(props: CardGridProps<K, D>) {\n const [cardSize, setCardSize] = useState<{ width?: number; height?: number }>({});\n const updateCardSize = (width: number, height: number) => {\n setCardSize({ width, height });\n };\n\n return (\n <BaseCardView {...props} layout=\"grid\" cardSize={cardSize} updateCardSize={updateCardSize} />\n );\n}\n"],"names":["useState","_jsx","BaseCardView"],"mappings":";;;;;;;AAYM,SAAU,YAAY,CAA+B,KAA0B,EAAA;IACnF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAsC,EAAE,CAAC,CAAC;AAClF,IAAA,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,KAAI;AACvD,QAAA,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACjC,KAAC,CAAC;AAEF,IAAA,QACEC,cAAC,CAAAC,yBAAY,OAAK,KAAK,EAAE,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAA,CAAI,EAC7F;AACJ;;;;"}
@@ -16,7 +16,7 @@ var PRIVATE_List_themes_ListStyles_css = require('./PRIVATE_List/themes/ListStyl
16
16
  var UNSAFE_GroupedList_themes_redwood_GroupedListTheme = require('./UNSAFE_GroupedList/themes/redwood/GroupedListTheme.js');
17
17
  var Flex = require('./Flex-ce16a2fa.js');
18
18
  var Skeleton = require('./Skeleton-ef5ed022.js');
19
- var List = require('./List-5374e621.js');
19
+ var List = require('./List-2baf37ae.js');
20
20
 
21
21
  // default style class for items in ListView
22
22
  const GROUP_SELECTOR = '[data-oj-listview-group]';
@@ -13,12 +13,12 @@ var collectionUtils = require('./collectionUtils-1535080e.js');
13
13
  var useId = require('./useId-6c0eeb27.js');
14
14
  var useTranslationBundle = require('./useTranslationBundle-6b0281a9.js');
15
15
  var HiddenAccessible = require('./HiddenAccessible-087eb49a.js');
16
+ var Collection = require('./Collection-9880039f.js');
16
17
  var classNames = require('./classNames-c14c6ef3.js');
17
18
  var compat = require('preact/compat');
18
19
  var useComponentTheme = require('./useComponentTheme-082fc8e4.js');
19
20
  var UNSAFE_Indexer_themes_redwood_IndexerTheme = require('./UNSAFE_Indexer/themes/redwood/IndexerTheme.js');
20
21
  var useTestId = require('./useTestId-e267a39d.js');
21
- var Collection = require('./Collection-9880039f.js');
22
22
 
23
23
  /**
24
24
  * The others section variable that application could use
@@ -336,4 +336,4 @@ function getIndexerDescription(translations) {
336
336
 
337
337
  exports.Indexer = Indexer;
338
338
  exports.SECTION_OTHERS = SECTION_OTHERS;
339
- //# sourceMappingURL=Indexer-8ba89fa5.js.map
339
+ //# sourceMappingURL=Indexer-1dfa7ec4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Indexer-8ba89fa5.js","sources":["../../src/UNSAFE_Indexer/IndexerItems.tsx","../../src/UNSAFE_Indexer/Indexer.tsx"],"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 */\nimport { Fragment } from 'preact';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Flex } from '../UNSAFE_Flex';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\nimport { ItemContext } from 'src/UNSAFE_Collection';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { IndexerStyles, IndexerItemVariantOptions } from './themes/IndexerStyles.css';\nimport { IndexerRedwoodTheme } from './themes/redwood/IndexerTheme';\n\n/**\n * Type of a section\n */\nexport type Section<K> = {\n /**\n * The key of each section\n */\n key: K;\n /**\n * The label of each section\n */\n label?: string;\n /**\n * A property that indicates whether the section\n * is disabled or not. Typically, when Indexer is\n * used with ListView, a disabled section implies\n * that there's no corresponding items in the ListView\n */\n isDisabled?: boolean;\n};\n\n/**\n * The others section variable that application could use\n * to compare value\n */\n// const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\nexport const SECTION_OTHERS: Section<string> = Object.freeze({\n key: '__others__',\n label: '#'\n});\n\nexport const ITEM_SELECTOR = '[data-oj-key]';\n\nexport type SectionProps<K> = {\n context: ItemContext<Section<K>>;\n currentKey: K;\n selectedKey: K;\n valueNow: number; // the index of an item within currently visible sections\n isFocusRingVisible: boolean;\n};\n\nexport const SectionItem = forwardRef(\n <K extends string | number>(props: SectionProps<K>, ref: ForwardedRef<HTMLLIElement>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const { context, selectedKey } = props;\n const isSelected = context.data.key === selectedKey;\n const commonProps = getCommonProps(props, ref);\n\n const { classes } = useComponentTheme<IndexerItemVariantOptions, IndexerStyles>(\n IndexerRedwoodTheme,\n {\n focused: commonProps.ref && commonProps.isFocusRingVisible ? 'isFocused' : 'notFocused',\n disabled: context.data.isDisabled ? 'isDisabled' : 'notDisabled',\n selected: isSelected ? 'isSelected' : 'notSelected'\n }\n );\n const itemClasses = classNames([classes]);\n\n const sectionLabel = context.data.label || context.data.key;\n const valueText = context.data.isDisabled\n ? translations.indexer_disabledLabel({ SECTION: `${sectionLabel}` })\n : `${sectionLabel}`;\n\n return (\n <li\n {...commonProps}\n class={itemClasses}\n data-oj-valuetext={valueText}\n data-oj-disabled={context.data.isDisabled}>\n {context.data.label || context.data.key}\n </li>\n );\n }\n);\n\nfunction getCommonProps<K>(\n { context, currentKey, valueNow, isFocusRingVisible }: SectionProps<K>,\n ref: ForwardedRef<HTMLLIElement>\n) {\n const isCurrent = context.data.key === currentKey;\n return {\n ...(isCurrent && { ref }),\n key: context.data.key,\n 'data-oj-key': context.data.key,\n 'data-oj-key-type': typeof context.data.key,\n 'data-oj-valuenow': valueNow,\n isFocusRingVisible: !!isFocusRingVisible\n };\n}\n\ntype LastSectionProps<K> = SectionProps<K> & {\n lastValueNow: number;\n};\n\n// render the last section, that contains the last character and others character\nexport const LastSectionItem = forwardRef(\n <K extends string | number>(\n { lastValueNow, ...sectionProps }: LastSectionProps<K>,\n ref: ForwardedRef<HTMLLIElement>\n ) => {\n const commonProps = { ...sectionProps, ref };\n return (\n <Fragment>\n <SectionItem {...commonProps} />\n <OthersItem\n {...commonProps}\n ref={ref}\n context={{ index: -1, data: SECTION_OTHERS } as ItemContext<Section<K>>}\n valueNow={lastValueNow}\n />\n </Fragment>\n );\n }\n);\n\nconst OthersItem = forwardRef(<K,>(props: SectionProps<K>, ref: ForwardedRef<HTMLLIElement>) => {\n const { context, selectedKey } = props;\n const commonProps = getCommonProps(props, ref);\n\n const isSelected = context.data.key === selectedKey;\n const { classes } = useComponentTheme<IndexerItemVariantOptions>(IndexerRedwoodTheme, {\n focused: commonProps.ref && commonProps.isFocusRingVisible ? 'isFocused' : 'notFocused',\n selected: isSelected ? 'isSelected' : 'notSelected'\n });\n const othersClasses = classNames([classes]);\n const othersValueText = SECTION_OTHERS.label;\n\n return (\n <li {...commonProps} class={othersClasses} data-oj-valuetext={othersValueText}>\n {context.data.label}\n </li>\n );\n});\n\ntype SeparatorProps<K> = SectionProps<K> & {\n sectionsPerTruncation: number;\n last: number;\n sections: Section<K>[];\n};\n\nexport const SeparatorItem = forwardRef(\n <K extends string | number>(props: SeparatorProps<K>, ref: ForwardedRef<HTMLLIElement>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const { context, sections } = props;\n const commonProps = getCommonProps(props, ref);\n const { from, to } = getSeparatorRange(props);\n const {\n classes,\n styles: { dotStyle }\n } = useComponentTheme<IndexerItemVariantOptions, IndexerStyles>(IndexerRedwoodTheme, {\n focused: commonProps.ref && commonProps.isFocusRingVisible ? 'isFocused' : 'notFocused'\n });\n\n if (!isInSeparatorMiddle(context.index, from, to)) {\n return null;\n }\n\n const fromText = sections[from].label || sections[from].key;\n const toText = sections[to].label || sections[to].key;\n\n const separatorClasses = classNames([classes]);\n\n const separatorValueText = translations.indexer_separatorLabel({\n FROM_SECTION: `${fromText}`,\n TO_SECTION: `${toText}`\n });\n\n return (\n <li {...commonProps} class={separatorClasses} data-oj-valuetext={separatorValueText}>\n <Flex align=\"center\" justify=\"center\">\n <div class={dotStyle}></div>\n </Flex>\n </li>\n );\n }\n);\n\nexport function hasSeparator<K>(props: SeparatorProps<K>) {\n const { from, to } = getSeparatorRange(props);\n return isInSeparatorMiddle(props.context.index, from, to);\n}\n\nfunction getSeparatorRange<K>({ context, sectionsPerTruncation, last }: SeparatorProps<K>) {\n const from = context.index - (context.index % sectionsPerTruncation) + 1;\n let to = from + sectionsPerTruncation - 2;\n to = to >= last ? last - 1 : to;\n\n return { from, to };\n}\n\nfunction isInSeparatorMiddle(index: number, from: number, to: number) {\n return index === Math.floor((from + to) / 2);\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 */\nimport { ComponentChildren, createRef, RefObject } from 'preact';\nimport { useEffect, useRef, useState, StateUpdater, useCallback, Dispatch } from 'preact/hooks';\nimport { Flex } from '../UNSAFE_Flex';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useSingleSelection } from '../hooks/PRIVATE_useSingleSelection/useSingleSelection';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { keyExtractor, getPrevNextKey, isMobile } from '../utils/PRIVATE_collectionUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { ItemContext, CurrentKeyDetail, SingleSelectionDetail } from '../UNSAFE_Collection';\nimport { Collection } from '../PRIVATE_Collection';\nimport {\n Section,\n SectionItem,\n LastSectionItem,\n SeparatorItem,\n SECTION_OTHERS,\n hasSeparator,\n ITEM_SELECTOR\n} from './IndexerItems';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { IndexerStyles } from './themes/IndexerStyles.css';\nimport { IndexerRedwoodTheme } from './themes/redwood/IndexerTheme';\nimport { useTestId, TestIdProps } from '../hooks/UNSAFE_useTestId';\n\nexport type CommitDetail<K> = {\n value: K;\n};\n\ntype Props<K> = {\n /**\n * An array of sections, the default sections is an\n * array of 26 English alphabets and the # others character\n */\n sections?: Section<K>[];\n\n /**\n * The currently selected Section\n */\n value?: K;\n\n /**\n * A function that will be invoked when selection happens,\n * no matter the Section was selected before or not.\n */\n onCommit?: (detail: CommitDetail<K>) => void;\n};\n\nconst defaultSections: Section<string>[] = [\n { key: 'A' },\n { key: 'B' },\n { key: 'C' },\n { key: 'D' },\n { key: 'E' },\n { key: 'F' },\n { key: 'G' },\n { key: 'H' },\n { key: 'I' },\n { key: 'J' },\n { key: 'K' },\n { key: 'L' },\n { key: 'M' },\n { key: 'N' },\n { key: 'O' },\n { key: 'P' },\n { key: 'Q' },\n { key: 'R' },\n { key: 'S' },\n { key: 'T' },\n { key: 'U' },\n { key: 'V' },\n { key: 'W' },\n { key: 'X' },\n { key: 'Y' },\n { key: 'Z' }\n];\n\n/**\n * Pure Preact based component that consumes Collection component\n * and renders an indexer.\n */\nexport function Indexer<K extends string | number>({\n sections = defaultSections as Section<K>[],\n value,\n onCommit = () => {},\n testId\n}: Props<K> & TestIdProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const ulRef = useRef<HTMLUListElement>(null);\n const currElementRef = createRef<HTMLLIElement>();\n const [current, setCurrent] = useState<K | undefined>(sections[0]?.key);\n // the number of sections in each truncation\n const [sectionsPerTruncation, setSectionsPerTruncation] = useState<number>(-1);\n // the total number of rendered sections and separators\n const renderedSectionsCount = useRef<number>(-1);\n const itemHeightRef = useRef<number>(0);\n // the id for aria describedby\n const uniqueId = useId();\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, ['ArrowUp', 'ArrowDown']);\n\n const { currentKeyProps } = useCurrentKey(\n (element) => keyExtractor(element, ITEM_SELECTOR),\n true,\n getPrevNextKey(rootRef.current, current, true, ITEM_SELECTOR),\n getPrevNextKey(rootRef.current, current, false, ITEM_SELECTOR),\n undefined,\n undefined,\n current,\n (detail: CurrentKeyDetail<K>) => setCurrent(detail.value)\n );\n\n const { selectionProps } = useSingleSelection(\n (element) => handleKeyExtract(element, ulRef, current as K),\n // pass in undefined so onCommit handler will be called\n // no matter whether the Section was selected before or not\n undefined,\n (detail: SingleSelectionDetail<K>) => handleSelection(detail, onCommit, sections)\n );\n\n /**\n * Item renderer that will return a section item or a section separator\n * based on the sectionsPerTruncation and item context index.\n * @param context item context\n */\n const itemRenderer = (context: ItemContext<Section<K>>): ComponentChildren => {\n const last = sections.length - 1;\n renderedSectionsCount.current += 1;\n\n const commonProps = {\n context,\n ref: currElementRef,\n currentKey: current as K,\n selectedKey: value as K,\n valueNow: renderedSectionsCount.current,\n isFocusRingVisible: !!showFocusRing\n };\n\n // render the last and the others character, they are always present\n if (context.index === last) {\n return <LastSectionItem {...commonProps} lastValueNow={renderedSectionsCount.current + 1} />;\n }\n\n // render a section, in the non-truncation case or when it is the first in a truncation\n if (sectionsPerTruncation <= 1 || context.index % sectionsPerTruncation === 0) {\n return <SectionItem {...commonProps} />;\n }\n\n // render the separator in the middle of a truncation\n const separatorProps = { ...commonProps, sectionsPerTruncation, last, sections };\n if (hasSeparator(separatorProps)) {\n return <SeparatorItem {...separatorProps} />;\n }\n\n // remove the count for truncated sections\n renderedSectionsCount.current -= 1;\n\n return null;\n };\n\n // truncate the Indexer during resize\n const handleResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n updateSectionsPerTruncation(\n entry.contentRect.height,\n itemHeightRef.current,\n sections.length,\n sections[0]?.key,\n sectionsPerTruncation,\n setSectionsPerTruncation,\n setCurrent\n );\n }\n },\n [sections, sectionsPerTruncation]\n );\n\n useEffect(() => {\n if (ulRef.current) {\n // Get aria values from IndexerItem to update aria values on Indexer ul element\n ulRef.current.setAttribute('aria-valuemax', renderedSectionsCount.current + 1 + '');\n ulRef.current.setAttribute(\n 'aria-valuetext',\n currElementRef.current?.dataset?.['ojValuetext'] || ''\n );\n ulRef.current.setAttribute(\n 'aria-valuenow',\n currElementRef.current?.dataset?.['ojValuenow'] || ''\n );\n }\n renderedSectionsCount.current = -1;\n });\n\n /**\n * Set up the initial values for sectionsPerTruncation and event listeners\n */\n useEffect(() => {\n const root = rootRef.current;\n if (root) {\n itemHeightRef.current = root.querySelector('li')?.offsetHeight || 0;\n updateSectionsPerTruncation(\n root.offsetHeight,\n itemHeightRef.current,\n sections.length,\n sections[0]?.key,\n sectionsPerTruncation,\n setSectionsPerTruncation,\n setCurrent\n );\n }\n }, [sections, sectionsPerTruncation]);\n\n /**\n * Set up resize observer and refresh the resize observer when\n * sectionsPerTruncation is changed, otherwise it will only have the\n * old copy of sectionsPerTruncation.\n */\n useEffect(() => {\n const root = rootRef.current;\n if (root) {\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n resizeObserver.observe(root);\n return () => {\n resizeObserver.unobserve(root);\n };\n }\n return undefined;\n }, [sectionsPerTruncation, handleResize]);\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const {\n styles: { baseStyle, innerStyle }\n } = useComponentTheme<never, IndexerStyles>(IndexerRedwoodTheme);\n const testIdProps = useTestId(testId);\n\n return (\n <div ref={rootRef} class={baseStyle} {...testIdProps}>\n <Flex align=\"center\" width=\"6x\" height=\"100%\">\n <ul\n {...mergeProps(currentKeyProps, focusRingProps, selectionProps)}\n ref={ulRef}\n tabIndex={0}\n aria-label=\"Indexer\"\n aria-orientation=\"vertical\"\n aria-valuemin={0}\n aria-describedby={uniqueId}\n role=\"slider\"\n class={innerStyle}>\n <Collection items={sections}>{itemRenderer}</Collection>\n </ul>\n </Flex>\n <HiddenAccessible>\n <span id={uniqueId}>{getIndexerDescription(translations)}</span>\n </HiddenAccessible>\n </div>\n );\n}\n\n// A function to extract key for selection\nconst handleKeyExtract = <K extends string | number>(\n element: HTMLElement,\n rootRef: RefObject<HTMLElement>,\n current: K\n) => {\n if (element === rootRef.current) {\n return current === undefined ? null : current;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n};\n\nconst handleSelection = <K extends string | number>(\n detail: SingleSelectionDetail<K>,\n onCommit: (value: CommitDetail<K>) => void,\n sections: Section<K>[]\n) => {\n if (detail.value === SECTION_OTHERS.key) {\n onCommit({ value: SECTION_OTHERS.key as K });\n } else {\n const selectedSection = sections.find((section) => section.key === detail.value) as Section<K>;\n onCommit({ value: selectedSection.key as K });\n }\n};\n\n/**\n * A function that calculates the section count, based on\n * the container height and the number of sections\n * @param height height of Indexer container\n */\nconst updateSectionsPerTruncation = <K extends string | number>(\n height: number,\n itemHeight: number,\n sectionsLength: number,\n firstSectionKey: K,\n sectionsPerTruncation: number,\n setSectionsPerTruncation: Dispatch<StateUpdater<number>>,\n setCurrent: Dispatch<StateUpdater<K | undefined>>\n) => {\n if (height === 0 || itemHeight === 0) {\n return;\n }\n\n const maxSections = height / itemHeight;\n const last = sectionsLength - 1;\n\n // when the container size is too small to hold two sections\n if (maxSections < 2) {\n if (sectionsPerTruncation !== last) {\n setSectionsPerTruncation(last);\n setCurrent(firstSectionKey);\n }\n\n // no truncation\n // compare with < 0.01 for the deviation from calculation, when sectionsLength and maxSections\n // are about the same, maxNum === sectionsLength doesn't work\n } else if (maxSections > sectionsLength || sectionsLength - maxSections < 0.01) {\n if (sectionsPerTruncation > 1) {\n setSectionsPerTruncation(1);\n setCurrent(firstSectionKey);\n }\n\n // need truncation\n } else {\n const tempSectionCount = findSectionCount(maxSections, last);\n if (tempSectionCount !== sectionsPerTruncation && tempSectionCount < sectionsLength) {\n setSectionsPerTruncation(tempSectionCount);\n setCurrent(firstSectionKey);\n }\n }\n};\n\n/**\n * A helper function to find the best section count\n * in a truncation\n *\n * @param maxSections maximum number of sections allowed in a truncation\n * @param last the index of last section\n */\nconst findSectionCount = (maxSections: number, last: number) => {\n // need truncation\n maxSections -= 2; // minus the last character and the others character\n maxSections /= 2; // each truncation has a section and a separator\n\n const newSectionCount = Math.round(last / maxSections) + 1;\n const truncationLeftover = last % newSectionCount;\n const truncationCount = Math.floor(last / newSectionCount) + (truncationLeftover > 1 ? 1 : 0);\n\n // When the sectionCount becomes greater, it will result in\n // same truncations but with different sections appearing.\n // The following is to find the best sectionCount in this case\n // and prevent unnecessary truncations.\n let tempLeftover = last - (truncationCount - 1) * newSectionCount;\n let tempSectionCount = newSectionCount;\n while (tempSectionCount > tempLeftover) {\n tempSectionCount -= 1;\n tempLeftover = last - (truncationCount - 1) * tempSectionCount;\n }\n if (tempSectionCount != newSectionCount) {\n tempSectionCount += 1;\n }\n\n return tempSectionCount;\n};\n\n/**\n * Helper function to find the aria description for Indexer,\n * based on whether current device is a mobile device\n */\nfunction getIndexerDescription(translations: any) {\n if (isMobile()) {\n return translations.indexer_touchInstructionText();\n } else {\n return translations.indexer_keyboardInstructionText();\n }\n}\n"],"names":["forwardRef","useTranslationBundle","useComponentTheme","IndexerRedwoodTheme","classNames","_jsx","_jsxs","Fragment","Flex","useRef","createRef","useState","useId","useCollectionFocusRing","useCurrentKey","keyExtractor","getPrevNextKey","useSingleSelection","useCallback","useEffect","useTestId","mergeProps","Collection","HiddenAccessible","isMobile"],"mappings":"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"}
1
+ {"version":3,"file":"Indexer-1dfa7ec4.js","sources":["../../src/UNSAFE_Indexer/IndexerItems.tsx","../../src/UNSAFE_Indexer/Indexer.tsx"],"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 */\nimport { Fragment } from 'preact';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { Flex } from '../UNSAFE_Flex';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\nimport { ItemContext } from 'src/UNSAFE_Collection';\nimport { forwardRef, ForwardedRef } from 'preact/compat';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { IndexerStyles, IndexerItemVariantOptions } from './themes/IndexerStyles.css';\nimport { IndexerRedwoodTheme } from './themes/redwood/IndexerTheme';\n\n/**\n * Type of a section\n */\nexport type Section<K> = {\n /**\n * The key of each section\n */\n key: K;\n /**\n * The label of each section\n */\n label?: string;\n /**\n * A property that indicates whether the section\n * is disabled or not. Typically, when Indexer is\n * used with ListView, a disabled section implies\n * that there's no corresponding items in the ListView\n */\n isDisabled?: boolean;\n};\n\n/**\n * The others section variable that application could use\n * to compare value\n */\n// const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\nexport const SECTION_OTHERS: Section<string> = Object.freeze({\n key: '__others__',\n label: '#'\n});\n\nexport const ITEM_SELECTOR = '[data-oj-key]';\n\nexport type SectionProps<K> = {\n context: ItemContext<Section<K>>;\n currentKey: K;\n selectedKey: K;\n valueNow: number; // the index of an item within currently visible sections\n isFocusRingVisible: boolean;\n};\n\nexport const SectionItem = forwardRef(\n <K extends string | number>(props: SectionProps<K>, ref: ForwardedRef<HTMLLIElement>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const { context, selectedKey } = props;\n const isSelected = context.data.key === selectedKey;\n const commonProps = getCommonProps(props, ref);\n\n const { classes } = useComponentTheme<IndexerItemVariantOptions, IndexerStyles>(\n IndexerRedwoodTheme,\n {\n focused: commonProps.ref && commonProps.isFocusRingVisible ? 'isFocused' : 'notFocused',\n disabled: context.data.isDisabled ? 'isDisabled' : 'notDisabled',\n selected: isSelected ? 'isSelected' : 'notSelected'\n }\n );\n const itemClasses = classNames([classes]);\n\n const sectionLabel = context.data.label || context.data.key;\n const valueText = context.data.isDisabled\n ? translations.indexer_disabledLabel({ SECTION: `${sectionLabel}` })\n : `${sectionLabel}`;\n\n return (\n <li\n {...commonProps}\n class={itemClasses}\n data-oj-valuetext={valueText}\n data-oj-disabled={context.data.isDisabled}>\n {context.data.label || context.data.key}\n </li>\n );\n }\n);\n\nfunction getCommonProps<K>(\n { context, currentKey, valueNow, isFocusRingVisible }: SectionProps<K>,\n ref: ForwardedRef<HTMLLIElement>\n) {\n const isCurrent = context.data.key === currentKey;\n return {\n ...(isCurrent && { ref }),\n key: context.data.key,\n 'data-oj-key': context.data.key,\n 'data-oj-key-type': typeof context.data.key,\n 'data-oj-valuenow': valueNow,\n isFocusRingVisible: !!isFocusRingVisible\n };\n}\n\ntype LastSectionProps<K> = SectionProps<K> & {\n lastValueNow: number;\n};\n\n// render the last section, that contains the last character and others character\nexport const LastSectionItem = forwardRef(\n <K extends string | number>(\n { lastValueNow, ...sectionProps }: LastSectionProps<K>,\n ref: ForwardedRef<HTMLLIElement>\n ) => {\n const commonProps = { ...sectionProps, ref };\n return (\n <Fragment>\n <SectionItem {...commonProps} />\n <OthersItem\n {...commonProps}\n ref={ref}\n context={{ index: -1, data: SECTION_OTHERS } as ItemContext<Section<K>>}\n valueNow={lastValueNow}\n />\n </Fragment>\n );\n }\n);\n\nconst OthersItem = forwardRef(<K,>(props: SectionProps<K>, ref: ForwardedRef<HTMLLIElement>) => {\n const { context, selectedKey } = props;\n const commonProps = getCommonProps(props, ref);\n\n const isSelected = context.data.key === selectedKey;\n const { classes } = useComponentTheme<IndexerItemVariantOptions>(IndexerRedwoodTheme, {\n focused: commonProps.ref && commonProps.isFocusRingVisible ? 'isFocused' : 'notFocused',\n selected: isSelected ? 'isSelected' : 'notSelected'\n });\n const othersClasses = classNames([classes]);\n const othersValueText = SECTION_OTHERS.label;\n\n return (\n <li {...commonProps} class={othersClasses} data-oj-valuetext={othersValueText}>\n {context.data.label}\n </li>\n );\n});\n\ntype SeparatorProps<K> = SectionProps<K> & {\n sectionsPerTruncation: number;\n last: number;\n sections: Section<K>[];\n};\n\nexport const SeparatorItem = forwardRef(\n <K extends string | number>(props: SeparatorProps<K>, ref: ForwardedRef<HTMLLIElement>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const { context, sections } = props;\n const commonProps = getCommonProps(props, ref);\n const { from, to } = getSeparatorRange(props);\n const {\n classes,\n styles: { dotStyle }\n } = useComponentTheme<IndexerItemVariantOptions, IndexerStyles>(IndexerRedwoodTheme, {\n focused: commonProps.ref && commonProps.isFocusRingVisible ? 'isFocused' : 'notFocused'\n });\n\n if (!isInSeparatorMiddle(context.index, from, to)) {\n return null;\n }\n\n const fromText = sections[from].label || sections[from].key;\n const toText = sections[to].label || sections[to].key;\n\n const separatorClasses = classNames([classes]);\n\n const separatorValueText = translations.indexer_separatorLabel({\n FROM_SECTION: `${fromText}`,\n TO_SECTION: `${toText}`\n });\n\n return (\n <li {...commonProps} class={separatorClasses} data-oj-valuetext={separatorValueText}>\n <Flex align=\"center\" justify=\"center\">\n <div class={dotStyle}></div>\n </Flex>\n </li>\n );\n }\n);\n\nexport function hasSeparator<K>(props: SeparatorProps<K>) {\n const { from, to } = getSeparatorRange(props);\n return isInSeparatorMiddle(props.context.index, from, to);\n}\n\nfunction getSeparatorRange<K>({ context, sectionsPerTruncation, last }: SeparatorProps<K>) {\n const from = context.index - (context.index % sectionsPerTruncation) + 1;\n let to = from + sectionsPerTruncation - 2;\n to = to >= last ? last - 1 : to;\n\n return { from, to };\n}\n\nfunction isInSeparatorMiddle(index: number, from: number, to: number) {\n return index === Math.floor((from + to) / 2);\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 */\nimport { ComponentChildren, createRef, RefObject } from 'preact';\nimport { useEffect, useRef, useState, StateUpdater, useCallback, Dispatch } from 'preact/hooks';\nimport { Flex } from '../UNSAFE_Flex';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useSingleSelection } from '../hooks/PRIVATE_useSingleSelection/useSingleSelection';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { keyExtractor, getPrevNextKey, isMobile } from '../utils/PRIVATE_collectionUtils';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '../resources/nls/bundle';\nimport { HiddenAccessible } from '../UNSAFE_HiddenAccessible';\nimport { ItemContext, CurrentKeyDetail, SingleSelectionDetail } from '../UNSAFE_Collection';\nimport { Collection } from '../PRIVATE_Collection';\nimport {\n Section,\n SectionItem,\n LastSectionItem,\n SeparatorItem,\n SECTION_OTHERS,\n hasSeparator,\n ITEM_SELECTOR\n} from './IndexerItems';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { IndexerStyles } from './themes/IndexerStyles.css';\nimport { IndexerRedwoodTheme } from './themes/redwood/IndexerTheme';\nimport { useTestId, TestIdProps } from '../hooks/UNSAFE_useTestId';\n\nexport type CommitDetail<K> = {\n value: K;\n};\n\ntype Props<K> = {\n /**\n * An array of sections, the default sections is an\n * array of 26 English alphabets and the # others character\n */\n sections?: Section<K>[];\n\n /**\n * The currently selected Section\n */\n value?: K;\n\n /**\n * A function that will be invoked when selection happens,\n * no matter the Section was selected before or not.\n */\n onCommit?: (detail: CommitDetail<K>) => void;\n};\n\nconst defaultSections: Section<string>[] = [\n { key: 'A' },\n { key: 'B' },\n { key: 'C' },\n { key: 'D' },\n { key: 'E' },\n { key: 'F' },\n { key: 'G' },\n { key: 'H' },\n { key: 'I' },\n { key: 'J' },\n { key: 'K' },\n { key: 'L' },\n { key: 'M' },\n { key: 'N' },\n { key: 'O' },\n { key: 'P' },\n { key: 'Q' },\n { key: 'R' },\n { key: 'S' },\n { key: 'T' },\n { key: 'U' },\n { key: 'V' },\n { key: 'W' },\n { key: 'X' },\n { key: 'Y' },\n { key: 'Z' }\n];\n\n/**\n * Pure Preact based component that consumes Collection component\n * and renders an indexer.\n */\nexport function Indexer<K extends string | number>({\n sections = defaultSections as Section<K>[],\n value,\n onCommit = () => {},\n testId\n}: Props<K> & TestIdProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const ulRef = useRef<HTMLUListElement>(null);\n const currElementRef = createRef<HTMLLIElement>();\n const [current, setCurrent] = useState<K | undefined>(sections[0]?.key);\n // the number of sections in each truncation\n const [sectionsPerTruncation, setSectionsPerTruncation] = useState<number>(-1);\n // the total number of rendered sections and separators\n const renderedSectionsCount = useRef<number>(-1);\n const itemHeightRef = useRef<number>(0);\n // the id for aria describedby\n const uniqueId = useId();\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, ['ArrowUp', 'ArrowDown']);\n\n const { currentKeyProps } = useCurrentKey(\n (element) => keyExtractor(element, ITEM_SELECTOR),\n true,\n getPrevNextKey(rootRef.current, current, true, ITEM_SELECTOR),\n getPrevNextKey(rootRef.current, current, false, ITEM_SELECTOR),\n undefined,\n undefined,\n current,\n (detail: CurrentKeyDetail<K>) => setCurrent(detail.value)\n );\n\n const { selectionProps } = useSingleSelection(\n (element) => handleKeyExtract(element, ulRef, current as K),\n // pass in undefined so onCommit handler will be called\n // no matter whether the Section was selected before or not\n undefined,\n (detail: SingleSelectionDetail<K>) => handleSelection(detail, onCommit, sections)\n );\n\n /**\n * Item renderer that will return a section item or a section separator\n * based on the sectionsPerTruncation and item context index.\n * @param context item context\n */\n const itemRenderer = (context: ItemContext<Section<K>>): ComponentChildren => {\n const last = sections.length - 1;\n renderedSectionsCount.current += 1;\n\n const commonProps = {\n context,\n ref: currElementRef,\n currentKey: current as K,\n selectedKey: value as K,\n valueNow: renderedSectionsCount.current,\n isFocusRingVisible: !!showFocusRing\n };\n\n // render the last and the others character, they are always present\n if (context.index === last) {\n return <LastSectionItem {...commonProps} lastValueNow={renderedSectionsCount.current + 1} />;\n }\n\n // render a section, in the non-truncation case or when it is the first in a truncation\n if (sectionsPerTruncation <= 1 || context.index % sectionsPerTruncation === 0) {\n return <SectionItem {...commonProps} />;\n }\n\n // render the separator in the middle of a truncation\n const separatorProps = { ...commonProps, sectionsPerTruncation, last, sections };\n if (hasSeparator(separatorProps)) {\n return <SeparatorItem {...separatorProps} />;\n }\n\n // remove the count for truncated sections\n renderedSectionsCount.current -= 1;\n\n return null;\n };\n\n // truncate the Indexer during resize\n const handleResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n for (const entry of entries) {\n updateSectionsPerTruncation(\n entry.contentRect.height,\n itemHeightRef.current,\n sections.length,\n sections[0]?.key,\n sectionsPerTruncation,\n setSectionsPerTruncation,\n setCurrent\n );\n }\n },\n [sections, sectionsPerTruncation]\n );\n\n useEffect(() => {\n if (ulRef.current) {\n // Get aria values from IndexerItem to update aria values on Indexer ul element\n ulRef.current.setAttribute('aria-valuemax', renderedSectionsCount.current + 1 + '');\n ulRef.current.setAttribute(\n 'aria-valuetext',\n currElementRef.current?.dataset?.['ojValuetext'] || ''\n );\n ulRef.current.setAttribute(\n 'aria-valuenow',\n currElementRef.current?.dataset?.['ojValuenow'] || ''\n );\n }\n renderedSectionsCount.current = -1;\n });\n\n /**\n * Set up the initial values for sectionsPerTruncation and event listeners\n */\n useEffect(() => {\n const root = rootRef.current;\n if (root) {\n itemHeightRef.current = root.querySelector('li')?.offsetHeight || 0;\n updateSectionsPerTruncation(\n root.offsetHeight,\n itemHeightRef.current,\n sections.length,\n sections[0]?.key,\n sectionsPerTruncation,\n setSectionsPerTruncation,\n setCurrent\n );\n }\n }, [sections, sectionsPerTruncation]);\n\n /**\n * Set up resize observer and refresh the resize observer when\n * sectionsPerTruncation is changed, otherwise it will only have the\n * old copy of sectionsPerTruncation.\n */\n useEffect(() => {\n const root = rootRef.current;\n if (root) {\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n handleResize(entries);\n });\n resizeObserver.observe(root);\n return () => {\n resizeObserver.unobserve(root);\n };\n }\n return undefined;\n }, [sectionsPerTruncation, handleResize]);\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const {\n styles: { baseStyle, innerStyle }\n } = useComponentTheme<never, IndexerStyles>(IndexerRedwoodTheme);\n const testIdProps = useTestId(testId);\n\n return (\n <div ref={rootRef} class={baseStyle} {...testIdProps}>\n <Flex align=\"center\" width=\"6x\" height=\"100%\">\n <ul\n {...mergeProps(currentKeyProps, focusRingProps, selectionProps)}\n ref={ulRef}\n tabIndex={0}\n aria-label=\"Indexer\"\n aria-orientation=\"vertical\"\n aria-valuemin={0}\n aria-describedby={uniqueId}\n role=\"slider\"\n class={innerStyle}>\n <Collection items={sections}>{itemRenderer}</Collection>\n </ul>\n </Flex>\n <HiddenAccessible>\n <span id={uniqueId}>{getIndexerDescription(translations)}</span>\n </HiddenAccessible>\n </div>\n );\n}\n\n// A function to extract key for selection\nconst handleKeyExtract = <K extends string | number>(\n element: HTMLElement,\n rootRef: RefObject<HTMLElement>,\n current: K\n) => {\n if (element === rootRef.current) {\n return current === undefined ? null : current;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n};\n\nconst handleSelection = <K extends string | number>(\n detail: SingleSelectionDetail<K>,\n onCommit: (value: CommitDetail<K>) => void,\n sections: Section<K>[]\n) => {\n if (detail.value === SECTION_OTHERS.key) {\n onCommit({ value: SECTION_OTHERS.key as K });\n } else {\n const selectedSection = sections.find((section) => section.key === detail.value) as Section<K>;\n onCommit({ value: selectedSection.key as K });\n }\n};\n\n/**\n * A function that calculates the section count, based on\n * the container height and the number of sections\n * @param height height of Indexer container\n */\nconst updateSectionsPerTruncation = <K extends string | number>(\n height: number,\n itemHeight: number,\n sectionsLength: number,\n firstSectionKey: K,\n sectionsPerTruncation: number,\n setSectionsPerTruncation: Dispatch<StateUpdater<number>>,\n setCurrent: Dispatch<StateUpdater<K | undefined>>\n) => {\n if (height === 0 || itemHeight === 0) {\n return;\n }\n\n const maxSections = height / itemHeight;\n const last = sectionsLength - 1;\n\n // when the container size is too small to hold two sections\n if (maxSections < 2) {\n if (sectionsPerTruncation !== last) {\n setSectionsPerTruncation(last);\n setCurrent(firstSectionKey);\n }\n\n // no truncation\n // compare with < 0.01 for the deviation from calculation, when sectionsLength and maxSections\n // are about the same, maxNum === sectionsLength doesn't work\n } else if (maxSections > sectionsLength || sectionsLength - maxSections < 0.01) {\n if (sectionsPerTruncation > 1) {\n setSectionsPerTruncation(1);\n setCurrent(firstSectionKey);\n }\n\n // need truncation\n } else {\n const tempSectionCount = findSectionCount(maxSections, last);\n if (tempSectionCount !== sectionsPerTruncation && tempSectionCount < sectionsLength) {\n setSectionsPerTruncation(tempSectionCount);\n setCurrent(firstSectionKey);\n }\n }\n};\n\n/**\n * A helper function to find the best section count\n * in a truncation\n *\n * @param maxSections maximum number of sections allowed in a truncation\n * @param last the index of last section\n */\nconst findSectionCount = (maxSections: number, last: number) => {\n // need truncation\n maxSections -= 2; // minus the last character and the others character\n maxSections /= 2; // each truncation has a section and a separator\n\n const newSectionCount = Math.round(last / maxSections) + 1;\n const truncationLeftover = last % newSectionCount;\n const truncationCount = Math.floor(last / newSectionCount) + (truncationLeftover > 1 ? 1 : 0);\n\n // When the sectionCount becomes greater, it will result in\n // same truncations but with different sections appearing.\n // The following is to find the best sectionCount in this case\n // and prevent unnecessary truncations.\n let tempLeftover = last - (truncationCount - 1) * newSectionCount;\n let tempSectionCount = newSectionCount;\n while (tempSectionCount > tempLeftover) {\n tempSectionCount -= 1;\n tempLeftover = last - (truncationCount - 1) * tempSectionCount;\n }\n if (tempSectionCount != newSectionCount) {\n tempSectionCount += 1;\n }\n\n return tempSectionCount;\n};\n\n/**\n * Helper function to find the aria description for Indexer,\n * based on whether current device is a mobile device\n */\nfunction getIndexerDescription(translations: any) {\n if (isMobile()) {\n return translations.indexer_touchInstructionText();\n } else {\n return translations.indexer_keyboardInstructionText();\n }\n}\n"],"names":["forwardRef","useTranslationBundle","useComponentTheme","IndexerRedwoodTheme","classNames","_jsx","_jsxs","Fragment","Flex","useRef","createRef","useState","useId","useCollectionFocusRing","useCurrentKey","keyExtractor","getPrevNextKey","useSingleSelection","useCallback","useEffect","useTestId","mergeProps","Collection","HiddenAccessible","isMobile"],"mappings":"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"}