@okta/odyssey-react-mui 1.41.1 → 1.43.0

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 (354) hide show
  1. package/dist/cjs/DataTable/DataTable.cjs +67 -42
  2. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  3. package/dist/cjs/Drawer.cjs +16 -14
  4. package/dist/cjs/Drawer.cjs.map +1 -1
  5. package/dist/cjs/PasswordField.cjs +1 -1
  6. package/dist/cjs/PasswordField.cjs.map +1 -1
  7. package/dist/cjs/Select.cjs +35 -44
  8. package/dist/cjs/Select.cjs.map +1 -1
  9. package/dist/cjs/Status.cjs +2 -0
  10. package/dist/cjs/Status.cjs.map +1 -1
  11. package/dist/cjs/Typography.cjs +32 -8
  12. package/dist/cjs/Typography.cjs.map +1 -1
  13. package/dist/cjs/createContrastColors.cjs +6 -2
  14. package/dist/cjs/createContrastColors.cjs.map +1 -1
  15. package/dist/cjs/getLogicalBoundaries.cjs +33 -0
  16. package/dist/cjs/getLogicalBoundaries.cjs.map +1 -0
  17. package/dist/cjs/labs/DataFilters.cjs +1 -0
  18. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  19. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
  20. package/dist/cjs/labs/DataView/CardLayoutContent.cjs.map +1 -1
  21. package/dist/cjs/labs/DataView/DataView.cjs +10 -1
  22. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  23. package/dist/cjs/labs/DataView/RowActions.cjs +3 -4
  24. package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
  25. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +2 -4
  26. package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
  27. package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
  28. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs.map +1 -1
  29. package/dist/cjs/labs/OdysseyPickers/Picker.cjs +17 -11
  30. package/dist/cjs/labs/OdysseyPickers/Picker.cjs.map +1 -1
  31. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +2 -1
  32. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
  33. package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs +2 -3
  34. package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs.map +1 -1
  35. package/dist/cjs/labs/PageTemplate/PageTemplate.cjs +15 -4
  36. package/dist/cjs/labs/PageTemplate/PageTemplate.cjs.map +1 -1
  37. package/dist/cjs/properties/ts/odyssey-react-mui.cjs +0 -1
  38. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  39. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +0 -1
  40. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
  41. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +0 -1
  42. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
  43. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +0 -1
  44. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
  45. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +0 -1
  46. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
  47. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +0 -1
  48. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
  49. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs +136 -0
  50. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs.map +1 -0
  51. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +0 -1
  52. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
  53. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +0 -1
  54. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
  55. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +0 -1
  56. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
  57. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +0 -1
  58. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
  59. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +0 -1
  60. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
  61. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +0 -1
  62. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
  63. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +0 -1
  64. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
  65. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +0 -1
  66. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
  67. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +0 -1
  68. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
  69. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +0 -1
  70. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs.map +1 -1
  71. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs +0 -1
  72. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs.map +1 -1
  73. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs +4 -2
  74. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
  75. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs +129 -126
  76. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
  77. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +0 -1
  78. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs.map +1 -1
  79. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs +0 -1
  80. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs.map +1 -1
  81. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs +0 -1
  82. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
  83. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +0 -1
  84. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
  85. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +0 -1
  86. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
  87. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +0 -1
  88. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
  89. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +0 -1
  90. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
  91. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +0 -1
  92. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
  93. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +0 -1
  94. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs.map +1 -1
  95. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs +0 -1
  96. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs.map +1 -1
  97. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs +0 -1
  98. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
  99. package/dist/cjs/theme/components.cjs +7 -1
  100. package/dist/cjs/theme/components.cjs.map +1 -1
  101. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +0 -1
  102. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -1
  103. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +24 -18
  104. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  105. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +4 -3
  106. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
  107. package/dist/cjs/ui-shell/UiShell.cjs +2 -0
  108. package/dist/cjs/ui-shell/UiShell.cjs.map +1 -1
  109. package/dist/cjs/ui-shell/UiShellProvider.cjs +6 -1
  110. package/dist/cjs/ui-shell/UiShellProvider.cjs.map +1 -1
  111. package/dist/cjs/ui-shell/renderUiShell.cjs +2 -0
  112. package/dist/cjs/ui-shell/renderUiShell.cjs.map +1 -1
  113. package/dist/cjs/ui-shell/useElementAtContainerEdge.cjs +74 -0
  114. package/dist/cjs/ui-shell/useElementAtContainerEdge.cjs.map +1 -0
  115. package/dist/cjs/useMountLifecycleEffect.cjs +3 -3
  116. package/dist/cjs/useMountLifecycleEffect.cjs.map +1 -1
  117. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  118. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  119. package/dist/esm/DataTable/DataTable.js +67 -40
  120. package/dist/esm/DataTable/DataTable.js.map +1 -1
  121. package/dist/esm/Drawer.js +16 -14
  122. package/dist/esm/Drawer.js.map +1 -1
  123. package/dist/esm/PasswordField.js +1 -1
  124. package/dist/esm/PasswordField.js.map +1 -1
  125. package/dist/esm/Select.js +35 -44
  126. package/dist/esm/Select.js.map +1 -1
  127. package/dist/esm/Status.js +2 -0
  128. package/dist/esm/Status.js.map +1 -1
  129. package/dist/esm/Typography.js +32 -8
  130. package/dist/esm/Typography.js.map +1 -1
  131. package/dist/esm/createContrastColors.js +6 -2
  132. package/dist/esm/createContrastColors.js.map +1 -1
  133. package/dist/esm/getLogicalBoundaries.js +26 -0
  134. package/dist/esm/getLogicalBoundaries.js.map +1 -0
  135. package/dist/esm/labs/DataFilters.js +1 -0
  136. package/dist/esm/labs/DataFilters.js.map +1 -1
  137. package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
  138. package/dist/esm/labs/DataView/CardLayoutContent.js.map +1 -1
  139. package/dist/esm/labs/DataView/DataView.js +10 -1
  140. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  141. package/dist/esm/labs/DataView/RowActions.js +2 -1
  142. package/dist/esm/labs/DataView/RowActions.js.map +1 -1
  143. package/dist/esm/labs/DataView/TableLayoutContent.js +2 -4
  144. package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
  145. package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
  146. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js.map +1 -1
  147. package/dist/esm/labs/OdysseyPickers/Picker.js +19 -13
  148. package/dist/esm/labs/OdysseyPickers/Picker.js.map +1 -1
  149. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +2 -1
  150. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
  151. package/dist/esm/labs/OdysseyPickers/SearchDropdown.js +2 -3
  152. package/dist/esm/labs/OdysseyPickers/SearchDropdown.js.map +1 -1
  153. package/dist/esm/labs/PageTemplate/PageTemplate.js +16 -5
  154. package/dist/esm/labs/PageTemplate/PageTemplate.js.map +1 -1
  155. package/dist/esm/properties/ts/odyssey-react-mui.js +0 -1
  156. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  157. package/dist/esm/properties/ts/odyssey-react-mui_cs.js +0 -1
  158. package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  159. package/dist/esm/properties/ts/odyssey-react-mui_da.js +0 -1
  160. package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
  161. package/dist/esm/properties/ts/odyssey-react-mui_de.js +0 -1
  162. package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
  163. package/dist/esm/properties/ts/odyssey-react-mui_el.js +0 -1
  164. package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
  165. package/dist/esm/properties/ts/odyssey-react-mui_es.js +0 -1
  166. package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
  167. package/dist/esm/properties/ts/odyssey-react-mui_eu.js +130 -0
  168. package/dist/esm/properties/ts/odyssey-react-mui_eu.js.map +1 -0
  169. package/dist/esm/properties/ts/odyssey-react-mui_fi.js +0 -1
  170. package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  171. package/dist/esm/properties/ts/odyssey-react-mui_fr.js +0 -1
  172. package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  173. package/dist/esm/properties/ts/odyssey-react-mui_ht.js +0 -1
  174. package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  175. package/dist/esm/properties/ts/odyssey-react-mui_hu.js +0 -1
  176. package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  177. package/dist/esm/properties/ts/odyssey-react-mui_id.js +0 -1
  178. package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
  179. package/dist/esm/properties/ts/odyssey-react-mui_it.js +0 -1
  180. package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
  181. package/dist/esm/properties/ts/odyssey-react-mui_ja.js +0 -1
  182. package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  183. package/dist/esm/properties/ts/odyssey-react-mui_ko.js +0 -1
  184. package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  185. package/dist/esm/properties/ts/odyssey-react-mui_ms.js +0 -1
  186. package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  187. package/dist/esm/properties/ts/odyssey-react-mui_nb.js +0 -1
  188. package/dist/esm/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  189. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js +0 -1
  190. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  191. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js +4 -2
  192. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  193. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js +129 -126
  194. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  195. package/dist/esm/properties/ts/odyssey-react-mui_pl.js +0 -1
  196. package/dist/esm/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  197. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js +0 -1
  198. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  199. package/dist/esm/properties/ts/odyssey-react-mui_ro.js +0 -1
  200. package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  201. package/dist/esm/properties/ts/odyssey-react-mui_ru.js +0 -1
  202. package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  203. package/dist/esm/properties/ts/odyssey-react-mui_sv.js +0 -1
  204. package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  205. package/dist/esm/properties/ts/odyssey-react-mui_th.js +0 -1
  206. package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
  207. package/dist/esm/properties/ts/odyssey-react-mui_tr.js +0 -1
  208. package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  209. package/dist/esm/properties/ts/odyssey-react-mui_uk.js +0 -1
  210. package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  211. package/dist/esm/properties/ts/odyssey-react-mui_vi.js +0 -1
  212. package/dist/esm/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  213. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js +0 -1
  214. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  215. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js +0 -1
  216. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  217. package/dist/esm/theme/components.js +7 -1
  218. package/dist/esm/theme/components.js.map +1 -1
  219. package/dist/esm/ui-shell/NarrowUiShellContent.js +0 -1
  220. package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -1
  221. package/dist/esm/ui-shell/SideNav/SideNav.js +24 -18
  222. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  223. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +4 -3
  224. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
  225. package/dist/esm/ui-shell/UiShell.js +2 -0
  226. package/dist/esm/ui-shell/UiShell.js.map +1 -1
  227. package/dist/esm/ui-shell/UiShellProvider.js +6 -1
  228. package/dist/esm/ui-shell/UiShellProvider.js.map +1 -1
  229. package/dist/esm/ui-shell/renderUiShell.js +2 -0
  230. package/dist/esm/ui-shell/renderUiShell.js.map +1 -1
  231. package/dist/esm/ui-shell/useElementAtContainerEdge.js +68 -0
  232. package/dist/esm/ui-shell/useElementAtContainerEdge.js.map +1 -0
  233. package/dist/esm/useMountLifecycleEffect.js +3 -3
  234. package/dist/esm/useMountLifecycleEffect.js.map +1 -1
  235. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  236. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  237. package/dist/index.cjs +1 -1
  238. package/dist/index.d.ts +1 -1
  239. package/dist/index.d.ts.map +1 -0
  240. package/dist/index.js +25 -0
  241. package/dist/index.mjs +1 -1
  242. package/dist/index.scss +1 -1
  243. package/dist/tsconfig.production.tsbuildinfo +1 -1
  244. package/dist/tsconfig.tsbuildinfo +1 -0
  245. package/dist/types/DataTable/DataTable.d.ts +2 -2
  246. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  247. package/dist/types/Drawer.d.ts +24 -6
  248. package/dist/types/Drawer.d.ts.map +1 -1
  249. package/dist/types/OdysseyTranslationProvider.d.ts +1 -1
  250. package/dist/types/OdysseyTranslationProvider.d.ts.map +1 -1
  251. package/dist/types/PasswordField.d.ts.map +1 -1
  252. package/dist/types/Select.d.ts.map +1 -1
  253. package/dist/types/Status.d.ts +2 -2
  254. package/dist/types/Status.d.ts.map +1 -1
  255. package/dist/types/Typography.d.ts +16 -12
  256. package/dist/types/Typography.d.ts.map +1 -1
  257. package/dist/types/createContrastColors.d.ts +5 -1
  258. package/dist/types/createContrastColors.d.ts.map +1 -1
  259. package/dist/types/getLogicalBoundaries.d.ts +24 -0
  260. package/dist/types/getLogicalBoundaries.d.ts.map +1 -0
  261. package/dist/types/i18n.d.ts +6 -29
  262. package/dist/types/i18n.d.ts.map +1 -1
  263. package/dist/types/labs/DataFilters.d.ts.map +1 -1
  264. package/dist/types/labs/DataView/BulkActionsMenu.d.ts +1 -1
  265. package/dist/types/labs/DataView/BulkActionsMenu.d.ts.map +1 -1
  266. package/dist/types/labs/DataView/CardLayoutContent.d.ts.map +1 -1
  267. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  268. package/dist/types/labs/DataView/RowActions.d.ts +5 -4
  269. package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
  270. package/dist/types/labs/DataView/TableLayoutContent.d.ts +1 -1
  271. package/dist/types/labs/DataView/TableLayoutContent.d.ts.map +1 -1
  272. package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts +4 -1
  273. package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -1
  274. package/dist/types/labs/OdysseyPickers/Picker.d.ts +7 -7
  275. package/dist/types/labs/OdysseyPickers/Picker.d.ts.map +1 -1
  276. package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
  277. package/dist/types/labs/OdysseyPickers/SearchDropdown.d.ts.map +1 -1
  278. package/dist/types/labs/PageTemplate/PageTemplate.d.ts.map +1 -1
  279. package/dist/types/properties/ts/odyssey-react-mui.d.ts +0 -1
  280. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  281. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +0 -1
  282. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  283. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts +0 -1
  284. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  285. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts +0 -1
  286. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  287. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts +0 -1
  288. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  289. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts +0 -1
  290. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  291. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts +130 -0
  292. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts.map +1 -0
  293. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts +0 -1
  294. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  295. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts +0 -1
  296. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  297. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts +0 -1
  298. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  299. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts +0 -1
  300. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  301. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts +0 -1
  302. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  303. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts +0 -1
  304. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  305. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts +0 -1
  306. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  307. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts +0 -1
  308. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  309. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts +0 -1
  310. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  311. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts +0 -1
  312. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  313. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts +0 -1
  314. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  315. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +3 -1
  316. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  317. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +3 -0
  318. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  319. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts +0 -1
  320. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  321. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts +0 -1
  322. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  323. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts +0 -1
  324. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  325. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts +0 -1
  326. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  327. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts +0 -1
  328. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  329. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts +0 -1
  330. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  331. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts +0 -1
  332. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  333. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts +0 -1
  334. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  335. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts +0 -1
  336. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  337. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts +0 -1
  338. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  339. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts +0 -1
  340. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  341. package/dist/types/theme/components.d.ts.map +1 -1
  342. package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -1
  343. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  344. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
  345. package/dist/types/ui-shell/UiShell.d.ts +1 -1
  346. package/dist/types/ui-shell/UiShell.d.ts.map +1 -1
  347. package/dist/types/ui-shell/UiShellProvider.d.ts +10 -4
  348. package/dist/types/ui-shell/UiShellProvider.d.ts.map +1 -1
  349. package/dist/types/ui-shell/renderUiShell.d.ts +2 -2
  350. package/dist/types/ui-shell/renderUiShell.d.ts.map +1 -1
  351. package/dist/types/ui-shell/useElementAtContainerEdge.d.ts +43 -0
  352. package/dist/types/ui-shell/useElementAtContainerEdge.d.ts.map +1 -0
  353. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  354. package/package.json +9 -7
