@oracle/oraclejet-preact 18.0.8 → 18.0.10

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 (240) hide show
  1. package/amd/BaseNavigationListItem-5765a81f.js +2 -0
  2. package/amd/BaseNavigationListItem-5765a81f.js.map +1 -0
  3. package/amd/CheckboxSet-4582f29e.js +2 -0
  4. package/{cjs/CheckboxSet-1bdbc419.js.map → amd/CheckboxSet-4582f29e.js.map} +1 -1
  5. package/amd/MaxLengthCounter-9a95922c.js +2 -0
  6. package/{es/MaxLengthCounter-181b4fc9.js.map → amd/MaxLengthCounter-9a95922c.js.map} +1 -1
  7. package/amd/NavigationList-f1b80e54.js +2 -0
  8. package/amd/NavigationList-f1b80e54.js.map +1 -0
  9. package/amd/NavigationListItem-12919fe5.js +2 -0
  10. package/amd/NavigationListItem-12919fe5.js.map +1 -0
  11. package/amd/{OverflowTabBar-339f34cf.js → OverflowTabBar-dfcce021.js} +2 -2
  12. package/amd/{OverflowTabBar-339f34cf.js.map → OverflowTabBar-dfcce021.js.map} +1 -1
  13. package/amd/OverflowTabBarItem-17b2920a.js +2 -0
  14. package/amd/{OverflowTabBarItem-c59db4a2.js.map → OverflowTabBarItem-17b2920a.js.map} +1 -1
  15. package/amd/ReadonlyTextFieldVariants.styles.css +20 -20
  16. package/amd/ReadonlyTextFieldVariants.styles2.css +20 -20
  17. package/amd/RemovableNavigationListItem-c486140e.js +2 -0
  18. package/amd/{RemovableNavigationListItem-e01b6693.js.map → RemovableNavigationListItem-c486140e.js.map} +1 -1
  19. package/amd/{ReorderableTabBar-462d357c.js → ReorderableTabBar-b92a434e.js} +2 -2
  20. package/amd/{ReorderableTabBar-462d357c.js.map → ReorderableTabBar-b92a434e.js.map} +1 -1
  21. package/amd/TabBar-93811d2c.js +2 -0
  22. package/amd/{TabBar-d8890a47.js.map → TabBar-93811d2c.js.map} +1 -1
  23. package/amd/TabBarMixed-ad59654b.js +2 -0
  24. package/amd/{TabBarMixed-a75796a6.js.map → TabBarMixed-ad59654b.js.map} +1 -1
  25. package/amd/TextArea-89b9ed65.js +2 -0
  26. package/{es/TextArea-7230675f.js.map → amd/TextArea-89b9ed65.js.map} +1 -1
  27. package/amd/TextAreaAutosize-81449e46.js +2 -0
  28. package/amd/{TextAreaAutosize-9cd2c1e8.js.map → TextAreaAutosize-81449e46.js.map} +1 -1
  29. package/amd/Theme-redwood/theme.css +165 -165
  30. package/amd/Theme-stable/theme.css +347 -347
  31. package/amd/UNSAFE_CheckboxItem.js +1 -1
  32. package/amd/UNSAFE_CheckboxItem.js.map +1 -1
  33. package/amd/UNSAFE_CheckboxSet.js +1 -1
  34. package/amd/UNSAFE_CheckboxSet.js.map +1 -1
  35. package/amd/UNSAFE_InputDateMask.js +1 -1
  36. package/amd/UNSAFE_InputDatePicker.js +1 -1
  37. package/amd/UNSAFE_InputPassword.js +1 -1
  38. package/amd/UNSAFE_InputSensitiveText.js +1 -1
  39. package/amd/UNSAFE_InputSensitiveText.js.map +1 -1
  40. package/amd/UNSAFE_InputText.js +1 -1
  41. package/amd/UNSAFE_InputTimeMask.js +1 -1
  42. package/amd/UNSAFE_InputTimeMask.js.map +1 -1
  43. package/amd/UNSAFE_LabelledLink.js +1 -1
  44. package/amd/UNSAFE_LabelledLink.js.map +1 -1
  45. package/amd/UNSAFE_NavigationList.js +1 -1
  46. package/amd/UNSAFE_NavigationListCommon.js +1 -1
  47. package/amd/UNSAFE_NumberInputText.js +1 -1
  48. package/amd/UNSAFE_OverflowTabBar.js +1 -1
  49. package/amd/UNSAFE_ReorderableTabBar.js +1 -1
  50. package/amd/UNSAFE_RichCheckboxSet.js +1 -1
  51. package/amd/UNSAFE_RichCheckboxSet.js.map +1 -1
  52. package/amd/UNSAFE_RichSelectionItem.js +1 -1
  53. package/amd/UNSAFE_RichSelectionItem.js.map +1 -1
  54. package/amd/UNSAFE_SelectMultiple.js +1 -1
  55. package/amd/UNSAFE_SelectSingle.js +1 -1
  56. package/amd/UNSAFE_TabBar.js +1 -1
  57. package/amd/UNSAFE_TabBarCommon.js +1 -1
  58. package/amd/UNSAFE_TabBarMixed.js +1 -1
  59. package/amd/UNSAFE_TextArea.js +1 -1
  60. package/amd/UNSAFE_TextAreaAutosize.js +1 -1
  61. package/amd/UNSAFE_TextField/themes/redwood/ReadonlyTextFieldTheme.js +1 -1
  62. package/amd/UNSAFE_TextField/themes/redwood/ReadonlyTextFieldTheme.js.map +1 -1
  63. package/amd/UNSAFE_TextField/themes/redwood/ReadonlyTextFieldVariants.css.js +1 -1
  64. package/amd/UNSAFE_TextField/themes/stable/ReadonlyTextFieldTheme.js +1 -1
  65. package/amd/UNSAFE_TextField/themes/stable/ReadonlyTextFieldTheme.js.map +1 -1
  66. package/amd/UNSAFE_TextField/themes/stable/ReadonlyTextFieldVariants.css.js +1 -1
  67. package/amd/UNSAFE_TextField.js +1 -1
  68. package/amd/useNavigationListItem-17b77626.js +2 -0
  69. package/amd/useNavigationListItem-17b77626.js.map +1 -0
  70. package/cjs/{BaseCardView-5a45e588.js → BaseCardView-ade994f5.js} +2 -2
  71. package/cjs/{BaseCardView-5a45e588.js.map → BaseCardView-ade994f5.js.map} +1 -1
  72. package/cjs/{CardFlexView-58228ce4.js → CardFlexView-6492d995.js} +2 -2
  73. package/cjs/{CardFlexView-58228ce4.js.map → CardFlexView-6492d995.js.map} +1 -1
  74. package/cjs/{CardGridView-17683602.js → CardGridView-d98aa089.js} +2 -2
  75. package/cjs/{CardGridView-17683602.js.map → CardGridView-d98aa089.js.map} +1 -1
  76. package/cjs/CheckboxSetContext-c62db26d.js +12 -0
  77. package/{amd/CheckboxSetContext-2e486ea8.js.map → cjs/CheckboxSetContext-c62db26d.js.map} +1 -1
  78. package/cjs/ExpandableList-be84ca8e.js +1 -1
  79. package/cjs/GroupLoadingIndicator-5940d185.js +1 -1
  80. package/cjs/{Indexer-b5ca1d0c.js → Indexer-72430806.js} +2 -2
  81. package/cjs/{Indexer-b5ca1d0c.js.map → Indexer-72430806.js.map} +1 -1
  82. package/cjs/{InputDatePicker-4d36637f.js → InputDatePicker-bc2c534a.js} +2 -2
  83. package/cjs/{InputDatePicker-4d36637f.js.map → InputDatePicker-bc2c534a.js.map} +1 -1
  84. package/cjs/{List-877077ab.js → List-0dc2c4c4.js} +4 -3
  85. package/cjs/{List-877077ab.js.map → List-0dc2c4c4.js.map} +1 -1
  86. package/cjs/{ListView-98983aa2.js → ListView-17b8250d.js} +2 -2
  87. package/cjs/{ListView-98983aa2.js.map → ListView-17b8250d.js.map} +1 -1
  88. package/cjs/{LoadMoreCollection-69bc038c.js → LoadMoreCollection-73112ff0.js} +2 -2
  89. package/cjs/{LoadMoreCollection-69bc038c.js.map → LoadMoreCollection-73112ff0.js.map} +1 -1
  90. package/cjs/{NavigationListItem-4c4e804d.js → NavigationListItem-7947af0e.js} +1 -14
  91. package/cjs/{NavigationListItem-4c4e804d.js.map → NavigationListItem-7947af0e.js.map} +1 -1
  92. package/cjs/{OverflowTabBar-428798a0.js → OverflowTabBar-27ad6d1f.js} +2 -2
  93. package/cjs/{OverflowTabBar-428798a0.js.map → OverflowTabBar-27ad6d1f.js.map} +1 -1
  94. package/cjs/{OverflowTabBarItem-3c7adb01.js → OverflowTabBarItem-57537ebe.js} +2 -2
  95. package/cjs/{OverflowTabBarItem-3c7adb01.js.map → OverflowTabBarItem-57537ebe.js.map} +1 -1
  96. package/cjs/PRIVATE_BaseCardView.js +3 -3
  97. package/cjs/PRIVATE_List.js +4 -4
  98. package/cjs/PRIVATE_LoadMoreCollection.js +2 -2
  99. package/cjs/PRIVATE_SelectCommon.js +5 -5
  100. package/cjs/PRIVATE_Table.js +3 -3
  101. package/cjs/PRIVATE_VirtualizedCollection.js +2 -2
  102. package/cjs/{SelectMultiple-94ab1de5.js → SelectMultiple-b1f05b9f.js} +2 -2
  103. package/cjs/{SelectMultiple-94ab1de5.js.map → SelectMultiple-b1f05b9f.js.map} +1 -1
  104. package/cjs/{SelectSingle-52c5cb94.js → SelectSingle-84b0b3eb.js} +2 -2
  105. package/cjs/{SelectSingle-52c5cb94.js.map → SelectSingle-84b0b3eb.js.map} +1 -1
  106. package/cjs/{Table-15a64988.js → Table-90fe7ad8.js} +2 -2
  107. package/cjs/{Table-15a64988.js.map → Table-90fe7ad8.js.map} +1 -1
  108. package/cjs/{TableView-37d6f731.js → TableView-3cc9d3be.js} +2 -2
  109. package/cjs/{TableView-37d6f731.js.map → TableView-3cc9d3be.js.map} +1 -1
  110. package/cjs/Theme-redwood/theme.css +128 -128
  111. package/cjs/Theme-stable/theme.css +197 -197
  112. package/cjs/UNSAFE_CardFlexView.js +4 -4
  113. package/cjs/UNSAFE_CardGridView.js +4 -4
  114. package/cjs/UNSAFE_CheckboxItem.js +30 -81
  115. package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
  116. package/cjs/UNSAFE_CheckboxSet.js +44 -15
  117. package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
  118. package/cjs/UNSAFE_ExpandableList.js +3 -3
  119. package/cjs/UNSAFE_Indexer.js +2 -2
  120. package/cjs/UNSAFE_InputDatePicker.js +90 -90
  121. package/cjs/UNSAFE_ListView.js +5 -5
  122. package/cjs/UNSAFE_NavigationList.js +4 -4
  123. package/cjs/UNSAFE_OverflowTabBar.js +3 -3
  124. package/cjs/UNSAFE_RichCheckboxSet.js +13 -15
  125. package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
  126. package/cjs/UNSAFE_RichSelectionItem.js +44 -181
  127. package/cjs/UNSAFE_RichSelectionItem.js.map +1 -1
  128. package/cjs/UNSAFE_SelectMultiple.js +6 -6
  129. package/cjs/UNSAFE_SelectSingle.js +6 -6
  130. package/cjs/UNSAFE_TabBar.js +2 -2
  131. package/cjs/UNSAFE_TabBarCommon.js +2 -2
  132. package/cjs/UNSAFE_TabBarMixed.js +2 -2
  133. package/cjs/UNSAFE_TableView.js +4 -4
  134. package/cjs/UNSAFE_VirtualizedListView.js +5 -5
  135. package/cjs/{VirtualizedCollection-9e8c48b9.js → VirtualizedCollection-00aedb8b.js} +2 -2
  136. package/cjs/{VirtualizedCollection-9e8c48b9.js.map → VirtualizedCollection-00aedb8b.js.map} +1 -1
  137. package/cjs/{VirtualizedListView-03fa4758.js → VirtualizedListView-9bfaf4e2.js} +2 -2
  138. package/cjs/{VirtualizedListView-03fa4758.js.map → VirtualizedListView-9bfaf4e2.js.map} +1 -1
  139. package/cjs/{useSelectCommon-a0a800fd.js → useSelectCommon-5b46ac60.js} +2 -2
  140. package/cjs/{useSelectCommon-a0a800fd.js.map → useSelectCommon-5b46ac60.js.map} +1 -1
  141. package/es/{BaseCardView-229fa119.js → BaseCardView-c5a8ee6a.js} +2 -2
  142. package/es/{BaseCardView-229fa119.js.map → BaseCardView-c5a8ee6a.js.map} +1 -1
  143. package/es/{CardFlexView-3ef6bf4d.js → CardFlexView-529906e0.js} +2 -2
  144. package/es/{CardFlexView-3ef6bf4d.js.map → CardFlexView-529906e0.js.map} +1 -1
  145. package/es/{CardGridView-e15226c9.js → CardGridView-ec18c929.js} +2 -2
  146. package/es/{CardGridView-e15226c9.js.map → CardGridView-ec18c929.js.map} +1 -1
  147. package/es/ExpandableList-478db30a.js +1 -1
  148. package/es/GroupLoadingIndicator-63035d08.js +1 -1
  149. package/es/{Indexer-eb00ba0b.js → Indexer-ba2c7593.js} +2 -2
  150. package/es/{Indexer-eb00ba0b.js.map → Indexer-ba2c7593.js.map} +1 -1
  151. package/es/LabelledLinkVariants.styles.css +3 -3
  152. package/es/LabelledLinkVariants.styles2.css +3 -3
  153. package/es/{List-e6886091.js → List-97b7be70.js} +4 -3
  154. package/es/{List-e6886091.js.map → List-97b7be70.js.map} +1 -1
  155. package/es/{ListView-137e31fd.js → ListView-936d8a4f.js} +2 -2
  156. package/es/{ListView-137e31fd.js.map → ListView-936d8a4f.js.map} +1 -1
  157. package/es/{LoadMoreCollection-7df1be36.js → LoadMoreCollection-95a49d2a.js} +2 -2
  158. package/es/{LoadMoreCollection-7df1be36.js.map → LoadMoreCollection-95a49d2a.js.map} +1 -1
  159. package/es/MeterCircleVariants.styles.css +8 -8
  160. package/es/MeterCircleVariants.styles2.css +8 -8
  161. package/es/PRIVATE_BaseCardView.js +3 -3
  162. package/es/PRIVATE_List.js +4 -4
  163. package/es/PRIVATE_LoadMoreCollection.js +2 -2
  164. package/es/PRIVATE_SelectCommon.js +5 -5
  165. package/es/PRIVATE_Table.js +3 -3
  166. package/es/PRIVATE_VirtualizedCollection.js +2 -2
  167. package/es/{SelectMultiple-488a49d1.js → SelectMultiple-ad8fc99a.js} +2 -2
  168. package/es/{SelectMultiple-488a49d1.js.map → SelectMultiple-ad8fc99a.js.map} +1 -1
  169. package/es/{SelectSingle-e8b9a33a.js → SelectSingle-abaf271c.js} +2 -2
  170. package/es/{SelectSingle-e8b9a33a.js.map → SelectSingle-abaf271c.js.map} +1 -1
  171. package/es/SplitMenuButtonTheme.styles.css +4 -4
  172. package/es/SplitMenuButtonTheme.styles2.css +4 -4
  173. package/es/TabBarItemVariants.styles.css +3 -3
  174. package/es/TabBarItemVariants.styles2.css +3 -3
  175. package/es/{Table-3cfb9443.js → Table-1ba124ec.js} +2 -2
  176. package/es/{Table-3cfb9443.js.map → Table-1ba124ec.js.map} +1 -1
  177. package/es/{TableView-fd5104cd.js → TableView-20223ba6.js} +2 -2
  178. package/es/{TableView-fd5104cd.js.map → TableView-20223ba6.js.map} +1 -1
  179. package/es/{TextArea-7230675f.js → TextArea-64b4e972.js} +25 -8
  180. package/{amd/TextArea-a7a3d82f.js.map → es/TextArea-64b4e972.js.map} +1 -1
  181. package/es/{TextAreaAutosize-0d293016.js → TextAreaAutosize-4e0f60ef.js} +2 -2
  182. package/es/{TextAreaAutosize-0d293016.js.map → TextAreaAutosize-4e0f60ef.js.map} +1 -1
  183. package/es/Theme-redwood/theme.css +634 -634
  184. package/es/Theme-stable/theme.css +446 -446
  185. package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
  186. package/es/UNSAFE_CardFlexView.js +4 -4
  187. package/es/UNSAFE_CardGridView.js +4 -4
  188. package/es/UNSAFE_ExpandableList.js +3 -3
  189. package/es/UNSAFE_Indexer.js +2 -2
  190. package/es/UNSAFE_LabelledLink/themes/redwood/LabelledLinkTheme.js +1 -1
  191. package/es/UNSAFE_LabelledLink/themes/redwood/LabelledLinkVariants.css.js +1 -1
  192. package/es/UNSAFE_LabelledLink/themes/stable/LabelledLinkTheme.js +1 -1
  193. package/es/UNSAFE_LabelledLink/themes/stable/LabelledLinkVariants.css.js +1 -1
  194. package/es/UNSAFE_LabelledLink.js +1 -1
  195. package/es/UNSAFE_ListView.js +5 -5
  196. package/es/UNSAFE_MeterCircle/themes/redwood/MeterCircleTheme.js +1 -1
  197. package/es/UNSAFE_MeterCircle/themes/redwood/MeterCircleVariants.css.js +1 -1
  198. package/es/UNSAFE_MeterCircle/themes/stable/MeterCircleTheme.js +1 -1
  199. package/es/UNSAFE_MeterCircle/themes/stable/MeterCircleVariants.css.js +1 -1
  200. package/es/UNSAFE_MeterCircle.js +1 -1
  201. package/es/UNSAFE_OverflowTabBar.js +1 -1
  202. package/es/UNSAFE_ReorderableTabBar.js +1 -1
  203. package/es/UNSAFE_SelectMultiple.js +6 -6
  204. package/es/UNSAFE_SelectSingle.js +6 -6
  205. package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
  206. package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
  207. package/es/UNSAFE_SplitMenuButton.js +1 -1
  208. package/es/UNSAFE_TabBar.js +1 -1
  209. package/es/UNSAFE_TabBarCommon/themes/redwood/TabBarItemTheme.js +1 -1
  210. package/es/UNSAFE_TabBarCommon/themes/redwood/TabBarItemVariants.css.js +1 -1
  211. package/es/UNSAFE_TabBarCommon/themes/stable/TabBarItemTheme.js +1 -1
  212. package/es/UNSAFE_TabBarCommon/themes/stable/TabBarItemVariants.css.js +1 -1
  213. package/es/UNSAFE_TabBarCommon.js +1 -1
  214. package/es/UNSAFE_TabBarMixed.js +1 -1
  215. package/es/UNSAFE_TableView.js +4 -4
  216. package/es/UNSAFE_TextArea.js +2 -3
  217. package/es/UNSAFE_TextArea.js.map +1 -1
  218. package/es/UNSAFE_TextAreaAutosize.js +3 -3
  219. package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
  220. package/es/UNSAFE_VirtualizedListView.js +5 -5
  221. package/es/{VirtualizedCollection-f048fbb8.js → VirtualizedCollection-e73890a1.js} +2 -2
  222. package/es/{VirtualizedCollection-f048fbb8.js.map → VirtualizedCollection-e73890a1.js.map} +1 -1
  223. package/es/{VirtualizedListView-0532e46c.js → VirtualizedListView-3ef40bde.js} +2 -2
  224. package/es/{VirtualizedListView-0532e46c.js.map → VirtualizedListView-3ef40bde.js.map} +1 -1
  225. package/es/{useSelectCommon-af8e715e.js → useSelectCommon-1dafa6f9.js} +2 -2
  226. package/es/{useSelectCommon-af8e715e.js.map → useSelectCommon-1dafa6f9.js.map} +1 -1
  227. package/package.json +2 -2
  228. package/amd/BaseNavigationListItem-fe9cb691.js +0 -2
  229. package/amd/BaseNavigationListItem-fe9cb691.js.map +0 -1
  230. package/amd/CheckboxSetContext-2e486ea8.js +0 -2
  231. package/amd/NavigationListItem-044a79fd.js +0 -2
  232. package/amd/NavigationListItem-044a79fd.js.map +0 -1
  233. package/amd/OverflowTabBarItem-c59db4a2.js +0 -2
  234. package/amd/RemovableNavigationListItem-e01b6693.js +0 -2
  235. package/amd/TabBar-d8890a47.js +0 -2
  236. package/amd/TabBarMixed-a75796a6.js +0 -2
  237. package/amd/TextArea-a7a3d82f.js +0 -2
  238. package/amd/TextAreaAutosize-9cd2c1e8.js +0 -2
  239. package/cjs/CheckboxSet-1bdbc419.js +0 -53
  240. package/es/MaxLengthCounter-181b4fc9.js +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"UNSAFE_RichSelectionItem.js","sources":["../../src/UNSAFE_RichSelectionItem/RichSelectionTextContent.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionMediaItem.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionControl.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionItem.tsx"],"sourcesContent":["import { TruncatingText } from '#UNSAFE_TruncatingText';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\ntype RichSelectionTextContentProps = {\n secondaryTextId?: string;\n label?: string;\n secondaryText?: string;\n isDisabled?: boolean;\n // INFO: label truncates for 1 line in only XL\n isLayoutXL?: boolean;\n labelId: string;\n};\n// INFO: Label and SecondaryText Content handling\nexport const RichSelectionTextContent = ({\n secondaryTextId,\n isDisabled,\n isLayoutXL,\n label,\n labelId,\n secondaryText\n}: RichSelectionTextContentProps) => {\n const labelContent = (\n <TruncatingText\n variant={isDisabled ? 'disabled' : 'primary'}\n lineClamp={isLayoutXL ? 1 : 2}\n id={labelId}>\n {label}\n </TruncatingText>\n );\n const classes = classNames([\n isLayoutXL ? styles.densityWrapper : styles.growOneColumn,\n !isLayoutXL && !secondaryText && styles.labelOnly\n ]);\n\n return (\n <div className={classes}>\n {labelContent}\n {secondaryText && (\n <TruncatingText\n size=\"sm\"\n variant={isDisabled ? 'disabled' : 'secondary'}\n lineClamp={3}\n id={secondaryTextId}>\n {secondaryText}\n </TruncatingText>\n )}\n </div>\n );\n};\n","import { Avatar } from '#UNSAFE_Avatar';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { Center } from '#UNSAFE_Center';\nimport { View } from '#UNSAFE_View';\nimport { AspectRatio } from '#UNSAFE_AspectRatio';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { RichSelectionMediaItemProps } from './RichSelectionTypes';\n\ntype ThumbnailProps = TestIdProps & {\n thumbnailSrc?: string;\n mediaAccessibleLabel?: string;\n} & Pick<RichSelectionMediaItemProps, 'layout'>;\n\nconst ThumbnailXL = ({ thumbnailSrc, mediaAccessibleLabel, testId }: ThumbnailProps) => {\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n\n return (\n <AspectRatio ratio=\"4/3\">\n <img\n alt={mediaAccessibleLabel}\n className={styles.thumbnailImage}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n </AspectRatio>\n );\n};\n\nconst Thumbnail = ({ thumbnailSrc, mediaAccessibleLabel, layout, testId }: ThumbnailProps) => {\n const thumbnailClass = layout === 'md' ? styles.mdMediaVariant : styles.smMediaVariant;\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n return (\n <img\n alt={mediaAccessibleLabel}\n className={thumbnailClass}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n );\n};\n\nconst MediumRenderer = ({\n mediaAccessibleLabel,\n thumbnailSrc,\n layout,\n avatar,\n testId\n}: Partial<RichSelectionMediaItemProps>) => {\n const testIdProps = useTestId(testId ? `${testId}_medium` : undefined);\n const mediumMediaItem = avatar ? (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} {...testIdProps} />\n ) : (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n />\n );\n\n return <Center>{mediumMediaItem}</Center>;\n};\n\nconst SmallRenderer = ({\n avatar,\n iconClass,\n layout,\n thumbnailSrc,\n mediaAccessibleLabel,\n testId\n}: Partial<RichSelectionMediaItemProps>) => {\n const testIdProps = useTestId(testId ? `${testId}_small` : undefined);\n let smallMediaItem;\n if (avatar) {\n smallMediaItem = (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} size=\"xs\" {...testIdProps} />\n );\n } else if (thumbnailSrc) {\n smallMediaItem = (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n {...testIdProps}\n />\n );\n } else if (iconClass) {\n smallMediaItem = <div class={`${styles.iconWrapper} ${iconClass}`} {...testIdProps}></div>;\n }\n\n return <Center>{smallMediaItem}</Center>;\n};\n\n// INFO: Media Item handling\nexport const RichSelectionMediaItem = ({\n avatar,\n iconClass,\n hasSecondaryText,\n mediaAccessibleLabel,\n layout,\n thumbnailSrc,\n testId\n}: RichSelectionMediaItemProps) => {\n if (!layout) {\n return null;\n }\n\n switch (layout) {\n case 'xl':\n return (\n <ThumbnailXL\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n testId={testId}\n />\n );\n\n case 'md':\n const mediumMedia = avatar ? { avatar } : thumbnailSrc ? { thumbnailSrc } : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <MediumRenderer\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n {...mediumMedia}\n />\n </View>\n );\n\n case 'sm':\n const smallMedia = avatar\n ? { avatar, mediaAccessibleLabel }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel }\n : iconClass\n ? { iconClass }\n : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <SmallRenderer {...smallMedia} layout={layout} testId={testId} />\n </View>\n );\n\n default:\n return null;\n }\n};\n","import type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\n\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { useInteractionStyle } from '#hooks/UNSAFE_useInteractionStyle';\nimport { useTabbableMode } from '#hooks/UNSAFE_useTabbableMode';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { StyledCheckbox } from '#PRIVATE_StyledCheckbox';\nimport { CheckIcon } from '#PRIVATE_ThemedIcons/CheckIcon';\nimport { RadioOffIcon } from '#PRIVATE_ThemedIcons/RadioOffIcon';\nimport { RadioOnIcon } from '#PRIVATE_ThemedIcons/RadioOnIcon';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { HiddenAccessible } from '#UNSAFE_HiddenAccessible';\nimport { useRadioItemContext } from '#UNSAFE_RadioItem/RadioItemContext';\nimport { radioIconVars } from '#UNSAFE_RadioItem/themes/RadioIconContract.css';\nimport { RadioIconVariantOptions } from '#UNSAFE_RadioItem/themes/RadioIconStyles.css';\nimport { radioDefaultColor, radioDisabledColor } from '#UNSAFE_RadioItem/themes/RadioStyles.css';\nimport { RadioIconRedwoodTheme } from '#UNSAFE_RadioItem/themes/redwood/RadioIconTheme';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\n/**\n * Selective Element Props Type.\n */\ntype RichSelectionControlProps = {\n value: string | number;\n inputRef?: RefObject<HTMLInputElement>;\n isFocus?: boolean;\n isLayoutXL?: boolean;\n isDisabled?: boolean;\n isReadonly?: boolean;\n isSelected?: boolean;\n describedBy?: string;\n labelledBy: string;\n testId?: string;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n};\n\nexport const RadioControl = ({\n value,\n inputRef,\n isFocus,\n isDisabled,\n isLayoutXL,\n isReadonly,\n isSelected,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name, value: radioGroupValue, onCommit } = useRadioSetContext();\n\n const testIdProps = useTestId(testId);\n\n const IconComp = isReadonly\n ? isSelected\n ? CheckIcon\n : RadioOffIcon\n : isSelected\n ? RadioOnIcon\n : RadioOffIcon;\n\n const spanRef = useRef<HTMLSpanElement>(null);\n const { interactionProps, applyActiveStyle } = useInteractionStyle();\n\n const onChangeHandler = useCallback(\n (event: Event) => {\n event.stopPropagation();\n onCommit?.({ previousValue: radioGroupValue, value });\n },\n [value, radioGroupValue, onCommit]\n );\n\n /**\n * When focused the view should have the respective RichSelectionItem.\n */\n useEffect(() => {\n if (isFocus) {\n spanRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, spanRef]);\n\n const radioColor = isDisabled ? radioDisabledColor : radioDefaultColor;\n const { classes: radioIconClasses } = useComponentTheme<RadioIconVariantOptions>(\n RadioIconRedwoodTheme,\n {\n disabled: isDisabled ? 'isDisabled' : 'notDisabled',\n selected: isSelected ? 'isSelected' : 'notSelected',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n richSelection: isLayoutXL ? 'isLayoutXL' : 'notLayoutXL'\n }\n );\n\n const { isTabbable } = useTabbableMode();\n const { index } = useRadioItemContext();\n const tabIndex =\n isTabbable !== false && ((index === 0 && !radioGroupValue) || isSelected) ? 0 : -1;\n\n const hiddenInput = (\n <HiddenAccessible>\n <input\n type=\"radio\"\n name={name}\n value={value}\n {...(!isReadonly &&\n !isDisabled && {\n onChange: onChangeHandler\n })}\n checked={isSelected}\n disabled={isDisabled}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n tabIndex={tabIndex}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n );\n\n // Radio control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return <span class={styles.inputElement}>{hiddenInput}</span>;\n }\n\n return (\n <span\n ref={spanRef}\n class={classNames([radioColor, isLayoutXL ? styles.radioWrapper : undefined])}>\n {hiddenInput}\n <span aria-hidden=\"true\" class={radioIconClasses} {...interactionProps}>\n <IconComp size={radioIconVars.iconSize} color=\"currentColor\" />\n </span>\n </span>\n );\n};\n\nexport const CheckboxControl = ({\n value,\n inputRef,\n isSelected,\n isLayoutXL,\n isDisabled,\n isReadonly,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name } = useCheckboxSetContext();\n const testIdProps = useTestId(testId);\n const { isTabbable } = useTabbableMode();\n const checkboxStyles = isLayoutXL ? styles.checkboxWrapper : styles.checkboxAlign;\n\n // Checkbox control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return (\n <span class={styles.inputElement}>\n <HiddenAccessible>\n <input\n aria-readonly={true}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n type=\"checkbox\"\n name={name}\n value={value}\n checked={false}\n disabled={isDisabled}\n tabIndex={isTabbable ? 0 : -1}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n </span>\n );\n }\n\n return (\n <span class={checkboxStyles}>\n <StyledCheckbox\n aria-describedby={describedBy}\n aria-labelledby={labelledBy}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isChecked={isSelected ? 'checked' : 'unchecked'}\n name={name}\n value={value}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputRef}\n {...testIdProps}\n />\n </span>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\n\nimport { useFormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useRichSelectionContext } from '#PRIVATE_RichSelectionCommon/RichSelectionContext';\nimport { StyledCard } from '#PRIVATE_StyledCard';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { RichSelectionTextContent } from './RichSelectionTextContent';\nimport { RichSelectionMediaItem } from './RichSelectionMediaItem';\nimport { Flex } from '#UNSAFE_Flex';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { useFocus } from '#hooks/UNSAFE_useFocus';\nimport { usePress } from '#hooks/UNSAFE_usePress';\nimport { RadioControl, CheckboxControl } from './RichSelectionControl';\nimport { type RichSelectionItemData } from './RichSelectionTypes';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\n\ntype RichSelectionItemProps<V extends string | number> = RichSelectionItemData<V> & TestIdProps;\n\n/**\n * `RichSelectionItem` is a customizable input card element used in selection interfaces. It can display a label,\n * optional secondary text, and media (such as an avatar, thumbnail, or icon). It supports both radio and checkbox\n * controls, allowing users to make a single or multiple selections, respectively. The component also handles\n * different states such as disabled, readonly, and focus, and renders dynamically based on layout( 'xl', 'md', or 'sm').\n */\nexport const RichSelectionItem = <V extends string | number>({\n avatar,\n iconClass,\n mediaAccessibleLabel,\n secondaryText,\n thumbnailSrc,\n label,\n value,\n testId\n}: RichSelectionItemProps<V>) => {\n const { isReadonly: isFormReadonly, isDisabled: isFormDisabled } = useFormContext();\n const styledCardRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const { selection, layout, messageSeverity } = useRichSelectionContext()!;\n const { isDisabled: isFieldDisabled, isReadonly: isFieldReadonly } = useFormFieldContext();\n const { value: radioGroupValue, onCommit: onRadioCommit } = useRadioSetContext();\n const { value: checkboxGroupValue, onCommit: onCheckboxCommit } = useCheckboxSetContext();\n const { isFocus, focusProps } = useFocus();\n\n // Determining selection state for error\n const styledCardVariant = messageSeverity === 'error' ? 'danger' : undefined;\n const isDisabled = isFieldDisabled ?? isFormDisabled;\n const isReadonly = isFieldReadonly ?? isFormReadonly;\n const id = useId();\n const isLayoutXL = layout === 'xl';\n const hasMedia = !!avatar || !!thumbnailSrc || !!iconClass;\n const labelId = `${id}-labelled-text`;\n const secondaryTextId = secondaryText ? `${id}-secondary-text` : undefined;\n const isSingleSelection = selection === 'single';\n const isSelected = isSingleSelection\n ? radioGroupValue === value\n : !!checkboxGroupValue?.has(value);\n\n // Scroll into view when the RichSelectionItem is focused\n useEffect(() => {\n if (isFocus) {\n styledCardRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, styledCardRef]);\n\n // Text content of label and secondaryText rendering\n const textContent = (\n <RichSelectionTextContent\n secondaryTextId={secondaryTextId}\n labelId={labelId}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n label={label}\n secondaryText={secondaryText}\n />\n );\n\n // Media content rendering based on available media props respective to layout\n const media = avatar\n ? { avatar, mediaAccessibleLabel, layout: layout as 'md' | 'sm' }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel, layout: layout as 'xl' | 'md' | 'sm' }\n : iconClass\n ? { iconClass, layout: layout as 'sm' }\n : undefined;\n\n const mediaContent = hasMedia ? (\n <RichSelectionMediaItem\n {...media}\n hasSecondaryText={!!secondaryText}\n testId={testId ? `${testId}_media` : undefined}\n />\n ) : undefined;\n\n // Selection control rendering (radio or checkbox)\n const selectionControl = (\n <Flex align={secondaryText ? 'start' : 'center'}>\n {isSingleSelection ? (\n <RadioControl\n {...focusProps}\n value={value}\n inputRef={inputRef}\n isFocus={isFocus}\n isLayoutXL={isLayoutXL}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_radio` : undefined}\n />\n ) : (\n <CheckboxControl\n {...focusProps}\n value={value}\n inputRef={inputRef}\n isFocus={isFocus}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_checkbox` : undefined}\n />\n )}\n </Flex>\n );\n\n // Handler for checkbox selection changes\n const triggerCheckBoxAction = useCallback(() => {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n inputRef.current?.focus();\n\n const newGroupValue = new Set(checkboxGroupValue);\n const isSelectedValue = newGroupValue.has(value);\n // If the value is already selected, remove it; otherwise, add it\n isSelectedValue ? newGroupValue.delete(value) : newGroupValue.add(value);\n onCheckboxCommit?.({\n previousValue: checkboxGroupValue,\n value: newGroupValue.size > 0 ? newGroupValue : undefined\n });\n }, [checkboxGroupValue, onCheckboxCommit, value]);\n\n // Handler for radio selection changes\n const triggerRadioAction = useCallback(() => {\n if (radioGroupValue !== value) {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n inputRef.current?.focus();\n\n onRadioCommit?.({\n previousValue: radioGroupValue,\n value: value\n });\n }\n }, [radioGroupValue, onRadioCommit, value]);\n\n // Event handlers for the interaction of the StyledCard\n const { pressProps } = usePress(isSingleSelection ? triggerRadioAction : triggerCheckBoxAction, {\n isDisabled: isDisabled || isReadonly\n });\n\n return (\n <StyledCard\n cursor=\"pointer\"\n display=\"inlineFlex\"\n height=\"100%\"\n isDisabled={isDisabled || isReadonly}\n isFocusWithin={isFocus}\n isSelected={styledCardVariant !== 'danger' && !isDisabled && !isReadonly && isSelected}\n parentComponentVariant=\"richSelectionItemCard\"\n ref={styledCardRef}\n role=\"listitem\"\n styleVariant={styledCardVariant}\n testId={testId ? `${testId}_styled_card` : undefined}\n width=\"100%\"\n {...pressProps}>\n {isLayoutXL ? (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n {mediaContent}\n {textContent}\n <div class={styles.selectionElement}>{selectionControl}</div>\n </Flex>\n ) : (\n <div className={styles.densityWrapper}>\n <Flex direction=\"row\" gap=\"4x\" height=\"100%\" width=\"100%\">\n {selectionControl}\n {textContent}\n {mediaContent}\n </Flex>\n </div>\n )}\n </StyledCard>\n );\n};\n"],"names":["_jsx","TruncatingText","classNames","styles","_jsxs","useTestId","AspectRatio","Avatar","Center","View","useRadioSetContext","CheckIcon","RadioOffIcon","RadioOnIcon","useRef","useInteractionStyle","useCallback","useEffect","radioDisabledColor","radioDefaultColor","useComponentTheme","RadioIconRedwoodTheme","useTabbableMode","useRadioItemContext","HiddenAccessible","radioIconVars","useCheckboxSetContext","StyledCheckbox","useFormContext","useRichSelectionContext","useFormFieldContext","useFocus","useId","Flex","usePress","StyledCard"],"mappings":"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"}