@@ -1 +1 @@
1
- {"version":3,"file":"ComposablePicker.cjs","names":["_react","require","_reactI18next","_PickerVirtualizationListBox","_useAutocomplete","_jsxRuntime","_interopRequireDefault","e","__esModule","default","adornmentSizeValues","exports","ComposablePicker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","getOptionLabel","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","hint","HintLinkComponent","label","name","nameOverride","onBlur","onChange","onInputChange","onFocus","options","renderOption","renderTags","value","testId","translate","t","useTranslation","inputValueProp","isVirtualizedRef","renderInput","valueProps","useAutocomplete","jsx","_Autocomplete2","current","ListboxComponent","PickerVirtualizationListBox","clearText","closeText","disableCloseOnSelect","disabled","freeSolo","filterSelectedOptions","fullWidth","groupBy","isOptionEqualToValue","loading","multiple","noOptionsText","readOnly","MemoizedComposablePicker","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/ComposablePicker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Autocomplete as MuiAutocomplete,\n AutocompleteProps as MuiAutocompleteProps,\n} from \"@mui/material\";\n\nimport { AutocompleteProps } from \"../../Autocomplete.js\";\nimport { PickerVirtualizationListBox } from \"./PickerVirtualizationListBox.js\";\nimport { useAutocomplete } from \"../../useAutocomplete.js\";\n\nexport const adornmentSizeValues = [\"small\", \"large\"] as const;\nexport type AdornmentSize = (typeof adornmentSizeValues)[number];\n\nexport type BasePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n emptyOptionsText?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"noOptionsText\"];\n groupOptionsBy?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"groupBy\"];\n};\n\nexport type BasePickerType = {\n displayName: string;\n <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: BasePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nexport type ComposablePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n getOptionLabel?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"getOptionLabel\"];\n\n renderOption: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"];\n\n renderTags?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderTags\"];\n};\n\nconst ComposablePicker = <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n getOptionLabel,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange,\n onInputChange,\n onFocus,\n options,\n renderOption,\n renderTags,\n value,\n testId,\n translate,\n}: ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const { t } = useTranslation();\n const { inputValueProp, isVirtualizedRef, renderInput, valueProps } =\n useAutocomplete<OptionType, HasMultipleChoices, IsCustomValueAllowed>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices,\n hint,\n HintLinkComponent,\n inputValue,\n isFullWidth,\n isOptional,\n isVirtualized,\n label,\n name: nameOverride,\n testId,\n value,\n });\n\n return (\n <MuiAutocomplete\n {...valueProps}\n {...inputValueProp}\n // conditionally provide the ListboxComponent if this needs to be virtualized\n {...(isVirtualizedRef.current && {\n ListboxComponent: PickerVirtualizationListBox,\n })}\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n clearText={t(\"clear.text\")}\n closeText={t(\"close.text\")}\n disableCloseOnSelect={hasMultipleChoices}\n disabled={isDisabled}\n freeSolo={isCustomValueAllowed}\n filterSelectedOptions={true}\n fullWidth={isFullWidth}\n getOptionLabel={getOptionLabel}\n groupBy={groupOptionsBy}\n id={idOverride}\n isOptionEqualToValue={getIsOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n noOptionsText={emptyOptionsText}\n onBlur={onBlur}\n onChange={onChange}\n onInputChange={onInputChange}\n onFocus={onFocus}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n translate={translate}\n />\n );\n};\n\n// Need the `typeof ComposablePicker` because generics don't get passed through\nconst MemoizedComposablePicker = memo(\n ComposablePicker,\n) as typeof ComposablePicker;\n// @ts-expect-error displayName is expected to not be on `typeof ComposablePicker`\nMemoizedComposablePicker.displayName = \"ComposablePicker\";\n\nexport { MemoizedComposablePicker as ComposablePicker };\n"],"mappings":";;;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAOA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAA2D,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAK,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AArB3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaO,MAAMG,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU;AAiE9D,MAAME,gBAAgB,GAAGA,CAIvB;EACAC,eAAe;EACfC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC,uBAAuB;EACvBC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,EAAE,EAAEC,UAAU;EACdC,UAAU;EACVC,oBAAoB;EACpBC,UAAU;EACVC,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,UAAU,GAAG,KAAK;EAClBC,UAAU;EACVC,aAAa,GAAG,KAAK;EACrBC,IAAI;EACJC,iBAAiB;EACjBC,KAAK;EACLC,IAAI,EAAEC,YAAY;EAClBC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC,OAAO;EACPC,YAAY;EACZC,UAAU;EACVC,KAAK;EACLC,MAAM;EACNC;AAKF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,4BAAc,EAAC,CAAC;EAC9B,MAAM;IAAEC,cAAc;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAW,CAAC,GACjE,IAAAC,gCAAe,EAAuD;IACpExC,eAAe;IACfC,YAAY;IACZE,YAAY;IACZC,gBAAgB;IAChBI,kBAAkB;IAClBW,IAAI;IACJC,iBAAiB;IACjBT,UAAU;IACVG,WAAW;IACXE,UAAU;IACVE,aAAa;IACbG,KAAK;IACLC,IAAI,EAAEC,YAAY;IAClBS,MAAM;IACND;EACF,CAAC,CAAC;EAEJ,OACE,IAAAvC,WAAA,CAAAiD,GAAA,EAAAC,cAAA,CAAA9C,OAAA;IAAA,GACM2C,UAAU;IAAA,GACVH,cAAc;IAAA,IAEbC,gBAAgB,CAACM,OAAO,IAAI;MAC/BC,gBAAgB,EAAEC;IACpB,CAAC;IAED,iBAAehC,UAAW;IAC1BiC,SAAS,EAAEZ,CAAC,CAAC,YAAY,CAAE;IAC3Ba,SAAS,EAAEb,CAAC,CAAC,YAAY,CAAE;IAC3Bc,oBAAoB,EAAExC,kBAAmB;IACzCyC,QAAQ,EAAEpC,UAAW;IACrBqC,QAAQ,EAAEtC,oBAAqB;IAC/BuC,qBAAqB,EAAE,IAAK;IAC5BC,SAAS,EAAEtC,WAAY;IACvBR,cAAc,EAAEA,cAAe;IAC/B+C,OAAO,EAAE9C,cAAe;IACxBE,EAAE,EAAEC,UAAW;IACf4C,oBAAoB,EAAEjD,uBAAwB;IAC9CkD,OAAO,EAAExC,SAAU;IACnByC,QAAQ,EAAEhD,kBAAmB;IAC7BiD,aAAa,EAAEvD,gBAAiB;IAChCsB,MAAM,EAAEA,MAAO;IACfC,QAAQ,EAAEA,QAAS;IACnBC,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjB8B,QAAQ,EAAEzC,UAAW;IACrBqB,WAAW,EAAEA,WAAY;IACzBT,YAAY,EAAEA,YAAa;IAC3BC,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAGD,MAAM0B,wBAAwB,GAAA7D,OAAA,CAAAC,gBAAA,GAAG,IAAA6D,WAAI,EACnC7D,gBACF,CAA4B;AAE5B4D,wBAAwB,CAACE,WAAW,GAAG,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"ComposablePicker.cjs","names":["_react","require","_reactI18next","_PickerVirtualizationListBox","_useAutocomplete","_jsxRuntime","_interopRequireDefault","e","__esModule","default","adornmentSizeValues","exports","ComposablePicker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","getOptionLabel","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","hint","HintLinkComponent","label","name","nameOverride","onBlur","onChange","onInputChange","onFocus","options","renderOption","renderTags","value","testId","translate","t","useTranslation","inputValueProp","isVirtualizedRef","renderInput","valueProps","useAutocomplete","jsx","_Autocomplete2","current","ListboxComponent","PickerVirtualizationListBox","clearText","closeText","disableCloseOnSelect","disabled","freeSolo","filterSelectedOptions","fullWidth","groupBy","isOptionEqualToValue","loading","multiple","noOptionsText","readOnly","MemoizedComposablePicker","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/ComposablePicker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { HTMLAttributes, Key, memo, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Autocomplete as MuiAutocomplete,\n AutocompleteProps as MuiAutocompleteProps,\n} from \"@mui/material\";\n\nimport { AutocompleteProps } from \"../../Autocomplete.js\";\nimport { PickerVirtualizationListBox } from \"./PickerVirtualizationListBox.js\";\nimport { useAutocomplete } from \"../../useAutocomplete.js\";\n\nexport const adornmentSizeValues = [\"small\", \"large\"] as const;\nexport type AdornmentSize = (typeof adornmentSizeValues)[number];\n\nexport type BaseRenderOptionProps = HTMLAttributes<HTMLLIElement> & {\n key: Key;\n};\n\nexport type BasePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n emptyOptionsText?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"noOptionsText\"];\n groupOptionsBy?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"groupBy\"];\n};\n\nexport type BasePickerType = {\n displayName: string;\n <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: BasePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nexport type ComposablePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n getOptionLabel?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"getOptionLabel\"];\n\n renderOption: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"];\n\n renderTags?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderTags\"];\n};\n\nconst ComposablePicker = <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n getOptionLabel,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange,\n onInputChange,\n onFocus,\n options,\n renderOption,\n renderTags,\n value,\n testId,\n translate,\n}: ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const { t } = useTranslation();\n const { inputValueProp, isVirtualizedRef, renderInput, valueProps } =\n useAutocomplete<OptionType, HasMultipleChoices, IsCustomValueAllowed>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices,\n hint,\n HintLinkComponent,\n inputValue,\n isFullWidth,\n isOptional,\n isVirtualized,\n label,\n name: nameOverride,\n testId,\n value,\n });\n\n return (\n <MuiAutocomplete\n {...valueProps}\n {...inputValueProp}\n // conditionally provide the ListboxComponent if this needs to be virtualized\n {...(isVirtualizedRef.current && {\n ListboxComponent: PickerVirtualizationListBox,\n })}\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n clearText={t(\"clear.text\")}\n closeText={t(\"close.text\")}\n disableCloseOnSelect={hasMultipleChoices}\n disabled={isDisabled}\n freeSolo={isCustomValueAllowed}\n filterSelectedOptions={true}\n fullWidth={isFullWidth}\n getOptionLabel={getOptionLabel}\n groupBy={groupOptionsBy}\n id={idOverride}\n isOptionEqualToValue={getIsOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n noOptionsText={emptyOptionsText}\n onBlur={onBlur}\n onChange={onChange}\n onInputChange={onInputChange}\n onFocus={onFocus}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n translate={translate}\n />\n );\n};\n\n// Need the `typeof ComposablePicker` because generics don't get passed through\nconst MemoizedComposablePicker = memo(\n ComposablePicker,\n) as typeof ComposablePicker;\n// @ts-expect-error displayName is expected to not be on `typeof ComposablePicker`\nMemoizedComposablePicker.displayName = \"ComposablePicker\";\n\nexport { MemoizedComposablePicker as ComposablePicker };\n"],"mappings":"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","ignoreList":[]}
@@ -71,11 +71,17 @@ const Option = ({
71
71
  children,
72
72
  hasAdornment = false,
73
73
  muiProps
74
- }) => (0, _jsxRuntime.jsx)(StyledOption, {
75
- ...muiProps,
76
- hasAdornment: hasAdornment,
77
- children: children
78
- });
74
+ }) => {
75
+ const {
76
+ key,
77
+ ...props
78
+ } = muiProps;
79
+ return (0, _react.createElement)(StyledOption, {
80
+ ...props,
81
+ key: key,
82
+ hasAdornment: hasAdornment
83
+ }, children);
84
+ };
79
85
  exports.Option = Option;
80
86
  const OptionMetadataComponent = ({
81
87
  metaData,
@@ -224,7 +230,7 @@ const Picker = ({
224
230
  odysseyDesignTokens: odysseyDesignTokens,
225
231
  option: option
226
232
  })
227
- }, option.label);
233
+ }, option.value);
228
234
  }, [odysseyDesignTokens]);
229
235
  return (0, _jsxRuntime.jsx)(_ComposablePicker.ComposablePicker, {
230
236
  ariaDescribedBy: ariaDescribedBy,
@@ -234,6 +240,8 @@ const Picker = ({
234
240
  errorMessageList: errorMessageList,
235
241
  getIsOptionEqualToValue: getIsOptionEqualToValue,
236
242
  hasMultipleChoices: hasMultipleChoices,
243
+ hint: hint,
244
+ HintLinkComponent: HintLinkComponent,
237
245
  id: idOverride,
238
246
  inputValue: inputValue,
239
247
  isCustomValueAllowed: isCustomValueAllowed,
@@ -243,19 +251,17 @@ const Picker = ({
243
251
  isOptional: isOptional,
244
252
  isReadOnly: isReadOnly,
245
253
  isVirtualized: isVirtualizedProp,
246
- hint: hint,
247
- HintLinkComponent: HintLinkComponent,
248
254
  label: label,
249
255
  name: nameOverride,
250
256
  onBlur: onBlur,
251
257
  onChange: onChangeProp,
252
- onInputChange: onInputChangeProp,
253
258
  onFocus: onFocus,
259
+ onInputChange: onInputChangeProp,
254
260
  options: options,
255
261
  renderOption: customOptionRender,
256
- value: value,
257
262
  testId: testId,
258
- translate: translate
263
+ translate: translate,
264
+ value: value
259
265
  });
260
266
  };
261
267
  const MemoizedPicker = exports.Picker = (0, _react.memo)(Picker);
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.cjs","names":["_react","require","_styled","_interopRequireDefault","_ComposablePicker","_OdysseyDesignTokensContext","_Typography","_jsxRuntime","e","__esModule","default","StyledOption","exports","styled","li","hasAdornment","display","OptionLabelContainer","shouldForwardProp","prop","p","margin","OptionDescription","odysseyDesignTokens","Spacing1","color","TypographyColorSubordinate","OptionDetails","gap","Spacing3","marginBlockStart","Spacing2","OptionDetail","alignItems","svg","width","Spacing4","HueNeutral400","Option","children","muiProps","jsx","OptionMetadataComponent","metaData","map","meta","index","detailText","icon","jsxs","OptionDescriptionComponent","description","OptionLabelOnlyComponent","option","label","Paragraph","OptionLabelDescription","Heading6","component","OptionLabelDescriptionMetadata","Picker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","value","testId","translate","useOdysseyDesignTokens","customOptionRender","useCallback","hasDescription","hasMetadata","isLabelOnly","Fragment","ComposablePicker","renderOption","MemoizedPicker","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/Picker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n Fragment,\n HTMLAttributes,\n memo,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport {\n ComposablePicker,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading6, Paragraph } from \"../../Typography.js\";\n\nexport const StyledOption = styled.li<{ hasAdornment?: boolean }>(\n ({ hasAdornment }) => ({\n ...(!hasAdornment && {\n display: \"block !important\",\n }),\n }),\n);\n\nexport const OptionLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n p: {\n margin: 0,\n },\n}));\n\nexport const OptionDescription = styled(\"p\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n margin: `${odysseyDesignTokens.Spacing1} 0 0 !important`,\n color: odysseyDesignTokens.TypographyColorSubordinate,\n}));\n\nexport const OptionDetails = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n marginBlockStart: odysseyDesignTokens.Spacing2,\n}));\n\nexport const OptionDetail = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing1,\n\n svg: {\n width: odysseyDesignTokens.Spacing4,\n color: odysseyDesignTokens.HueNeutral400,\n },\n}));\n\nexport type BaseOptionProps = {\n muiProps: HTMLAttributes<HTMLLIElement>;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype OptionComponentProps = {\n hasAdornment?: boolean;\n muiProps: BaseOptionProps[\"muiProps\"];\n};\n\nexport const Option = ({\n children,\n hasAdornment = false,\n muiProps,\n}: PropsWithChildren<OptionComponentProps>) => (\n <StyledOption {...muiProps} hasAdornment={hasAdornment}>\n {children}\n </StyledOption>\n);\n\nexport const OptionMetadataComponent = ({\n metaData,\n odysseyDesignTokens,\n}: {\n metaData: OptionMetadata[];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n <OptionDetails odysseyDesignTokens={odysseyDesignTokens}>\n {metaData.map((meta: OptionMetadata, index: number) => {\n const { detailText, icon } = meta;\n return (\n <OptionDetail\n key={`${detailText}-${index}`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {icon}\n {detailText}\n </OptionDetail>\n );\n })}\n </OptionDetails>\n );\n};\n\nexport const OptionDescriptionComponent = ({\n description,\n odysseyDesignTokens,\n}: {\n description?: LabelDescription[\"description\"];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n description && (\n <OptionDescription odysseyDesignTokens={odysseyDesignTokens}>\n {description}\n </OptionDescription>\n )\n );\n};\n\nexport type OptionProps<OptionType> = {\n option: OptionType;\n};\n\nexport const OptionLabelOnlyComponent = <OptionType extends OptionLabelOnly>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Paragraph>{label}</Paragraph>\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescription = <OptionType extends LabelDescription>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescriptionMetadata = <\n OptionType extends LabelDescriptionMetadata,\n>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label, metaData } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </Option>\n );\n};\n\nexport type OptionMetadata = {\n icon: ReactElement;\n detailText: string | number;\n};\n\nexport type OptionGroupType = { group?: string };\nexport type OptionValueType = { value: string | number };\nexport type OptionLabelType = { label: string };\nexport type BaseOptionType = OptionValueType &\n OptionGroupType &\n OptionLabelType;\nexport type Metadata = {\n metaData: OptionMetadata[];\n};\n\nexport type OptionLabelOnly = BaseOptionType;\nexport type LabelDescription = BaseOptionType & { description?: string };\nexport type LabelDescriptionMetadata = LabelDescription & Metadata;\n\nexport type PickerProps<\n OptionType extends LabelDescription | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>;\n\nexport type PickerComponentType = {\n <\n OptionType extends OptionLabelOnly,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n};\n\nconst Picker: PickerComponentType = <\n OptionType extends\n | OptionLabelOnly\n | LabelDescription\n | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasDescription = \"description\" in option && option.description;\n const hasMetadata = \"metaData\" in option && option.metaData;\n const isLabelOnly = !hasMetadata && !hasDescription;\n\n return (\n <Fragment key={option.label}>\n {isLabelOnly ? (\n <OptionLabelOnlyComponent\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : hasMetadata ? (\n <OptionLabelDescriptionMetadata\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionLabelDescription\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n // getOptionLabel={// getOptionLabel}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPicker = memo(Picker) as BasePickerType;\n\nMemoizedPicker.displayName = \"Picker\";\n\nexport { MemoizedPicker as Picker };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Picker.cjs","names":["_react","require","_styled","_interopRequireDefault","_ComposablePicker","_OdysseyDesignTokensContext","_Typography","_jsxRuntime","e","__esModule","default","StyledOption","exports","styled","li","hasAdornment","display","OptionLabelContainer","shouldForwardProp","prop","p","margin","OptionDescription","odysseyDesignTokens","Spacing1","color","TypographyColorSubordinate","OptionDetails","gap","Spacing3","marginBlockStart","Spacing2","OptionDetail","alignItems","svg","width","Spacing4","HueNeutral400","Option","children","muiProps","key","props","createElement","OptionMetadataComponent","metaData","jsx","map","meta","index","detailText","icon","jsxs","OptionDescriptionComponent","description","OptionLabelOnlyComponent","option","label","Paragraph","OptionLabelDescription","Heading6","component","OptionLabelDescriptionMetadata","Picker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","value","testId","translate","useOdysseyDesignTokens","customOptionRender","useCallback","hasDescription","hasMetadata","isLabelOnly","Fragment","ComposablePicker","renderOption","MemoizedPicker","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/Picker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n Fragment,\n memo,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport {\n ComposablePicker,\n type BasePickerProps,\n type BasePickerType,\n type BaseRenderOptionProps,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading6, Paragraph } from \"../../Typography.js\";\n\nexport const StyledOption = styled.li<{ hasAdornment?: boolean }>(\n ({ hasAdornment }) => ({\n ...(!hasAdornment && {\n display: \"block !important\",\n }),\n }),\n);\n\nexport const OptionLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n p: {\n margin: 0,\n },\n}));\n\nexport const OptionDescription = styled(\"p\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n margin: `${odysseyDesignTokens.Spacing1} 0 0 !important`,\n color: odysseyDesignTokens.TypographyColorSubordinate,\n}));\n\nexport const OptionDetails = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n marginBlockStart: odysseyDesignTokens.Spacing2,\n}));\n\nexport const OptionDetail = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing1,\n\n svg: {\n width: odysseyDesignTokens.Spacing4,\n color: odysseyDesignTokens.HueNeutral400,\n },\n}));\n\nexport type BaseOptionProps = {\n muiProps: BaseRenderOptionProps;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype OptionComponentProps = {\n hasAdornment?: boolean;\n muiProps: BaseOptionProps[\"muiProps\"];\n};\n\nexport const Option = ({\n children,\n hasAdornment = false,\n muiProps,\n}: PropsWithChildren<OptionComponentProps>) => {\n const { key, ...props } = muiProps;\n return (\n <StyledOption {...props} key={key} hasAdornment={hasAdornment}>\n {children}\n </StyledOption>\n );\n};\n\nexport const OptionMetadataComponent = ({\n metaData,\n odysseyDesignTokens,\n}: {\n metaData: OptionMetadata[];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n <OptionDetails odysseyDesignTokens={odysseyDesignTokens}>\n {metaData.map((meta: OptionMetadata, index: number) => {\n const { detailText, icon } = meta;\n return (\n <OptionDetail\n key={`${detailText}-${index}`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {icon}\n {detailText}\n </OptionDetail>\n );\n })}\n </OptionDetails>\n );\n};\n\nexport const OptionDescriptionComponent = ({\n description,\n odysseyDesignTokens,\n}: {\n description?: LabelDescription[\"description\"];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n description && (\n <OptionDescription odysseyDesignTokens={odysseyDesignTokens}>\n {description}\n </OptionDescription>\n )\n );\n};\n\nexport type OptionProps<OptionType> = {\n option: OptionType;\n};\n\nexport const OptionLabelOnlyComponent = <OptionType extends OptionLabelOnly>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Paragraph>{label}</Paragraph>\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescription = <OptionType extends LabelDescription>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescriptionMetadata = <\n OptionType extends LabelDescriptionMetadata,\n>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label, metaData } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </Option>\n );\n};\n\nexport type OptionMetadata = {\n icon: ReactElement;\n detailText: string | number;\n};\n\nexport type OptionGroupType = { group?: string };\nexport type OptionValueType = { value: string | number };\nexport type OptionLabelType = { label: string };\nexport type BaseOptionType = OptionValueType &\n OptionGroupType &\n OptionLabelType;\nexport type Metadata = {\n metaData: OptionMetadata[];\n};\n\nexport type OptionLabelOnly = BaseOptionType;\nexport type LabelDescription = BaseOptionType & { description?: string };\nexport type LabelDescriptionMetadata = LabelDescription & Metadata;\n\nexport type PickerProps<\n OptionType extends LabelDescription | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>;\n\nexport type PickerComponentType = {\n <\n OptionType extends OptionLabelOnly,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n};\n\nconst Picker: PickerComponentType = <\n OptionType extends\n | OptionLabelOnly\n | LabelDescription\n | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasDescription = \"description\" in option && option.description;\n const hasMetadata = \"metaData\" in option && option.metaData;\n const isLabelOnly = !hasMetadata && !hasDescription;\n\n return (\n <Fragment key={option.value}>\n {isLabelOnly ? (\n <OptionLabelOnlyComponent\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : hasMetadata ? (\n <OptionLabelDescriptionMetadata\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionLabelDescription\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n hasMultipleChoices={hasMultipleChoices}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onFocus={onFocus}\n onInputChange={onInputChangeProp}\n options={options}\n renderOption={customOptionRender}\n testId={testId}\n translate={translate}\n value={value}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPicker = memo(Picker) as BasePickerType;\n\nMemoizedPicker.displayName = \"Picker\";\n\nexport { MemoizedPicker as Picker };\n"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAQA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,iBAAA,GAAAH,OAAA;AAMA,IAAAI,2BAAA,GAAAJ,OAAA;AAIA,IAAAK,WAAA,GAAAL,OAAA;AAA0D,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAjC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyBO,MAAMG,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,eAAM,CAACC,EAAE,CACnC,CAAC;EAAEC;AAAa,CAAC,MAAM;EACrB,IAAI,CAACA,YAAY,IAAI;IACnBC,OAAO,EAAE;EACX,CAAC;AACH,CAAC,CACH,CAAC;AAEM,MAAMC,oBAAoB,GAAAL,OAAA,CAAAK,oBAAA,GAAG,IAAAJ,eAAM,EAAC,KAAK,EAAE;EAChDK,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,OAAO;EAC/CC,CAAC,EAAE;IACDC,MAAM,EAAE;EACV;AACF,CAAC,CAAC,CAAC;AAEI,MAAMC,iBAAiB,GAAAV,OAAA,CAAAU,iBAAA,GAAG,IAAAT,eAAM,EAAC,GAAG,EAAE;EAC3CK,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEI;AAAoB,CAAC,MAAM;EACtEF,MAAM,EAAE,GAAGE,mBAAmB,CAACC,QAAQ,iBAAiB;EACxDC,KAAK,EAAEF,mBAAmB,CAACG;AAC7B,CAAC,CAAC,CAAC;AAEI,MAAMC,aAAa,GAAAf,OAAA,CAAAe,aAAA,GAAG,IAAAd,eAAM,EAAC,KAAK,EAAE;EACzCK,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEI;AAAoB,CAAC,MAAM;EACtEP,OAAO,EAAE,MAAM;EACfY,GAAG,EAAEL,mBAAmB,CAACM,QAAQ;EACjCC,gBAAgB,EAAEP,mBAAmB,CAACQ;AACxC,CAAC,CAAC,CAAC;AAEI,MAAMC,YAAY,GAAApB,OAAA,CAAAoB,YAAA,GAAG,IAAAnB,eAAM,EAAC,KAAK,EAAE;EACxCK,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAwC,CAAC;EAAEI;AAAoB,CAAC,MAAM;EACtEP,OAAO,EAAE,MAAM;EACfiB,UAAU,EAAE,QAAQ;EACpBL,GAAG,EAAEL,mBAAmB,CAACC,QAAQ;EAEjCU,GAAG,EAAE;IACHC,KAAK,EAAEZ,mBAAmB,CAACa,QAAQ;IACnCX,KAAK,EAAEF,mBAAmB,CAACc;EAC7B;AACF,CAAC,CAAC,CAAC;AAYI,MAAMC,MAAM,GAAGA,CAAC;EACrBC,QAAQ;EACRxB,YAAY,GAAG,KAAK;EACpByB;AACuC,CAAC,KAAK;EAC7C,MAAM;IAAEC,GAAG;IAAE,GAAGC;EAAM,CAAC,GAAGF,QAAQ;EAClC,OACE,IAAAxC,MAAA,CAAA2C,aAAA,EAAChC,YAAY;IAAA,GAAK+B,KAAK;IAAED,GAAG,EAAEA,GAAI;IAAC1B,YAAY,EAAEA;EAAa,GAC3DwB,QACW,CAAC;AAEnB,CAAC;AAAC3B,OAAA,CAAA0B,MAAA,GAAAA,MAAA;AAEK,MAAMM,uBAAuB,GAAGA,CAAC;EACtCC,QAAQ;EACRtB;AAIF,CAAC,KAAK;EACJ,OACE,IAAAhB,WAAA,CAAAuC,GAAA,EAACnB,aAAa;IAACJ,mBAAmB,EAAEA,mBAAoB;IAAAgB,QAAA,EACrDM,QAAQ,CAACE,GAAG,CAAC,CAACC,IAAoB,EAAEC,KAAa,KAAK;MACrD,MAAM;QAAEC,UAAU;QAAEC;MAAK,CAAC,GAAGH,IAAI;MACjC,OACE,IAAAzC,WAAA,CAAA6C,IAAA,EAACpB,YAAY;QAEXT,mBAAmB,EAAEA,mBAAoB;QAAAgB,QAAA,GAExCY,IAAI,EACJD,UAAU;MAAA,GAJN,GAAGA,UAAU,IAAID,KAAK,EAKf,CAAC;IAEnB,CAAC;EAAC,CACW,CAAC;AAEpB,CAAC;AAACrC,OAAA,CAAAgC,uBAAA,GAAAA,uBAAA;AAEK,MAAMS,0BAA0B,GAAGA,CAAC;EACzCC,WAAW;EACX/B;AAIF,CAAC,KAAK;EACJ,OACE+B,WAAW,IACT,IAAA/C,WAAA,CAAAuC,GAAA,EAACxB,iBAAiB;IAACC,mBAAmB,EAAEA,mBAAoB;IAAAgB,QAAA,EACzDe;EAAW,CACK,CACpB;AAEL,CAAC;AAAC1C,OAAA,CAAAyC,0BAAA,GAAAA,0BAAA;AAMK,MAAME,wBAAwB,GAAGA,CAAqC;EAC3Ef,QAAQ;EACRjB,mBAAmB;EACnBiC;AACyC,CAAC,KAAK;EAC/C,MAAM;IAAEC;EAAM,CAAC,GAAGD,MAAM;EAExB,OACE,IAAAjD,WAAA,CAAAuC,GAAA,EAACR,MAAM;IAACE,QAAQ,EAAEA,QAAS;IAAAD,QAAA,EACzB,IAAAhC,WAAA,CAAAuC,GAAA,EAAC7B,oBAAoB;MAACM,mBAAmB,EAAEA,mBAAoB;MAAAgB,QAAA,EAC7D,IAAAhC,WAAA,CAAAuC,GAAA,EAACxC,WAAA,CAAAoD,SAAS;QAAAnB,QAAA,EAAEkB;MAAK,CAAY;IAAC,CACV;EAAC,CACjB,CAAC;AAEb,CAAC;AAAC7C,OAAA,CAAA2C,wBAAA,GAAAA,wBAAA;AAEF,MAAMI,sBAAsB,GAAGA,CAAsC;EACnEnB,QAAQ;EACRjB,mBAAmB;EACnBiC;AACyC,CAAC,KAAK;EAC/C,MAAM;IAAEF,WAAW;IAAEG;EAAM,CAAC,GAAGD,MAAM;EAErC,OACE,IAAAjD,WAAA,CAAAuC,GAAA,EAACR,MAAM;IAACE,QAAQ,EAAEA,QAAS;IAAAD,QAAA,EACzB,IAAAhC,WAAA,CAAA6C,IAAA,EAACnC,oBAAoB;MAACM,mBAAmB,EAAEA,mBAAoB;MAAAgB,QAAA,GAC7D,IAAAhC,WAAA,CAAAuC,GAAA,EAACxC,WAAA,CAAAsD,QAAQ;QAACC,SAAS,EAAC,GAAG;QAAAtB,QAAA,EAAEkB;MAAK,CAAW,CAAC,EAC1C,IAAAlD,WAAA,CAAAuC,GAAA,EAACO,0BAA0B;QACzBC,WAAW,EAAEA,WAAY;QACzB/B,mBAAmB,EAAEA;MAAoB,CAC1C,CAAC;IAAA,CACkB;EAAC,CACjB,CAAC;AAEb,CAAC;AAED,MAAMuC,8BAA8B,GAAGA,CAErC;EACAtB,QAAQ;EACRjB,mBAAmB;EACnBiC;AACyC,CAAC,KAAK;EAC/C,MAAM;IAAEF,WAAW;IAAEG,KAAK;IAAEZ;EAAS,CAAC,GAAGW,MAAM;EAE/C,OACE,IAAAjD,WAAA,CAAA6C,IAAA,EAACd,MAAM;IAACE,QAAQ,EAAEA,QAAS;IAAAD,QAAA,GACzB,IAAAhC,WAAA,CAAA6C,IAAA,EAACnC,oBAAoB;MAACM,mBAAmB,EAAEA,mBAAoB;MAAAgB,QAAA,GAC7D,IAAAhC,WAAA,CAAAuC,GAAA,EAACxC,WAAA,CAAAsD,QAAQ;QAACC,SAAS,EAAC,GAAG;QAAAtB,QAAA,EAAEkB;MAAK,CAAW,CAAC,EAC1C,IAAAlD,WAAA,CAAAuC,GAAA,EAACO,0BAA0B;QACzBC,WAAW,EAAEA,WAAY;QACzB/B,mBAAmB,EAAEA;MAAoB,CAC1C,CAAC;IAAA,CACkB,CAAC,EACvB,IAAAhB,WAAA,CAAAuC,GAAA,EAACF,uBAAuB;MACtBC,QAAQ,EAAEA,QAAS;MACnBtB,mBAAmB,EAAEA;IAAoB,CAC1C,CAAC;EAAA,CACI,CAAC;AAEb,CAAC;AA0DD,MAAMwC,MAA2B,GAAGA,CAOlC;EACAC,eAAe;EACfC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC,uBAAuB;EACvBC,kBAAkB;EAClBC,EAAE,EAAEC,UAAU;EACdC,UAAU;EACVC,oBAAoB;EACpBC,UAAU;EACVC,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,UAAU,GAAG,KAAK;EAClBC,UAAU;EACVC,aAAa,EAAEC,iBAAiB,GAAG,KAAK;EACxCC,IAAI;EACJC,iBAAiB;EACjB1B,KAAK;EACL2B,IAAI,EAAEC,YAAY;EAClBC,MAAM;EACNC,QAAQ,EAAEC,YAAY;EACtBC,aAAa,EAAEC,iBAAiB;EAChCC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC,MAAM;EACNC;AACiE,CAAC,KAAK;EACvE,MAAMxE,mBAAmB,GAAG,IAAAyE,kDAAsB,EAAC,CAAC;EAEpD,MAAMC,kBAAkB,GAAG,IAAAC,kBAAW,EAUpC,CAAC1D,QAAQ,EAAEgB,MAAM,KAAK;IACpB,MAAM2C,cAAc,GAAG,aAAa,IAAI3C,MAAM,IAAIA,MAAM,CAACF,WAAW;IACpE,MAAM8C,WAAW,GAAG,UAAU,IAAI5C,MAAM,IAAIA,MAAM,CAACX,QAAQ;IAC3D,MAAMwD,WAAW,GAAG,CAACD,WAAW,IAAI,CAACD,cAAc;IAEnD,OACE,IAAA5F,WAAA,CAAAuC,GAAA,EAAC9C,MAAA,CAAAsG,QAAQ;MAAA/D,QAAA,EACN8D,WAAW,GACV,IAAA9F,WAAA,CAAAuC,GAAA,EAACS,wBAAwB;QACvBf,QAAQ,EAAEA,QAAS;QACnBjB,mBAAmB,EAAEA,mBAAoB;QACzCiC,MAAM,EAAEA;MAAO,CAChB,CAAC,GACA4C,WAAW,GACb,IAAA7F,WAAA,CAAAuC,GAAA,EAACgB,8BAA8B;QAC7BtB,QAAQ,EAAEA,QAAS;QACnBjB,mBAAmB,EAAEA,mBAAoB;QACzCiC,MAAM,EAAEA;MAAO,CAChB,CAAC,GAEF,IAAAjD,WAAA,CAAAuC,GAAA,EAACa,sBAAsB;QACrBnB,QAAQ,EAAEA,QAAS;QACnBjB,mBAAmB,EAAEA,mBAAoB;QACzCiC,MAAM,EAAEA;MAAO,CAChB;IACF,GAnBYA,MAAM,CAACqC,KAoBZ,CAAC;EAEf,CAAC,EACD,CAACtE,mBAAmB,CACtB,CAAC;EAED,OACE,IAAAhB,WAAA,CAAAuC,GAAA,EAAC1C,iBAAA,CAAAmG,gBAAgB;IACfvC,eAAe,EAAEA,eAAgB;IACjCC,YAAY,EAAEA,YAAa;IAC3BC,gBAAgB,EAAEA,gBAAiB;IACnCC,YAAY,EAAEA,YAAa;IAC3BC,gBAAgB,EAAEA,gBAAiB;IACnCC,uBAAuB,EAAEA,uBAAwB;IACjDC,kBAAkB,EAAEA,kBAAmB;IACvCY,IAAI,EAAEA,IAAK;IACXC,iBAAiB,EAAEA,iBAAkB;IACrCZ,EAAE,EAAEC,UAAW;IACfC,UAAU,EAAEA,UAAW;IACvBC,oBAAoB,EAAEA,oBAAqB;IAC3CC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBC,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEC,iBAAkB;IACjCxB,KAAK,EAAEA,KAAM;IACb2B,IAAI,EAAEC,YAAa;IACnBC,MAAM,EAAEA,MAAO;IACfC,QAAQ,EAAEC,YAAa;IACvBG,OAAO,EAAEA,OAAQ;IACjBF,aAAa,EAAEC,iBAAkB;IACjCE,OAAO,EAAEA,OAAQ;IACjBY,YAAY,EAAEP,kBAAmB;IACjCH,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAEA,SAAU;IACrBF,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CAAC;AAGD,MAAMY,cAAc,GAAA7F,OAAA,CAAAmD,MAAA,GAAG,IAAA2C,WAAI,EAAC3C,MAAM,CAAmB;AAErD0C,cAAc,CAACE,WAAW,GAAG,QAAQ","ignoreList":[]}
@@ -40,6 +40,7 @@ const OptionAdornmentContainer = (0, _styled.default)("div", {
40
40
  height: odysseyDesignTokens.Spacing5,
41
41
  overflow: "hidden",
42
42
  marginInlineEnd: odysseyDesignTokens.Spacing3,
43
+ flexShrink: 0,
43
44
  svg: {
44
45
  width: "100%",
45
46
  height: "auto"
@@ -256,7 +257,7 @@ const PickerWithOptionAdornment = ({
256
257
  odysseyDesignTokens: odysseyDesignTokens,
257
258
  option: option
258
259
  })
259
- }, option.label);
260
+ }, option.value);
260
261
  }, [adornmentSize, odysseyDesignTokens]);
261
262
  return (0, _jsxRuntime.jsx)(_ComposablePicker.ComposablePicker, {
262
263
  ariaDescribedBy: ariaDescribedBy,
@@ -1 +1 @@
1
- {"version":3,"file":"PickerWithOptionAdornment.cjs","names":["_react","require","_styled","_interopRequireDefault","_Box","_ComposablePicker","_OdysseyDesignTokensContext","_Picker","_Typography","_Tag","_jsxRuntime","e","__esModule","default","OptionAdornmentContainer","styled","shouldForwardProp","prop","adornmentSize","isTagContainer","odysseyDesignTokens","position","bottom","alignSelf","width","Spacing5","height","overflow","marginInlineEnd","Spacing3","svg","img","top","left","transform","Spacing8","Spacing4","maxHeight","Spacing2","display","OptionAdornment","adornment","isImageAdornment","jsx","children","src","alt","role","OptionWithLabelDescriptionOnly","muiProps","option","description","label","value","jsxs","Option","hasAdornment","OptionLabelContainer","Heading6","component","OptionDescriptionComponent","OptionWithLabelDescriptionMetadata","metaData","OptionMetadataComponent","TagAdornment","useOdysseyDesignTokens","PickerWithOptionAdornment","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","testId","translate","customTagRender","useCallback","values","getTagProps","map","index","key","onDelete","Box","sx","margin","Spacing1","Tag","icon","onRemove","customOptionRender","hasMetadata","Fragment","ComposablePicker","renderOption","renderTags","MemoizedPickerWithOptionAdornment","exports","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Fragment, memo, ReactNode, useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport { Box } from \"../../Box.js\";\nimport {\n ComposablePicker,\n ComposablePickerProps,\n type AdornmentSize,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport {\n type BaseOptionProps,\n type LabelDescription,\n type Metadata,\n Option,\n OptionDescriptionComponent,\n OptionLabelContainer,\n OptionMetadataComponent,\n OptionProps,\n} from \"./Picker.js\";\nimport { Heading6 } from \"../../Typography.js\";\nimport { Tag } from \"../../Tag.js\";\n\ntype Adornment = ReactNode | string;\n\ntype AdornmentLabelDescription = LabelDescription & {\n adornment: Adornment;\n};\n\ntype AdornmentLabelDescriptionMetadata = AdornmentLabelDescription & Metadata;\n\nexport type AdornmentOptionType =\n | AdornmentLabelDescription\n | AdornmentLabelDescriptionMetadata;\n\nconst OptionAdornmentContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"adornmentSize\" &&\n prop !== \"isTagContainer\",\n})<{\n adornmentSize?: AdornmentSize;\n isTagContainer?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n adornmentSize = \"small\",\n isTagContainer = false,\n odysseyDesignTokens,\n }) => ({\n position: \"relative\",\n // push icon up by one px for better visual alignment\n bottom: \"1px\",\n alignSelf: \"flex-start\",\n width: odysseyDesignTokens.Spacing5,\n height: odysseyDesignTokens.Spacing5,\n overflow: \"hidden\",\n marginInlineEnd: odysseyDesignTokens.Spacing3,\n\n svg: {\n width: \"100%\",\n height: \"auto\",\n },\n\n img: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n width: \"100%\",\n transform: \"translate(-50%, -50%)\",\n },\n\n ...(adornmentSize === \"large\" &&\n !isTagContainer && {\n bottom: 0,\n width: odysseyDesignTokens.Spacing8,\n height: odysseyDesignTokens.Spacing8,\n }),\n\n ...(isTagContainer && {\n bottom: 0,\n alignSelf: \"center\",\n width: odysseyDesignTokens.Spacing4,\n height: \"auto\",\n maxHeight: odysseyDesignTokens.Spacing4,\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n\n svg: {\n display: \"flex\",\n width: \"100%\",\n height: \"auto\",\n },\n }),\n }),\n);\n\ntype OptionAdornmentProps = {\n adornment: Adornment;\n adornmentSize: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n};\n\nconst OptionAdornment = ({\n adornment,\n adornmentSize,\n odysseyDesignTokens,\n}: OptionAdornmentProps) => {\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {/* NOTE: Intentionally leaving alt as an empty string here so screen readers will ignore this image */}\n {/* Image should be sufficiently described by the adjacent title and/or description of the option */}\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n } else {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n }\n};\n\nconst OptionWithLabelDescriptionOnly = <\n OptionType extends AdornmentLabelDescription,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & { adornmentSize: AdornmentSize }) => {\n const { adornment, description, label, value } = option;\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionWithLabelDescriptionMetadata = <\n OptionType extends AdornmentLabelDescriptionMetadata,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & {\n adornmentSize: AdornmentSize;\n }) => {\n const { adornment, description, label, metaData, value } = option;\n\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <div>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </div>\n </Option>\n );\n};\n\ntype TagAdornmentProps = {\n adornment: Adornment;\n};\n\nconst TagAdornment = ({ adornment }: TagAdornmentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n }\n\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n};\n\nexport type PickerWithOptionAdornmentProps<\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n};\n\ntype PickerWithOptionAdornmentComponentType = {\n <\n OptionType extends AdornmentLabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n <\n OptionType extends AdornmentLabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nconst PickerWithOptionAdornment: PickerWithOptionAdornmentComponentType = <\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n adornmentSize = \"small\",\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customTagRender = useCallback<\n NonNullable<\n ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >[\"renderTags\"]\n >\n >(\n (values, getTagProps) =>\n values.map((value, index) => {\n const { key, onDelete } = getTagProps({ index });\n const { adornment, label } = value;\n\n return (\n <Box\n key={key}\n sx={{\n margin: odysseyDesignTokens.Spacing1,\n marginInlineEnd: 0,\n }}\n >\n <Tag\n icon={<TagAdornment adornment={adornment} />}\n label={label}\n onRemove={onDelete}\n />\n </Box>\n );\n }),\n [odysseyDesignTokens],\n );\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasMetadata = \"metaData\" in option && option.metaData;\n\n return (\n <Fragment key={option.label}>\n {hasMetadata ? (\n <OptionWithLabelDescriptionMetadata\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionWithLabelDescriptionOnly\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [adornmentSize, odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n groupOptionsBy={groupOptionsBy}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n renderTags={customTagRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPickerWithOptionAdornment = memo(\n PickerWithOptionAdornment,\n) as BasePickerType;\n\nMemoizedPickerWithOptionAdornment.displayName = \"PickerWithOptionAdornment\";\n\nexport { MemoizedPickerWithOptionAdornment as PickerWithOptionAdornment };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PickerWithOptionAdornment.cjs","names":["_react","require","_styled","_interopRequireDefault","_Box","_ComposablePicker","_OdysseyDesignTokensContext","_Picker","_Typography","_Tag","_jsxRuntime","e","__esModule","default","OptionAdornmentContainer","styled","shouldForwardProp","prop","adornmentSize","isTagContainer","odysseyDesignTokens","position","bottom","alignSelf","width","Spacing5","height","overflow","marginInlineEnd","Spacing3","flexShrink","svg","img","top","left","transform","Spacing8","Spacing4","maxHeight","Spacing2","display","OptionAdornment","adornment","isImageAdornment","jsx","children","src","alt","role","OptionWithLabelDescriptionOnly","muiProps","option","description","label","value","jsxs","Option","hasAdornment","OptionLabelContainer","Heading6","component","OptionDescriptionComponent","OptionWithLabelDescriptionMetadata","metaData","OptionMetadataComponent","TagAdornment","useOdysseyDesignTokens","PickerWithOptionAdornment","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","testId","translate","customTagRender","useCallback","values","getTagProps","map","index","key","onDelete","Box","sx","margin","Spacing1","Tag","icon","onRemove","customOptionRender","hasMetadata","Fragment","ComposablePicker","renderOption","renderTags","MemoizedPickerWithOptionAdornment","exports","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Fragment, memo, ReactNode, useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport { Box } from \"../../Box.js\";\nimport {\n ComposablePicker,\n ComposablePickerProps,\n type AdornmentSize,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport {\n type BaseOptionProps,\n type LabelDescription,\n type Metadata,\n Option,\n OptionDescriptionComponent,\n OptionLabelContainer,\n OptionMetadataComponent,\n OptionProps,\n} from \"./Picker.js\";\nimport { Heading6 } from \"../../Typography.js\";\nimport { Tag } from \"../../Tag.js\";\n\ntype Adornment = ReactNode | string;\n\ntype AdornmentLabelDescription = LabelDescription & {\n adornment: Adornment;\n};\n\ntype AdornmentLabelDescriptionMetadata = AdornmentLabelDescription & Metadata;\n\nexport type AdornmentOptionType =\n | AdornmentLabelDescription\n | AdornmentLabelDescriptionMetadata;\n\nconst OptionAdornmentContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"adornmentSize\" &&\n prop !== \"isTagContainer\",\n})<{\n adornmentSize?: AdornmentSize;\n isTagContainer?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n adornmentSize = \"small\",\n isTagContainer = false,\n odysseyDesignTokens,\n }) => ({\n position: \"relative\",\n // push icon up by one px for better visual alignment\n bottom: \"1px\",\n alignSelf: \"flex-start\",\n width: odysseyDesignTokens.Spacing5,\n height: odysseyDesignTokens.Spacing5,\n overflow: \"hidden\",\n marginInlineEnd: odysseyDesignTokens.Spacing3,\n flexShrink: 0,\n\n svg: {\n width: \"100%\",\n height: \"auto\",\n },\n\n img: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n width: \"100%\",\n transform: \"translate(-50%, -50%)\",\n },\n\n ...(adornmentSize === \"large\" &&\n !isTagContainer && {\n bottom: 0,\n width: odysseyDesignTokens.Spacing8,\n height: odysseyDesignTokens.Spacing8,\n }),\n\n ...(isTagContainer && {\n bottom: 0,\n alignSelf: \"center\",\n width: odysseyDesignTokens.Spacing4,\n height: \"auto\",\n maxHeight: odysseyDesignTokens.Spacing4,\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n\n svg: {\n display: \"flex\",\n width: \"100%\",\n height: \"auto\",\n },\n }),\n }),\n);\n\ntype OptionAdornmentProps = {\n adornment: Adornment;\n adornmentSize: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n};\n\nconst OptionAdornment = ({\n adornment,\n adornmentSize,\n odysseyDesignTokens,\n}: OptionAdornmentProps) => {\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {/* NOTE: Intentionally leaving alt as an empty string here so screen readers will ignore this image */}\n {/* Image should be sufficiently described by the adjacent title and/or description of the option */}\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n } else {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n }\n};\n\nconst OptionWithLabelDescriptionOnly = <\n OptionType extends AdornmentLabelDescription,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & { adornmentSize: AdornmentSize }) => {\n const { adornment, description, label, value } = option;\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionWithLabelDescriptionMetadata = <\n OptionType extends AdornmentLabelDescriptionMetadata,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & {\n adornmentSize: AdornmentSize;\n }) => {\n const { adornment, description, label, metaData, value } = option;\n\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <div>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </div>\n </Option>\n );\n};\n\ntype TagAdornmentProps = {\n adornment: Adornment;\n};\n\nconst TagAdornment = ({ adornment }: TagAdornmentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n }\n\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n};\n\nexport type PickerWithOptionAdornmentProps<\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n};\n\ntype PickerWithOptionAdornmentComponentType = {\n <\n OptionType extends AdornmentLabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n <\n OptionType extends AdornmentLabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nconst PickerWithOptionAdornment: PickerWithOptionAdornmentComponentType = <\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n adornmentSize = \"small\",\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customTagRender = useCallback<\n NonNullable<\n ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >[\"renderTags\"]\n >\n >(\n (values, getTagProps) =>\n values.map((value, index) => {\n const { key, onDelete } = getTagProps({ index });\n const { adornment, label } = value;\n\n return (\n <Box\n key={key}\n sx={{\n margin: odysseyDesignTokens.Spacing1,\n marginInlineEnd: 0,\n }}\n >\n <Tag\n icon={<TagAdornment adornment={adornment} />}\n label={label}\n onRemove={onDelete}\n />\n </Box>\n );\n }),\n [odysseyDesignTokens],\n );\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasMetadata = \"metaData\" in option && option.metaData;\n\n return (\n <Fragment key={option.value}>\n {hasMetadata ? (\n <OptionWithLabelDescriptionMetadata\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionWithLabelDescriptionOnly\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [adornmentSize, odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n groupOptionsBy={groupOptionsBy}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n renderTags={customTagRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPickerWithOptionAdornment = memo(\n PickerWithOptionAdornment,\n) as BasePickerType;\n\nMemoizedPickerWithOptionAdornment.displayName = \"PickerWithOptionAdornment\";\n\nexport { MemoizedPickerWithOptionAdornment as PickerWithOptionAdornment };\n"],"mappings":"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","ignoreList":[]}
@@ -139,7 +139,6 @@ const CustomOption = ({
139
139
  label,
140
140
  metaData,
141
141
  extra,
142
- value,
143
142
  onClick,
144
143
  isInteractive = true
145
144
  } = option;
@@ -192,7 +191,7 @@ const CustomOption = ({
192
191
  odysseyDesignTokens: odysseyDesignTokens
193
192
  })]
194
193
  })
195
- }, value);
194
+ });
196
195
  };