1
+ {"version":3,"file":"UNSAFE_RichSelectionItem.js","sources":["../../src/UNSAFE_RichSelectionItem/RichSelectionTextContent.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionMediaItem.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionControl.tsx","../../src/UNSAFE_RichSelectionItem/RichSelectionItem.tsx"],"sourcesContent":["import { TruncatingText } from '#UNSAFE_TruncatingText';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\ntype RichSelectionTextContentProps = {\n secondaryTextId?: string;\n label?: string;\n secondaryText?: string;\n isDisabled?: boolean;\n // INFO: label truncates for 1 line in only XL\n isLayoutXL?: boolean;\n labelId: string;\n};\n// INFO: Label and SecondaryText Content handling\nexport const RichSelectionTextContent = ({\n secondaryTextId,\n isDisabled,\n isLayoutXL,\n label,\n labelId,\n secondaryText\n}: RichSelectionTextContentProps) => {\n const labelContent = (\n <TruncatingText\n variant={isDisabled ? 'disabled' : 'primary'}\n lineClamp={isLayoutXL ? 1 : 2}\n id={labelId}>\n {label}\n </TruncatingText>\n );\n const classes = classNames([\n isLayoutXL ? styles.densityWrapper : styles.growOneColumn,\n !isLayoutXL && !secondaryText && styles.labelOnly\n ]);\n\n return (\n <div className={classes}>\n {labelContent}\n {secondaryText && (\n <TruncatingText\n size=\"sm\"\n variant={isDisabled ? 'disabled' : 'secondary'}\n lineClamp={3}\n id={secondaryTextId}>\n {secondaryText}\n </TruncatingText>\n )}\n </div>\n );\n};\n","import { Avatar } from '#UNSAFE_Avatar';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { Center } from '#UNSAFE_Center';\nimport { View } from '#UNSAFE_View';\nimport { AspectRatio } from '#UNSAFE_AspectRatio';\nimport { TestIdProps, useTestId } from '#hooks/UNSAFE_useTestId';\nimport { RichSelectionMediaItemProps } from './RichSelectionTypes';\n\ntype ThumbnailProps = TestIdProps & {\n thumbnailSrc?: string;\n mediaAccessibleLabel?: string;\n} & Pick<RichSelectionMediaItemProps, 'layout'>;\n\nconst ThumbnailXL = ({ thumbnailSrc, mediaAccessibleLabel, testId }: ThumbnailProps) => {\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n\n return (\n <AspectRatio ratio=\"4/3\">\n <img\n alt={mediaAccessibleLabel}\n className={styles.thumbnailImage}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n </AspectRatio>\n );\n};\n\nconst Thumbnail = ({ thumbnailSrc, mediaAccessibleLabel, layout, testId }: ThumbnailProps) => {\n const thumbnailClass = layout === 'md' ? styles.mdMediaVariant : styles.smMediaVariant;\n const testIdProps = useTestId(testId ? `${testId}_thumbnail` : undefined);\n return (\n <img\n alt={mediaAccessibleLabel}\n className={thumbnailClass}\n role={!mediaAccessibleLabel ? 'presentation' : undefined}\n src={thumbnailSrc}\n {...testIdProps}\n />\n );\n};\n\nconst MediumRenderer = ({\n mediaAccessibleLabel,\n thumbnailSrc,\n layout,\n avatar,\n testId\n}: Partial<RichSelectionMediaItemProps>) => {\n const testIdProps = useTestId(testId ? `${testId}_medium` : undefined);\n const mediumMediaItem = avatar ? (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} {...testIdProps} />\n ) : (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n />\n );\n\n return <Center>{mediumMediaItem}</Center>;\n};\n\nconst SmallRenderer = ({\n avatar,\n iconClass,\n layout,\n thumbnailSrc,\n mediaAccessibleLabel,\n testId\n}: Partial<RichSelectionMediaItemProps>) => {\n const testIdProps = useTestId(testId ? `${testId}_small` : undefined);\n let smallMediaItem;\n if (avatar) {\n smallMediaItem = (\n <Avatar {...avatar} aria-label={mediaAccessibleLabel} size=\"xs\" {...testIdProps} />\n );\n } else if (thumbnailSrc) {\n smallMediaItem = (\n <Thumbnail\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n {...testIdProps}\n />\n );\n } else if (iconClass) {\n smallMediaItem = <div class={`${styles.iconWrapper} ${iconClass}`} {...testIdProps}></div>;\n }\n\n return <Center>{smallMediaItem}</Center>;\n};\n\n// INFO: Media Item handling\nexport const RichSelectionMediaItem = ({\n avatar,\n iconClass,\n hasSecondaryText,\n mediaAccessibleLabel,\n layout,\n thumbnailSrc,\n testId\n}: RichSelectionMediaItemProps) => {\n if (!layout) {\n return null;\n }\n\n switch (layout) {\n case 'xl':\n return (\n <ThumbnailXL\n thumbnailSrc={thumbnailSrc}\n mediaAccessibleLabel={mediaAccessibleLabel}\n testId={testId}\n />\n );\n\n case 'md':\n const mediumMedia = avatar ? { avatar } : thumbnailSrc ? { thumbnailSrc } : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <MediumRenderer\n mediaAccessibleLabel={mediaAccessibleLabel}\n layout={layout}\n testId={testId}\n {...mediumMedia}\n />\n </View>\n );\n\n case 'sm':\n const smallMedia = avatar\n ? { avatar, mediaAccessibleLabel }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel }\n : iconClass\n ? { iconClass }\n : undefined;\n return (\n <View alignSelf={hasSecondaryText ? 'start' : 'center'}>\n <SmallRenderer {...smallMedia} layout={layout} testId={testId} />\n </View>\n );\n\n default:\n return null;\n }\n};\n","import type { RefObject } from 'preact';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\n\nimport { useComponentTheme } from '#hooks/UNSAFE_useComponentTheme';\nimport { useInteractionStyle } from '#hooks/UNSAFE_useInteractionStyle';\nimport { useTabbableMode } from '#hooks/UNSAFE_useTabbableMode';\nimport { useTestId } from '#hooks/UNSAFE_useTestId';\nimport { StyledCheckbox } from '#PRIVATE_StyledCheckbox';\nimport { CheckIcon } from '#PRIVATE_ThemedIcons/CheckIcon';\nimport { RadioOffIcon } from '#PRIVATE_ThemedIcons/RadioOffIcon';\nimport { RadioOnIcon } from '#PRIVATE_ThemedIcons/RadioOnIcon';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { HiddenAccessible } from '#UNSAFE_HiddenAccessible';\nimport { useRadioItemContext } from '#UNSAFE_RadioItem/RadioItemContext';\nimport { radioIconVars } from '#UNSAFE_RadioItem/themes/RadioIconContract.css';\nimport { RadioIconVariantOptions } from '#UNSAFE_RadioItem/themes/RadioIconStyles.css';\nimport { radioDefaultColor, radioDisabledColor } from '#UNSAFE_RadioItem/themes/RadioStyles.css';\nimport { RadioIconRedwoodTheme } from '#UNSAFE_RadioItem/themes/redwood/RadioIconTheme';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { styles } from './themes/RichSelectionItemStyles.css';\n\n/**\n * Selective Element Props Type.\n */\ntype RichSelectionControlProps = {\n value: string | number;\n inputRef?: RefObject<HTMLInputElement>;\n isFocus?: boolean;\n isLayoutXL?: boolean;\n isDisabled?: boolean;\n isReadonly?: boolean;\n isSelected?: boolean;\n describedBy?: string;\n labelledBy: string;\n testId?: string;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n};\n\nexport const RadioControl = ({\n value,\n inputRef,\n isFocus,\n isDisabled,\n isLayoutXL,\n isReadonly,\n isSelected,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name, value: radioGroupValue, onCommit } = useRadioSetContext();\n\n const testIdProps = useTestId(testId);\n\n const IconComp = isReadonly\n ? isSelected\n ? CheckIcon\n : RadioOffIcon\n : isSelected\n ? RadioOnIcon\n : RadioOffIcon;\n\n const spanRef = useRef<HTMLSpanElement>(null);\n const { interactionProps, applyActiveStyle } = useInteractionStyle();\n\n const onChangeHandler = useCallback(\n (event: Event) => {\n event.stopPropagation();\n onCommit?.({ previousValue: radioGroupValue, value });\n },\n [value, radioGroupValue, onCommit]\n );\n\n /**\n * When focused the view should have the respective RichSelectionItem.\n */\n useEffect(() => {\n if (isFocus) {\n spanRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, spanRef]);\n\n const radioColor = isDisabled ? radioDisabledColor : radioDefaultColor;\n const { classes: radioIconClasses } = useComponentTheme<RadioIconVariantOptions>(\n RadioIconRedwoodTheme,\n {\n disabled: isDisabled ? 'isDisabled' : 'notDisabled',\n selected: isSelected ? 'isSelected' : 'notSelected',\n active: applyActiveStyle ? 'isActive' : 'notActive',\n richSelection: isLayoutXL ? 'isLayoutXL' : 'notLayoutXL'\n }\n );\n\n const { isTabbable } = useTabbableMode();\n const { index } = useRadioItemContext();\n const tabIndex =\n isTabbable !== false && ((index === 0 && !radioGroupValue) || isSelected) ? 0 : -1;\n\n const hiddenInput = (\n <HiddenAccessible>\n <input\n type=\"radio\"\n name={name}\n value={value}\n {...(!isReadonly &&\n !isDisabled && {\n onChange: onChangeHandler\n })}\n checked={isSelected}\n disabled={isDisabled}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n tabIndex={tabIndex}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n );\n\n // Radio control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return <span class={styles.inputElement}>{hiddenInput}</span>;\n }\n\n return (\n <span\n ref={spanRef}\n class={classNames([radioColor, isLayoutXL ? styles.radioWrapper : undefined])}>\n {hiddenInput}\n <span aria-hidden=\"true\" class={radioIconClasses} {...interactionProps}>\n <IconComp size={radioIconVars.iconSize} color=\"currentColor\" />\n </span>\n </span>\n );\n};\n\nexport const CheckboxControl = ({\n value,\n inputRef,\n isSelected,\n isLayoutXL,\n isDisabled,\n isReadonly,\n describedBy,\n labelledBy,\n testId,\n onBlur,\n onFocus\n}: RichSelectionControlProps) => {\n const { name } = useCheckboxSetContext();\n const testIdProps = useTestId(testId);\n const { isTabbable } = useTabbableMode();\n const checkboxStyles = isLayoutXL ? styles.checkboxWrapper : styles.checkboxAlign;\n\n // Checkbox control is visually hidden in readonly mode unless it is selected\n if (!isSelected && isReadonly) {\n return (\n <span class={styles.inputElement}>\n <HiddenAccessible>\n <input\n aria-readonly={true}\n aria-labelledby={labelledBy}\n aria-describedby={describedBy}\n type=\"checkbox\"\n name={name}\n value={value}\n checked={false}\n disabled={isDisabled}\n tabIndex={isTabbable ? 0 : -1}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputRef}\n {...testIdProps}\n />\n </HiddenAccessible>\n </span>\n );\n }\n\n return (\n <span class={checkboxStyles}>\n <StyledCheckbox\n aria-describedby={describedBy}\n aria-labelledby={labelledBy}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isChecked={isSelected ? 'checked' : 'unchecked'}\n name={name}\n value={value}\n onBlur={onBlur}\n onFocus={onFocus}\n ref={inputRef}\n {...testIdProps}\n />\n </span>\n );\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\n\nimport { useFormFieldContext } from '#hooks/UNSAFE_useFormFieldContext';\nimport { useRichSelectionContext } from '#PRIVATE_RichSelectionCommon/RichSelectionContext';\nimport { StyledCard } from '#PRIVATE_StyledCard';\nimport { useCheckboxSetContext } from '#UNSAFE_CheckboxSet';\nimport { useRadioSetContext } from '#UNSAFE_RadioSet/RadioSetContext';\nimport { RichSelectionTextContent } from './RichSelectionTextContent';\nimport { RichSelectionMediaItem } from './RichSelectionMediaItem';\nimport { Flex } from '#UNSAFE_Flex';\nimport { styles } from './themes/RichSelectionItemStyles.css';\nimport { useId } from '#hooks/UNSAFE_useId';\nimport { useFormContext } from '#hooks/UNSAFE_useFormContext';\nimport { useFocus } from '#hooks/UNSAFE_useFocus';\nimport { usePress } from '#hooks/UNSAFE_usePress';\nimport { RadioControl, CheckboxControl } from './RichSelectionControl';\nimport { type RichSelectionItemData } from './RichSelectionTypes';\nimport { TestIdProps } from '#hooks/UNSAFE_useTestId';\n\ntype RichSelectionItemProps<V extends string | number> = RichSelectionItemData<V> & TestIdProps;\n\n/**\n * `RichSelectionItem` is a customizable input card element used in selection interfaces. It can display a label,\n * optional secondary text, and media (such as an avatar, thumbnail, or icon). It supports both radio and checkbox\n * controls, allowing users to make a single or multiple selections, respectively. The component also handles\n * different states such as disabled, readonly, and focus, and renders dynamically based on layout( 'xl', 'md', or 'sm').\n */\nexport const RichSelectionItem = <V extends string | number>({\n avatar,\n iconClass,\n mediaAccessibleLabel,\n secondaryText,\n thumbnailSrc,\n label,\n value,\n testId\n}: RichSelectionItemProps<V>) => {\n const { isReadonly: isFormReadonly, isDisabled: isFormDisabled } = useFormContext();\n const styledCardRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const { selection, layout, messageSeverity } = useRichSelectionContext()!;\n const { isDisabled: isFieldDisabled, isReadonly: isFieldReadonly } = useFormFieldContext();\n const { value: radioGroupValue, onCommit: onRadioCommit } = useRadioSetContext();\n const { value: checkboxGroupValue, onCommit: onCheckboxCommit } = useCheckboxSetContext();\n const { isFocus, focusProps } = useFocus();\n\n // Determining selection state for error\n const styledCardVariant = messageSeverity === 'error' ? 'danger' : undefined;\n const isDisabled = isFieldDisabled ?? isFormDisabled;\n const isReadonly = isFieldReadonly ?? isFormReadonly;\n const id = useId();\n const isLayoutXL = layout === 'xl';\n const hasMedia = !!avatar || !!thumbnailSrc || !!iconClass;\n const labelId = `${id}-labelled-text`;\n const secondaryTextId = secondaryText ? `${id}-secondary-text` : undefined;\n const isSingleSelection = selection === 'single';\n const isSelected = isSingleSelection\n ? radioGroupValue === value\n : !!checkboxGroupValue?.has(value);\n\n // Scroll into view when the RichSelectionItem is focused\n useEffect(() => {\n if (isFocus) {\n styledCardRef?.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [isFocus, styledCardRef]);\n\n // Text content of label and secondaryText rendering\n const textContent = (\n <RichSelectionTextContent\n secondaryTextId={secondaryTextId}\n labelId={labelId}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n label={label}\n secondaryText={secondaryText}\n />\n );\n\n // Media content rendering based on available media props respective to layout\n const media = avatar\n ? { avatar, mediaAccessibleLabel, layout: layout as 'md' | 'sm' }\n : thumbnailSrc\n ? { thumbnailSrc, mediaAccessibleLabel, layout: layout as 'xl' | 'md' | 'sm' }\n : iconClass\n ? { iconClass, layout: layout as 'sm' }\n : undefined;\n\n const mediaContent = hasMedia ? (\n <RichSelectionMediaItem\n {...media}\n hasSecondaryText={!!secondaryText}\n testId={testId ? `${testId}_media` : undefined}\n />\n ) : undefined;\n\n // Selection control rendering (radio or checkbox)\n const selectionControl = (\n <Flex align={secondaryText ? 'start' : 'center'}>\n {isSingleSelection ? (\n <RadioControl\n {...focusProps}\n value={value}\n inputRef={inputRef}\n isFocus={isFocus}\n isLayoutXL={isLayoutXL}\n isDisabled={isDisabled}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_radio` : undefined}\n />\n ) : (\n <CheckboxControl\n {...focusProps}\n value={value}\n inputRef={inputRef}\n isFocus={isFocus}\n isDisabled={isDisabled}\n isLayoutXL={isLayoutXL}\n isReadonly={isReadonly}\n isSelected={isSelected}\n describedBy={secondaryTextId}\n labelledBy={`${id}-labelled-text`}\n testId={testId ? `${testId}_input_checkbox` : undefined}\n />\n )}\n </Flex>\n );\n\n // Handler for checkbox selection changes\n const triggerCheckBoxAction = useCallback(() => {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n inputRef.current?.focus();\n\n const newGroupValue = new Set(checkboxGroupValue);\n const isSelectedValue = newGroupValue.has(value);\n // If the value is already selected, remove it; otherwise, add it\n isSelectedValue ? newGroupValue.delete(value) : newGroupValue.add(value);\n onCheckboxCommit?.({\n previousValue: checkboxGroupValue,\n value: newGroupValue.size > 0 ? newGroupValue : undefined\n });\n }, [checkboxGroupValue, onCheckboxCommit, value]);\n\n // Handler for radio selection changes\n const triggerRadioAction = useCallback(() => {\n if (radioGroupValue !== value) {\n // if selected from a click, we need to manually set focus on the input to allow for keyboard navigation\n inputRef.current?.focus();\n\n onRadioCommit?.({\n previousValue: radioGroupValue,\n value: value\n });\n }\n }, [radioGroupValue, onRadioCommit, value]);\n\n // Event handlers for the interaction of the StyledCard\n const { pressProps } = usePress(isSingleSelection ? triggerRadioAction : triggerCheckBoxAction, {\n isDisabled: isDisabled || isReadonly\n });\n\n return (\n <StyledCard\n cursor=\"pointer\"\n display=\"inlineFlex\"\n height=\"100%\"\n isDisabled={isDisabled || isReadonly}\n isFocusWithin={isFocus}\n isSelected={styledCardVariant !== 'danger' && !isDisabled && !isReadonly && isSelected}\n parentComponentVariant=\"richSelectionItemCard\"\n ref={styledCardRef}\n role=\"listitem\"\n styleVariant={styledCardVariant}\n testId={testId ? `${testId}_styled_card` : undefined}\n width=\"100%\"\n {...pressProps}>\n {isLayoutXL ? (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n {mediaContent}\n {textContent}\n <div class={styles.selectionElement}>{selectionControl}</div>\n </Flex>\n ) : (\n <div className={styles.densityWrapper}>\n <Flex direction=\"row\" gap=\"4x\" height=\"100%\" width=\"100%\">\n {selectionControl}\n {textContent}\n {mediaContent}\n </Flex>\n </div>\n )}\n </StyledCard>\n );\n};\n"],"names":["_jsx","TruncatingText","classNames","styles","_jsxs","useTestId","AspectRatio","Avatar","Center","View","useRadioSetContext","CheckIcon","RadioOffIcon","RadioOnIcon","useRef","useInteractionStyle","useCallback","useEffect","radioDisabledColor","radioDefaultColor","useComponentTheme","RadioIconRedwoodTheme","useTabbableMode","useRadioItemContext","HiddenAccessible","radioIconVars","useCheckboxSetContext","StyledCheckbox","useFormContext","useRichSelectionContext","useFormFieldContext","useFocus","useId","Flex","usePress","StyledCard"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var SelectMultiple = require('./SelectMultiple-94ab1de5.js');
6
+ var SelectMultiple = require('./SelectMultiple-b1f05b9f.js');
7
7
  require('preact/jsx-runtime');
8
8
  require('./Label-e0d15892.js');
9
9
  require('./FormFieldContext-8418dc68.js');
@@ -264,7 +264,7 @@ require('./useTimer-fa00fb49.js');
264
264
  require('./useTextField-3ce8f0d0.js');
265
265
  require('./useMessageSeverity-cfc4ae9d.js');
266
266
  require('./useFormFieldContextProps-8c04ed0f.js');
267
- require('./useSelectCommon-a0a800fd.js');
267
+ require('./useSelectCommon-5b46ac60.js');
268
268
  require('./HighlightText-dd11dd32.js');
269
269
 
270
270
  require('./Grid-a7316edd.js');
@@ -276,12 +276,12 @@ require('./Skeleton-ef5ed022.js');
276
276
  require('./borders-4b8488cb.js');
277
277
  require('./PRIVATE_SelectCommon/themes/dropdownStyles.css.js');
278
278
 
279
- require('./List-877077ab.js');
279
+ require('./List-0dc2c4c4.js');
280
280
  require('./keys-25710458.js');
281
- require('./LoadMoreCollection-69bc038c.js');
282
- require('./useViewportIntersect-ca1f958b.js');
281
+ require('./LoadMoreCollection-73112ff0.js');
283
282
  require('./Collection-9880039f.js');
284
- require('./VirtualizedCollection-9e8c48b9.js');
283
+ require('./useViewportIntersect-ca1f958b.js');
284
+ require('./VirtualizedCollection-00aedb8b.js');
285
285
  require('./useInteractionStyle-34c07325.js');
286
286
  require('./PRIVATE_List/themes/ListStyles.css.js');
287
287
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var SelectSingle = require('./SelectSingle-52c5cb94.js');
6
+ var SelectSingle = require('./SelectSingle-84b0b3eb.js');
7
7
  require('preact/jsx-runtime');
8
8
  require('./Label-e0d15892.js');
9
9
  require('./FormFieldContext-8418dc68.js');
@@ -264,7 +264,7 @@ require('./useTimer-fa00fb49.js');
264
264
  require('./useTextField-3ce8f0d0.js');
265
265
  require('./useMessageSeverity-cfc4ae9d.js');
266
266
  require('./useFormFieldContextProps-8c04ed0f.js');
267
- require('./useSelectCommon-a0a800fd.js');
267
+ require('./useSelectCommon-5b46ac60.js');
268
268
  require('./HighlightText-dd11dd32.js');
269
269
 
270
270
  require('./Grid-a7316edd.js');
@@ -276,12 +276,12 @@ require('./Skeleton-ef5ed022.js');
276
276
  require('./borders-4b8488cb.js');
277
277
  require('./PRIVATE_SelectCommon/themes/dropdownStyles.css.js');
278
278
 
279
- require('./List-877077ab.js');
279
+ require('./List-0dc2c4c4.js');
280
280
  require('./keys-25710458.js');
281
- require('./LoadMoreCollection-69bc038c.js');
282
- require('./useViewportIntersect-ca1f958b.js');
281
+ require('./LoadMoreCollection-73112ff0.js');
283
282
  require('./Collection-9880039f.js');
284
- require('./VirtualizedCollection-9e8c48b9.js');
283
+ require('./useViewportIntersect-ca1f958b.js');
284
+ require('./VirtualizedCollection-00aedb8b.js');
285
285
  require('./useInteractionStyle-34c07325.js');
286
286
  require('./PRIVATE_List/themes/ListStyles.css.js');
287
287
 
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var TabBar = require('./TabBar-bf94b95a.js');
7
7
  var TabBarItem = require('./TabBarItem-00fcf601.js');
8
8
  var RemovableTabBarItem = require('./RemovableTabBarItem-ff408dff.js');
9
- var OverflowTabBarItem = require('./OverflowTabBarItem-3c7adb01.js');
9
+ var OverflowTabBarItem = require('./OverflowTabBarItem-57537ebe.js');
10
10
  var useTabBarContext = require('./useTabBarContext-2a6a796c.js');
11
11
  var useProgressiveTruncation = require('./useProgressiveTruncation-3663252a.js');
12
12
  require('preact/jsx-runtime');
@@ -206,7 +206,7 @@ require('./UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutBaseTheme.cs
206
206
  require('./UNSAFE_ButtonLabelLayout/themes/redwood/ButtonLabelLayoutVariants.css.js');
207
207
 
208
208
  require('./UNSAFE_TabBarCommon/themes/OverflowTabBarItemStyles.css.js');
209
- require('./NavigationListItem-4c4e804d.js');
209
+ require('./NavigationListItem-7947af0e.js');
210
210
  require('./UNSAFE_NavigationList/themes/NavigationListStyles.css.js');
211
211
 
212
212
  require('./BaseNavigationListItem-50e4c603.js');
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var TabBarItem = require('./TabBarItem-00fcf601.js');
7
7
  var RemovableTabBarItem = require('./RemovableTabBarItem-ff408dff.js');
8
- var OverflowTabBarItem = require('./OverflowTabBarItem-3c7adb01.js');
8
+ var OverflowTabBarItem = require('./OverflowTabBarItem-57537ebe.js');
9
9
  var useProgressiveTruncation = require('./useProgressiveTruncation-3663252a.js');
10
10
  var useTabBarContext = require('./useTabBarContext-2a6a796c.js');
11
11
  var TabBarLayout = require('./TabBarLayout-846a4d9a.js');
@@ -172,7 +172,7 @@ require('./UNSAFE_Sheet/themes/SheetStyles.css.js');
172
172
 
173
173
  require('./UNSAFE_TabBarCommon/themes/OverflowTabBarItemStyles.css.js');
174
174
 
175
- require('./NavigationListItem-4c4e804d.js');
175
+ require('./NavigationListItem-7947af0e.js');
176
176
  require('./UNSAFE_NavigationList/themes/NavigationListStyles.css.js');
177
177
 
178
178
  require('./collectionUtils-d9fdec19.js');
@@ -7,7 +7,7 @@ var TabBarMixed = require('./TabBarMixed-975141a6.js');
7
7
  var TabBarMixedSeparator = require('./TabBarMixedSeparator-0e258647.js');
8
8
  var TabBarItem = require('./TabBarItem-00fcf601.js');
9
9
  var RemovableTabBarItem = require('./RemovableTabBarItem-ff408dff.js');
10
- var OverflowTabBarItem = require('./OverflowTabBarItem-3c7adb01.js');
10
+ var OverflowTabBarItem = require('./OverflowTabBarItem-57537ebe.js');
11
11
  require('preact/jsx-runtime');
12
12
  require('preact/hooks');
13
13
  require('./LayerHost-a8c7f182.js');
@@ -184,7 +184,7 @@ require('./popupAnimationUtils-dcace427.js');
184
184
  require('./UNSAFE_Dropdown/themes/dropdownStyles.css.js');
185
185
  require('./useOutsideMousedown-a8c09ad9.js');
186
186
  require('./UNSAFE_TabBarCommon/themes/OverflowTabBarItemStyles.css.js');
187
- require('./NavigationListItem-4c4e804d.js');
187
+ require('./NavigationListItem-7947af0e.js');
188
188
  require('./UNSAFE_NavigationList/themes/NavigationListStyles.css.js');
189
189
 
190
190
  require('./BaseNavigationListItem-50e4c603.js');
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var TableView = require('./TableView-37d6f731.js');
6
+ var TableView = require('./TableView-3cc9d3be.js');
7
7
  require('preact/jsx-runtime');
8
8
  require('preact/compat');
9
9
  require('./UNSAFE_TableView/themes/TableViewStyles.css.js');
@@ -24,15 +24,15 @@ require('./mergeDeepWithKey-210b024d.js');
24
24
  require('./_curry3-18677bca.js');
25
25
  require('./_curry2-c15d89cd.js');
26
26
  require('./_isObject-28636267.js');
27
- require('./Table-15a64988.js');
27
+ require('./Table-90fe7ad8.js');
28
28
  require('./useId-6c0eeb27.js');
29
29
  require('./TabbableModeContext-e99d527e.js');
30
30
  require('./useUser-a4bfc560.js');
31
31
  require('./LayerHost-a8c7f182.js');
32
32
  require('./Common/themes/redwood/theme.js');
33
- require('./LoadMoreCollection-69bc038c.js');
34
- require('./useViewportIntersect-ca1f958b.js');
33
+ require('./LoadMoreCollection-73112ff0.js');
35
34
  require('./Collection-9880039f.js');
35
+ require('./useViewportIntersect-ca1f958b.js');
36
36
  require('./useTranslationBundle-51f4c22c.js');
37
37
  require('./PRIVATE_Table/themes/TableSkeletonStyles.css.js');
38
38
 
@@ -3,18 +3,18 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var VirtualizedListView = require('./VirtualizedListView-03fa4758.js');
6
+ var VirtualizedListView = require('./VirtualizedListView-9bfaf4e2.js');
7
7
  require('preact/jsx-runtime');
8
- require('./List-877077ab.js');
8
+ require('./List-0dc2c4c4.js');
9
9
  require('preact/hooks');
10
10
  require('./classNames-c14c6ef3.js');
11
11
  require('./mergeProps-e3da7237.js');
12
12
  require('./keys-25710458.js');
13
- require('./LoadMoreCollection-69bc038c.js');
13
+ require('./LoadMoreCollection-73112ff0.js');
14
14
  require('preact');
15
- require('./useViewportIntersect-ca1f958b.js');
16
15
  require('./Collection-9880039f.js');
17
- require('./VirtualizedCollection-9e8c48b9.js');
16
+ require('./useViewportIntersect-ca1f958b.js');
17
+ require('./VirtualizedCollection-00aedb8b.js');
18
18
  require('preact/compat');
19
19
  require('./TabbableModeContext-e99d527e.js');
20
20
  require('./useId-6c0eeb27.js');
@@ -3,8 +3,8 @@
3
3
 
4
4
  var jsxRuntime = require('preact/jsx-runtime');
5
5
  var hooks = require('preact/hooks');
6
- var useViewportIntersect = require('./useViewportIntersect-ca1f958b.js');
7
6
  var Collection = require('./Collection-9880039f.js');
7
+ var useViewportIntersect = require('./useViewportIntersect-ca1f958b.js');
8
8
 
9
9
  const PLACEHOLDER_STYLE_CLASS = 'oj-collection-placeholder';
10
10
  const DEFAULT_PLACEHOLDER_SIZE = 48; // min-height defined in Redwood spec for item
@@ -177,4 +177,4 @@ function VirtualizedCollection({ data, children, viewportConfig, itemSelector, p
177
177
  exports.PLACEHOLDER_STYLE_CLASS = PLACEHOLDER_STYLE_CLASS;
178
178
  exports.VirtualizedCollection = VirtualizedCollection;
179
179
  exports.getVirtualizedRangeExtractor = getVirtualizedRangeExtractor;
180
- //# sourceMappingURL=VirtualizedCollection-9e8c48b9.js.map
180
+ //# sourceMappingURL=VirtualizedCollection-00aedb8b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedCollection-9e8c48b9.js","sources":["../../src/PRIVATE_VirtualizedCollection/Placeholder.tsx","../../src/PRIVATE_VirtualizedCollection/VirtualizedCollection.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { JSX } from 'preact';\n\nexport const placeholderTypes = ['topPlaceholder', 'bottomPlaceholder'] as const;\n/**\n * Type of placeholder (top which is before the data content and bottom which is after the data content)\n */\nexport type PlaceholderType = (typeof placeholderTypes)[number];\n\n/**\n * Context object which is pass to the placeholderHeight function callback\n */\nexport type PlaceholderContext = {\n fromIndex: number;\n toIndex: number;\n estimateItemSize: number;\n which: PlaceholderType;\n};\n\nexport const PLACEHOLDER_STYLE_CLASS = 'oj-collection-placeholder';\n\nconst DEFAULT_PLACEHOLDER_SIZE = 48; // min-height defined in Redwood spec for item\nconst TOP_PLACEHOLDER_KEY = '_topPlaceholder';\nconst BOTTOM_PLACEHOLDER_KEY = '_bottomPlaceholder';\n\ntype Props = {\n context: PlaceholderContext;\n placeholderHeight?: (context: PlaceholderContext) => number;\n};\n\n/**\n * A component that renders placeholder which is used internally by VirtualizeViewportCollection\n */\nexport const Placeholder = ({ context, placeholderHeight }: Props) => {\n const { fromIndex, toIndex, which, estimateItemSize } = context;\n let totalHeight = 0;\n if (placeholderHeight) {\n totalHeight = placeholderHeight(context);\n } else {\n const placeholderUnitHeight =\n estimateItemSize === 0 ? DEFAULT_PLACEHOLDER_SIZE : estimateItemSize;\n totalHeight = Math.max(0, toIndex - fromIndex) * placeholderUnitHeight;\n }\n\n const key = which === 'topPlaceholder' ? TOP_PLACEHOLDER_KEY : BOTTOM_PLACEHOLDER_KEY;\n const style: JSX.CSSProperties = { height: totalHeight + 'px' };\n if (totalHeight === 0) {\n style.display = 'none';\n }\n return <div key={key} className={PLACEHOLDER_STYLE_CLASS} style={style}></div>;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { RefObject, ComponentChildren } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { DataState, ItemContext, Range, Metadata, ViewportInfo } from '../UNSAFE_Collection';\nimport { Collection } from '../PRIVATE_Collection';\nimport {\n Placeholder,\n PlaceholderContext,\n PlaceholderType,\n PLACEHOLDER_STYLE_CLASS\n} from './Placeholder';\nimport { useViewportIntersect, ViewportConfig } from '../hooks/UNSAFE_useViewportIntersect';\n\n/**\n * Props for the VirtualizedCollection component\n */\ntype Props<K, D> = {\n /**\n * A DataState object that provide information including data and metadata to the VirtualizedCollection.\n */\n data: DataState<K, D> | null;\n\n /**\n * Renderer callback used to render each item\n */\n children: (context: ItemContext<{ data: D; metadata: Metadata<K> }>) => ComponentChildren;\n\n /**\n * Callback to calculate placeholder height\n */\n placeholderHeight?: (context: PlaceholderContext) => number;\n\n /**\n * Viewport configuration including specifying the element which is used to determine what range\n * of data to render\n */\n viewportConfig: ViewportConfig;\n\n /**\n * The selector string to identify the children items\n */\n itemSelector: string;\n\n /**\n * Callback function to handle when viewport has changed, including the case\n * where user scrolls to the end of the component and there are more items to load.\n * The function should sets a new DataState on the component for the specified range.\n */\n onLoadRange: (range: Range) => void;\n\n /**\n * The number of additional items to render before and after the current viewport. This is\n * mainly used for performance tuning. Increase the overscan will result in less frequent\n * rendering when scroll but at the same time each render will take longer depending on the\n * item content.\n */\n overscan?: number;\n\n /**\n * Optionally provide a custom callback to return the range to render based on viewport info\n */\n rangeExtractor?: (info: ViewportInfo) => Range;\n\n /**\n * Optionally specify the custom load more indicator\n */\n loadMoreIndicator?: ComponentChildren;\n\n /**\n * Optionally provide the suggestion indicator sparkle\n */\n suggestions?: ComponentChildren;\n};\n\n/**\n * A function that returns the default range extractor\n * @param fetchSize\n */\nexport function getVirtualizedRangeExtractor(fetchSize: number) {\n return function ({ itemSize, viewportHeight, scrollOffset, overscan = 0 }: ViewportInfo): Range {\n // if any of these is missing then return default initial range\n if (\n itemSize === undefined ||\n itemSize === 0 ||\n viewportHeight === undefined ||\n scrollOffset === undefined\n ) {\n return { offset: 0, count: fetchSize };\n }\n const offset = Math.ceil(scrollOffset / itemSize);\n const count = Math.ceil(viewportHeight / itemSize);\n return {\n offset: Math.max(0, offset - overscan),\n count: count + overscan * (offset > 0 ? 2 : 1)\n };\n };\n}\n\n/**\n * Helper function to find the top and bottom of an element relative to the viewport\n * @param elem\n */\nconst getElementTopBottom = (elem: HTMLElement): { top: number; bottom: number } => {\n let top;\n let bottom;\n if (elem === document.documentElement) {\n top = 0;\n bottom = document.documentElement.clientHeight;\n } else {\n const scrollerBounds = elem.getBoundingClientRect();\n top = scrollerBounds.top;\n bottom = scrollerBounds.bottom;\n }\n return { top, bottom };\n};\n\nconst isDataStateValid = <K, D>(dataState: DataState<K, D>) => {\n return dataState && dataState.data && dataState.offset >= 0 && dataState.totalSize >= 0;\n};\n\nconst DEFAULT_MARGIN = 1;\n\n/**\n * Returns the range for the current viewport\n */\nconst getViewportRange = (\n scroller: HTMLElement | null,\n root: HTMLElement,\n overscan: number,\n rangeExtractor: (info: ViewportInfo) => Range,\n estimateItemSize: number\n) => {\n let scrollOffset;\n let viewportHeight;\n\n if (scroller && root) {\n const rootRect = root.getBoundingClientRect();\n const viewportRect = getElementTopBottom(scroller);\n if (rootRect && viewportRect) {\n scrollOffset = viewportRect.top - rootRect.top - DEFAULT_MARGIN;\n viewportHeight = viewportRect.bottom - viewportRect.top + DEFAULT_MARGIN;\n }\n }\n\n if (scrollOffset !== undefined && viewportHeight !== undefined) {\n // figure out what the new range should be\n const range = rangeExtractor({\n scrollOffset,\n viewportHeight,\n overscan: overscan,\n itemSize: estimateItemSize\n });\n\n return range;\n }\n return null;\n};\n\nconst DEFAULT_OVERSCAN = 1;\nconst DEFAULT_END_INDEX = 25; // match default fetch size\nconst LOADMORE_STYLE_CLASS = 'oj-collection-loadmore';\nconst LOAD_MORE_AND_PLACEHOLDER_SELECTOR = `.${LOADMORE_STYLE_CLASS}, .${PLACEHOLDER_STYLE_CLASS}`;\nconst DEFAULT_RANGE_EXTRACTOR = getVirtualizedRangeExtractor(DEFAULT_END_INDEX);\n\n/**\n * Component that only render items in the specified viewport.\n * @param props\n */\nexport function VirtualizedCollection<K, D>({\n data,\n children,\n viewportConfig,\n itemSelector,\n placeholderHeight,\n rangeExtractor = DEFAULT_RANGE_EXTRACTOR,\n overscan = DEFAULT_OVERSCAN,\n onLoadRange,\n loadMoreIndicator,\n suggestions\n}: Props<K, D>) {\n const rootRef: RefObject<any> = useRef<HTMLElement>(null);\n const estimateItemSizeRef: RefObject<number> = useRef(0);\n\n // detect if viewport has changed and it needs to re-render based on a new range\n useViewportIntersect(\n viewportConfig,\n DEFAULT_MARGIN,\n 0,\n LOAD_MORE_AND_PLACEHOLDER_SELECTOR,\n () => {\n const range = getViewportRange(\n viewportConfig.scroller(),\n rootRef.current,\n overscan,\n rangeExtractor,\n estimateItemSizeRef.current ?? 0\n );\n if (range) {\n onLoadRange(range);\n }\n }\n );\n\n // calculate average item height. For now, we'll just do this once, but we can\n // do a rolling average where we'll adjust on every render.\n useEffect(() => {\n if (estimateItemSizeRef.current === 0) {\n let totalHeight = 0;\n const nodes = rootRef.current.querySelectorAll(itemSelector);\n if (nodes.length > 0) {\n nodes.forEach((item: HTMLElement) => {\n totalHeight += item.offsetHeight;\n });\n estimateItemSizeRef.current = totalHeight / nodes.length;\n }\n }\n });\n\n // override itemRenderer to adjust the index\n const _getItemRenderer = (startIndex: number) => {\n // returns a new render function\n return (context: ItemContext<{ data: D; metadata: Metadata<K> }>) => {\n const itemContext: ItemContext<{ data: D; metadata: Metadata<K> }> = {\n index: startIndex + context.index,\n data: context.data\n };\n return children(itemContext);\n };\n };\n\n // if DataState is invalid (including not specified), just render blank\n if (!data || !isDataStateValid(data)) {\n return <div ref={rootRef} />;\n }\n\n const rangeData = data.data;\n const offset = data.offset;\n const endIndex = offset + rangeData.length;\n const itemCount = data.totalSize;\n const topPlaceholderContext =\n offset >= 0\n ? {\n fromIndex: 0,\n toIndex: offset,\n which: 'topPlaceholder' as PlaceholderType,\n estimateItemSize: estimateItemSizeRef.current ?? 0\n }\n : undefined;\n const bottomPlaceholderContext =\n endIndex && endIndex <= itemCount\n ? {\n fromIndex: endIndex,\n toIndex: itemCount,\n which: 'bottomPlaceholder' as PlaceholderType,\n estimateItemSize: estimateItemSizeRef.current ?? 0\n }\n : undefined;\n\n const renderLoadMore =\n loadMoreIndicator && data.sizePrecision === 'atLeast' && endIndex <= itemCount;\n\n // might need to support elementType prop in the future to allow customization of what\n // type of element to render for the root\n return (\n <div ref={rootRef} style=\"will-change: contents\">\n {suggestions}\n {topPlaceholderContext && (\n <Placeholder\n context={topPlaceholderContext}\n placeholderHeight={placeholderHeight}></Placeholder>\n )}\n <Collection items={rangeData}>{_getItemRenderer(offset)}</Collection>\n {bottomPlaceholderContext && (\n <Placeholder\n context={bottomPlaceholderContext}\n placeholderHeight={placeholderHeight}></Placeholder>\n )}\n {renderLoadMore && loadMoreIndicator}\n </div>\n );\n}\n"],"names":["_jsx","useRef","useViewportIntersect","useEffect","_jsxs","Collection"],"mappings":"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"}
1
+ {"version":3,"file":"VirtualizedCollection-00aedb8b.js","sources":["../../src/PRIVATE_VirtualizedCollection/Placeholder.tsx","../../src/PRIVATE_VirtualizedCollection/VirtualizedCollection.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { JSX } from 'preact';\n\nexport const placeholderTypes = ['topPlaceholder', 'bottomPlaceholder'] as const;\n/**\n * Type of placeholder (top which is before the data content and bottom which is after the data content)\n */\nexport type PlaceholderType = (typeof placeholderTypes)[number];\n\n/**\n * Context object which is pass to the placeholderHeight function callback\n */\nexport type PlaceholderContext = {\n fromIndex: number;\n toIndex: number;\n estimateItemSize: number;\n which: PlaceholderType;\n};\n\nexport const PLACEHOLDER_STYLE_CLASS = 'oj-collection-placeholder';\n\nconst DEFAULT_PLACEHOLDER_SIZE = 48; // min-height defined in Redwood spec for item\nconst TOP_PLACEHOLDER_KEY = '_topPlaceholder';\nconst BOTTOM_PLACEHOLDER_KEY = '_bottomPlaceholder';\n\ntype Props = {\n context: PlaceholderContext;\n placeholderHeight?: (context: PlaceholderContext) => number;\n};\n\n/**\n * A component that renders placeholder which is used internally by VirtualizeViewportCollection\n */\nexport const Placeholder = ({ context, placeholderHeight }: Props) => {\n const { fromIndex, toIndex, which, estimateItemSize } = context;\n let totalHeight = 0;\n if (placeholderHeight) {\n totalHeight = placeholderHeight(context);\n } else {\n const placeholderUnitHeight =\n estimateItemSize === 0 ? DEFAULT_PLACEHOLDER_SIZE : estimateItemSize;\n totalHeight = Math.max(0, toIndex - fromIndex) * placeholderUnitHeight;\n }\n\n const key = which === 'topPlaceholder' ? TOP_PLACEHOLDER_KEY : BOTTOM_PLACEHOLDER_KEY;\n const style: JSX.CSSProperties = { height: totalHeight + 'px' };\n if (totalHeight === 0) {\n style.display = 'none';\n }\n return <div key={key} className={PLACEHOLDER_STYLE_CLASS} style={style}></div>;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { RefObject, ComponentChildren } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport { DataState, ItemContext, Range, Metadata, ViewportInfo } from '../UNSAFE_Collection';\nimport { Collection } from '../PRIVATE_Collection';\nimport {\n Placeholder,\n PlaceholderContext,\n PlaceholderType,\n PLACEHOLDER_STYLE_CLASS\n} from './Placeholder';\nimport { useViewportIntersect, ViewportConfig } from '../hooks/UNSAFE_useViewportIntersect';\n\n/**\n * Props for the VirtualizedCollection component\n */\ntype Props<K, D> = {\n /**\n * A DataState object that provide information including data and metadata to the VirtualizedCollection.\n */\n data: DataState<K, D> | null;\n\n /**\n * Renderer callback used to render each item\n */\n children: (context: ItemContext<{ data: D; metadata: Metadata<K> }>) => ComponentChildren;\n\n /**\n * Callback to calculate placeholder height\n */\n placeholderHeight?: (context: PlaceholderContext) => number;\n\n /**\n * Viewport configuration including specifying the element which is used to determine what range\n * of data to render\n */\n viewportConfig: ViewportConfig;\n\n /**\n * The selector string to identify the children items\n */\n itemSelector: string;\n\n /**\n * Callback function to handle when viewport has changed, including the case\n * where user scrolls to the end of the component and there are more items to load.\n * The function should sets a new DataState on the component for the specified range.\n */\n onLoadRange: (range: Range) => void;\n\n /**\n * The number of additional items to render before and after the current viewport. This is\n * mainly used for performance tuning. Increase the overscan will result in less frequent\n * rendering when scroll but at the same time each render will take longer depending on the\n * item content.\n */\n overscan?: number;\n\n /**\n * Optionally provide a custom callback to return the range to render based on viewport info\n */\n rangeExtractor?: (info: ViewportInfo) => Range;\n\n /**\n * Optionally specify the custom load more indicator\n */\n loadMoreIndicator?: ComponentChildren;\n\n /**\n * Optionally provide the suggestion indicator sparkle\n */\n suggestions?: ComponentChildren;\n};\n\n/**\n * A function that returns the default range extractor\n * @param fetchSize\n */\nexport function getVirtualizedRangeExtractor(fetchSize: number) {\n return function ({ itemSize, viewportHeight, scrollOffset, overscan = 0 }: ViewportInfo): Range {\n // if any of these is missing then return default initial range\n if (\n itemSize === undefined ||\n itemSize === 0 ||\n viewportHeight === undefined ||\n scrollOffset === undefined\n ) {\n return { offset: 0, count: fetchSize };\n }\n const offset = Math.ceil(scrollOffset / itemSize);\n const count = Math.ceil(viewportHeight / itemSize);\n return {\n offset: Math.max(0, offset - overscan),\n count: count + overscan * (offset > 0 ? 2 : 1)\n };\n };\n}\n\n/**\n * Helper function to find the top and bottom of an element relative to the viewport\n * @param elem\n */\nconst getElementTopBottom = (elem: HTMLElement): { top: number; bottom: number } => {\n let top;\n let bottom;\n if (elem === document.documentElement) {\n top = 0;\n bottom = document.documentElement.clientHeight;\n } else {\n const scrollerBounds = elem.getBoundingClientRect();\n top = scrollerBounds.top;\n bottom = scrollerBounds.bottom;\n }\n return { top, bottom };\n};\n\nconst isDataStateValid = <K, D>(dataState: DataState<K, D>) => {\n return dataState && dataState.data && dataState.offset >= 0 && dataState.totalSize >= 0;\n};\n\nconst DEFAULT_MARGIN = 1;\n\n/**\n * Returns the range for the current viewport\n */\nconst getViewportRange = (\n scroller: HTMLElement | null,\n root: HTMLElement,\n overscan: number,\n rangeExtractor: (info: ViewportInfo) => Range,\n estimateItemSize: number\n) => {\n let scrollOffset;\n let viewportHeight;\n\n if (scroller && root) {\n const rootRect = root.getBoundingClientRect();\n const viewportRect = getElementTopBottom(scroller);\n if (rootRect && viewportRect) {\n scrollOffset = viewportRect.top - rootRect.top - DEFAULT_MARGIN;\n viewportHeight = viewportRect.bottom - viewportRect.top + DEFAULT_MARGIN;\n }\n }\n\n if (scrollOffset !== undefined && viewportHeight !== undefined) {\n // figure out what the new range should be\n const range = rangeExtractor({\n scrollOffset,\n viewportHeight,\n overscan: overscan,\n itemSize: estimateItemSize\n });\n\n return range;\n }\n return null;\n};\n\nconst DEFAULT_OVERSCAN = 1;\nconst DEFAULT_END_INDEX = 25; // match default fetch size\nconst LOADMORE_STYLE_CLASS = 'oj-collection-loadmore';\nconst LOAD_MORE_AND_PLACEHOLDER_SELECTOR = `.${LOADMORE_STYLE_CLASS}, .${PLACEHOLDER_STYLE_CLASS}`;\nconst DEFAULT_RANGE_EXTRACTOR = getVirtualizedRangeExtractor(DEFAULT_END_INDEX);\n\n/**\n * Component that only render items in the specified viewport.\n * @param props\n */\nexport function VirtualizedCollection<K, D>({\n data,\n children,\n viewportConfig,\n itemSelector,\n placeholderHeight,\n rangeExtractor = DEFAULT_RANGE_EXTRACTOR,\n overscan = DEFAULT_OVERSCAN,\n onLoadRange,\n loadMoreIndicator,\n suggestions\n}: Props<K, D>) {\n const rootRef: RefObject<any> = useRef<HTMLElement>(null);\n const estimateItemSizeRef: RefObject<number> = useRef(0);\n\n // detect if viewport has changed and it needs to re-render based on a new range\n useViewportIntersect(\n viewportConfig,\n DEFAULT_MARGIN,\n 0,\n LOAD_MORE_AND_PLACEHOLDER_SELECTOR,\n () => {\n const range = getViewportRange(\n viewportConfig.scroller(),\n rootRef.current,\n overscan,\n rangeExtractor,\n estimateItemSizeRef.current ?? 0\n );\n if (range) {\n onLoadRange(range);\n }\n }\n );\n\n // calculate average item height. For now, we'll just do this once, but we can\n // do a rolling average where we'll adjust on every render.\n useEffect(() => {\n if (estimateItemSizeRef.current === 0) {\n let totalHeight = 0;\n const nodes = rootRef.current.querySelectorAll(itemSelector);\n if (nodes.length > 0) {\n nodes.forEach((item: HTMLElement) => {\n totalHeight += item.offsetHeight;\n });\n estimateItemSizeRef.current = totalHeight / nodes.length;\n }\n }\n });\n\n // override itemRenderer to adjust the index\n const _getItemRenderer = (startIndex: number) => {\n // returns a new render function\n return (context: ItemContext<{ data: D; metadata: Metadata<K> }>) => {\n const itemContext: ItemContext<{ data: D; metadata: Metadata<K> }> = {\n index: startIndex + context.index,\n data: context.data\n };\n return children(itemContext);\n };\n };\n\n // if DataState is invalid (including not specified), just render blank\n if (!data || !isDataStateValid(data)) {\n return <div ref={rootRef} />;\n }\n\n const rangeData = data.data;\n const offset = data.offset;\n const endIndex = offset + rangeData.length;\n const itemCount = data.totalSize;\n const topPlaceholderContext =\n offset >= 0\n ? {\n fromIndex: 0,\n toIndex: offset,\n which: 'topPlaceholder' as PlaceholderType,\n estimateItemSize: estimateItemSizeRef.current ?? 0\n }\n : undefined;\n const bottomPlaceholderContext =\n endIndex && endIndex <= itemCount\n ? {\n fromIndex: endIndex,\n toIndex: itemCount,\n which: 'bottomPlaceholder' as PlaceholderType,\n estimateItemSize: estimateItemSizeRef.current ?? 0\n }\n : undefined;\n\n const renderLoadMore =\n loadMoreIndicator && data.sizePrecision === 'atLeast' && endIndex <= itemCount;\n\n // might need to support elementType prop in the future to allow customization of what\n // type of element to render for the root\n return (\n <div ref={rootRef} style=\"will-change: contents\">\n {suggestions}\n {topPlaceholderContext && (\n <Placeholder\n context={topPlaceholderContext}\n placeholderHeight={placeholderHeight}></Placeholder>\n )}\n <Collection items={rangeData}>{_getItemRenderer(offset)}</Collection>\n {bottomPlaceholderContext && (\n <Placeholder\n context={bottomPlaceholderContext}\n placeholderHeight={placeholderHeight}></Placeholder>\n )}\n {renderLoadMore && loadMoreIndicator}\n </div>\n );\n}\n"],"names":["_jsx","useRef","useViewportIntersect","useEffect","_jsxs","Collection"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('preact/jsx-runtime');
5
- var List = require('./List-877077ab.js');
5
+ var List = require('./List-0dc2c4c4.js');
6
6
 
7
7
  /**
8
8
  * Component that renders items as a flat list.
@@ -13,4 +13,4 @@ function VirtualizedListView(props) {
13
13
  }
14
14
 
15
15
  exports.VirtualizedListView = VirtualizedListView;
16
- //# sourceMappingURL=VirtualizedListView-03fa4758.js.map
16
+ //# sourceMappingURL=VirtualizedListView-9bfaf4e2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedListView-03fa4758.js","sources":["../../src/UNSAFE_VirtualizedListView/VirtualizedListView.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 { List } from '../PRIVATE_List';\nimport { ListProps } from '../UNSAFE_ListView/List.types';\n\n/**\n * Props for the VirtualizedListView Component\n */\nexport type Props<K, D> = Pick<\n ListProps<K, D>,\n | 'aria-label'\n | 'aria-labelledby'\n | 'children'\n | 'currentItemVariant'\n | 'currentItemOverride'\n | 'data'\n | 'gridlines'\n | 'onPersistCurrentItem'\n | 'onItemAction'\n | 'onLoadRange'\n | 'onSelectionChange'\n | 'selectedKeys'\n | 'selectionMode'\n | 'viewportConfig'\n>;\n\n/**\n * Component that renders items as a flat list.\n * In order to maximize performance, only items that are visible in the viewport are rendered.\n */\n\nexport function VirtualizedListView<K extends string | number, D>(props: Props<K, D>) {\n return (\n <List isVirtualized={true} {...props}>\n {props.children}\n </List>\n );\n}\n"],"names":["_jsx","List"],"mappings":";;;;;;AA+BA;;;AAGG;AAEG,SAAU,mBAAmB,CAA+B,KAAkB,EAAA;AAClF,IAAA,QACEA,cAAA,CAACC,SAAI,EAAA,EAAC,aAAa,EAAE,IAAI,EAAM,GAAA,KAAK,YACjC,KAAK,CAAC,QAAQ,EAAA,CACV,EACP;AACJ;;;;"}
1
+ {"version":3,"file":"VirtualizedListView-9bfaf4e2.js","sources":["../../src/UNSAFE_VirtualizedListView/VirtualizedListView.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 { List } from '../PRIVATE_List';\nimport { ListProps } from '../UNSAFE_ListView/List.types';\n\n/**\n * Props for the VirtualizedListView Component\n */\nexport type Props<K, D> = Pick<\n ListProps<K, D>,\n | 'aria-label'\n | 'aria-labelledby'\n | 'children'\n | 'currentItemVariant'\n | 'currentItemOverride'\n | 'data'\n | 'gridlines'\n | 'onPersistCurrentItem'\n | 'onItemAction'\n | 'onLoadRange'\n | 'onSelectionChange'\n | 'selectedKeys'\n | 'selectionMode'\n | 'viewportConfig'\n>;\n\n/**\n * Component that renders items as a flat list.\n * In order to maximize performance, only items that are visible in the viewport are rendered.\n */\n\nexport function VirtualizedListView<K extends string | number, D>(props: Props<K, D>) {\n return (\n <List isVirtualized={true} {...props}>\n {props.children}\n </List>\n );\n}\n"],"names":["_jsx","List"],"mappings":";;;;;;AA+BA;;;AAGG;AAEG,SAAU,mBAAmB,CAA+B,KAAkB,EAAA;AAClF,IAAA,QACEA,cAAA,CAACC,SAAI,EAAA,EAAC,aAAa,EAAE,IAAI,EAAM,GAAA,KAAK,YACjC,KAAK,CAAC,QAAQ,EAAA,CACV,EACP;AACJ;;;;"}
@@ -11,7 +11,7 @@ var Skeleton = require('./Skeleton-ef5ed022.js');
11
11
  var hooks = require('preact/hooks');
12
12
  var logger = require('./logger-2b636482.js');
13
13
  var PRIVATE_SelectCommon_themes_dropdownStyles_css = require('./PRIVATE_SelectCommon/themes/dropdownStyles.css.js');
14
- var List = require('./List-877077ab.js');
14
+ var List = require('./List-0dc2c4c4.js');
15
15
  var Floating = require('./Floating-56621d20.js');
16
16
  var Layer = require('./Layer-0053053a.js');
17
17
  var compat = require('preact/compat');
@@ -706,4 +706,4 @@ exports.preventDefaultForCurrentTarget = preventDefaultForCurrentTarget;
706
706
  exports.renderItemText = renderItemText;
707
707
  exports.useCollectionRenderer = useCollectionRenderer;
708
708
  exports.useSelectCommon = useSelectCommon;
709
- //# sourceMappingURL=useSelectCommon-a0a800fd.js.map
709
+ //# sourceMappingURL=useSelectCommon-5b46ac60.js.map