197
196
  const SearchDropdown = ({
198
197
  adornmentSize = "small",
@@ -231,7 +230,7 @@ const SearchDropdown = ({
231
230
  muiProps: muiProps,
232
231
  odysseyDesignTokens: odysseyDesignTokens,
233
232
  option: option
234
- });
233
+ }, option.value);
235
234
  }, [adornmentSize, odysseyDesignTokens]);
236
235
  return (0, _jsxRuntime.jsx)(_ComposablePicker.ComposablePicker, {
237
236
  ariaDescribedBy: ariaDescribedBy,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchDropdown.cjs","names":["_react","require","_styled","_interopRequireDefault","_ComposablePicker","_OdysseyDesignTokensContext","_Picker","_Typography","_jsxRuntime","e","__esModule","default","OptionAdornmentContainer","styled","shouldForwardProp","prop","adornmentSize","isTagContainer","odysseyDesignTokens","position","bottom","alignSelf","width","Spacing5","height","overflow","marginInlineEnd","Spacing3","marginInlineStart","svg","img","top","left","transform","Spacing8","Spacing4","maxHeight","Spacing2","display","CustomOptionContainer","justifyContent","CustomOptionLeftContainer","OptionAdornment","adornment","isImageAdornment","jsx","children","src","alt","role","Extra","content","size","onClick","handleClick","useCallback","event","stopPropagation","CustomOption","muiProps","option","description","label","metaData","extra","value","isInteractive","handleOptionClick","preventDefault","extendedMuiProps","useMemo","undefined","Option","hasAdornment","jsxs","OptionLabelContainer","Heading6","component","OptionDescriptionComponent","OptionMetadataComponent","SearchDropdown","ariaDescribedBy","defaultValue","errorMessage","errorMessageList","getIsOptionEqualToValue","groupOptionsBy","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","testId","translate","useOdysseyDesignTokens","customOptionRender","ComposablePicker","renderOption","MemoizedSearchDropdown","exports","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/SearchDropdown.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n HTMLAttributes,\n memo,\n ReactElement,\n ReactNode,\n useCallback,\n useMemo,\n} from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport {\n ComposablePicker,\n type AdornmentSize,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport {\n type BaseOptionProps,\n type LabelDescription,\n type Metadata,\n Option,\n OptionDescriptionComponent,\n OptionLabelContainer,\n OptionMetadataComponent,\n OptionProps,\n} from \"./Picker.js\";\nimport { Heading6 } from \"../../Typography.js\";\n\ntype Adornment = ReactNode | string;\ntype ExtraType = {\n content: ReactNode | string;\n size?: AdornmentSize;\n onClick: () => void;\n};\n\ntype AdornmentLabelDescription = LabelDescription & {\n adornment: Adornment;\n extra?: ExtraType;\n onClick?: () => void;\n isInteractive?: boolean;\n};\n\nexport type CustomOptionType = AdornmentLabelDescription & Partial<Metadata>;\n\nconst OptionAdornmentContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"adornmentSize\" &&\n prop !== \"isTagContainer\",\n})<{\n adornmentSize?: AdornmentSize;\n isTagContainer?: boolean;\n odysseyDesignTokens: DesignTokens;\n position?: \"left\" | \"right\";\n}>(\n ({\n adornmentSize = \"small\",\n isTagContainer = false,\n\n odysseyDesignTokens,\n position = \"left\",\n }) => ({\n position: \"relative\",\n // push icon up by one px for better visual alignment\n bottom: \"1px\",\n alignSelf: \"flex-start\",\n width: odysseyDesignTokens.Spacing5,\n height: odysseyDesignTokens.Spacing5,\n overflow: \"hidden\",\n\n ...(position === \"left\" && {\n marginInlineEnd: odysseyDesignTokens.Spacing3,\n }),\n ...(position === \"right\" && {\n marginInlineStart: odysseyDesignTokens.Spacing3,\n }),\n\n svg: {\n width: \"100%\",\n height: \"auto\",\n },\n\n img: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n width: \"100%\",\n transform: \"translate(-50%, -50%)\",\n },\n\n ...(adornmentSize === \"large\" &&\n !isTagContainer && {\n bottom: 0,\n width: odysseyDesignTokens.Spacing8,\n height: odysseyDesignTokens.Spacing8,\n }),\n\n ...(isTagContainer && {\n bottom: 0,\n alignSelf: \"center\",\n width: odysseyDesignTokens.Spacing4,\n height: \"auto\",\n maxHeight: odysseyDesignTokens.Spacing4,\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n\n svg: {\n display: \"flex\",\n width: \"100%\",\n height: \"auto\",\n },\n }),\n }),\n);\n\ntype OptionAdornmentProps = {\n adornment: Adornment;\n adornmentSize: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype ExtraProps = {\n content: Adornment;\n size?: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n onClick: () => void;\n};\n\nconst CustomOptionContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n}));\n\nconst CustomOptionLeftContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n display: \"flex\",\n}));\n\nconst OptionAdornment = ({\n adornment,\n adornmentSize,\n odysseyDesignTokens,\n}: OptionAdornmentProps) => {\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n } else {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n }\n};\n\nconst Extra = ({ content, size, odysseyDesignTokens, onClick }: ExtraProps) => {\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n onClick();\n },\n [onClick],\n );\n\n return (\n <OptionAdornmentContainer\n adornmentSize={size}\n odysseyDesignTokens={odysseyDesignTokens}\n onClick={handleClick}\n >\n {content}\n </OptionAdornmentContainer>\n );\n};\n\nconst CustomOption = <OptionType extends CustomOptionType>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & {\n adornmentSize: AdornmentSize;\n }) => {\n const {\n adornment,\n description,\n label,\n metaData,\n extra,\n value,\n onClick,\n isInteractive = true,\n } = option;\n\n const handleOptionClick = useCallback(\n (event: React.MouseEvent) => {\n if (!isInteractive) {\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n onClick?.();\n },\n [onClick, isInteractive],\n );\n\n const extendedMuiProps = useMemo(() => {\n return {\n ...muiProps,\n onClick: isInteractive ? handleOptionClick : undefined,\n \"aria-disabled\": !isInteractive ? \"true\" : undefined,\n role: \"option\",\n } as HTMLAttributes<HTMLLIElement>;\n }, [muiProps, isInteractive, handleOptionClick]);\n\n return (\n <Option hasAdornment key={value} muiProps={extendedMuiProps}>\n <CustomOptionContainer odysseyDesignTokens={odysseyDesignTokens}>\n <CustomOptionLeftContainer odysseyDesignTokens={odysseyDesignTokens}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <div>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n {metaData && (\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n )}\n </div>\n </CustomOptionLeftContainer>\n {extra && (\n <Extra\n content={extra.content}\n size={extra.size || adornmentSize}\n onClick={extra.onClick}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n )}\n </CustomOptionContainer>\n </Option>\n );\n};\n\nexport type SearchDropdownProps<\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n};\n\ntype PickerWithOptionAdornmentComponentType = {\n <\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: SearchDropdownProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactElement;\n <\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: SearchDropdownProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactElement;\n};\n\nconst SearchDropdown: PickerWithOptionAdornmentComponentType = <\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n adornmentSize = \"small\",\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n groupOptionsBy,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: SearchDropdownProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n (props: HTMLAttributes<HTMLLIElement>, option: OptionType) => ReactNode\n >(\n (muiProps, option) => {\n return (\n <CustomOption\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n );\n },\n [adornmentSize, odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n groupOptionsBy={groupOptionsBy}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedSearchDropdown = memo(SearchDropdown) as BasePickerType;\n\nMemoizedSearchDropdown.displayName = \"MemoizedSearchDropdown\";\n\nexport { MemoizedSearchDropdown as SearchDropdown };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchDropdown.cjs","names":["_react","require","_styled","_interopRequireDefault","_ComposablePicker","_OdysseyDesignTokensContext","_Picker","_Typography","_jsxRuntime","e","__esModule","default","OptionAdornmentContainer","styled","shouldForwardProp","prop","adornmentSize","isTagContainer","odysseyDesignTokens","position","bottom","alignSelf","width","Spacing5","height","overflow","marginInlineEnd","Spacing3","marginInlineStart","svg","img","top","left","transform","Spacing8","Spacing4","maxHeight","Spacing2","display","CustomOptionContainer","justifyContent","CustomOptionLeftContainer","OptionAdornment","adornment","isImageAdornment","jsx","children","src","alt","role","Extra","content","size","onClick","handleClick","useCallback","event","stopPropagation","CustomOption","muiProps","option","description","label","metaData","extra","isInteractive","handleOptionClick","preventDefault","extendedMuiProps","useMemo","undefined","Option","hasAdornment","jsxs","OptionLabelContainer","Heading6","component","OptionDescriptionComponent","OptionMetadataComponent","SearchDropdown","ariaDescribedBy","defaultValue","errorMessage","errorMessageList","getIsOptionEqualToValue","groupOptionsBy","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","value","testId","translate","useOdysseyDesignTokens","customOptionRender","ComposablePicker","renderOption","MemoizedSearchDropdown","exports","memo","displayName"],"sources":["../../../../src/labs/OdysseyPickers/SearchDropdown.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, ReactElement, ReactNode, useCallback, useMemo } from \"react\";\nimport styled from \"@emotion/styled\";\n\nimport {\n ComposablePicker,\n type AdornmentSize,\n type BasePickerProps,\n type BasePickerType,\n type BaseRenderOptionProps,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport {\n type BaseOptionProps,\n type LabelDescription,\n type Metadata,\n Option,\n OptionDescriptionComponent,\n OptionLabelContainer,\n OptionMetadataComponent,\n OptionProps,\n} from \"./Picker.js\";\nimport { Heading6 } from \"../../Typography.js\";\n\ntype Adornment = ReactNode | string;\ntype ExtraType = {\n content: ReactNode | string;\n size?: AdornmentSize;\n onClick: () => void;\n};\n\ntype AdornmentLabelDescription = LabelDescription & {\n adornment: Adornment;\n extra?: ExtraType;\n onClick?: () => void;\n isInteractive?: boolean;\n};\n\nexport type CustomOptionType = AdornmentLabelDescription & Partial<Metadata>;\n\nconst OptionAdornmentContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"adornmentSize\" &&\n prop !== \"isTagContainer\",\n})<{\n adornmentSize?: AdornmentSize;\n isTagContainer?: boolean;\n odysseyDesignTokens: DesignTokens;\n position?: \"left\" | \"right\";\n}>(\n ({\n adornmentSize = \"small\",\n isTagContainer = false,\n\n odysseyDesignTokens,\n position = \"left\",\n }) => ({\n position: \"relative\",\n // push icon up by one px for better visual alignment\n bottom: \"1px\",\n alignSelf: \"flex-start\",\n width: odysseyDesignTokens.Spacing5,\n height: odysseyDesignTokens.Spacing5,\n overflow: \"hidden\",\n\n ...(position === \"left\" && {\n marginInlineEnd: odysseyDesignTokens.Spacing3,\n }),\n ...(position === \"right\" && {\n marginInlineStart: odysseyDesignTokens.Spacing3,\n }),\n\n svg: {\n width: \"100%\",\n height: \"auto\",\n },\n\n img: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n width: \"100%\",\n transform: \"translate(-50%, -50%)\",\n },\n\n ...(adornmentSize === \"large\" &&\n !isTagContainer && {\n bottom: 0,\n width: odysseyDesignTokens.Spacing8,\n height: odysseyDesignTokens.Spacing8,\n }),\n\n ...(isTagContainer && {\n bottom: 0,\n alignSelf: \"center\",\n width: odysseyDesignTokens.Spacing4,\n height: \"auto\",\n maxHeight: odysseyDesignTokens.Spacing4,\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n\n svg: {\n display: \"flex\",\n width: \"100%\",\n height: \"auto\",\n },\n }),\n }),\n);\n\ntype OptionAdornmentProps = {\n adornment: Adornment;\n adornmentSize: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype ExtraProps = {\n content: Adornment;\n size?: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n onClick: () => void;\n};\n\nconst CustomOptionContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n width: \"100%\",\n}));\n\nconst CustomOptionLeftContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n display: \"flex\",\n}));\n\nconst OptionAdornment = ({\n adornment,\n adornmentSize,\n odysseyDesignTokens,\n}: OptionAdornmentProps) => {\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n } else {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n }\n};\n\nconst Extra = ({ content, size, odysseyDesignTokens, onClick }: ExtraProps) => {\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n onClick();\n },\n [onClick],\n );\n\n return (\n <OptionAdornmentContainer\n adornmentSize={size}\n odysseyDesignTokens={odysseyDesignTokens}\n onClick={handleClick}\n >\n {content}\n </OptionAdornmentContainer>\n );\n};\n\nconst CustomOption = <OptionType extends CustomOptionType>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & {\n adornmentSize: AdornmentSize;\n }) => {\n const {\n adornment,\n description,\n label,\n metaData,\n extra,\n onClick,\n isInteractive = true,\n } = option;\n\n const handleOptionClick = useCallback(\n (event: React.MouseEvent) => {\n if (!isInteractive) {\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n onClick?.();\n },\n [onClick, isInteractive],\n );\n\n const extendedMuiProps = useMemo(() => {\n return {\n ...muiProps,\n onClick: isInteractive ? handleOptionClick : undefined,\n \"aria-disabled\": !isInteractive ? \"true\" : undefined,\n role: \"option\",\n } satisfies BaseRenderOptionProps;\n }, [muiProps, isInteractive, handleOptionClick]);\n\n return (\n <Option hasAdornment muiProps={extendedMuiProps}>\n <CustomOptionContainer odysseyDesignTokens={odysseyDesignTokens}>\n <CustomOptionLeftContainer odysseyDesignTokens={odysseyDesignTokens}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <div>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n {metaData && (\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n )}\n </div>\n </CustomOptionLeftContainer>\n {extra && (\n <Extra\n content={extra.content}\n size={extra.size || adornmentSize}\n onClick={extra.onClick}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n )}\n </CustomOptionContainer>\n </Option>\n );\n};\n\nexport type SearchDropdownProps<\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n};\n\ntype PickerWithOptionAdornmentComponentType = {\n <\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: SearchDropdownProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactElement;\n <\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: SearchDropdownProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactElement;\n};\n\nconst SearchDropdown: PickerWithOptionAdornmentComponentType = <\n OptionType extends CustomOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n adornmentSize = \"small\",\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n groupOptionsBy,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: SearchDropdownProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n (props: BaseRenderOptionProps, option: OptionType) => ReactNode\n >(\n (muiProps, option) => {\n return (\n <CustomOption\n adornmentSize={adornmentSize}\n key={option.value}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n );\n },\n [adornmentSize, odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n groupOptionsBy={groupOptionsBy}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedSearchDropdown = memo(SearchDropdown) as BasePickerType;\n\nMemoizedSearchDropdown.displayName = \"MemoizedSearchDropdown\";\n\nexport { MemoizedSearchDropdown as SearchDropdown };\n"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ var _DocumentationLink = require("./DocumentationLink.cjs");
11
11
  var _OdysseyDesignTokensContext = require("../../OdysseyDesignTokensContext.cjs");
12
12
  var _Typography = require("../../Typography.cjs");
13
13
  var _useHasUiShell = require("../../ui-shell/useHasUiShell.cjs");
14
+ var _useMountLifecycleEffect = require("../../useMountLifecycleEffect.cjs");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
17
  /*!
@@ -78,11 +79,12 @@ const TemplateHeaderButtons = (0, _styled.default)("div", {
78
79
  gap: odysseyDesignTokens.Spacing2
79
80
  }));
80
81
  const TemplateContent = (0, _styled.default)("div", {
81
- shouldForwardProp: prop => !["odysseyDesignTokens", "isDrawerOpen", "drawerVariant"].includes(prop)
82
+ shouldForwardProp: prop => !["drawerVariant", "isDrawerOpen", "isFirstRender", "odysseyDesignTokens"].includes(prop)
82
83
  })(({
83
- odysseyDesignTokens,
84
+ drawerVariant,
84
85
  isDrawerOpen,
85
- drawerVariant
86
+ isFirstRender,
87
+ odysseyDesignTokens
86
88
  }) => ({
87
89
  "@keyframes animate-drawer-open": {
88
90
  "0%": {
@@ -105,7 +107,7 @@ const TemplateContent = (0, _styled.default)("div", {
105
107
  gap: drawerVariant === "persistent" && !isDrawerOpen ? 0 : odysseyDesignTokens.Spacing4,
106
108
  marginBlock: odysseyDesignTokens.Spacing4,
107
109
  gridTemplateColumns: drawerVariant === "persistent" ? isDrawerOpen ? "minmax(0, 1fr) 360px" : "minmax(0, 1fr) 0" : "minmax(0, 1fr)",
108
- animation: drawerVariant === "persistent" && isDrawerOpen ? "animate-drawer-open 225ms cubic-bezier(0, 0, 0.2, 1)" : "animate-drawer-close 225ms cubic-bezier(0, 0, 0.2, 1)"
110
+ animation: drawerVariant === "persistent" && (!isFirstRender || isDrawerOpen) ? `animate-drawer-${isDrawerOpen ? "open" : "close"} 225ms cubic-bezier(0, 0, 0.2, 1)` : undefined
109
111
  }));
110
112
  const PageTemplate = ({
111
113
  children,
@@ -125,6 +127,14 @@ const PageTemplate = ({
125
127
  variant: drawerVariant
126
128
  } = drawer?.props ?? {};
127
129
  const hasUiShell = (0, _useHasUiShell.useHasUiShell)();
130
+ const firstRenderRef = (0, _react.useRef)(true);
131
+ const isFirstRender = firstRenderRef.current;
132
+ const onMount = (0, _react.useCallback)(() => {
133
+ firstRenderRef.current = false;
134
+ }, []);
135
+ (0, _useMountLifecycleEffect.useMountLifecycleEffect)({
136
+ onMount
137
+ });
128
138
  return (0, _jsxRuntime.jsxs)(TemplateContainer, {
129
139
  hasUiShell: hasUiShell,
130
140
  isFullWidth: isFullWidth,
@@ -154,6 +164,7 @@ const PageTemplate = ({
154
164
  odysseyDesignTokens: odysseyDesignTokens,
155
165
  isDrawerOpen: isDrawerOpen,
156
166
  drawerVariant: drawerVariant,
167
+ isFirstRender: isFirstRender,
157
168
  children: [children, drawer]
158
169
  })]
159
170
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PageTemplate.cjs","names":["_styled","_interopRequireDefault","require","_react","_index","_DocumentationLink","_OdysseyDesignTokensContext","_Typography","_useHasUiShell","_jsxRuntime","e","__esModule","default","TemplateContainer","styled","shouldForwardProp","prop","hasUiShell","isFullWidth","odysseyDesignTokens","maxWidth","Spacing6","marginInline","padding","TemplateHeader","display","alignItems","justifyContent","gap","Spacing4","TemplateHeaderPrimaryContent","TypographyLineLengthMax","marginBlockEnd","TemplateHeaderSecondaryContent","flexDirection","minHeight","Spacing7","whiteSpace","TemplateHeaderButtons","Spacing2","TemplateContent","includes","isDrawerOpen","drawerVariant","gridTemplateColumns","gridGap","marginBlock","animation","PageTemplate","children","description","documentationLink","documentationText","drawer","primaryCallToActionComponent","secondaryCallToActionComponent","tertiaryCallToActionComponent","title","useOdysseyDesignTokens","isOpen","variant","props","useHasUiShell","jsxs","jsx","Heading4","Paragraph","DocumentationLink","href","icon","DocumentationIcon","target","MemoizedPageTemplate","exports","memo","displayName"],"sources":["../../../../src/labs/PageTemplate/PageTemplate.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, ReactElement, ReactNode } from \"react\";\n\nimport { DrawerProps } from \"../../Drawer.js\";\nimport { DocumentationIcon } from \"../../icons.generated/index.js\";\nimport { DocumentationLink } from \"./DocumentationLink.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading4, Paragraph } from \"../../Typography.js\";\nimport { useHasUiShell } from \"../../ui-shell/useHasUiShell.js\";\n\nexport type PageTemplateProps = {\n /**\n * The title of the layout to be situated in the layout header\n */\n title?: string;\n /**\n * A supplementary description to be situated in the layout header\n */\n description?: string;\n /**\n * The destination for a documentation `Link` to be situated in the layout header\n */\n documentationLink?: string;\n /**\n * The text for a documentation `Link` to be situated in the layout header\n */\n documentationText?: string;\n /**\n * An optional `Drawer` object. Can be of variant 'temporary' or 'persistent'.\n */\n drawer?: ReactElement<DrawerProps>;\n /**\n * An optional `Button` object to be situated in the layout header. Should almost always be of variant `primary`.\n */\n primaryCallToActionComponent?: ReactElement;\n /**\n * An optional `Button` object to be situated in the layout header, alongside the `callToActionPrimaryComponent`.\n */\n secondaryCallToActionComponent?: ReactElement;\n /**\n * An optional `Button` object to be situated in the layout header, alongside the other two `callToAction` components.\n */\n tertiaryCallToActionComponent?: ReactElement;\n /**\n * The content of the layout. May be a `string` or any other `ReactNode` or array of `ReactNode`s. Will often be `Grid` objects.\n */\n children?: ReactNode;\n /**\n * When set to `true`, the layout expands past its max width of 1440px and spans the entire available screen width.\n */\n isFullWidth?: boolean;\n};\n\ntype TemplateContentProps = {\n odysseyDesignTokens: DesignTokens;\n isDrawerOpen?: boolean;\n drawerVariant?: string;\n};\n\nconst TemplateContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"hasUiShell\" &&\n prop !== \"isFullWidth\",\n})<{\n hasUiShell: boolean;\n isFullWidth: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ hasUiShell, isFullWidth, odysseyDesignTokens }) => ({\n maxWidth: isFullWidth\n ? \"100%\"\n : `calc(1440px + ${odysseyDesignTokens.Spacing6} + ${odysseyDesignTokens.Spacing6})`,\n marginInline:\n isFullWidth && !hasUiShell ? odysseyDesignTokens.Spacing6 : \"auto\",\n padding: hasUiShell ? 0 : odysseyDesignTokens.Spacing6,\n}));\n\nconst TemplateHeader = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst TemplateHeaderPrimaryContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n maxWidth: odysseyDesignTokens.TypographyLineLengthMax,\n [\".MuiTypography-root:last-child\"]: {\n marginBlockEnd: \"0\",\n },\n}));\n\nconst TemplateHeaderSecondaryContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n alignItems: \"flex-end\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n minHeight: odysseyDesignTokens.Spacing7,\n justifyContent: \"center\",\n whiteSpace: \"nowrap\",\n}));\n\nconst TemplateHeaderButtons = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst TemplateContent = styled(\"div\", {\n shouldForwardProp: (prop) =>\n ![\"odysseyDesignTokens\", \"isDrawerOpen\", \"drawerVariant\"].includes(prop),\n})<TemplateContentProps>(\n ({ odysseyDesignTokens, isDrawerOpen, drawerVariant }) => ({\n \"@keyframes animate-drawer-open\": {\n \"0%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 0\",\n },\n \"100%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 360px\",\n },\n },\n \"@keyframes animate-drawer-close\": {\n \"0%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 360px\",\n },\n \"100%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 0\",\n },\n },\n display: \"grid\",\n gridGap:\n drawerVariant === \"persistent\" && !isDrawerOpen\n ? 0\n : odysseyDesignTokens.Spacing4,\n gap:\n drawerVariant === \"persistent\" && !isDrawerOpen\n ? 0\n : odysseyDesignTokens.Spacing4,\n marginBlock: odysseyDesignTokens.Spacing4,\n gridTemplateColumns:\n drawerVariant === \"persistent\"\n ? isDrawerOpen\n ? \"minmax(0, 1fr) 360px\"\n : \"minmax(0, 1fr) 0\"\n : \"minmax(0, 1fr)\",\n animation:\n drawerVariant === \"persistent\" && isDrawerOpen\n ? \"animate-drawer-open 225ms cubic-bezier(0, 0, 0.2, 1)\"\n : \"animate-drawer-close 225ms cubic-bezier(0, 0, 0.2, 1)\",\n }),\n);\n\nconst PageTemplate = ({\n children,\n description,\n documentationLink,\n documentationText,\n drawer,\n isFullWidth = false,\n primaryCallToActionComponent,\n secondaryCallToActionComponent,\n tertiaryCallToActionComponent,\n title,\n}: PageTemplateProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { isOpen: isDrawerOpen, variant: drawerVariant } = drawer?.props ?? {};\n\n const hasUiShell = useHasUiShell();\n\n return (\n <TemplateContainer\n hasUiShell={hasUiShell}\n isFullWidth={isFullWidth}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <TemplateHeader odysseyDesignTokens={odysseyDesignTokens}>\n <TemplateHeaderPrimaryContent odysseyDesignTokens={odysseyDesignTokens}>\n {title && <Heading4>{title}</Heading4>}\n {description && <Paragraph>{description}</Paragraph>}\n </TemplateHeaderPrimaryContent>\n\n <TemplateHeaderSecondaryContent\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {documentationLink && (\n <DocumentationLink\n href={documentationLink}\n icon={<DocumentationIcon />}\n target=\"_blank\"\n >\n {documentationText}\n </DocumentationLink>\n )}\n {(primaryCallToActionComponent ||\n secondaryCallToActionComponent ||\n tertiaryCallToActionComponent) && (\n <TemplateHeaderButtons odysseyDesignTokens={odysseyDesignTokens}>\n {tertiaryCallToActionComponent}\n {secondaryCallToActionComponent}\n {primaryCallToActionComponent}\n </TemplateHeaderButtons>\n )}\n </TemplateHeaderSecondaryContent>\n </TemplateHeader>\n <TemplateContent\n odysseyDesignTokens={odysseyDesignTokens}\n isDrawerOpen={isDrawerOpen}\n drawerVariant={drawerVariant}\n >\n {children}\n {drawer}\n </TemplateContent>\n </TemplateContainer>\n );\n};\n\nconst MemoizedPageTemplate = memo(PageTemplate);\nMemoizedPageTemplate.displayName = \"PageTemplate\";\n\nexport { MemoizedPageTemplate as PageTemplate };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PageTemplate.cjs","names":["_styled","_interopRequireDefault","require","_react","_index","_DocumentationLink","_OdysseyDesignTokensContext","_Typography","_useHasUiShell","_useMountLifecycleEffect","_jsxRuntime","e","__esModule","default","TemplateContainer","styled","shouldForwardProp","prop","hasUiShell","isFullWidth","odysseyDesignTokens","maxWidth","Spacing6","marginInline","padding","TemplateHeader","display","alignItems","justifyContent","gap","Spacing4","TemplateHeaderPrimaryContent","TypographyLineLengthMax","marginBlockEnd","TemplateHeaderSecondaryContent","flexDirection","minHeight","Spacing7","whiteSpace","TemplateHeaderButtons","Spacing2","TemplateContent","includes","drawerVariant","isDrawerOpen","isFirstRender","gridTemplateColumns","gridGap","marginBlock","animation","undefined","PageTemplate","children","description","documentationLink","documentationText","drawer","primaryCallToActionComponent","secondaryCallToActionComponent","tertiaryCallToActionComponent","title","useOdysseyDesignTokens","isOpen","variant","props","useHasUiShell","firstRenderRef","useRef","current","onMount","useCallback","useMountLifecycleEffect","jsxs","jsx","Heading4","Paragraph","DocumentationLink","href","icon","DocumentationIcon","target","MemoizedPageTemplate","exports","memo","displayName"],"sources":["../../../../src/labs/PageTemplate/PageTemplate.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, ReactElement, ReactNode, useCallback, useRef } from \"react\";\n\nimport { DrawerProps } from \"../../Drawer.js\";\nimport { DocumentationIcon } from \"../../icons.generated/index.js\";\nimport { DocumentationLink } from \"./DocumentationLink.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading4, Paragraph } from \"../../Typography.js\";\nimport { useHasUiShell } from \"../../ui-shell/useHasUiShell.js\";\nimport { useMountLifecycleEffect } from \"../../useMountLifecycleEffect.js\";\n\nexport type PageTemplateProps = {\n /**\n * The title of the layout to be situated in the layout header\n */\n title?: string;\n /**\n * A supplementary description to be situated in the layout header\n */\n description?: string;\n /**\n * The destination for a documentation `Link` to be situated in the layout header\n */\n documentationLink?: string;\n /**\n * The text for a documentation `Link` to be situated in the layout header\n */\n documentationText?: string;\n /**\n * An optional `Drawer` object. Can be of variant 'temporary' or 'persistent'.\n */\n drawer?: ReactElement<DrawerProps>;\n /**\n * An optional `Button` object to be situated in the layout header. Should almost always be of variant `primary`.\n */\n primaryCallToActionComponent?: ReactElement;\n /**\n * An optional `Button` object to be situated in the layout header, alongside the `callToActionPrimaryComponent`.\n */\n secondaryCallToActionComponent?: ReactElement;\n /**\n * An optional `Button` object to be situated in the layout header, alongside the other two `callToAction` components.\n */\n tertiaryCallToActionComponent?: ReactElement;\n /**\n * The content of the layout. May be a `string` or any other `ReactNode` or array of `ReactNode`s. Will often be `Grid` objects.\n */\n children?: ReactNode;\n /**\n * When set to `true`, the layout expands past its max width of 1440px and spans the entire available screen width.\n */\n isFullWidth?: boolean;\n};\n\ntype TemplateContentProps = {\n drawerVariant?: string;\n isDrawerOpen?: boolean;\n isFirstRender: boolean;\n odysseyDesignTokens: DesignTokens;\n};\n\nconst TemplateContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"hasUiShell\" &&\n prop !== \"isFullWidth\",\n})<{\n hasUiShell: boolean;\n isFullWidth: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ hasUiShell, isFullWidth, odysseyDesignTokens }) => ({\n maxWidth: isFullWidth\n ? \"100%\"\n : `calc(1440px + ${odysseyDesignTokens.Spacing6} + ${odysseyDesignTokens.Spacing6})`,\n marginInline:\n isFullWidth && !hasUiShell ? odysseyDesignTokens.Spacing6 : \"auto\",\n padding: hasUiShell ? 0 : odysseyDesignTokens.Spacing6,\n}));\n\nconst TemplateHeader = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst TemplateHeaderPrimaryContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n maxWidth: odysseyDesignTokens.TypographyLineLengthMax,\n [\".MuiTypography-root:last-child\"]: {\n marginBlockEnd: \"0\",\n },\n}));\n\nconst TemplateHeaderSecondaryContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n alignItems: \"flex-end\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n minHeight: odysseyDesignTokens.Spacing7,\n justifyContent: \"center\",\n whiteSpace: \"nowrap\",\n}));\n\nconst TemplateHeaderButtons = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst TemplateContent = styled(\"div\", {\n shouldForwardProp: (prop) =>\n ![\n \"drawerVariant\",\n \"isDrawerOpen\",\n \"isFirstRender\",\n \"odysseyDesignTokens\",\n ].includes(prop),\n})<TemplateContentProps>(\n ({ drawerVariant, isDrawerOpen, isFirstRender, odysseyDesignTokens }) => ({\n \"@keyframes animate-drawer-open\": {\n \"0%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 0\",\n },\n \"100%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 360px\",\n },\n },\n \"@keyframes animate-drawer-close\": {\n \"0%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 360px\",\n },\n \"100%\": {\n gridTemplateColumns: \"minmax(0, 1fr) 0\",\n },\n },\n display: \"grid\",\n gridGap:\n drawerVariant === \"persistent\" && !isDrawerOpen\n ? 0\n : odysseyDesignTokens.Spacing4,\n gap:\n drawerVariant === \"persistent\" && !isDrawerOpen\n ? 0\n : odysseyDesignTokens.Spacing4,\n marginBlock: odysseyDesignTokens.Spacing4,\n gridTemplateColumns:\n drawerVariant === \"persistent\"\n ? isDrawerOpen\n ? \"minmax(0, 1fr) 360px\"\n : \"minmax(0, 1fr) 0\"\n : \"minmax(0, 1fr)\",\n animation:\n drawerVariant === \"persistent\" && (!isFirstRender || isDrawerOpen)\n ? `animate-drawer-${isDrawerOpen ? \"open\" : \"close\"} 225ms cubic-bezier(0, 0, 0.2, 1)`\n : undefined,\n }),\n);\n\nconst PageTemplate = ({\n children,\n description,\n documentationLink,\n documentationText,\n drawer,\n isFullWidth = false,\n primaryCallToActionComponent,\n secondaryCallToActionComponent,\n tertiaryCallToActionComponent,\n title,\n}: PageTemplateProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { isOpen: isDrawerOpen, variant: drawerVariant } = drawer?.props ?? {};\n\n const hasUiShell = useHasUiShell();\n\n const firstRenderRef = useRef(true);\n\n const isFirstRender = firstRenderRef.current;\n\n const onMount = useCallback(() => {\n firstRenderRef.current = false;\n }, []);\n\n useMountLifecycleEffect({\n onMount,\n });\n\n return (\n <TemplateContainer\n hasUiShell={hasUiShell}\n isFullWidth={isFullWidth}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <TemplateHeader odysseyDesignTokens={odysseyDesignTokens}>\n <TemplateHeaderPrimaryContent odysseyDesignTokens={odysseyDesignTokens}>\n {title && <Heading4>{title}</Heading4>}\n {description && <Paragraph>{description}</Paragraph>}\n </TemplateHeaderPrimaryContent>\n\n <TemplateHeaderSecondaryContent\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {documentationLink && (\n <DocumentationLink\n href={documentationLink}\n icon={<DocumentationIcon />}\n target=\"_blank\"\n >\n {documentationText}\n </DocumentationLink>\n )}\n {(primaryCallToActionComponent ||\n secondaryCallToActionComponent ||\n tertiaryCallToActionComponent) && (\n <TemplateHeaderButtons odysseyDesignTokens={odysseyDesignTokens}>\n {tertiaryCallToActionComponent}\n {secondaryCallToActionComponent}\n {primaryCallToActionComponent}\n </TemplateHeaderButtons>\n )}\n </TemplateHeaderSecondaryContent>\n </TemplateHeader>\n <TemplateContent\n odysseyDesignTokens={odysseyDesignTokens}\n isDrawerOpen={isDrawerOpen}\n drawerVariant={drawerVariant}\n isFirstRender={isFirstRender}\n >\n {children}\n {drawer}\n </TemplateContent>\n </TemplateContainer>\n );\n};\n\nconst MemoizedPageTemplate = memo(PageTemplate);\nMemoizedPageTemplate.displayName = \"PageTemplate\";\n\nexport { MemoizedPageTemplate as PageTemplate };\n"],"mappings":"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","ignoreList":[]}