@okta/odyssey-react-mui 1.44.0 → 1.47.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 (752) hide show
  1. package/dist/cjs/Autocomplete.cjs +3 -33
  2. package/dist/cjs/Autocomplete.cjs.map +1 -1
  3. package/dist/cjs/Banner.cjs +2 -2
  4. package/dist/cjs/Banner.cjs.map +1 -1
  5. package/dist/cjs/Breadcrumbs.cjs +2 -2
  6. package/dist/cjs/Breadcrumbs.cjs.map +1 -1
  7. package/dist/cjs/Buttons/BaseButton.cjs.map +1 -1
  8. package/dist/cjs/Callout.cjs +3 -27
  9. package/dist/cjs/Callout.cjs.map +1 -1
  10. package/dist/cjs/Card.cjs +280 -63
  11. package/dist/cjs/Card.cjs.map +1 -1
  12. package/dist/cjs/Checkbox.cjs +14 -12
  13. package/dist/cjs/Checkbox.cjs.map +1 -1
  14. package/dist/cjs/DataTable/DataTable.cjs +2 -2
  15. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  16. package/dist/cjs/DataTable/DataTableRowActions.cjs +6 -6
  17. package/dist/cjs/DataTable/DataTableRowActions.cjs.map +1 -1
  18. package/dist/cjs/DataTable/DataTableSettings.cjs +2 -2
  19. package/dist/cjs/DataTable/DataTableSettings.cjs.map +1 -1
  20. package/dist/cjs/DataTable/useRowReordering.cjs +2 -2
  21. package/dist/cjs/DataTable/useRowReordering.cjs.map +1 -1
  22. package/dist/cjs/DatePickers/DateField.cjs +2 -2
  23. package/dist/cjs/DatePickers/DateField.cjs.map +1 -1
  24. package/dist/cjs/DatePickers/DateFieldActionBar.cjs +2 -2
  25. package/dist/cjs/DatePickers/DateFieldActionBar.cjs.map +1 -1
  26. package/dist/cjs/DatePickers/DatePicker.cjs +2 -2
  27. package/dist/cjs/DatePickers/DatePicker.cjs.map +1 -1
  28. package/dist/cjs/DatePickers/useDateFieldsTranslations.cjs +2 -2
  29. package/dist/cjs/DatePickers/useDateFieldsTranslations.cjs.map +1 -1
  30. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs +2 -2
  31. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs.map +1 -1
  32. package/dist/cjs/Dialog.cjs +34 -31
  33. package/dist/cjs/Dialog.cjs.map +1 -1
  34. package/dist/cjs/Drawer.cjs +8 -4
  35. package/dist/cjs/Drawer.cjs.map +1 -1
  36. package/dist/cjs/Field.cjs +2 -2
  37. package/dist/cjs/Field.cjs.map +1 -1
  38. package/dist/cjs/FieldError.cjs +2 -2
  39. package/dist/cjs/FieldError.cjs.map +1 -1
  40. package/dist/cjs/FieldLabel.cjs +2 -2
  41. package/dist/cjs/FieldLabel.cjs.map +1 -1
  42. package/dist/cjs/FileUploader/FileUploadPreview.cjs +2 -2
  43. package/dist/cjs/FileUploader/FileUploadPreview.cjs.map +1 -1
  44. package/dist/cjs/FileUploader/FileUploader.cjs +2 -2
  45. package/dist/cjs/FileUploader/FileUploader.cjs.map +1 -1
  46. package/dist/cjs/FullScreenOverlay.cjs +40 -0
  47. package/dist/cjs/FullScreenOverlay.cjs.map +1 -0
  48. package/dist/cjs/FullScreenOverlayContext.cjs +72 -0
  49. package/dist/cjs/FullScreenOverlayContext.cjs.map +1 -0
  50. package/dist/cjs/OdysseyCacheProvider.cjs +12 -17
  51. package/dist/cjs/OdysseyCacheProvider.cjs.map +1 -1
  52. package/dist/cjs/OdysseyProvider.cjs +18 -10
  53. package/dist/cjs/OdysseyProvider.cjs.map +1 -1
  54. package/dist/cjs/OdysseyThemeProvider.cjs +27 -16
  55. package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
  56. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs +44 -0
  57. package/dist/cjs/OdysseyThemeProviderPropsContext.cjs.map +1 -0
  58. package/dist/cjs/Pagination/Pagination.cjs +2 -3
  59. package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
  60. package/dist/cjs/Pagination/usePagination.cjs +2 -2
  61. package/dist/cjs/Pagination/usePagination.cjs.map +1 -1
  62. package/dist/cjs/PasswordField.cjs +2 -2
  63. package/dist/cjs/PasswordField.cjs.map +1 -1
  64. package/dist/cjs/Radio.cjs +22 -20
  65. package/dist/cjs/Radio.cjs.map +1 -1
  66. package/dist/cjs/SearchField.cjs +2 -2
  67. package/dist/cjs/SearchField.cjs.map +1 -1
  68. package/dist/cjs/Select.cjs +1 -37
  69. package/dist/cjs/Select.cjs.map +1 -1
  70. package/dist/cjs/Surface.cjs +3 -3
  71. package/dist/cjs/Surface.cjs.map +1 -1
  72. package/dist/cjs/Switch.cjs +2 -2
  73. package/dist/cjs/Switch.cjs.map +1 -1
  74. package/dist/cjs/Tabs.cjs +1 -21
  75. package/dist/cjs/Tabs.cjs.map +1 -1
  76. package/dist/cjs/Tag.cjs +2 -2
  77. package/dist/cjs/Tag.cjs.map +1 -1
  78. package/dist/cjs/TextField.cjs +1 -26
  79. package/dist/cjs/TextField.cjs.map +1 -1
  80. package/dist/cjs/Toast.cjs +2 -2
  81. package/dist/cjs/Toast.cjs.map +1 -1
  82. package/dist/cjs/__internal.cjs +149 -0
  83. package/dist/cjs/__internal.cjs.map +1 -0
  84. package/dist/cjs/i18n.generated/i18n.cjs +35 -0
  85. package/dist/cjs/i18n.generated/i18n.cjs.map +1 -0
  86. package/dist/cjs/i18n.generated/i18n.resources.cjs +81 -0
  87. package/dist/cjs/i18n.generated/i18n.resources.cjs.map +1 -0
  88. package/dist/{esm/shadow-dom/index.js → cjs/i18n.generated/i18n.types.cjs} +9 -4
  89. package/dist/cjs/i18n.generated/i18n.types.cjs.map +1 -0
  90. package/dist/cjs/index.cjs +49 -30
  91. package/dist/cjs/index.cjs.map +1 -1
  92. package/dist/cjs/labs/DataFilters.cjs +4 -4
  93. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  94. package/dist/cjs/labs/DataTable.cjs +2 -2
  95. package/dist/cjs/labs/DataTable.cjs.map +1 -1
  96. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs +2 -2
  97. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
  98. package/dist/cjs/labs/DataView/CardLayoutContent.cjs +60 -44
  99. package/dist/cjs/labs/DataView/CardLayoutContent.cjs.map +1 -1
  100. package/dist/cjs/labs/DataView/DataCard.cjs +52 -181
  101. package/dist/cjs/labs/DataView/DataCard.cjs.map +1 -1
  102. package/dist/cjs/labs/DataView/DataView.cjs +2 -2
  103. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  104. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs +2 -2
  105. package/dist/cjs/labs/DataView/LayoutSwitcher.cjs.map +1 -1
  106. package/dist/cjs/labs/DataView/RowActions.cjs +2 -2
  107. package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
  108. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +2 -2
  109. package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
  110. package/dist/cjs/labs/DataView/TableSettings.cjs +2 -2
  111. package/dist/cjs/labs/DataView/TableSettings.cjs.map +1 -1
  112. package/dist/cjs/labs/DataView/componentTypes.cjs.map +1 -1
  113. package/dist/cjs/labs/DataView/fetchData.cjs +2 -2
  114. package/dist/cjs/labs/DataView/fetchData.cjs.map +1 -1
  115. package/dist/cjs/labs/DatePickers/DateTimeField.cjs +2 -2
  116. package/dist/cjs/labs/DatePickers/DateTimeField.cjs.map +1 -1
  117. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs +2 -2
  118. package/dist/cjs/labs/DatePickers/DateTimePicker.cjs.map +1 -1
  119. package/dist/cjs/labs/DatePickers/dateTimePickerTheme.cjs +3 -3
  120. package/dist/cjs/labs/DatePickers/dateTimePickerTheme.cjs.map +1 -1
  121. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs +2 -2
  122. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs.map +1 -1
  123. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +4 -0
  124. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
  125. package/dist/cjs/labs/OdysseyPickers/index.cjs.map +1 -1
  126. package/dist/cjs/labs/PageTemplate/Layout.cjs +2 -2
  127. package/dist/cjs/labs/PageTemplate/Layout.cjs.map +1 -1
  128. package/dist/cjs/labs/PageTemplate/PageTemplate.cjs.map +1 -1
  129. package/dist/cjs/labs/PaginatedTable.cjs +4 -4
  130. package/dist/cjs/labs/PaginatedTable.cjs.map +1 -1
  131. package/dist/cjs/labs/StaticTable.cjs +2 -2
  132. package/dist/cjs/labs/StaticTable.cjs.map +1 -1
  133. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  134. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +7 -1
  135. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
  136. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +7 -1
  137. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
  138. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +8 -2
  139. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
  140. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +7 -1
  141. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
  142. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +7 -1
  143. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
  144. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs +7 -1
  145. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs.map +1 -1
  146. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +7 -1
  147. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
  148. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +7 -1
  149. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
  150. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +7 -1
  151. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
  152. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +7 -1
  153. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
  154. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +7 -1
  155. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
  156. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +7 -1
  157. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
  158. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +7 -1
  159. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
  160. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +7 -1
  161. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
  162. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +7 -1
  163. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
  164. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +7 -1
  165. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs.map +1 -1
  166. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs +7 -1
  167. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs.map +1 -1
  168. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
  169. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
  170. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +7 -1
  171. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs.map +1 -1
  172. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs +7 -1
  173. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs.map +1 -1
  174. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs +7 -1
  175. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
  176. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +7 -1
  177. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
  178. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +7 -1
  179. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
  180. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +7 -1
  181. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
  182. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +7 -1
  183. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
  184. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +7 -1
  185. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
  186. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +7 -1
  187. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs.map +1 -1
  188. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs +7 -1
  189. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs.map +1 -1
  190. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs +7 -1
  191. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
  192. package/dist/cjs/test-selectors/AutocompleteTestSelector.cjs +49 -0
  193. package/dist/cjs/test-selectors/AutocompleteTestSelector.cjs.map +1 -0
  194. package/dist/cjs/test-selectors/CalloutTestSelector.cjs +43 -0
  195. package/dist/cjs/test-selectors/CalloutTestSelector.cjs.map +1 -0
  196. package/dist/cjs/test-selectors/SelectTestSelector.cjs +55 -0
  197. package/dist/cjs/test-selectors/SelectTestSelector.cjs.map +1 -0
  198. package/dist/cjs/{OdysseyTranslationProvider.types.cjs → test-selectors/TabsTestSelector.cjs} +23 -4
  199. package/dist/cjs/test-selectors/TabsTestSelector.cjs.map +1 -0
  200. package/dist/cjs/test-selectors/TextFieldTestSelector.cjs +44 -0
  201. package/dist/cjs/test-selectors/TextFieldTestSelector.cjs.map +1 -0
  202. package/dist/cjs/test-selectors/index.cjs +11 -0
  203. package/dist/cjs/test-selectors/index.cjs.map +1 -1
  204. package/dist/cjs/test-selectors/queryOdysseySelector.cjs +10 -10
  205. package/dist/cjs/test-selectors/queryOdysseySelector.cjs.map +1 -1
  206. package/dist/cjs/theme/components.cjs +5 -9
  207. package/dist/cjs/theme/components.cjs.map +1 -1
  208. package/dist/cjs/tools/addSpecificity.cjs.map +1 -0
  209. package/dist/cjs/tools/bufferLatest.cjs.map +1 -0
  210. package/dist/cjs/tools/createMessageBus.cjs.map +1 -0
  211. package/dist/cjs/tools/createStore.cjs.map +1 -0
  212. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs +2 -12
  213. package/dist/cjs/ui-shell/NarrowUiShellContent.cjs.map +1 -1
  214. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs +20 -15
  215. package/dist/cjs/ui-shell/SideNav/NavAccordion.cjs.map +1 -1
  216. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +137 -136
  217. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  218. package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs +2 -2
  219. package/dist/cjs/ui-shell/SideNav/SideNavFooterContent.cjs.map +1 -1
  220. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +7 -4
  221. package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs.map +1 -1
  222. package/dist/cjs/ui-shell/SideNav/SideNavItemContentContext.cjs.map +1 -1
  223. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +3 -4
  224. package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
  225. package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs +47 -0
  226. package/dist/cjs/ui-shell/SideNav/SideNavSortableList.cjs.map +1 -0
  227. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +2 -2
  228. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  229. package/dist/cjs/ui-shell/SideNav/SortableList/SortableItem.cjs +2 -2
  230. package/dist/cjs/ui-shell/SideNav/SortableList/SortableItem.cjs.map +1 -1
  231. package/dist/cjs/ui-shell/SideNav/SortableList/SortableList.cjs +2 -2
  232. package/dist/cjs/ui-shell/SideNav/SortableList/SortableList.cjs.map +1 -1
  233. package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
  234. package/dist/cjs/ui-shell/UiShell.cjs +4 -4
  235. package/dist/cjs/ui-shell/UiShell.cjs.map +1 -1
  236. package/dist/cjs/ui-shell/UiShellProvider.cjs +1 -1
  237. package/dist/cjs/ui-shell/UiShellProvider.cjs.map +1 -1
  238. package/dist/cjs/ui-shell/WideUiShellContent.cjs +2 -1
  239. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  240. package/dist/cjs/ui-shell/renderUiShell.cjs +2 -2
  241. package/dist/cjs/ui-shell/renderUiShell.cjs.map +1 -1
  242. package/dist/cjs/ui-shell/uiShellContentTypes.cjs +2 -1
  243. package/dist/cjs/ui-shell/uiShellContentTypes.cjs.map +1 -1
  244. package/dist/cjs/{shadow-dom/shadow-dom.cjs → web-component/createShadowDomElements.cjs} +8 -3
  245. package/dist/cjs/web-component/createShadowDomElements.cjs.map +1 -0
  246. package/dist/cjs/web-component/index.cjs +33 -0
  247. package/dist/cjs/web-component/index.cjs.map +1 -1
  248. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  249. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  250. package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs +35 -0
  251. package/dist/cjs/web-component/removeGlobalStylesFromShadowDom.cjs.map +1 -0
  252. package/dist/cjs/web-component/renderReactInWebComponent.cjs +5 -9
  253. package/dist/cjs/web-component/renderReactInWebComponent.cjs.map +1 -1
  254. package/dist/esm/Autocomplete.js +1 -31
  255. package/dist/esm/Autocomplete.js.map +1 -1
  256. package/dist/esm/Banner.js +1 -1
  257. package/dist/esm/Banner.js.map +1 -1
  258. package/dist/esm/Breadcrumbs.js +1 -1
  259. package/dist/esm/Breadcrumbs.js.map +1 -1
  260. package/dist/esm/Buttons/BaseButton.js.map +1 -1
  261. package/dist/esm/Callout.js +1 -25
  262. package/dist/esm/Callout.js.map +1 -1
  263. package/dist/esm/Card.js +281 -63
  264. package/dist/esm/Card.js.map +1 -1
  265. package/dist/esm/Checkbox.js +13 -11
  266. package/dist/esm/Checkbox.js.map +1 -1
  267. package/dist/esm/DataTable/DataTable.js +1 -1
  268. package/dist/esm/DataTable/DataTable.js.map +1 -1
  269. package/dist/esm/DataTable/DataTableRowActions.js +1 -1
  270. package/dist/esm/DataTable/DataTableRowActions.js.map +1 -1
  271. package/dist/esm/DataTable/DataTableSettings.js +1 -1
  272. package/dist/esm/DataTable/DataTableSettings.js.map +1 -1
  273. package/dist/esm/DataTable/useRowReordering.js +1 -1
  274. package/dist/esm/DataTable/useRowReordering.js.map +1 -1
  275. package/dist/esm/DatePickers/DateField.js +1 -1
  276. package/dist/esm/DatePickers/DateField.js.map +1 -1
  277. package/dist/esm/DatePickers/DateFieldActionBar.js +1 -1
  278. package/dist/esm/DatePickers/DateFieldActionBar.js.map +1 -1
  279. package/dist/esm/DatePickers/DatePicker.js +1 -1
  280. package/dist/esm/DatePickers/DatePicker.js.map +1 -1
  281. package/dist/esm/DatePickers/useDateFieldsTranslations.js +1 -1
  282. package/dist/esm/DatePickers/useDateFieldsTranslations.js.map +1 -1
  283. package/dist/esm/DatePickers/useOdysseyDateFields.js +1 -1
  284. package/dist/esm/DatePickers/useOdysseyDateFields.js.map +1 -1
  285. package/dist/esm/Dialog.js +33 -30
  286. package/dist/esm/Dialog.js.map +1 -1
  287. package/dist/esm/Drawer.js +7 -3
  288. package/dist/esm/Drawer.js.map +1 -1
  289. package/dist/esm/Field.js +1 -1
  290. package/dist/esm/Field.js.map +1 -1
  291. package/dist/esm/FieldError.js +1 -1
  292. package/dist/esm/FieldError.js.map +1 -1
  293. package/dist/esm/FieldLabel.js +1 -1
  294. package/dist/esm/FieldLabel.js.map +1 -1
  295. package/dist/esm/FileUploader/FileUploadPreview.js +1 -1
  296. package/dist/esm/FileUploader/FileUploadPreview.js.map +1 -1
  297. package/dist/esm/FileUploader/FileUploader.js +1 -1
  298. package/dist/esm/FileUploader/FileUploader.js.map +1 -1
  299. package/dist/esm/FullScreenOverlay.js +35 -0
  300. package/dist/esm/FullScreenOverlay.js.map +1 -0
  301. package/dist/esm/FullScreenOverlayContext.js +66 -0
  302. package/dist/esm/FullScreenOverlayContext.js.map +1 -0
  303. package/dist/esm/OdysseyCacheProvider.js +12 -17
  304. package/dist/esm/OdysseyCacheProvider.js.map +1 -1
  305. package/dist/esm/OdysseyProvider.js +18 -10
  306. package/dist/esm/OdysseyProvider.js.map +1 -1
  307. package/dist/esm/OdysseyThemeProvider.js +27 -16
  308. package/dist/esm/OdysseyThemeProvider.js.map +1 -1
  309. package/dist/esm/OdysseyThemeProviderPropsContext.js +38 -0
  310. package/dist/esm/OdysseyThemeProviderPropsContext.js.map +1 -0
  311. package/dist/esm/Pagination/Pagination.js +1 -2
  312. package/dist/esm/Pagination/Pagination.js.map +1 -1
  313. package/dist/esm/Pagination/usePagination.js +1 -1
  314. package/dist/esm/Pagination/usePagination.js.map +1 -1
  315. package/dist/esm/PasswordField.js +1 -1
  316. package/dist/esm/PasswordField.js.map +1 -1
  317. package/dist/esm/Radio.js +22 -20
  318. package/dist/esm/Radio.js.map +1 -1
  319. package/dist/esm/SearchField.js +1 -1
  320. package/dist/esm/SearchField.js.map +1 -1
  321. package/dist/esm/Select.js +0 -36
  322. package/dist/esm/Select.js.map +1 -1
  323. package/dist/esm/Surface.js +3 -3
  324. package/dist/esm/Surface.js.map +1 -1
  325. package/dist/esm/Switch.js +1 -1
  326. package/dist/esm/Switch.js.map +1 -1
  327. package/dist/esm/Tabs.js +0 -20
  328. package/dist/esm/Tabs.js.map +1 -1
  329. package/dist/esm/Tag.js +1 -1
  330. package/dist/esm/Tag.js.map +1 -1
  331. package/dist/esm/TextField.js +0 -25
  332. package/dist/esm/TextField.js.map +1 -1
  333. package/dist/esm/Toast.js +1 -1
  334. package/dist/esm/Toast.js.map +1 -1
  335. package/dist/esm/__internal.js +24 -0
  336. package/dist/esm/__internal.js.map +1 -0
  337. package/dist/esm/i18n.generated/i18n.js +25 -0
  338. package/dist/esm/i18n.generated/i18n.js.map +1 -0
  339. package/dist/esm/i18n.generated/i18n.resources.js +75 -0
  340. package/dist/esm/i18n.generated/i18n.resources.js.map +1 -0
  341. package/dist/{types/shadow-dom/index.d.ts → esm/i18n.generated/i18n.types.js} +3 -3
  342. package/dist/esm/i18n.generated/i18n.types.js.map +1 -0
  343. package/dist/esm/index.js +4 -3
  344. package/dist/esm/index.js.map +1 -1
  345. package/dist/esm/labs/DataFilters.js +1 -1
  346. package/dist/esm/labs/DataFilters.js.map +1 -1
  347. package/dist/esm/labs/DataTable.js +1 -1
  348. package/dist/esm/labs/DataTable.js.map +1 -1
  349. package/dist/esm/labs/DataView/BulkActionsMenu.js +1 -1
  350. package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
  351. package/dist/esm/labs/DataView/CardLayoutContent.js +61 -45
  352. package/dist/esm/labs/DataView/CardLayoutContent.js.map +1 -1
  353. package/dist/esm/labs/DataView/DataCard.js +51 -180
  354. package/dist/esm/labs/DataView/DataCard.js.map +1 -1
  355. package/dist/esm/labs/DataView/DataView.js +1 -1
  356. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  357. package/dist/esm/labs/DataView/LayoutSwitcher.js +1 -1
  358. package/dist/esm/labs/DataView/LayoutSwitcher.js.map +1 -1
  359. package/dist/esm/labs/DataView/RowActions.js +1 -1
  360. package/dist/esm/labs/DataView/RowActions.js.map +1 -1
  361. package/dist/esm/labs/DataView/TableLayoutContent.js +1 -1
  362. package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
  363. package/dist/esm/labs/DataView/TableSettings.js +1 -1
  364. package/dist/esm/labs/DataView/TableSettings.js.map +1 -1
  365. package/dist/esm/labs/DataView/componentTypes.js.map +1 -1
  366. package/dist/esm/labs/DataView/fetchData.js +2 -2
  367. package/dist/esm/labs/DataView/fetchData.js.map +1 -1
  368. package/dist/esm/labs/DatePickers/DateTimeField.js +1 -1
  369. package/dist/esm/labs/DatePickers/DateTimeField.js.map +1 -1
  370. package/dist/esm/labs/DatePickers/DateTimePicker.js +1 -1
  371. package/dist/esm/labs/DatePickers/DateTimePicker.js.map +1 -1
  372. package/dist/esm/labs/DatePickers/dateTimePickerTheme.js +3 -3
  373. package/dist/esm/labs/DatePickers/dateTimePickerTheme.js.map +1 -1
  374. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js +1 -1
  375. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js.map +1 -1
  376. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +4 -0
  377. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
  378. package/dist/esm/labs/OdysseyPickers/index.js.map +1 -1
  379. package/dist/esm/labs/PageTemplate/Layout.js +2 -2
  380. package/dist/esm/labs/PageTemplate/Layout.js.map +1 -1
  381. package/dist/esm/labs/PageTemplate/PageTemplate.js.map +1 -1
  382. package/dist/esm/labs/PaginatedTable.js +1 -1
  383. package/dist/esm/labs/PaginatedTable.js.map +1 -1
  384. package/dist/esm/labs/StaticTable.js +1 -1
  385. package/dist/esm/labs/StaticTable.js.map +1 -1
  386. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  387. package/dist/esm/properties/ts/odyssey-react-mui_cs.js +7 -1
  388. package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  389. package/dist/esm/properties/ts/odyssey-react-mui_da.js +7 -1
  390. package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
  391. package/dist/esm/properties/ts/odyssey-react-mui_de.js +8 -2
  392. package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
  393. package/dist/esm/properties/ts/odyssey-react-mui_el.js +7 -1
  394. package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
  395. package/dist/esm/properties/ts/odyssey-react-mui_es.js +7 -1
  396. package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
  397. package/dist/esm/properties/ts/odyssey-react-mui_eu.js +7 -1
  398. package/dist/esm/properties/ts/odyssey-react-mui_eu.js.map +1 -1
  399. package/dist/esm/properties/ts/odyssey-react-mui_fi.js +7 -1
  400. package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  401. package/dist/esm/properties/ts/odyssey-react-mui_fr.js +7 -1
  402. package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  403. package/dist/esm/properties/ts/odyssey-react-mui_ht.js +7 -1
  404. package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  405. package/dist/esm/properties/ts/odyssey-react-mui_hu.js +7 -1
  406. package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  407. package/dist/esm/properties/ts/odyssey-react-mui_id.js +7 -1
  408. package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
  409. package/dist/esm/properties/ts/odyssey-react-mui_it.js +7 -1
  410. package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
  411. package/dist/esm/properties/ts/odyssey-react-mui_ja.js +7 -1
  412. package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  413. package/dist/esm/properties/ts/odyssey-react-mui_ko.js +7 -1
  414. package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  415. package/dist/esm/properties/ts/odyssey-react-mui_ms.js +7 -1
  416. package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  417. package/dist/esm/properties/ts/odyssey-react-mui_nb.js +7 -1
  418. package/dist/esm/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  419. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js +7 -1
  420. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  421. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  422. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  423. package/dist/esm/properties/ts/odyssey-react-mui_pl.js +7 -1
  424. package/dist/esm/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  425. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js +7 -1
  426. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  427. package/dist/esm/properties/ts/odyssey-react-mui_ro.js +7 -1
  428. package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  429. package/dist/esm/properties/ts/odyssey-react-mui_ru.js +7 -1
  430. package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  431. package/dist/esm/properties/ts/odyssey-react-mui_sv.js +7 -1
  432. package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  433. package/dist/esm/properties/ts/odyssey-react-mui_th.js +7 -1
  434. package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
  435. package/dist/esm/properties/ts/odyssey-react-mui_tr.js +7 -1
  436. package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  437. package/dist/esm/properties/ts/odyssey-react-mui_uk.js +7 -1
  438. package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  439. package/dist/esm/properties/ts/odyssey-react-mui_vi.js +7 -1
  440. package/dist/esm/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  441. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js +7 -1
  442. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  443. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js +7 -1
  444. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  445. package/dist/esm/test-selectors/AutocompleteTestSelector.js +43 -0
  446. package/dist/esm/test-selectors/AutocompleteTestSelector.js.map +1 -0
  447. package/dist/esm/test-selectors/CalloutTestSelector.js +37 -0
  448. package/dist/esm/test-selectors/CalloutTestSelector.js.map +1 -0
  449. package/dist/esm/test-selectors/SelectTestSelector.js +49 -0
  450. package/dist/esm/test-selectors/SelectTestSelector.js.map +1 -0
  451. package/dist/esm/test-selectors/TabsTestSelector.js +33 -0
  452. package/dist/esm/test-selectors/TabsTestSelector.js.map +1 -0
  453. package/dist/esm/test-selectors/TextFieldTestSelector.js +38 -0
  454. package/dist/esm/test-selectors/TextFieldTestSelector.js.map +1 -0
  455. package/dist/esm/test-selectors/index.js +1 -0
  456. package/dist/esm/test-selectors/index.js.map +1 -1
  457. package/dist/esm/test-selectors/queryOdysseySelector.js +5 -5
  458. package/dist/esm/test-selectors/queryOdysseySelector.js.map +1 -1
  459. package/dist/esm/theme/components.js +5 -9
  460. package/dist/esm/theme/components.js.map +1 -1
  461. package/dist/esm/tools/addSpecificity.js.map +1 -0
  462. package/dist/esm/tools/bufferLatest.js.map +1 -0
  463. package/dist/esm/tools/createMessageBus.js.map +1 -0
  464. package/dist/esm/tools/createStore.js.map +1 -0
  465. package/dist/esm/ui-shell/NarrowUiShellContent.js +3 -13
  466. package/dist/esm/ui-shell/NarrowUiShellContent.js.map +1 -1
  467. package/dist/esm/ui-shell/SideNav/NavAccordion.js +20 -15
  468. package/dist/esm/ui-shell/SideNav/NavAccordion.js.map +1 -1
  469. package/dist/esm/ui-shell/SideNav/SideNav.js +136 -135
  470. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  471. package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js +1 -1
  472. package/dist/esm/ui-shell/SideNav/SideNavFooterContent.js.map +1 -1
  473. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +7 -4
  474. package/dist/esm/ui-shell/SideNav/SideNavItemContent.js.map +1 -1
  475. package/dist/esm/ui-shell/SideNav/SideNavItemContentContext.js.map +1 -1
  476. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +3 -4
  477. package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
  478. package/dist/esm/ui-shell/SideNav/SideNavSortableList.js +42 -0
  479. package/dist/esm/ui-shell/SideNav/SideNavSortableList.js.map +1 -0
  480. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +1 -1
  481. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  482. package/dist/esm/ui-shell/SideNav/SortableList/SortableItem.js +1 -1
  483. package/dist/esm/ui-shell/SideNav/SortableList/SortableItem.js.map +1 -1
  484. package/dist/esm/ui-shell/SideNav/SortableList/SortableList.js +1 -1
  485. package/dist/esm/ui-shell/SideNav/SortableList/SortableList.js.map +1 -1
  486. package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
  487. package/dist/esm/ui-shell/UiShell.js +4 -4
  488. package/dist/esm/ui-shell/UiShell.js.map +1 -1
  489. package/dist/esm/ui-shell/UiShellProvider.js +1 -1
  490. package/dist/esm/ui-shell/UiShellProvider.js.map +1 -1
  491. package/dist/esm/ui-shell/WideUiShellContent.js +2 -1
  492. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  493. package/dist/esm/ui-shell/renderUiShell.js +2 -2
  494. package/dist/esm/ui-shell/renderUiShell.js.map +1 -1
  495. package/dist/esm/ui-shell/uiShellContentTypes.js +1 -0
  496. package/dist/esm/ui-shell/uiShellContentTypes.js.map +1 -1
  497. package/dist/esm/{shadow-dom/shadow-dom.js → web-component/createShadowDomElements.js} +8 -3
  498. package/dist/esm/web-component/createShadowDomElements.js.map +1 -0
  499. package/dist/esm/web-component/index.js +3 -0
  500. package/dist/esm/web-component/index.js.map +1 -1
  501. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  502. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  503. package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js +28 -0
  504. package/dist/esm/web-component/removeGlobalStylesFromShadowDom.js.map +1 -0
  505. package/dist/esm/web-component/renderReactInWebComponent.js +5 -9
  506. package/dist/esm/web-component/renderReactInWebComponent.js.map +1 -1
  507. package/dist/tsconfig.production.tsbuildinfo +1 -1
  508. package/dist/types/Autocomplete.d.ts +0 -30
  509. package/dist/types/Autocomplete.d.ts.map +1 -1
  510. package/dist/types/Banner.d.ts.map +1 -1
  511. package/dist/types/Breadcrumbs.d.ts.map +1 -1
  512. package/dist/types/Buttons/BaseButton.d.ts +2 -2
  513. package/dist/types/Buttons/BaseButton.d.ts.map +1 -1
  514. package/dist/types/Callout.d.ts +0 -24
  515. package/dist/types/Callout.d.ts.map +1 -1
  516. package/dist/types/Card.d.ts +17 -6
  517. package/dist/types/Card.d.ts.map +1 -1
  518. package/dist/types/Checkbox.d.ts.map +1 -1
  519. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  520. package/dist/types/DataTable/DataTableRowActions.d.ts.map +1 -1
  521. package/dist/types/DatePickers/DatePicker.d.ts.map +1 -1
  522. package/dist/types/DatePickers/useDateFieldsTranslations.d.ts.map +1 -1
  523. package/dist/types/DatePickers/useOdysseyDateFields.d.ts.map +1 -1
  524. package/dist/types/Dialog.d.ts.map +1 -1
  525. package/dist/types/Drawer.d.ts.map +1 -1
  526. package/dist/types/Field.d.ts.map +1 -1
  527. package/dist/types/FieldError.d.ts.map +1 -1
  528. package/dist/types/FieldLabel.d.ts.map +1 -1
  529. package/dist/types/FileUploader/FileUploader.d.ts.map +1 -1
  530. package/dist/types/FullScreenOverlay.d.ts +19 -0
  531. package/dist/types/FullScreenOverlay.d.ts.map +1 -0
  532. package/dist/types/FullScreenOverlayContext.d.ts +31 -0
  533. package/dist/types/FullScreenOverlayContext.d.ts.map +1 -0
  534. package/dist/types/NativeSelect.d.ts +1 -1
  535. package/dist/types/OdysseyCacheProvider.d.ts +10 -3
  536. package/dist/types/OdysseyCacheProvider.d.ts.map +1 -1
  537. package/dist/types/OdysseyProvider.d.ts +8 -8
  538. package/dist/types/OdysseyProvider.d.ts.map +1 -1
  539. package/dist/types/OdysseyThemeProvider.d.ts +7 -16
  540. package/dist/types/OdysseyThemeProvider.d.ts.map +1 -1
  541. package/dist/types/OdysseyThemeProviderPropsContext.d.ts +27 -0
  542. package/dist/types/OdysseyThemeProviderPropsContext.d.ts.map +1 -0
  543. package/dist/types/Pagination/Pagination.d.ts +0 -1
  544. package/dist/types/Pagination/Pagination.d.ts.map +1 -1
  545. package/dist/types/Pagination/usePagination.d.ts.map +1 -1
  546. package/dist/types/PasswordField.d.ts.map +1 -1
  547. package/dist/types/Radio.d.ts.map +1 -1
  548. package/dist/types/SearchField.d.ts.map +1 -1
  549. package/dist/types/Select.d.ts +0 -36
  550. package/dist/types/Select.d.ts.map +1 -1
  551. package/dist/types/Surface.d.ts.map +1 -1
  552. package/dist/types/Switch.d.ts.map +1 -1
  553. package/dist/types/Tabs.d.ts +0 -20
  554. package/dist/types/Tabs.d.ts.map +1 -1
  555. package/dist/types/Tag.d.ts.map +1 -1
  556. package/dist/types/TextField.d.ts +0 -25
  557. package/dist/types/TextField.d.ts.map +1 -1
  558. package/dist/types/Toast.d.ts.map +1 -1
  559. package/dist/types/__internal.d.ts +30 -0
  560. package/dist/types/__internal.d.ts.map +1 -0
  561. package/dist/types/i18n.generated/i18n.d.ts +285 -0
  562. package/dist/types/i18n.generated/i18n.d.ts.map +1 -0
  563. package/dist/types/i18n.generated/i18n.resources.d.ts +4199 -0
  564. package/dist/types/{i18n.d.ts.map → i18n.generated/i18n.resources.d.ts.map} +1 -1
  565. package/dist/types/i18n.generated/i18n.types.d.ts +30 -0
  566. package/dist/types/i18n.generated/i18n.types.d.ts.map +1 -0
  567. package/dist/types/index.d.ts +4 -3
  568. package/dist/types/index.d.ts.map +1 -1
  569. package/dist/types/labs/DataTable.d.ts.map +1 -1
  570. package/dist/types/labs/DataView/CardLayoutContent.d.ts.map +1 -1
  571. package/dist/types/labs/DataView/DataCard.d.ts +14 -30
  572. package/dist/types/labs/DataView/DataCard.d.ts.map +1 -1
  573. package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
  574. package/dist/types/labs/DataView/componentTypes.d.ts +1 -1
  575. package/dist/types/labs/DataView/componentTypes.d.ts.map +1 -1
  576. package/dist/types/labs/DataView/fetchData.d.ts.map +1 -1
  577. package/dist/types/labs/DatePickers/DateTimePicker.d.ts.map +1 -1
  578. package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -1
  579. package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
  580. package/dist/types/labs/OdysseyPickers/index.d.ts +1 -2
  581. package/dist/types/labs/OdysseyPickers/index.d.ts.map +1 -1
  582. package/dist/types/labs/PageTemplate/PageTemplate.d.ts.map +1 -1
  583. package/dist/types/labs/PaginatedTable.d.ts.map +1 -1
  584. package/dist/types/labs/StaticTable.d.ts.map +1 -1
  585. package/dist/types/properties/ts/odyssey-react-mui.d.ts +133 -133
  586. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  587. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +133 -127
  588. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  589. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts +133 -127
  590. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  591. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts +133 -127
  592. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  593. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts +133 -127
  594. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  595. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts +133 -127
  596. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  597. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts +133 -127
  598. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts.map +1 -1
  599. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts +133 -127
  600. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  601. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts +133 -127
  602. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  603. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts +133 -127
  604. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  605. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts +133 -127
  606. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  607. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts +133 -127
  608. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  609. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts +133 -127
  610. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  611. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts +133 -127
  612. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  613. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts +133 -127
  614. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  615. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts +133 -127
  616. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  617. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts +133 -127
  618. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  619. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts +133 -127
  620. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  621. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +133 -133
  622. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  623. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +133 -133
  624. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  625. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts +133 -127
  626. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  627. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts +133 -127
  628. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  629. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts +133 -127
  630. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  631. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts +133 -127
  632. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  633. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts +133 -127
  634. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  635. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts +133 -127
  636. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  637. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts +133 -127
  638. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  639. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts +133 -127
  640. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  641. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts +133 -127
  642. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  643. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts +133 -127
  644. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  645. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts +133 -127
  646. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  647. package/dist/types/test-selectors/AutocompleteTestSelector.d.ts +42 -0
  648. package/dist/types/test-selectors/AutocompleteTestSelector.d.ts.map +1 -0
  649. package/dist/types/test-selectors/CalloutTestSelector.d.ts +36 -0
  650. package/dist/types/test-selectors/CalloutTestSelector.d.ts.map +1 -0
  651. package/dist/types/test-selectors/SelectTestSelector.d.ts +48 -0
  652. package/dist/types/test-selectors/SelectTestSelector.d.ts.map +1 -0
  653. package/dist/types/test-selectors/TabsTestSelector.d.ts +32 -0
  654. package/dist/types/test-selectors/TabsTestSelector.d.ts.map +1 -0
  655. package/dist/types/test-selectors/TextFieldTestSelector.d.ts +37 -0
  656. package/dist/types/test-selectors/TextFieldTestSelector.d.ts.map +1 -0
  657. package/dist/types/test-selectors/index.d.ts +1 -0
  658. package/dist/types/test-selectors/index.d.ts.map +1 -1
  659. package/dist/types/test-selectors/queryOdysseySelector.d.ts.map +1 -1
  660. package/dist/types/theme/components.d.ts.map +1 -1
  661. package/dist/types/tools/addSpecificity.d.ts.map +1 -0
  662. package/dist/types/tools/bufferLatest.d.ts.map +1 -0
  663. package/dist/types/tools/createMessageBus.d.ts.map +1 -0
  664. package/dist/types/tools/createStore.d.ts.map +1 -0
  665. package/dist/types/ui-shell/NarrowUiShellContent.d.ts.map +1 -1
  666. package/dist/types/ui-shell/SideNav/NavAccordion.d.ts.map +1 -1
  667. package/dist/types/ui-shell/SideNav/SideNav.d.ts +1 -1
  668. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  669. package/dist/types/ui-shell/SideNav/SideNavFooterContent.d.ts.map +1 -1
  670. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts +2 -1
  671. package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts.map +1 -1
  672. package/dist/types/ui-shell/SideNav/SideNavItemContentContext.d.ts +1 -0
  673. package/dist/types/ui-shell/SideNav/SideNavItemContentContext.d.ts.map +1 -1
  674. package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
  675. package/dist/types/ui-shell/SideNav/SideNavSortableList.d.ts +41 -0
  676. package/dist/types/ui-shell/SideNav/SideNavSortableList.d.ts.map +1 -0
  677. package/dist/types/ui-shell/SideNav/types.d.ts +13 -2
  678. package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
  679. package/dist/types/ui-shell/UiShell.d.ts +1 -1
  680. package/dist/types/ui-shell/UiShell.d.ts.map +1 -1
  681. package/dist/types/ui-shell/UiShellProvider.d.ts +1 -1
  682. package/dist/types/ui-shell/UiShellProvider.d.ts.map +1 -1
  683. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  684. package/dist/types/ui-shell/renderUiShell.d.ts +2 -2
  685. package/dist/types/ui-shell/renderUiShell.d.ts.map +1 -1
  686. package/dist/types/ui-shell/uiShellContentTypes.d.ts +4 -1
  687. package/dist/types/ui-shell/uiShellContentTypes.d.ts.map +1 -1
  688. package/dist/types/{shadow-dom/shadow-dom.d.ts → web-component/createShadowDomElements.d.ts} +6 -4
  689. package/dist/types/web-component/createShadowDomElements.d.ts.map +1 -0
  690. package/dist/types/web-component/index.d.ts +3 -0
  691. package/dist/types/web-component/index.d.ts.map +1 -1
  692. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  693. package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts +18 -0
  694. package/dist/types/web-component/removeGlobalStylesFromShadowDom.d.ts.map +1 -0
  695. package/dist/types/web-component/renderReactInWebComponent.d.ts +1 -1
  696. package/dist/types/web-component/renderReactInWebComponent.d.ts.map +1 -1
  697. package/package.json +26 -17
  698. package/dist/cjs/@types/i18next.d.cjs +0 -4
  699. package/dist/cjs/@types/i18next.d.cjs.map +0 -1
  700. package/dist/cjs/@types/properties.d.cjs +0 -2
  701. package/dist/cjs/@types/properties.d.cjs.map +0 -1
  702. package/dist/cjs/OdysseyTranslationProvider.cjs +0 -55
  703. package/dist/cjs/OdysseyTranslationProvider.cjs.map +0 -1
  704. package/dist/cjs/OdysseyTranslationProvider.types.cjs.map +0 -1
  705. package/dist/cjs/addSpecificity.cjs.map +0 -1
  706. package/dist/cjs/i18n.cjs +0 -113
  707. package/dist/cjs/i18n.cjs.map +0 -1
  708. package/dist/cjs/shadow-dom/index.cjs +0 -17
  709. package/dist/cjs/shadow-dom/index.cjs.map +0 -1
  710. package/dist/cjs/shadow-dom/shadow-dom.cjs.map +0 -1
  711. package/dist/cjs/ui-shell/bufferLatest.cjs.map +0 -1
  712. package/dist/cjs/ui-shell/createMessageBus.cjs.map +0 -1
  713. package/dist/cjs/ui-shell/createStore.cjs.map +0 -1
  714. package/dist/esm/@types/i18next.d.js +0 -14
  715. package/dist/esm/@types/i18next.d.js.map +0 -1
  716. package/dist/esm/@types/properties.d.js +0 -2
  717. package/dist/esm/@types/properties.d.js.map +0 -1
  718. package/dist/esm/OdysseyTranslationProvider.js +0 -48
  719. package/dist/esm/OdysseyTranslationProvider.js.map +0 -1
  720. package/dist/esm/OdysseyTranslationProvider.types.js +0 -14
  721. package/dist/esm/OdysseyTranslationProvider.types.js.map +0 -1
  722. package/dist/esm/addSpecificity.js.map +0 -1
  723. package/dist/esm/i18n.js +0 -100
  724. package/dist/esm/i18n.js.map +0 -1
  725. package/dist/esm/shadow-dom/index.js.map +0 -1
  726. package/dist/esm/shadow-dom/shadow-dom.js.map +0 -1
  727. package/dist/esm/ui-shell/bufferLatest.js.map +0 -1
  728. package/dist/esm/ui-shell/createMessageBus.js.map +0 -1
  729. package/dist/esm/ui-shell/createStore.js.map +0 -1
  730. package/dist/types/OdysseyTranslationProvider.d.ts +0 -24
  731. package/dist/types/OdysseyTranslationProvider.d.ts.map +0 -1
  732. package/dist/types/OdysseyTranslationProvider.types.d.ts +0 -14
  733. package/dist/types/OdysseyTranslationProvider.types.d.ts.map +0 -1
  734. package/dist/types/addSpecificity.d.ts.map +0 -1
  735. package/dist/types/i18n.d.ts +0 -3910
  736. package/dist/types/shadow-dom/index.d.ts.map +0 -1
  737. package/dist/types/shadow-dom/shadow-dom.d.ts.map +0 -1
  738. package/dist/types/ui-shell/bufferLatest.d.ts.map +0 -1
  739. package/dist/types/ui-shell/createMessageBus.d.ts.map +0 -1
  740. package/dist/types/ui-shell/createStore.d.ts.map +0 -1
  741. /package/dist/cjs/{addSpecificity.cjs → tools/addSpecificity.cjs} +0 -0
  742. /package/dist/cjs/{ui-shell → tools}/bufferLatest.cjs +0 -0
  743. /package/dist/cjs/{ui-shell → tools}/createMessageBus.cjs +0 -0
  744. /package/dist/cjs/{ui-shell → tools}/createStore.cjs +0 -0
  745. /package/dist/esm/{addSpecificity.js → tools/addSpecificity.js} +0 -0
  746. /package/dist/esm/{ui-shell → tools}/bufferLatest.js +0 -0
  747. /package/dist/esm/{ui-shell → tools}/createMessageBus.js +0 -0
  748. /package/dist/esm/{ui-shell → tools}/createStore.js +0 -0
  749. /package/dist/types/{addSpecificity.d.ts → tools/addSpecificity.d.ts} +0 -0
  750. /package/dist/types/{ui-shell → tools}/bufferLatest.d.ts +0 -0
  751. /package/dist/types/{ui-shell → tools}/createMessageBus.d.ts +0 -0
  752. /package/dist/types/{ui-shell → tools}/createStore.d.ts +0 -0
package/dist/esm/Radio.js CHANGED
@@ -76,19 +76,33 @@ const Radio = ({
76
76
  const onBlur = useCallback(event => {
77
77
  onBlurProp?.(event);
78
78
  }, [onBlurProp]);
79
+ const radioStyles = useMemo(() => ({
80
+ ...(isReadOnly && {
81
+ cursor: "default",
82
+ "& .MuiTypography-root": {
83
+ cursor: "default"
84
+ }
85
+ }),
86
+ ...(hint && {
87
+ ":not(:last-child)": {
88
+ marginBlockEnd: "0"
89
+ }
90
+ })
91
+ }), [hint, isReadOnly]);
92
+ const inputProps = useMemo(() => ({
93
+ "aria-describedby": hintId,
94
+ "aria-disabled": isDisabled || isReadOnly,
95
+ "data-se": testId,
96
+ readOnly: isReadOnly,
97
+ tabIndex: isReadOnly ? 0 : undefined
98
+ }), [hintId, isDisabled, isReadOnly, testId]);
79
99
  return _jsxs(_Fragment, {
80
100
  children: [_jsx(_FormControlLabel, {
81
101
  checked: isChecked,
82
102
  className: isInvalid ? "Mui-error" : "",
83
103
  control: _jsx(_Radio, {
84
104
  disabled: isDisabled,
85
- inputProps: {
86
- "aria-describedby": hintId,
87
- "aria-disabled": isDisabled || isReadOnly,
88
- "data-se": testId,
89
- readOnly: isReadOnly,
90
- tabIndex: isReadOnly ? 0 : undefined
91
- },
105
+ inputProps: inputProps,
92
106
  inputRef: localInputRef,
93
107
  onChange: onChange,
94
108
  onClick: onClick || handleClick
@@ -97,19 +111,7 @@ const Radio = ({
97
111
  label: label,
98
112
  name: name,
99
113
  onBlur: onBlur,
100
- sx: {
101
- ...(isReadOnly && {
102
- cursor: "default",
103
- "& .MuiTypography-root": {
104
- cursor: "default"
105
- }
106
- }),
107
- ...(hint && {
108
- ":not(:last-child)": {
109
- marginBlockEnd: 0
110
- }
111
- })
112
- },
114
+ sx: radioStyles,
113
115
  translate: translate,
114
116
  value: value
115
117
  }), hint && _jsx(HintContainerWithInlineStartSpacing, {
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","names":["styled","memo","useCallback","useImperativeHandle","useMemo","useRef","useOdysseyDesignTokens","Typography","useUniqueId","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","HintContainerWithInlineStartSpacing","div","odysseyDesignTokens","paddingInlineStart","TypographyLineHeightUi","Spacing2","marginBlockEnd","color","TypographyColorSubordinate","Radio","hint","id","idOverride","inputRef","isChecked","isDisabled","isInvalid","label","labelProp","name","testId","translate","value","isReadOnly","onChange","onChangeProp","onBlur","onBlurProp","onClick","localInputRef","hintId","undefined","focus","current","component","children","event","checked","preventDefault","handleClick","stopPropagation","_FormControlLabel","className","control","_Radio","disabled","inputProps","readOnly","tabIndex","sx","cursor","_FormHelperText","MemoizedRadio","displayName"],"sources":["../../src/Radio.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 {\n FormControlLabel,\n FormHelperText,\n FormControlLabelProps as MuiFormControlLabelProps,\n Radio as MuiRadio,\n RadioProps as MuiRadioProps,\n} from \"@mui/material\";\nimport { memo, useCallback, useImperativeHandle, useMemo, useRef } from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { FieldComponentProps } from \"./FieldComponentProps.js\";\nimport { FocusHandle } from \"./inputUtils.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { Typography } from \"./Typography.js\";\nimport { useUniqueId } from \"./useUniqueId.js\";\n\nconst HintContainerWithInlineStartSpacing = styled.div<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n paddingInlineStart: `calc(${odysseyDesignTokens.TypographyLineHeightUi}em + ${odysseyDesignTokens.Spacing2})`,\n marginBlockEnd: odysseyDesignTokens.Spacing2,\n\n // MUI applies the '.Mui-error' class to this hint text when the checkbox is invalid which turns the copy red\n // We want to keep the hint text gray in the error state\n \".Mui-error\": {\n color: odysseyDesignTokens.TypographyColorSubordinate,\n },\n}));\n\nexport type RadioProps = {\n /**\n * The ref forwarded to the Radio\n */\n inputRef?: React.RefObject<FocusHandle>;\n /**\n * Determines whether the Radio button is checked\n */\n isChecked?: boolean;\n /**\n * If `true`, the radio button has an invalid value\n */\n isInvalid?: boolean;\n /**\n * The label text for the Radio\n */\n label: string;\n onBlur?: MuiFormControlLabelProps[\"onBlur\"];\n /**\n * Callback fired when the blur event happens. Provides event value.\n */\n onChange?: MuiRadioProps[\"onChange\"];\n onClick?: React.MouseEventHandler<HTMLSpanElement>;\n /**\n * The value attribute of the Radio\n */\n value: string;\n} & Pick<\n FieldComponentProps,\n \"hint\" | \"id\" | \"isDisabled\" | \"isReadOnly\" | \"name\"\n> &\n Pick<HtmlProps, \"testId\" | \"translate\">;\n\nconst Radio = ({\n hint,\n id: idOverride,\n inputRef,\n isChecked,\n isDisabled,\n isInvalid,\n label: labelProp,\n name,\n testId,\n translate,\n value,\n isReadOnly,\n onChange: onChangeProp,\n onBlur: onBlurProp,\n onClick,\n}: RadioProps) => {\n const localInputRef = useRef<HTMLInputElement>(null);\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const id = useUniqueId(idOverride);\n const hintId = hint ? `${id}-hint` : undefined;\n\n useImperativeHandle(inputRef, () => {\n return {\n focus: () => {\n localInputRef.current?.focus();\n },\n };\n }, []);\n\n const label = useMemo(\n () => <Typography component=\"span\">{labelProp}</Typography>,\n [labelProp],\n );\n\n const onChange = useCallback<NonNullable<MuiRadioProps[\"onChange\"]>>(\n (event, checked) => {\n if (isReadOnly) {\n event.preventDefault();\n } else {\n onChangeProp?.(event, checked);\n }\n },\n [onChangeProp, isReadOnly],\n );\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLSpanElement>>(\n (event) => {\n if (isReadOnly) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n [isReadOnly],\n );\n const onBlur = useCallback<NonNullable<MuiFormControlLabelProps[\"onBlur\"]>>(\n (event) => {\n onBlurProp?.(event);\n },\n [onBlurProp],\n );\n\n return (\n <>\n <FormControlLabel\n checked={isChecked}\n className={isInvalid ? \"Mui-error\" : \"\"}\n control={\n <MuiRadio\n disabled={isDisabled}\n inputProps={{\n \"aria-describedby\": hintId,\n \"aria-disabled\": isDisabled || isReadOnly,\n \"data-se\": testId,\n readOnly: isReadOnly,\n tabIndex: isReadOnly ? 0 : undefined,\n }}\n inputRef={localInputRef}\n onChange={onChange}\n onClick={onClick || handleClick}\n />\n }\n disabled={isDisabled}\n label={label}\n name={name}\n onBlur={onBlur}\n sx={{\n ...(isReadOnly && {\n cursor: \"default\",\n \"& .MuiTypography-root\": {\n cursor: \"default\",\n },\n }),\n\n ...(hint && {\n // needed to override specific :not(:last-child) selector\n \":not(:last-child)\": {\n marginBlockEnd: 0,\n },\n }),\n }}\n translate={translate}\n value={value}\n />\n {hint && (\n <HintContainerWithInlineStartSpacing\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <FormHelperText id={hintId} translate={translate}>\n {hint}\n </FormHelperText>\n </HintContainerWithInlineStartSpacing>\n )}\n </>\n );\n};\n\nconst MemoizedRadio = memo(Radio);\nMemoizedRadio.displayName = \"Radio\";\n\nexport { MemoizedRadio as Radio };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Radio.js","names":["styled","memo","useCallback","useImperativeHandle","useMemo","useRef","useOdysseyDesignTokens","Typography","useUniqueId","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","HintContainerWithInlineStartSpacing","div","odysseyDesignTokens","paddingInlineStart","TypographyLineHeightUi","Spacing2","marginBlockEnd","color","TypographyColorSubordinate","Radio","hint","id","idOverride","inputRef","isChecked","isDisabled","isInvalid","label","labelProp","name","testId","translate","value","isReadOnly","onChange","onChangeProp","onBlur","onBlurProp","onClick","localInputRef","hintId","undefined","focus","current","component","children","event","checked","preventDefault","handleClick","stopPropagation","radioStyles","cursor","inputProps","readOnly","tabIndex","_FormControlLabel","className","control","_Radio","disabled","sx","_FormHelperText","MemoizedRadio","displayName"],"sources":["../../src/Radio.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 {\n FormControlLabel,\n FormHelperText,\n FormControlLabelProps as MuiFormControlLabelProps,\n Radio as MuiRadio,\n RadioProps as MuiRadioProps,\n} from \"@mui/material\";\nimport {\n InputHTMLAttributes,\n memo,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { FieldComponentProps } from \"./FieldComponentProps.js\";\nimport { FocusHandle } from \"./inputUtils.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { Typography } from \"./Typography.js\";\nimport { useUniqueId } from \"./useUniqueId.js\";\n\nconst HintContainerWithInlineStartSpacing = styled.div<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n paddingInlineStart: `calc(${odysseyDesignTokens.TypographyLineHeightUi}em + ${odysseyDesignTokens.Spacing2})`,\n marginBlockEnd: odysseyDesignTokens.Spacing2,\n\n // MUI applies the '.Mui-error' class to this hint text when the checkbox is invalid which turns the copy red\n // We want to keep the hint text gray in the error state\n \".Mui-error\": {\n color: odysseyDesignTokens.TypographyColorSubordinate,\n },\n}));\n\nexport type RadioProps = {\n /**\n * The ref forwarded to the Radio\n */\n inputRef?: React.RefObject<FocusHandle>;\n /**\n * Determines whether the Radio button is checked\n */\n isChecked?: boolean;\n /**\n * If `true`, the radio button has an invalid value\n */\n isInvalid?: boolean;\n /**\n * The label text for the Radio\n */\n label: string;\n onBlur?: MuiFormControlLabelProps[\"onBlur\"];\n /**\n * Callback fired when the blur event happens. Provides event value.\n */\n onChange?: MuiRadioProps[\"onChange\"];\n onClick?: React.MouseEventHandler<HTMLSpanElement>;\n /**\n * The value attribute of the Radio\n */\n value: string;\n} & Pick<\n FieldComponentProps,\n \"hint\" | \"id\" | \"isDisabled\" | \"isReadOnly\" | \"name\"\n> &\n Pick<HtmlProps, \"testId\" | \"translate\">;\n\nconst Radio = ({\n hint,\n id: idOverride,\n inputRef,\n isChecked,\n isDisabled,\n isInvalid,\n label: labelProp,\n name,\n testId,\n translate,\n value,\n isReadOnly,\n onChange: onChangeProp,\n onBlur: onBlurProp,\n onClick,\n}: RadioProps) => {\n const localInputRef = useRef<HTMLInputElement>(null);\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const id = useUniqueId(idOverride);\n const hintId = hint ? `${id}-hint` : undefined;\n\n useImperativeHandle(inputRef, () => {\n return {\n focus: () => {\n localInputRef.current?.focus();\n },\n };\n }, []);\n\n const label = useMemo(\n () => <Typography component=\"span\">{labelProp}</Typography>,\n [labelProp],\n );\n\n const onChange = useCallback<NonNullable<MuiRadioProps[\"onChange\"]>>(\n (event, checked) => {\n if (isReadOnly) {\n event.preventDefault();\n } else {\n onChangeProp?.(event, checked);\n }\n },\n [onChangeProp, isReadOnly],\n );\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLSpanElement>>(\n (event) => {\n if (isReadOnly) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n [isReadOnly],\n );\n\n const onBlur = useCallback<NonNullable<MuiFormControlLabelProps[\"onBlur\"]>>(\n (event) => {\n onBlurProp?.(event);\n },\n [onBlurProp],\n );\n\n const radioStyles = useMemo(\n () => ({\n ...(isReadOnly && {\n cursor: \"default\",\n \"& .MuiTypography-root\": {\n cursor: \"default\",\n } as CSSStyleDeclaration,\n }),\n\n ...(hint && {\n // needed to override specific :not(:last-child) selector\n \":not(:last-child)\": {\n marginBlockEnd: \"0\",\n } as CSSStyleDeclaration,\n }),\n }),\n [hint, isReadOnly],\n );\n\n const inputProps = useMemo<InputHTMLAttributes<HTMLInputElement>>(\n () => ({\n \"aria-describedby\": hintId,\n \"aria-disabled\": isDisabled || isReadOnly,\n \"data-se\": testId,\n readOnly: isReadOnly,\n tabIndex: isReadOnly ? 0 : undefined,\n }),\n [hintId, isDisabled, isReadOnly, testId],\n );\n\n return (\n <>\n <FormControlLabel\n checked={isChecked}\n className={isInvalid ? \"Mui-error\" : \"\"}\n control={\n <MuiRadio\n disabled={isDisabled}\n inputProps={inputProps}\n inputRef={localInputRef}\n onChange={onChange}\n onClick={onClick || handleClick}\n />\n }\n disabled={isDisabled}\n label={label}\n name={name}\n onBlur={onBlur}\n sx={radioStyles}\n translate={translate}\n value={value}\n />\n {hint && (\n <HintContainerWithInlineStartSpacing\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <FormHelperText id={hintId} translate={translate}>\n {hint}\n </FormHelperText>\n </HintContainerWithInlineStartSpacing>\n )}\n </>\n );\n};\n\nconst MemoizedRadio = memo(Radio);\nMemoizedRadio.displayName = \"Radio\";\n\nexport { MemoizedRadio as Radio };\n"],"mappings":"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","ignoreList":[]}
@@ -15,8 +15,8 @@ import _IconButton from "@mui/material/IconButton";
15
15
 
16
16
  import styled from "@emotion/styled";
17
17
  import { forwardRef, memo, useCallback, useRef } from "react";
18
- import { useTranslation } from "react-i18next";
19
18
  import { Field } from "./Field.js";
19
+ import { useTranslation } from "./i18n.generated/i18n.js";
20
20
  import { CloseCircleFilledIcon, SearchIcon } from "./icons.generated/index.js";
21
21
  import { getControlState, useInputValues } from "./inputUtils.js";
22
22
  import { OdysseyThemeProvider } from "./OdysseyThemeProvider.js";
@@ -1 +1 @@
1
- {"version":3,"file":"SearchField.js","names":["styled","forwardRef","memo","useCallback","useRef","useTranslation","Field","CloseCircleFilledIcon","SearchIcon","getControlState","useInputValues","OdysseyThemeProvider","jsx","_jsx","searchVariantValues","StyledContainerToEnsureThemeProviderDivIsFullWidth","width","SearchField","ariaDescribedBy","autoCompleteType","defaultValue","hasInitialFocus","id","idOverride","isDisabled","isFullWidth","label","name","nameOverride","onChange","onChangeProp","onFocus","onBlur","onClear","onClearProp","placeholder","tabIndex","testId","translate","value","variant","ref","t","event","controlledStateRef","controlledValue","uncontrolledValue","inputValues","controlState","current","renderFieldComponent","_InputBase","autoComplete","autoFocus","endAdornment","_InputAdornment","position","children","_IconButton","disabled","onClick","size","inputProps","startAdornment","type","fieldType","hasVisibleLabel","isOptional","MemoizedSearchField","displayName"],"sources":["../../src/SearchField.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 { IconButton, InputAdornment, InputBase } from \"@mui/material\";\nimport {\n ChangeEventHandler,\n FocusEventHandler,\n forwardRef,\n HTMLAttributes,\n InputHTMLAttributes,\n memo,\n useCallback,\n useRef,\n} from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Field } from \"./Field.js\";\nimport {\n FieldComponentProps,\n FieldComponentRenderProps,\n} from \"./FieldComponentProps.js\";\nimport { CloseCircleFilledIcon, SearchIcon } from \"./icons.generated/index.js\";\nimport { getControlState, useInputValues } from \"./inputUtils.js\";\nimport { OdysseyThemeProvider } from \"./OdysseyThemeProvider.js\";\n\nexport const searchVariantValues = [\"outline\", \"filled\"] as const;\n\nconst StyledContainerToEnsureThemeProviderDivIsFullWidth = styled(\"div\")({\n width: \"100%\",\n});\n\nexport type SearchFieldProps = {\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoCompleteType?: InputHTMLAttributes<HTMLInputElement>[\"autoComplete\"];\n /**\n * The value of the `input` element to use when uncontrolled.\n */\n defaultValue?: string;\n /**\n * If `true`, the component will receive focus automatically.\n */\n hasInitialFocus?: boolean;\n /**\n * The id of the `input` element.\n */\n id?: string;\n /**\n * If `true`, the component is disabled.\n */\n isDisabled?: boolean;\n /**\n * This label won't show up visually, but it's required for accessibility.\n */\n label: string;\n /**\n * Callback fired when the `input` element loses focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n /**\n * Callback fired when the value is changed.\n */\n onChange?: ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement>;\n /**\n * Callback fired when the clear button is pressed.\n */\n onClear?: () => void;\n /**\n * Callback fired when the `input` element get focus.\n */\n onFocus?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder?: string;\n\n tabIndex?: HTMLAttributes<HTMLElement>[\"tabIndex\"];\n /**\n * The value of the `input` element, to use when controlled.\n */\n value?: string;\n /**\n * Whether the SearchField has a gray or white background\n */\n variant?: (typeof searchVariantValues)[number];\n} & Pick<FieldComponentProps, \"id\" | \"isDisabled\" | \"name\" | \"isFullWidth\"> &\n Pick<HtmlProps, \"ariaDescribedBy\" | \"testId\" | \"translate\">;\n\ntype FieldRenderProps = Partial<Pick<HtmlProps, \"ariaDescribedBy\">> &\n Pick<FieldComponentRenderProps, \"id\">;\n\nconst SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (\n {\n ariaDescribedBy,\n autoCompleteType,\n defaultValue,\n hasInitialFocus,\n id: idOverride,\n isDisabled = false,\n isFullWidth = false,\n label,\n name: nameOverride,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n onClear: onClearProp,\n placeholder,\n tabIndex,\n testId,\n translate,\n value,\n variant = \"outline\",\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement> =\n useCallback(\n (event) => {\n onChangeProp?.(event);\n },\n [onChangeProp],\n );\n\n const onClear = useCallback(() => {\n onClearProp?.();\n }, [onClearProp]);\n\n const controlledStateRef = useRef(\n getControlState({\n controlledValue: value,\n uncontrolledValue: defaultValue,\n }),\n );\n const inputValues = useInputValues({\n defaultValue,\n value,\n controlState: controlledStateRef.current,\n });\n\n const renderFieldComponent = useCallback(\n ({ ariaDescribedBy, id }: FieldRenderProps) => (\n <InputBase\n {...inputValues}\n aria-describedby={ariaDescribedBy}\n autoComplete={autoCompleteType}\n /* eslint-disable-next-line jsx-a11y/no-autofocus */\n autoFocus={hasInitialFocus}\n data-ods-type=\"search\"\n data-ods-variant={variant}\n data-se={testId}\n endAdornment={\n (inputValues?.defaultValue || inputValues?.value) && (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={t(\"clear.text\")}\n disabled={isDisabled}\n onClick={onClear}\n size=\"small\"\n >\n <CloseCircleFilledIcon />\n </IconButton>\n </InputAdornment>\n )\n }\n id={id}\n inputProps={{\n tabIndex,\n }}\n name={nameOverride ?? id}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n placeholder={placeholder}\n ref={ref}\n startAdornment={\n <InputAdornment position=\"start\">\n <SearchIcon />\n </InputAdornment>\n }\n translate={translate}\n type=\"search\"\n />\n ),\n [\n autoCompleteType,\n hasInitialFocus,\n inputValues,\n isDisabled,\n nameOverride,\n onBlur,\n onChange,\n onClear,\n onFocus,\n placeholder,\n ref,\n t,\n tabIndex,\n testId,\n translate,\n variant,\n ],\n );\n\n return (\n <StyledContainerToEnsureThemeProviderDivIsFullWidth>\n <OdysseyThemeProvider>\n <Field\n ariaDescribedBy={ariaDescribedBy}\n fieldType=\"single\"\n hasVisibleLabel={false}\n id={idOverride}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isOptional={true}\n label={label}\n renderFieldComponent={renderFieldComponent}\n />\n </OdysseyThemeProvider>\n </StyledContainerToEnsureThemeProviderDivIsFullWidth>\n );\n },\n);\n\nconst MemoizedSearchField = memo(SearchField);\nMemoizedSearchField.displayName = \"SearchField\";\n\nexport { MemoizedSearchField as SearchField };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchField.js","names":["styled","forwardRef","memo","useCallback","useRef","Field","useTranslation","CloseCircleFilledIcon","SearchIcon","getControlState","useInputValues","OdysseyThemeProvider","jsx","_jsx","searchVariantValues","StyledContainerToEnsureThemeProviderDivIsFullWidth","width","SearchField","ariaDescribedBy","autoCompleteType","defaultValue","hasInitialFocus","id","idOverride","isDisabled","isFullWidth","label","name","nameOverride","onChange","onChangeProp","onFocus","onBlur","onClear","onClearProp","placeholder","tabIndex","testId","translate","value","variant","ref","t","event","controlledStateRef","controlledValue","uncontrolledValue","inputValues","controlState","current","renderFieldComponent","_InputBase","autoComplete","autoFocus","endAdornment","_InputAdornment","position","children","_IconButton","disabled","onClick","size","inputProps","startAdornment","type","fieldType","hasVisibleLabel","isOptional","MemoizedSearchField","displayName"],"sources":["../../src/SearchField.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 { IconButton, InputAdornment, InputBase } from \"@mui/material\";\nimport {\n ChangeEventHandler,\n FocusEventHandler,\n forwardRef,\n HTMLAttributes,\n InputHTMLAttributes,\n memo,\n useCallback,\n useRef,\n} from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Field } from \"./Field.js\";\nimport {\n FieldComponentProps,\n FieldComponentRenderProps,\n} from \"./FieldComponentProps.js\";\nimport { useTranslation } from \"./i18n.generated/i18n.js\";\nimport { CloseCircleFilledIcon, SearchIcon } from \"./icons.generated/index.js\";\nimport { getControlState, useInputValues } from \"./inputUtils.js\";\nimport { OdysseyThemeProvider } from \"./OdysseyThemeProvider.js\";\n\nexport const searchVariantValues = [\"outline\", \"filled\"] as const;\n\nconst StyledContainerToEnsureThemeProviderDivIsFullWidth = styled(\"div\")({\n width: \"100%\",\n});\n\nexport type SearchFieldProps = {\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoCompleteType?: InputHTMLAttributes<HTMLInputElement>[\"autoComplete\"];\n /**\n * The value of the `input` element to use when uncontrolled.\n */\n defaultValue?: string;\n /**\n * If `true`, the component will receive focus automatically.\n */\n hasInitialFocus?: boolean;\n /**\n * The id of the `input` element.\n */\n id?: string;\n /**\n * If `true`, the component is disabled.\n */\n isDisabled?: boolean;\n /**\n * This label won't show up visually, but it's required for accessibility.\n */\n label: string;\n /**\n * Callback fired when the `input` element loses focus.\n */\n onBlur?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n /**\n * Callback fired when the value is changed.\n */\n onChange?: ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement>;\n /**\n * Callback fired when the clear button is pressed.\n */\n onClear?: () => void;\n /**\n * Callback fired when the `input` element get focus.\n */\n onFocus?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder?: string;\n\n tabIndex?: HTMLAttributes<HTMLElement>[\"tabIndex\"];\n /**\n * The value of the `input` element, to use when controlled.\n */\n value?: string;\n /**\n * Whether the SearchField has a gray or white background\n */\n variant?: (typeof searchVariantValues)[number];\n} & Pick<FieldComponentProps, \"id\" | \"isDisabled\" | \"name\" | \"isFullWidth\"> &\n Pick<HtmlProps, \"ariaDescribedBy\" | \"testId\" | \"translate\">;\n\ntype FieldRenderProps = Partial<Pick<HtmlProps, \"ariaDescribedBy\">> &\n Pick<FieldComponentRenderProps, \"id\">;\n\nconst SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (\n {\n ariaDescribedBy,\n autoCompleteType,\n defaultValue,\n hasInitialFocus,\n id: idOverride,\n isDisabled = false,\n isFullWidth = false,\n label,\n name: nameOverride,\n onChange: onChangeProp,\n onFocus,\n onBlur,\n onClear: onClearProp,\n placeholder,\n tabIndex,\n testId,\n translate,\n value,\n variant = \"outline\",\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement | HTMLInputElement> =\n useCallback(\n (event) => {\n onChangeProp?.(event);\n },\n [onChangeProp],\n );\n\n const onClear = useCallback(() => {\n onClearProp?.();\n }, [onClearProp]);\n\n const controlledStateRef = useRef(\n getControlState({\n controlledValue: value,\n uncontrolledValue: defaultValue,\n }),\n );\n const inputValues = useInputValues({\n defaultValue,\n value,\n controlState: controlledStateRef.current,\n });\n\n const renderFieldComponent = useCallback(\n ({ ariaDescribedBy, id }: FieldRenderProps) => (\n <InputBase\n {...inputValues}\n aria-describedby={ariaDescribedBy}\n autoComplete={autoCompleteType}\n /* eslint-disable-next-line jsx-a11y/no-autofocus */\n autoFocus={hasInitialFocus}\n data-ods-type=\"search\"\n data-ods-variant={variant}\n data-se={testId}\n endAdornment={\n (inputValues?.defaultValue || inputValues?.value) && (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={t(\"clear.text\")}\n disabled={isDisabled}\n onClick={onClear}\n size=\"small\"\n >\n <CloseCircleFilledIcon />\n </IconButton>\n </InputAdornment>\n )\n }\n id={id}\n inputProps={{\n tabIndex,\n }}\n name={nameOverride ?? id}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n placeholder={placeholder}\n ref={ref}\n startAdornment={\n <InputAdornment position=\"start\">\n <SearchIcon />\n </InputAdornment>\n }\n translate={translate}\n type=\"search\"\n />\n ),\n [\n autoCompleteType,\n hasInitialFocus,\n inputValues,\n isDisabled,\n nameOverride,\n onBlur,\n onChange,\n onClear,\n onFocus,\n placeholder,\n ref,\n t,\n tabIndex,\n testId,\n translate,\n variant,\n ],\n );\n\n return (\n <StyledContainerToEnsureThemeProviderDivIsFullWidth>\n {/* Required for `contrastMode`. */}\n <OdysseyThemeProvider>\n <Field\n ariaDescribedBy={ariaDescribedBy}\n fieldType=\"single\"\n hasVisibleLabel={false}\n id={idOverride}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isOptional={true}\n label={label}\n renderFieldComponent={renderFieldComponent}\n />\n </OdysseyThemeProvider>\n </StyledContainerToEnsureThemeProviderDivIsFullWidth>\n );\n },\n);\n\nconst MemoizedSearchField = memo(SearchField);\nMemoizedSearchField.displayName = \"SearchField\";\n\nexport { MemoizedSearchField as SearchField };\n"],"mappings":"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","ignoreList":[]}
@@ -25,42 +25,6 @@ import { ComponentControlledState, getControlState, useInputValues } from "./inp
25
25
  import { useOdysseyDesignTokens } from "./OdysseyDesignTokensContext.js";
26
26
  import { normalizedKey } from "./useNormalizedKey.js";
27
27
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
28
- export const SelectTestSelector = {
29
- accessibleText: {
30
- errorMessage: "errorMessage",
31
- hint: "description",
32
- label: "label"
33
- },
34
- children: {
35
- list: {
36
- accessibleText: {
37
- label: "label"
38
- },
39
- children: {
40
- listItem: {
41
- accessibleText: {
42
- label: "label"
43
- },
44
- elementSelector: {
45
- method: "ByRole",
46
- options: {
47
- label: "name"
48
- },
49
- role: "option"
50
- }
51
- }
52
- },
53
- isControlledElement: true
54
- }
55
- },
56
- elementSelector: {
57
- method: "ByRole",
58
- options: {
59
- label: "name"
60
- },
61
- role: "combobox"
62
- }
63
- };
64
28
  const SelectContainer = styled.div`
65
29
  position: relative;
66
30
  width: 100%;
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["styled","memo","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Field","CheckIcon","CloseCircleFilledIcon","ComponentControlledState","getControlState","useInputValues","useOdysseyDesignTokens","normalizedKey","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SelectTestSelector","accessibleText","errorMessage","hint","label","children","list","listItem","elementSelector","method","options","role","isControlledElement","SelectContainer","div","ChipsPositioningContainer","shouldForwardProp","prop","odysseyDesignTokens","alignItems","display","insetBlockEnd","insetBlockStart","insetInlineEnd","insetInlineStart","marginInlineStart","BorderWidthMain","opacity","pointerEvents","position","NonInteractiveIcon","fontSize","marginBlockEnd","marginInlineEnd","Spacing1","Spacing2","ChipsInnerContainer","_Box","isInteractive","isReadOnly","flexWrap","gap","marginBlock","minHeight","Spacing6","CONTROLLED","Select","ariaDescribedBy","defaultValue","errorMessageList","hasMultipleChoices","hasMultipleChoicesProp","HintLinkComponent","id","idOverride","inputRef","isDisabled","isFullWidth","isMultiSelect","isOptional","name","nameOverride","onBlur","onChange","onChangeProp","onFocus","testId","translate","value","selectRef","undefined","controlledStateRef","controlledValue","uncontrolledValue","internalSelectedValues","setInternalSelectedValues","current","localInputRef","focus","inputValues","controlState","event","child","preventDefault","target","split","normalizedOptions","normalizedOptionsMap","map","option","text","type","lang","language","Map","removeSelectedValue","selectedValue","Array","isArray","newValue","filter","internalSelectedValue","syntheticEvent","Chips","stopPropagation","hasNonInteractiveIcon","item","length","_Chip","deleteIcon","onMouseDown","sx","get","onDelete","tabIndex","renderedOptions","index","_ListSubheader","isSelected","includes","_MenuItem","selected","_Checkbox","checked","_ListItemSecondaryAction","toString","renderValue","renderFieldComponent","errorMessageElementId","labelElementId","_Select","displayEmpty","inputProps","readOnly","el","labelId","MenuProps","maxHeight","multiple","fieldType","hasVisibleLabel","MemoizedSelect","displayName"],"sources":["../../src/Select.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 {\n ListItemSecondaryAction,\n ListSubheader,\n Box as MuiBox,\n Checkbox as MuiCheckbox,\n Chip as MuiChip,\n MenuItem as MuiMenuItem,\n Select as MuiSelect,\n SelectProps as MuiSelectProps,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Field } from \"./Field.js\";\nimport {\n FieldComponentProps,\n FieldComponentRenderProps,\n} from \"./FieldComponentProps.js\";\nimport { CheckIcon, CloseCircleFilledIcon } from \"./icons.generated/index.js\";\nimport {\n ComponentControlledState,\n FocusHandle,\n getControlState,\n useInputValues,\n} from \"./inputUtils.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { TestSelector } from \"./test-selectors/index.js\";\nimport { normalizedKey } from \"./useNormalizedKey.js\";\n\nexport const SelectTestSelector = {\n accessibleText: {\n errorMessage: \"errorMessage\",\n hint: \"description\",\n label: \"label\",\n },\n children: {\n list: {\n accessibleText: {\n label: \"label\",\n },\n children: {\n listItem: {\n accessibleText: {\n label: \"label\",\n },\n elementSelector: {\n method: \"ByRole\",\n options: {\n label: \"name\",\n },\n role: \"option\",\n },\n },\n },\n isControlledElement: true,\n },\n },\n elementSelector: {\n method: \"ByRole\",\n options: {\n label: \"name\",\n },\n role: \"combobox\",\n },\n} as const satisfies TestSelector;\n\nexport type SelectOption = {\n language?: string;\n text: string;\n type?: \"heading\" | \"option\";\n value?: string;\n};\n\nconst SelectContainer = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n`;\n\nconst ChipsPositioningContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => {\n return {\n alignItems: \"center\",\n display: \"flex\",\n insetBlockEnd: 0,\n insetBlockStart: 0,\n insetInlineEnd: \"25px\", // This 25px is used to align with MUI's default chip positioning logic.\n insetInlineStart: \"4px\",\n marginInlineStart: odysseyDesignTokens.BorderWidthMain,\n opacity: 1,\n pointerEvents: \"none\",\n position: \"absolute\",\n };\n});\n\nconst NonInteractiveIcon = styled(CloseCircleFilledIcon, {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n fontSize: \"1em\",\n marginBlockEnd: \"-1px\",\n marginInlineEnd: `-${odysseyDesignTokens.Spacing1}`,\n marginInlineStart: odysseyDesignTokens.Spacing2,\n}));\n\nconst ChipsInnerContainer = styled(MuiBox, {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isInteractive\" &&\n prop !== \"isReadOnly\",\n})<{\n isInteractive?: boolean;\n isReadOnly?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ isInteractive, isReadOnly, odysseyDesignTokens }) => ({\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: odysseyDesignTokens.Spacing1,\n marginBlock: `-${odysseyDesignTokens.Spacing2}`,\n marginInlineEnd: odysseyDesignTokens.Spacing1,\n minHeight: odysseyDesignTokens.Spacing6,\n opacity: isInteractive || isReadOnly ? 1 : 0,\n pointerEvents: \"none\",\n}));\n\nexport type SelectValueType<HasMultipleChoices> =\n HasMultipleChoices extends true ? string[] : string;\n\nexport type SelectProps<\n Value extends SelectValueType<HasMultipleChoices>,\n HasMultipleChoices extends boolean,\n> = {\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue?: MuiSelectProps<Value>[\"defaultValue\"];\n /**\n * If `true`, the Select allows multiple selections\n */\n hasMultipleChoices?: HasMultipleChoices;\n /**\n * The ref forwarded to the Select\n */\n inputRef?: React.RefObject<FocusHandle>;\n /**\n * @deprecated Use `hasMultipleChoices` instead.\n */\n /** **Deprecated:** use `hasMultipleChoices` */\n isMultiSelect?: HasMultipleChoices;\n /**\n * The label text for the Select\n */\n label: string;\n /**\n * Callback fired when the Select loses focus\n */\n onBlur?: MuiSelectProps<Value>[\"onBlur\"];\n /**\n * Callback fired when the value of the Select changes\n */\n onChange?: MuiSelectProps<Value>[\"onChange\"];\n /**\n * Callback fired when the Select gains focus\n */\n onFocus?: MuiSelectProps<Value>[\"onFocus\"];\n /**\n * The options for the Select\n */\n options: (string | SelectOption)[];\n /**\n * The value or values selected in the Select\n */\n value?: Value;\n} & Pick<\n FieldComponentProps,\n | \"errorMessage\"\n | \"errorMessageList\"\n | \"hint\"\n | \"HintLinkComponent\"\n | \"id\"\n | \"isDisabled\"\n | \"isFullWidth\"\n | \"isOptional\"\n | \"isReadOnly\"\n | \"name\"\n> &\n Pick<HtmlProps, \"ariaDescribedBy\" | \"testId\" | \"translate\">;\n\ntype SelectRenderProps = Partial<\n Pick<FieldComponentRenderProps, \"ariaDescribedBy\" | \"errorMessageElementId\">\n> &\n Pick<FieldComponentRenderProps, \"id\" | \"labelElementId\">;\n\n/**\n * Options in Odyssey <Select> are passed as an array, which can contain any combination\n * of the following:\n * - string — A simple string. The string will be both the text and the value of the resulting option.\n * <option value=\"string\">string</option>\n *\n * - { text: string } — Same as above, but the string is contained within an object.\n * <option value=\"text\">text</option>\n *\n * - { text: string, value: string } — The option text will be text, and the option value will be value.\n * <option value=\"value\">text</option>\n *\n * - { text: string, type: \"heading\" } — Used to display a group heading with the text\n */\n\nconst { CONTROLLED } = ComponentControlledState;\nconst Select = <\n Value extends SelectValueType<HasMultipleChoices>,\n HasMultipleChoices extends boolean,\n>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices: hasMultipleChoicesProp,\n hint,\n HintLinkComponent,\n id: idOverride,\n inputRef,\n isDisabled = false,\n isFullWidth = false,\n isMultiSelect,\n isOptional = false,\n isReadOnly = false,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onFocus,\n options,\n testId,\n translate,\n value,\n}: SelectProps<Value, HasMultipleChoices>) => {\n const selectRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);\n\n const hasMultipleChoices = useMemo(\n () =>\n hasMultipleChoicesProp === undefined\n ? isMultiSelect\n : hasMultipleChoicesProp,\n [hasMultipleChoicesProp, isMultiSelect],\n );\n\n const controlledStateRef = useRef(\n getControlState({\n controlledValue: value,\n uncontrolledValue: defaultValue,\n }),\n );\n const [internalSelectedValues, setInternalSelectedValues] = useState(\n controlledStateRef.current === CONTROLLED ? value : defaultValue,\n );\n\n const localInputRef = useRef<HTMLSelectElement>(null);\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n useImperativeHandle(inputRef, () => {\n return {\n focus: () => {\n localInputRef.current?.focus();\n },\n };\n }, []);\n\n useEffect(() => {\n if (controlledStateRef.current === CONTROLLED) {\n setInternalSelectedValues(value);\n }\n }, [value]);\n\n const inputValues = useInputValues({\n defaultValue,\n value,\n controlState: controlledStateRef.current,\n });\n\n const onChange = useCallback<NonNullable<MuiSelectProps<Value>[\"onChange\"]>>(\n (event, child) => {\n if (isReadOnly) {\n event.preventDefault();\n } else {\n const {\n target: { value },\n } = event;\n if (controlledStateRef.current !== CONTROLLED) {\n setInternalSelectedValues(\n (typeof value === \"string\" && hasMultipleChoices\n ? value.split(\",\")\n : value) as Value,\n );\n }\n onChangeProp?.(event, child);\n }\n },\n [hasMultipleChoices, onChangeProp, isReadOnly],\n );\n // Normalize the options array to accommodate the various\n // data types that might be passed\n const [normalizedOptions, normalizedOptionsMap] = useMemo(() => {\n const normalizedOptions = options.map((option) => {\n if (typeof option === \"object\") {\n /**\n * If the value of `option?.value is an empty string, we need to make sure that we\n * set an empty string to `value` in the normalized option so that the select component\n * can potentially set it as the selected one in the text input\n */\n const value =\n option?.value === \"\" ? option.value : option.value || option.text;\n return {\n text: option.text,\n value,\n type: option.type === \"heading\" ? \"heading\" : \"option\",\n lang: option.language,\n };\n }\n\n return { text: option, value: option, type: \"option\" };\n });\n\n const normalizedOptionsMap = new Map(\n normalizedOptions.map((option) => [option.value, option]),\n );\n return [normalizedOptions, normalizedOptionsMap];\n }, [options]);\n\n const removeSelectedValue = useCallback(\n (selectedValue: string) => {\n if (Array.isArray(internalSelectedValues)) {\n const newValue = internalSelectedValues.filter(\n (internalSelectedValue) => internalSelectedValue !== selectedValue,\n );\n\n const syntheticEvent = {\n target: { value: newValue },\n } as SelectChangeEvent<Value>;\n\n onChange(syntheticEvent, null);\n }\n },\n [internalSelectedValues, onChange],\n );\n\n const Chips = useCallback(\n ({\n isInteractive,\n isReadOnly,\n }: {\n isInteractive: boolean;\n isReadOnly?: boolean;\n }) => {\n const stopPropagation = (event: React.MouseEvent<SVGSVGElement>) =>\n event.stopPropagation();\n\n const hasNonInteractiveIcon =\n !isInteractive &&\n !isReadOnly &&\n controlledStateRef.current === CONTROLLED &&\n hasMultipleChoices;\n\n return (\n Array.isArray(internalSelectedValues) && (\n <ChipsInnerContainer\n isInteractive={isInteractive}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {internalSelectedValues.map(\n (item) =>\n item?.length > 0 && (\n <MuiChip\n deleteIcon={\n <CloseCircleFilledIcon\n // We need to stop event propagation on mouse down to prevent the deletion\n // from being blocked by the Select list opening, and also ensure that\n // the pointerEvent is registered even when the parent's are not\n onMouseDown={stopPropagation}\n sx={{ pointerEvents: \"auto\" }}\n />\n }\n key={item}\n label={\n <>\n {normalizedOptionsMap.get(item)?.text}\n {hasNonInteractiveIcon && (\n <NonInteractiveIcon\n odysseyDesignTokens={odysseyDesignTokens}\n />\n )}\n </>\n }\n onDelete={\n isInteractive && controlledStateRef.current === CONTROLLED\n ? () => removeSelectedValue(item)\n : undefined\n }\n tabIndex={-1}\n />\n ),\n )}\n </ChipsInnerContainer>\n )\n );\n },\n [\n controlledStateRef,\n hasMultipleChoices,\n internalSelectedValues,\n odysseyDesignTokens,\n removeSelectedValue,\n normalizedOptionsMap,\n ],\n );\n\n // Convert the options into the ReactNode children\n // that will populate the <Select>\n const renderedOptions = useMemo(\n () =>\n normalizedOptions.map((option, index) => {\n if (option.type === \"heading\") {\n return (\n <ListSubheader key={option.text}> {option.text} </ListSubheader>\n );\n }\n\n const isSelected = hasMultipleChoices\n ? internalSelectedValues?.includes(option.value)\n : internalSelectedValues === option.value;\n\n return (\n <MuiMenuItem\n data-empty={!option.text}\n key={normalizedKey(option.text, index.toString())}\n lang={option.lang}\n selected={isSelected}\n value={option.value}\n >\n {hasMultipleChoices && <MuiCheckbox checked={isSelected} />}\n {option.text}\n {!hasMultipleChoices && internalSelectedValues === option.value && (\n <ListItemSecondaryAction>\n <CheckIcon />\n </ListItemSecondaryAction>\n )}\n </MuiMenuItem>\n );\n }),\n [hasMultipleChoices, normalizedOptions, internalSelectedValues],\n );\n\n const renderValue = useCallback(\n (value: Value) => Array.isArray(value) && <Chips isInteractive={false} />,\n [Chips],\n );\n\n const renderFieldComponent = useCallback(\n ({\n ariaDescribedBy,\n errorMessageElementId,\n id,\n labelElementId,\n }: SelectRenderProps) => (\n <SelectContainer>\n <MuiSelect\n {...inputValues}\n aria-describedby={ariaDescribedBy}\n aria-errormessage={errorMessageElementId}\n displayEmpty\n id={id}\n inputProps={{\n \"data-se\": testId,\n \"aria-disabled\": isDisabled || isReadOnly,\n readOnly: isReadOnly,\n }}\n inputRef={(el: HTMLInputElement | HTMLTextAreaElement | null) => {\n if (localInputRef.current !== el) {\n (localInputRef as React.MutableRefObject<typeof el>).current = el;\n }\n selectRef.current = el;\n }}\n labelId={labelElementId}\n MenuProps={{\n sx: {\n \".MuiPaper-root\": {\n maxHeight: \"50vh\",\n },\n },\n }}\n multiple={hasMultipleChoices}\n name={nameOverride ?? id}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n renderValue={hasMultipleChoices ? renderValue : undefined}\n translate={translate}\n >\n {renderedOptions}\n </MuiSelect>\n {hasMultipleChoices && (\n <>\n <ChipsPositioningContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <Chips isInteractive={!isReadOnly} isReadOnly={isReadOnly} />\n </ChipsPositioningContainer>\n </>\n )}\n </SelectContainer>\n ),\n [\n Chips,\n inputValues,\n hasMultipleChoices,\n isDisabled,\n isReadOnly,\n nameOverride,\n odysseyDesignTokens,\n onBlur,\n onChange,\n onFocus,\n renderedOptions,\n renderValue,\n testId,\n translate,\n ],\n );\n\n return (\n <Field\n ariaDescribedBy={ariaDescribedBy}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n fieldType=\"single\"\n hasVisibleLabel\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n id={idOverride}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isOptional={isOptional}\n label={label}\n renderFieldComponent={renderFieldComponent}\n />\n );\n};\n\nconst MemoizedSelect = memo(Select);\nMemoizedSelect.displayName = \"Select\";\n\nexport { MemoizedSelect as Select };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["styled","memo","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Field","CheckIcon","CloseCircleFilledIcon","ComponentControlledState","getControlState","useInputValues","useOdysseyDesignTokens","normalizedKey","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SelectContainer","div","ChipsPositioningContainer","shouldForwardProp","prop","odysseyDesignTokens","alignItems","display","insetBlockEnd","insetBlockStart","insetInlineEnd","insetInlineStart","marginInlineStart","BorderWidthMain","opacity","pointerEvents","position","NonInteractiveIcon","fontSize","marginBlockEnd","marginInlineEnd","Spacing1","Spacing2","ChipsInnerContainer","_Box","isInteractive","isReadOnly","flexWrap","gap","marginBlock","minHeight","Spacing6","CONTROLLED","Select","ariaDescribedBy","defaultValue","errorMessage","errorMessageList","hasMultipleChoices","hasMultipleChoicesProp","hint","HintLinkComponent","id","idOverride","inputRef","isDisabled","isFullWidth","isMultiSelect","isOptional","label","name","nameOverride","onBlur","onChange","onChangeProp","onFocus","options","testId","translate","value","selectRef","undefined","controlledStateRef","controlledValue","uncontrolledValue","internalSelectedValues","setInternalSelectedValues","current","localInputRef","focus","inputValues","controlState","event","child","preventDefault","target","split","normalizedOptions","normalizedOptionsMap","map","option","text","type","lang","language","Map","removeSelectedValue","selectedValue","Array","isArray","newValue","filter","internalSelectedValue","syntheticEvent","Chips","stopPropagation","hasNonInteractiveIcon","children","item","length","_Chip","deleteIcon","onMouseDown","sx","get","onDelete","tabIndex","renderedOptions","index","_ListSubheader","isSelected","includes","_MenuItem","selected","_Checkbox","checked","_ListItemSecondaryAction","toString","renderValue","renderFieldComponent","errorMessageElementId","labelElementId","_Select","displayEmpty","inputProps","readOnly","el","labelId","MenuProps","maxHeight","multiple","fieldType","hasVisibleLabel","MemoizedSelect","displayName"],"sources":["../../src/Select.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 {\n ListItemSecondaryAction,\n ListSubheader,\n Box as MuiBox,\n Checkbox as MuiCheckbox,\n Chip as MuiChip,\n MenuItem as MuiMenuItem,\n Select as MuiSelect,\n SelectProps as MuiSelectProps,\n SelectChangeEvent,\n} from \"@mui/material\";\nimport {\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Field } from \"./Field.js\";\nimport {\n FieldComponentProps,\n FieldComponentRenderProps,\n} from \"./FieldComponentProps.js\";\nimport { CheckIcon, CloseCircleFilledIcon } from \"./icons.generated/index.js\";\nimport {\n ComponentControlledState,\n FocusHandle,\n getControlState,\n useInputValues,\n} from \"./inputUtils.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { normalizedKey } from \"./useNormalizedKey.js\";\n\nexport type SelectOption = {\n language?: string;\n text: string;\n type?: \"heading\" | \"option\";\n value?: string;\n};\n\nconst SelectContainer = styled.div`\n position: relative;\n width: 100%;\n display: flex;\n`;\n\nconst ChipsPositioningContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => {\n return {\n alignItems: \"center\",\n display: \"flex\",\n insetBlockEnd: 0,\n insetBlockStart: 0,\n insetInlineEnd: \"25px\", // This 25px is used to align with MUI's default chip positioning logic.\n insetInlineStart: \"4px\",\n marginInlineStart: odysseyDesignTokens.BorderWidthMain,\n opacity: 1,\n pointerEvents: \"none\",\n position: \"absolute\",\n };\n});\n\nconst NonInteractiveIcon = styled(CloseCircleFilledIcon, {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n fontSize: \"1em\",\n marginBlockEnd: \"-1px\",\n marginInlineEnd: `-${odysseyDesignTokens.Spacing1}`,\n marginInlineStart: odysseyDesignTokens.Spacing2,\n}));\n\nconst ChipsInnerContainer = styled(MuiBox, {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isInteractive\" &&\n prop !== \"isReadOnly\",\n})<{\n isInteractive?: boolean;\n isReadOnly?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ isInteractive, isReadOnly, odysseyDesignTokens }) => ({\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: odysseyDesignTokens.Spacing1,\n marginBlock: `-${odysseyDesignTokens.Spacing2}`,\n marginInlineEnd: odysseyDesignTokens.Spacing1,\n minHeight: odysseyDesignTokens.Spacing6,\n opacity: isInteractive || isReadOnly ? 1 : 0,\n pointerEvents: \"none\",\n}));\n\nexport type SelectValueType<HasMultipleChoices> =\n HasMultipleChoices extends true ? string[] : string;\n\nexport type SelectProps<\n Value extends SelectValueType<HasMultipleChoices>,\n HasMultipleChoices extends boolean,\n> = {\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue?: MuiSelectProps<Value>[\"defaultValue\"];\n /**\n * If `true`, the Select allows multiple selections\n */\n hasMultipleChoices?: HasMultipleChoices;\n /**\n * The ref forwarded to the Select\n */\n inputRef?: React.RefObject<FocusHandle>;\n /**\n * @deprecated Use `hasMultipleChoices` instead.\n */\n /** **Deprecated:** use `hasMultipleChoices` */\n isMultiSelect?: HasMultipleChoices;\n /**\n * The label text for the Select\n */\n label: string;\n /**\n * Callback fired when the Select loses focus\n */\n onBlur?: MuiSelectProps<Value>[\"onBlur\"];\n /**\n * Callback fired when the value of the Select changes\n */\n onChange?: MuiSelectProps<Value>[\"onChange\"];\n /**\n * Callback fired when the Select gains focus\n */\n onFocus?: MuiSelectProps<Value>[\"onFocus\"];\n /**\n * The options for the Select\n */\n options: (string | SelectOption)[];\n /**\n * The value or values selected in the Select\n */\n value?: Value;\n} & Pick<\n FieldComponentProps,\n | \"errorMessage\"\n | \"errorMessageList\"\n | \"hint\"\n | \"HintLinkComponent\"\n | \"id\"\n | \"isDisabled\"\n | \"isFullWidth\"\n | \"isOptional\"\n | \"isReadOnly\"\n | \"name\"\n> &\n Pick<HtmlProps, \"ariaDescribedBy\" | \"testId\" | \"translate\">;\n\ntype SelectRenderProps = Partial<\n Pick<FieldComponentRenderProps, \"ariaDescribedBy\" | \"errorMessageElementId\">\n> &\n Pick<FieldComponentRenderProps, \"id\" | \"labelElementId\">;\n\n/**\n * Options in Odyssey <Select> are passed as an array, which can contain any combination\n * of the following:\n * - string — A simple string. The string will be both the text and the value of the resulting option.\n * <option value=\"string\">string</option>\n *\n * - { text: string } — Same as above, but the string is contained within an object.\n * <option value=\"text\">text</option>\n *\n * - { text: string, value: string } — The option text will be text, and the option value will be value.\n * <option value=\"value\">text</option>\n *\n * - { text: string, type: \"heading\" } — Used to display a group heading with the text\n */\n\nconst { CONTROLLED } = ComponentControlledState;\nconst Select = <\n Value extends SelectValueType<HasMultipleChoices>,\n HasMultipleChoices extends boolean,\n>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices: hasMultipleChoicesProp,\n hint,\n HintLinkComponent,\n id: idOverride,\n inputRef,\n isDisabled = false,\n isFullWidth = false,\n isMultiSelect,\n isOptional = false,\n isReadOnly = false,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onFocus,\n options,\n testId,\n translate,\n value,\n}: SelectProps<Value, HasMultipleChoices>) => {\n const selectRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null);\n\n const hasMultipleChoices = useMemo(\n () =>\n hasMultipleChoicesProp === undefined\n ? isMultiSelect\n : hasMultipleChoicesProp,\n [hasMultipleChoicesProp, isMultiSelect],\n );\n\n const controlledStateRef = useRef(\n getControlState({\n controlledValue: value,\n uncontrolledValue: defaultValue,\n }),\n );\n const [internalSelectedValues, setInternalSelectedValues] = useState(\n controlledStateRef.current === CONTROLLED ? value : defaultValue,\n );\n\n const localInputRef = useRef<HTMLSelectElement>(null);\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n useImperativeHandle(inputRef, () => {\n return {\n focus: () => {\n localInputRef.current?.focus();\n },\n };\n }, []);\n\n useEffect(() => {\n if (controlledStateRef.current === CONTROLLED) {\n setInternalSelectedValues(value);\n }\n }, [value]);\n\n const inputValues = useInputValues({\n defaultValue,\n value,\n controlState: controlledStateRef.current,\n });\n\n const onChange = useCallback<NonNullable<MuiSelectProps<Value>[\"onChange\"]>>(\n (event, child) => {\n if (isReadOnly) {\n event.preventDefault();\n } else {\n const {\n target: { value },\n } = event;\n if (controlledStateRef.current !== CONTROLLED) {\n setInternalSelectedValues(\n (typeof value === \"string\" && hasMultipleChoices\n ? value.split(\",\")\n : value) as Value,\n );\n }\n onChangeProp?.(event, child);\n }\n },\n [hasMultipleChoices, onChangeProp, isReadOnly],\n );\n // Normalize the options array to accommodate the various\n // data types that might be passed\n const [normalizedOptions, normalizedOptionsMap] = useMemo(() => {\n const normalizedOptions = options.map((option) => {\n if (typeof option === \"object\") {\n /**\n * If the value of `option?.value is an empty string, we need to make sure that we\n * set an empty string to `value` in the normalized option so that the select component\n * can potentially set it as the selected one in the text input\n */\n const value =\n option?.value === \"\" ? option.value : option.value || option.text;\n return {\n text: option.text,\n value,\n type: option.type === \"heading\" ? \"heading\" : \"option\",\n lang: option.language,\n };\n }\n\n return { text: option, value: option, type: \"option\" };\n });\n\n const normalizedOptionsMap = new Map(\n normalizedOptions.map((option) => [option.value, option]),\n );\n return [normalizedOptions, normalizedOptionsMap];\n }, [options]);\n\n const removeSelectedValue = useCallback(\n (selectedValue: string) => {\n if (Array.isArray(internalSelectedValues)) {\n const newValue = internalSelectedValues.filter(\n (internalSelectedValue) => internalSelectedValue !== selectedValue,\n );\n\n const syntheticEvent = {\n target: { value: newValue },\n } as SelectChangeEvent<Value>;\n\n onChange(syntheticEvent, null);\n }\n },\n [internalSelectedValues, onChange],\n );\n\n const Chips = useCallback(\n ({\n isInteractive,\n isReadOnly,\n }: {\n isInteractive: boolean;\n isReadOnly?: boolean;\n }) => {\n const stopPropagation = (event: React.MouseEvent<SVGSVGElement>) =>\n event.stopPropagation();\n\n const hasNonInteractiveIcon =\n !isInteractive &&\n !isReadOnly &&\n controlledStateRef.current === CONTROLLED &&\n hasMultipleChoices;\n\n return (\n Array.isArray(internalSelectedValues) && (\n <ChipsInnerContainer\n isInteractive={isInteractive}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {internalSelectedValues.map(\n (item) =>\n item?.length > 0 && (\n <MuiChip\n deleteIcon={\n <CloseCircleFilledIcon\n // We need to stop event propagation on mouse down to prevent the deletion\n // from being blocked by the Select list opening, and also ensure that\n // the pointerEvent is registered even when the parent's are not\n onMouseDown={stopPropagation}\n sx={{ pointerEvents: \"auto\" }}\n />\n }\n key={item}\n label={\n <>\n {normalizedOptionsMap.get(item)?.text}\n {hasNonInteractiveIcon && (\n <NonInteractiveIcon\n odysseyDesignTokens={odysseyDesignTokens}\n />\n )}\n </>\n }\n onDelete={\n isInteractive && controlledStateRef.current === CONTROLLED\n ? () => removeSelectedValue(item)\n : undefined\n }\n tabIndex={-1}\n />\n ),\n )}\n </ChipsInnerContainer>\n )\n );\n },\n [\n controlledStateRef,\n hasMultipleChoices,\n internalSelectedValues,\n odysseyDesignTokens,\n removeSelectedValue,\n normalizedOptionsMap,\n ],\n );\n\n // Convert the options into the ReactNode children\n // that will populate the <Select>\n const renderedOptions = useMemo(\n () =>\n normalizedOptions.map((option, index) => {\n if (option.type === \"heading\") {\n return (\n <ListSubheader key={option.text}> {option.text} </ListSubheader>\n );\n }\n\n const isSelected = hasMultipleChoices\n ? internalSelectedValues?.includes(option.value)\n : internalSelectedValues === option.value;\n\n return (\n <MuiMenuItem\n data-empty={!option.text}\n key={normalizedKey(option.text, index.toString())}\n lang={option.lang}\n selected={isSelected}\n value={option.value}\n >\n {hasMultipleChoices && <MuiCheckbox checked={isSelected} />}\n {option.text}\n {!hasMultipleChoices && internalSelectedValues === option.value && (\n <ListItemSecondaryAction>\n <CheckIcon />\n </ListItemSecondaryAction>\n )}\n </MuiMenuItem>\n );\n }),\n [hasMultipleChoices, normalizedOptions, internalSelectedValues],\n );\n\n const renderValue = useCallback(\n (value: Value) => Array.isArray(value) && <Chips isInteractive={false} />,\n [Chips],\n );\n\n const renderFieldComponent = useCallback(\n ({\n ariaDescribedBy,\n errorMessageElementId,\n id,\n labelElementId,\n }: SelectRenderProps) => (\n <SelectContainer>\n <MuiSelect\n {...inputValues}\n aria-describedby={ariaDescribedBy}\n aria-errormessage={errorMessageElementId}\n displayEmpty\n id={id}\n inputProps={{\n \"data-se\": testId,\n \"aria-disabled\": isDisabled || isReadOnly,\n readOnly: isReadOnly,\n }}\n inputRef={(el: HTMLInputElement | HTMLTextAreaElement | null) => {\n if (localInputRef.current !== el) {\n (localInputRef as React.MutableRefObject<typeof el>).current = el;\n }\n selectRef.current = el;\n }}\n labelId={labelElementId}\n MenuProps={{\n sx: {\n \".MuiPaper-root\": {\n maxHeight: \"50vh\",\n },\n },\n }}\n multiple={hasMultipleChoices}\n name={nameOverride ?? id}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n renderValue={hasMultipleChoices ? renderValue : undefined}\n translate={translate}\n >\n {renderedOptions}\n </MuiSelect>\n {hasMultipleChoices && (\n <>\n <ChipsPositioningContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <Chips isInteractive={!isReadOnly} isReadOnly={isReadOnly} />\n </ChipsPositioningContainer>\n </>\n )}\n </SelectContainer>\n ),\n [\n Chips,\n inputValues,\n hasMultipleChoices,\n isDisabled,\n isReadOnly,\n nameOverride,\n odysseyDesignTokens,\n onBlur,\n onChange,\n onFocus,\n renderedOptions,\n renderValue,\n testId,\n translate,\n ],\n );\n\n return (\n <Field\n ariaDescribedBy={ariaDescribedBy}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n fieldType=\"single\"\n hasVisibleLabel\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n id={idOverride}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isOptional={isOptional}\n label={label}\n renderFieldComponent={renderFieldComponent}\n />\n );\n};\n\nconst MemoizedSelect = memo(Select);\nMemoizedSelect.displayName = \"Select\";\n\nexport { MemoizedSelect as Select };\n"],"mappings":"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","ignoreList":[]}
@@ -23,10 +23,10 @@ const StyledContainer = styled(_Paper, {
23
23
  contrastMode,
24
24
  odysseyDesignTokens
25
25
  }) => ({
26
- borderRadius: odysseyDesignTokens.Spacing4,
27
- padding: odysseyDesignTokens.Spacing5,
28
26
  border: contrastMode === "lowContrast" ? `1px solid ${odysseyDesignTokens.HueNeutral100}` : "none",
29
- boxShadow: "none"
27
+ borderRadius: odysseyDesignTokens.Spacing4,
28
+ boxShadow: "none",
29
+ padding: odysseyDesignTokens.Spacing5
30
30
  }));
31
31
  const Surface = ({
32
32
  children
@@ -1 +1 @@
1
- {"version":3,"file":"Surface.js","names":["styled","memo","useOdysseyDesignTokens","OdysseyThemeProvider","useContrastModeContext","jsx","_jsx","StyledContainer","_Paper","shouldForwardProp","prop","contrastMode","odysseyDesignTokens","borderRadius","Spacing4","padding","Spacing5","border","HueNeutral100","boxShadow","Surface","children","MemoizedSurface","displayName"],"sources":["../../src/Surface.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 { Paper as MuiPaper } from \"@mui/material\";\nimport { memo, ReactNode } from \"react\";\n\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { OdysseyThemeProvider } from \"./OdysseyThemeProvider.js\";\nimport { ContrastMode, useContrastModeContext } from \"./useContrastMode.js\";\n\nconst StyledContainer = styled(MuiPaper, {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"contrastMode\",\n})<{\n contrastMode: ContrastMode;\n odysseyDesignTokens: DesignTokens;\n}>(({ contrastMode, odysseyDesignTokens }) => ({\n borderRadius: odysseyDesignTokens.Spacing4,\n padding: odysseyDesignTokens.Spacing5,\n border:\n contrastMode === \"lowContrast\"\n ? `1px solid ${odysseyDesignTokens.HueNeutral100}`\n : \"none\",\n boxShadow: \"none\",\n}));\n\nexport type SurfaceProps = {\n children: ReactNode;\n};\n\nconst Surface = ({ children }: SurfaceProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { contrastMode } = useContrastModeContext();\n\n return (\n <StyledContainer\n contrastMode={contrastMode}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <OdysseyThemeProvider>{children}</OdysseyThemeProvider>\n </StyledContainer>\n );\n};\n\nconst MemoizedSurface = memo(Surface);\nMemoizedSurface.displayName = \"Surface\";\n\nexport { MemoizedSurface as Surface };\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,MAAM,MAAM,iBAAiB;AAEpC,SAASC,IAAI,QAAmB,OAAO;AAEvC,SAEEC,sBAAsB,QACjB,iCAAiC;AACxC,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAAuBC,sBAAsB,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5E,MAAMC,eAAe,GAAGP,MAAM,CAAAQ,MAAA,EAAW;EACvCC,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAAIA,IAAI,KAAK;AAC/C,CAAC,CAAC,CAGC,CAAC;EAAEC,YAAY;EAAEC;AAAoB,CAAC,MAAM;EAC7CC,YAAY,EAAED,mBAAmB,CAACE,QAAQ;EAC1CC,OAAO,EAAEH,mBAAmB,CAACI,QAAQ;EACrCC,MAAM,EACJN,YAAY,KAAK,aAAa,GAC1B,aAAaC,mBAAmB,CAACM,aAAa,EAAE,GAChD,MAAM;EACZC,SAAS,EAAE;AACb,CAAC,CAAC,CAAC;AAMH,MAAMC,OAAO,GAAGA,CAAC;EAAEC;AAAuB,CAAC,KAAK;EAC9C,MAAMT,mBAAmB,GAAGV,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAES;EAAa,CAAC,GAAGP,sBAAsB,CAAC,CAAC;EAEjD,OACEE,IAAA,CAACC,eAAe;IACdI,YAAY,EAAEA,YAAa;IAC3BC,mBAAmB,EAAEA,mBAAoB;IAAAS,QAAA,EAEzCf,IAAA,CAACH,oBAAoB;MAAAkB,QAAA,EAAEA;IAAQ,CAAuB;EAAC,CACxC,CAAC;AAEtB,CAAC;AAED,MAAMC,eAAe,GAAGrB,IAAI,CAACmB,OAAO,CAAC;AACrCE,eAAe,CAACC,WAAW,GAAG,SAAS;AAEvC,SAASD,eAAe,IAAIF,OAAO","ignoreList":[]}
1
+ {"version":3,"file":"Surface.js","names":["styled","memo","useOdysseyDesignTokens","OdysseyThemeProvider","useContrastModeContext","jsx","_jsx","StyledContainer","_Paper","shouldForwardProp","prop","contrastMode","odysseyDesignTokens","border","HueNeutral100","borderRadius","Spacing4","boxShadow","padding","Spacing5","Surface","children","MemoizedSurface","displayName"],"sources":["../../src/Surface.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 { Paper as MuiPaper } from \"@mui/material\";\nimport { memo, ReactNode } from \"react\";\n\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { OdysseyThemeProvider } from \"./OdysseyThemeProvider.js\";\nimport { ContrastMode, useContrastModeContext } from \"./useContrastMode.js\";\n\nconst StyledContainer = styled(MuiPaper, {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"contrastMode\",\n})<{\n contrastMode: ContrastMode;\n odysseyDesignTokens: DesignTokens;\n}>(({ contrastMode, odysseyDesignTokens }) => ({\n border:\n contrastMode === \"lowContrast\"\n ? `1px solid ${odysseyDesignTokens.HueNeutral100}`\n : \"none\",\n borderRadius: odysseyDesignTokens.Spacing4,\n boxShadow: \"none\",\n padding: odysseyDesignTokens.Spacing5,\n}));\n\nexport type SurfaceProps = {\n children: ReactNode;\n};\n\nconst Surface = ({ children }: SurfaceProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { contrastMode } = useContrastModeContext();\n\n return (\n <StyledContainer\n contrastMode={contrastMode}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {/* Required for `contrastMode`. */}\n <OdysseyThemeProvider>{children}</OdysseyThemeProvider>\n </StyledContainer>\n );\n};\n\nconst MemoizedSurface = memo(Surface);\nMemoizedSurface.displayName = \"Surface\";\n\nexport { MemoizedSurface as Surface };\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,MAAM,MAAM,iBAAiB;AAEpC,SAASC,IAAI,QAAmB,OAAO;AAEvC,SAEEC,sBAAsB,QACjB,iCAAiC;AACxC,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAAuBC,sBAAsB,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE5E,MAAMC,eAAe,GAAGP,MAAM,CAAAQ,MAAA,EAAW;EACvCC,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAAIA,IAAI,KAAK;AAC/C,CAAC,CAAC,CAGC,CAAC;EAAEC,YAAY;EAAEC;AAAoB,CAAC,MAAM;EAC7CC,MAAM,EACJF,YAAY,KAAK,aAAa,GAC1B,aAAaC,mBAAmB,CAACE,aAAa,EAAE,GAChD,MAAM;EACZC,YAAY,EAAEH,mBAAmB,CAACI,QAAQ;EAC1CC,SAAS,EAAE,MAAM;EACjBC,OAAO,EAAEN,mBAAmB,CAACO;AAC/B,CAAC,CAAC,CAAC;AAMH,MAAMC,OAAO,GAAGA,CAAC;EAAEC;AAAuB,CAAC,KAAK;EAC9C,MAAMT,mBAAmB,GAAGV,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAES;EAAa,CAAC,GAAGP,sBAAsB,CAAC,CAAC;EAEjD,OACEE,IAAA,CAACC,eAAe;IACdI,YAAY,EAAEA,YAAa;IAC3BC,mBAAmB,EAAEA,mBAAoB;IAAAS,QAAA,EAGzCf,IAAA,CAACH,oBAAoB;MAAAkB,QAAA,EAAEA;IAAQ,CAAuB;EAAC,CACxC,CAAC;AAEtB,CAAC;AAED,MAAMC,eAAe,GAAGrB,IAAI,CAACmB,OAAO,CAAC;AACrCE,eAAe,CAACC,WAAW,GAAG,SAAS;AAEvC,SAASD,eAAe,IAAIF,OAAO","ignoreList":[]}
@@ -13,9 +13,9 @@ import _FormLabel from "@mui/material/FormLabel";
13
13
 
14
14
  import styled from "@emotion/styled";
15
15
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
16
- import { useTranslation } from "react-i18next";
17
16
  import { Box } from "./Box.js";
18
17
  import { FieldHint } from "./FieldHint.js";
18
+ import { useTranslation } from "./i18n.generated/i18n.js";
19
19
  import { CheckIcon } from "./icons.generated/index.js";
20
20
  import { ComponentControlledState, getControlState } from "./inputUtils.js";
21
21
  import { useOdysseyDesignTokens } from "./OdysseyDesignTokensContext.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","names":["styled","memo","useCallback","useEffect","useMemo","useRef","useState","useTranslation","Box","FieldHint","CheckIcon","ComponentControlledState","getControlState","useOdysseyDesignTokens","stripRem","toRem","useUniqueId","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CONTROLLED","nonForwardedProps","SwitchAndLabelContainer","shouldForwardProp","prop","includes","isFullWidth","odysseyDesignTokens","display","alignItems","justifyContent","maxWidth","TypographyLineLengthMax","SwitchContainer","div","position","StyledSwitchLabel","_FormLabel","isDisabled","isReadOnly","margin","color","PaletteNeutralDark","TypographyColorDisabled","p","a","HueNeutral700","SwitchTrack","isChecked","width","Spacing7","height","Spacing4","Spacing1","borderRadius","BorderRadiusOuter","backgroundColor","HueNeutral300","transition","TransitionDurationMain","HueNeutral200","HueNeutral600","PaletteSuccessLight","SwitchThumb","thumbOffset","trackWidth","thumbWidth","transformDistance","top","left","BorderRadiusRound","HueNeutralWhite","transform","HueNeutral50","HueNeutral400","SwitchCheckMark","opacity","path","fill","HiddenCheckbox","input","cursor","zIndex","boxShadow","PalettePrimaryMain","SwitchLabel","hint","hintId","HintLinkComponent","inputId","label","children","htmlFor","id","LinkComponent","text","MemoizedSwitchLabel","displayName","Switch","idProp","isDefaultChecked","name","onChange","testId","value","t","controlledStateRef","controlledValue","uncontrolledValue","inputValues","current","checked","defaultChecked","internalSwitchChecked","setInternalSwitchChecked","Boolean","undefined","labelElementId","handleOnChange","event","preventDefault","target","sx","marginBlockEnd","Spacing2","disabled","readOnly","type","MemoizedSwitch"],"sources":["../../src/Switch.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 { FormLabel, SwitchProps as MuiSwitchProps } from \"@mui/material\";\nimport {\n ChangeEventHandler,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Box } from \"./Box.js\";\nimport { FieldComponentProps } from \"./FieldComponentProps.js\";\nimport { FieldHint } from \"./FieldHint.js\";\nimport { CheckedFieldProps } from \"./FormCheckedProps.js\";\nimport { CheckIcon } from \"./icons.generated/index.js\";\nimport { ComponentControlledState, getControlState } from \"./inputUtils.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { stripRem, toRem } from \"./remUtils.js\";\nimport { useUniqueId } from \"./useUniqueId.js\";\n\nconst { CONTROLLED } = ComponentControlledState;\n\nconst nonForwardedProps = [\n \"isChecked\",\n \"isDisabled\",\n \"isFullWidth\",\n \"isReadOnly\",\n \"odysseyDesignTokens\",\n];\n\nconst SwitchAndLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isFullWidth\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isFullWidth, odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n maxWidth: isFullWidth ? \"100%\" : odysseyDesignTokens.TypographyLineLengthMax,\n}));\n\nconst SwitchContainer = styled.div({\n position: \"relative\",\n});\n\nconst StyledSwitchLabel = styled(FormLabel, {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchLabelComponentProps, \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n display: \"block\",\n margin: 0,\n color: odysseyDesignTokens.PaletteNeutralDark,\n\n ...(isDisabled && {\n color: odysseyDesignTokens.TypographyColorDisabled,\n p: {\n color: odysseyDesignTokens.TypographyColorDisabled,\n },\n a: {\n color: `${odysseyDesignTokens.TypographyColorDisabled} !important`,\n },\n }),\n\n ...(isReadOnly && {\n color: odysseyDesignTokens.HueNeutral700,\n p: {\n color: odysseyDesignTokens.HueNeutral700,\n },\n a: {\n color: `${odysseyDesignTokens.HueNeutral700} !important`,\n },\n }),\n}));\n\nconst SwitchTrack = styled(\"div\", {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n position: \"relative\",\n width: odysseyDesignTokens.Spacing7,\n height: `calc(${odysseyDesignTokens.Spacing4} + ${odysseyDesignTokens.Spacing1})`,\n borderRadius: odysseyDesignTokens.BorderRadiusOuter,\n backgroundColor: odysseyDesignTokens.HueNeutral300,\n transition: `background-color ${odysseyDesignTokens.TransitionDurationMain}`,\n\n ...(isDisabled && {\n backgroundColor: odysseyDesignTokens.HueNeutral200,\n }),\n\n ...(isReadOnly && {\n backgroundColor: odysseyDesignTokens.HueNeutral600,\n }),\n\n ...(isChecked &&\n !isDisabled &&\n !isReadOnly && {\n backgroundColor: odysseyDesignTokens.PaletteSuccessLight,\n }),\n}));\n\nconst SwitchThumb = styled(\"span\", {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => {\n const thumbOffset = toRem(3);\n const trackWidth = stripRem(odysseyDesignTokens.Spacing7);\n const thumbWidth = stripRem(odysseyDesignTokens.Spacing4) - toRem(2);\n const transformDistance = trackWidth - thumbWidth - thumbOffset * 2;\n\n return {\n position: \"absolute\",\n top: \"50%\",\n left: `${thumbOffset}rem`,\n width: `calc(${odysseyDesignTokens.Spacing4} - ${toRem(2)}rem)`,\n height: `calc(${odysseyDesignTokens.Spacing4} - ${toRem(2)}rem)`,\n borderRadius: odysseyDesignTokens.BorderRadiusRound,\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n transform: \"translate3d(0, -50%, 0)\",\n transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,\n\n ...(isDisabled && {\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n }),\n\n ...(isReadOnly && {\n backgroundColor: odysseyDesignTokens.HueNeutral400,\n }),\n\n ...(isChecked && {\n transform: `translate3d(${transformDistance}rem, -50%, 0)`,\n }),\n };\n});\n\nconst SwitchCheckMark = styled(CheckIcon, {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n position: \"absolute\",\n top: \"50%\",\n left: 3,\n width: odysseyDesignTokens.Spacing4,\n transform: \"translateY(-50%)\",\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}`,\n opacity: 0,\n path: {\n fill: odysseyDesignTokens.HueNeutralWhite,\n },\n\n ...(isChecked && {\n opacity: 1,\n }),\n\n ...((isDisabled || isReadOnly) && {\n path: {\n fill: odysseyDesignTokens.HueNeutral50,\n },\n }),\n}));\n\nconst HiddenCheckbox = styled.input<{\n isReadOnly?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens, isReadOnly }) => ({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n margin: 0,\n opacity: 0,\n cursor: isReadOnly ? \"default\" : \"pointer\",\n zIndex: 2,\n\n \"&:focus-visible\": {\n \"~ [data-switch-track='true']\": {\n boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,\n },\n },\n}));\n\ntype OnChangeCallbackArguments = {\n checked: boolean;\n value: string;\n};\n\nexport type SwitchProps = {\n /**\n * Determines whether the Switch is read-only\n */\n isReadOnly?: boolean;\n /**\n * The label text for the Switch\n */\n label: string;\n /**\n * The change event handler for the Switch\n */\n onChange?: ({ checked, value }: OnChangeCallbackArguments) => void;\n /**\n * The value attribute of the Switch\n */\n value: string;\n} & Pick<\n FieldComponentProps,\n \"hint\" | \"HintLinkComponent\" | \"id\" | \"isFullWidth\" | \"isDisabled\" | \"name\"\n> &\n Pick<CheckedFieldProps<MuiSwitchProps>, \"isChecked\" | \"isDefaultChecked\"> &\n Pick<HtmlProps, \"testId\">;\n\ntype SwitchLabelComponentProps = {\n hint: SwitchProps[\"hint\"];\n hintId?: string;\n HintLinkComponent: SwitchProps[\"HintLinkComponent\"];\n inputId: string;\n isDisabled: SwitchProps[\"isDisabled\"];\n isFullWidth: SwitchProps[\"isFullWidth\"];\n isReadOnly: SwitchProps[\"isReadOnly\"];\n label: SwitchProps[\"label\"];\n};\n\nconst SwitchLabel = ({\n hint,\n hintId,\n HintLinkComponent,\n inputId,\n isDisabled,\n label,\n isReadOnly,\n}: SwitchLabelComponentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n return (\n <>\n <StyledSwitchLabel\n htmlFor={inputId}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {label}\n {hint && (\n <FieldHint\n id={hintId}\n LinkComponent={HintLinkComponent}\n text={hint}\n />\n )}\n </StyledSwitchLabel>\n </>\n );\n};\n\nconst MemoizedSwitchLabel = memo(SwitchLabel);\nSwitchLabel.displayName = \"SwitchLabel\";\n\nconst Switch = ({\n hint,\n HintLinkComponent,\n id: idProp,\n isChecked,\n isDefaultChecked,\n isDisabled,\n isFullWidth = false,\n isReadOnly = false,\n label,\n name,\n onChange,\n testId,\n value,\n}: SwitchProps) => {\n const { t } = useTranslation();\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const controlledStateRef = useRef(\n getControlState({\n controlledValue: isChecked,\n uncontrolledValue: isDefaultChecked,\n }),\n );\n const inputValues = useMemo(() => {\n if (controlledStateRef.current === CONTROLLED) {\n return { checked: isChecked };\n }\n return { defaultChecked: isDefaultChecked };\n }, [isDefaultChecked, isChecked]);\n\n const [internalSwitchChecked, setInternalSwitchChecked] = useState(\n controlledStateRef.current === CONTROLLED\n ? Boolean(isChecked)\n : Boolean(isDefaultChecked),\n );\n\n useEffect(() => {\n if (controlledStateRef.current === CONTROLLED) {\n setInternalSwitchChecked(Boolean(isChecked));\n }\n }, [isChecked]);\n\n const inputId = useUniqueId(idProp);\n\n const hintId = hint ? `${inputId}-hint` : undefined;\n const labelElementId = `${inputId}-label`;\n\n const handleOnChange = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (event) => {\n if (isReadOnly) {\n event.preventDefault();\n return;\n }\n const target = event.target;\n const { checked, value } = target;\n setInternalSwitchChecked(checked);\n onChange?.({ checked, value });\n },\n [onChange, setInternalSwitchChecked, isReadOnly],\n );\n\n return (\n <Box\n sx={{\n marginBlockEnd: odysseyDesignTokens.Spacing2,\n \"&:last-child\": {\n marginBlockEnd: 0,\n },\n }}\n >\n <SwitchAndLabelContainer\n isFullWidth={isFullWidth}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <MemoizedSwitchLabel\n hint={hint}\n hintId={hintId}\n HintLinkComponent={HintLinkComponent}\n inputId={inputId}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isReadOnly={isReadOnly}\n label={label}\n />\n <SwitchContainer>\n <HiddenCheckbox\n {...inputValues}\n aria-checked={internalSwitchChecked}\n aria-describedby={hintId}\n aria-label={\n internalSwitchChecked\n ? `${label}: ${t(\"switch.active\")}`\n : `${label}: ${t(\"switch.inactive\")}`\n }\n aria-labelledby={labelElementId}\n data-se={testId}\n disabled={isDisabled}\n id={inputId}\n isReadOnly={isReadOnly}\n name={name ?? inputId}\n odysseyDesignTokens={odysseyDesignTokens}\n onChange={handleOnChange}\n readOnly={isReadOnly}\n type=\"checkbox\"\n value={value}\n />\n <SwitchTrack\n data-switch-track\n isChecked={internalSwitchChecked}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <SwitchThumb\n isChecked={internalSwitchChecked}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <SwitchCheckMark\n isChecked={internalSwitchChecked}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </SwitchTrack>\n </SwitchContainer>\n </SwitchAndLabelContainer>\n </Box>\n );\n};\n\nconst MemoizedSwitch = memo(Switch);\nMemoizedSwitch.displayName = \"Switch\";\n\nexport { MemoizedSwitch as Switch };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Switch.js","names":["styled","memo","useCallback","useEffect","useMemo","useRef","useState","Box","FieldHint","useTranslation","CheckIcon","ComponentControlledState","getControlState","useOdysseyDesignTokens","stripRem","toRem","useUniqueId","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CONTROLLED","nonForwardedProps","SwitchAndLabelContainer","shouldForwardProp","prop","includes","isFullWidth","odysseyDesignTokens","display","alignItems","justifyContent","maxWidth","TypographyLineLengthMax","SwitchContainer","div","position","StyledSwitchLabel","_FormLabel","isDisabled","isReadOnly","margin","color","PaletteNeutralDark","TypographyColorDisabled","p","a","HueNeutral700","SwitchTrack","isChecked","width","Spacing7","height","Spacing4","Spacing1","borderRadius","BorderRadiusOuter","backgroundColor","HueNeutral300","transition","TransitionDurationMain","HueNeutral200","HueNeutral600","PaletteSuccessLight","SwitchThumb","thumbOffset","trackWidth","thumbWidth","transformDistance","top","left","BorderRadiusRound","HueNeutralWhite","transform","HueNeutral50","HueNeutral400","SwitchCheckMark","opacity","path","fill","HiddenCheckbox","input","cursor","zIndex","boxShadow","PalettePrimaryMain","SwitchLabel","hint","hintId","HintLinkComponent","inputId","label","children","htmlFor","id","LinkComponent","text","MemoizedSwitchLabel","displayName","Switch","idProp","isDefaultChecked","name","onChange","testId","value","t","controlledStateRef","controlledValue","uncontrolledValue","inputValues","current","checked","defaultChecked","internalSwitchChecked","setInternalSwitchChecked","Boolean","undefined","labelElementId","handleOnChange","event","preventDefault","target","sx","marginBlockEnd","Spacing2","disabled","readOnly","type","MemoizedSwitch"],"sources":["../../src/Switch.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-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 { FormLabel, SwitchProps as MuiSwitchProps } from \"@mui/material\";\nimport {\n ChangeEventHandler,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport type { HtmlProps } from \"./HtmlProps.js\";\n\nimport { Box } from \"./Box.js\";\nimport { FieldComponentProps } from \"./FieldComponentProps.js\";\nimport { FieldHint } from \"./FieldHint.js\";\nimport { CheckedFieldProps } from \"./FormCheckedProps.js\";\nimport { useTranslation } from \"./i18n.generated/i18n.js\";\nimport { CheckIcon } from \"./icons.generated/index.js\";\nimport { ComponentControlledState, getControlState } from \"./inputUtils.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext.js\";\nimport { stripRem, toRem } from \"./remUtils.js\";\nimport { useUniqueId } from \"./useUniqueId.js\";\n\nconst { CONTROLLED } = ComponentControlledState;\n\nconst nonForwardedProps = [\n \"isChecked\",\n \"isDisabled\",\n \"isFullWidth\",\n \"isReadOnly\",\n \"odysseyDesignTokens\",\n];\n\nconst SwitchAndLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isFullWidth\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isFullWidth, odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n maxWidth: isFullWidth ? \"100%\" : odysseyDesignTokens.TypographyLineLengthMax,\n}));\n\nconst SwitchContainer = styled.div({\n position: \"relative\",\n});\n\nconst StyledSwitchLabel = styled(FormLabel, {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchLabelComponentProps, \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n display: \"block\",\n margin: 0,\n color: odysseyDesignTokens.PaletteNeutralDark,\n\n ...(isDisabled && {\n color: odysseyDesignTokens.TypographyColorDisabled,\n p: {\n color: odysseyDesignTokens.TypographyColorDisabled,\n },\n a: {\n color: `${odysseyDesignTokens.TypographyColorDisabled} !important`,\n },\n }),\n\n ...(isReadOnly && {\n color: odysseyDesignTokens.HueNeutral700,\n p: {\n color: odysseyDesignTokens.HueNeutral700,\n },\n a: {\n color: `${odysseyDesignTokens.HueNeutral700} !important`,\n },\n }),\n}));\n\nconst SwitchTrack = styled(\"div\", {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n position: \"relative\",\n width: odysseyDesignTokens.Spacing7,\n height: `calc(${odysseyDesignTokens.Spacing4} + ${odysseyDesignTokens.Spacing1})`,\n borderRadius: odysseyDesignTokens.BorderRadiusOuter,\n backgroundColor: odysseyDesignTokens.HueNeutral300,\n transition: `background-color ${odysseyDesignTokens.TransitionDurationMain}`,\n\n ...(isDisabled && {\n backgroundColor: odysseyDesignTokens.HueNeutral200,\n }),\n\n ...(isReadOnly && {\n backgroundColor: odysseyDesignTokens.HueNeutral600,\n }),\n\n ...(isChecked &&\n !isDisabled &&\n !isReadOnly && {\n backgroundColor: odysseyDesignTokens.PaletteSuccessLight,\n }),\n}));\n\nconst SwitchThumb = styled(\"span\", {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => {\n const thumbOffset = toRem(3);\n const trackWidth = stripRem(odysseyDesignTokens.Spacing7);\n const thumbWidth = stripRem(odysseyDesignTokens.Spacing4) - toRem(2);\n const transformDistance = trackWidth - thumbWidth - thumbOffset * 2;\n\n return {\n position: \"absolute\",\n top: \"50%\",\n left: `${thumbOffset}rem`,\n width: `calc(${odysseyDesignTokens.Spacing4} - ${toRem(2)}rem)`,\n height: `calc(${odysseyDesignTokens.Spacing4} - ${toRem(2)}rem)`,\n borderRadius: odysseyDesignTokens.BorderRadiusRound,\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n transform: \"translate3d(0, -50%, 0)\",\n transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,\n\n ...(isDisabled && {\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n }),\n\n ...(isReadOnly && {\n backgroundColor: odysseyDesignTokens.HueNeutral400,\n }),\n\n ...(isChecked && {\n transform: `translate3d(${transformDistance}rem, -50%, 0)`,\n }),\n };\n});\n\nconst SwitchCheckMark = styled(CheckIcon, {\n shouldForwardProp: (prop) => !nonForwardedProps.includes(prop),\n})<\n Pick<SwitchProps, \"isChecked\" | \"isDisabled\" | \"isReadOnly\"> & {\n odysseyDesignTokens: DesignTokens;\n }\n>(({ isChecked, isDisabled, isReadOnly, odysseyDesignTokens }) => ({\n position: \"absolute\",\n top: \"50%\",\n left: 3,\n width: odysseyDesignTokens.Spacing4,\n transform: \"translateY(-50%)\",\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}`,\n opacity: 0,\n path: {\n fill: odysseyDesignTokens.HueNeutralWhite,\n },\n\n ...(isChecked && {\n opacity: 1,\n }),\n\n ...((isDisabled || isReadOnly) && {\n path: {\n fill: odysseyDesignTokens.HueNeutral50,\n },\n }),\n}));\n\nconst HiddenCheckbox = styled.input<{\n isReadOnly?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens, isReadOnly }) => ({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n margin: 0,\n opacity: 0,\n cursor: isReadOnly ? \"default\" : \"pointer\",\n zIndex: 2,\n\n \"&:focus-visible\": {\n \"~ [data-switch-track='true']\": {\n boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,\n },\n },\n}));\n\ntype OnChangeCallbackArguments = {\n checked: boolean;\n value: string;\n};\n\nexport type SwitchProps = {\n /**\n * Determines whether the Switch is read-only\n */\n isReadOnly?: boolean;\n /**\n * The label text for the Switch\n */\n label: string;\n /**\n * The change event handler for the Switch\n */\n onChange?: ({ checked, value }: OnChangeCallbackArguments) => void;\n /**\n * The value attribute of the Switch\n */\n value: string;\n} & Pick<\n FieldComponentProps,\n \"hint\" | \"HintLinkComponent\" | \"id\" | \"isFullWidth\" | \"isDisabled\" | \"name\"\n> &\n Pick<CheckedFieldProps<MuiSwitchProps>, \"isChecked\" | \"isDefaultChecked\"> &\n Pick<HtmlProps, \"testId\">;\n\ntype SwitchLabelComponentProps = {\n hint: SwitchProps[\"hint\"];\n hintId?: string;\n HintLinkComponent: SwitchProps[\"HintLinkComponent\"];\n inputId: string;\n isDisabled: SwitchProps[\"isDisabled\"];\n isFullWidth: SwitchProps[\"isFullWidth\"];\n isReadOnly: SwitchProps[\"isReadOnly\"];\n label: SwitchProps[\"label\"];\n};\n\nconst SwitchLabel = ({\n hint,\n hintId,\n HintLinkComponent,\n inputId,\n isDisabled,\n label,\n isReadOnly,\n}: SwitchLabelComponentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n return (\n <>\n <StyledSwitchLabel\n htmlFor={inputId}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {label}\n {hint && (\n <FieldHint\n id={hintId}\n LinkComponent={HintLinkComponent}\n text={hint}\n />\n )}\n </StyledSwitchLabel>\n </>\n );\n};\n\nconst MemoizedSwitchLabel = memo(SwitchLabel);\nSwitchLabel.displayName = \"SwitchLabel\";\n\nconst Switch = ({\n hint,\n HintLinkComponent,\n id: idProp,\n isChecked,\n isDefaultChecked,\n isDisabled,\n isFullWidth = false,\n isReadOnly = false,\n label,\n name,\n onChange,\n testId,\n value,\n}: SwitchProps) => {\n const { t } = useTranslation();\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const controlledStateRef = useRef(\n getControlState({\n controlledValue: isChecked,\n uncontrolledValue: isDefaultChecked,\n }),\n );\n const inputValues = useMemo(() => {\n if (controlledStateRef.current === CONTROLLED) {\n return { checked: isChecked };\n }\n return { defaultChecked: isDefaultChecked };\n }, [isDefaultChecked, isChecked]);\n\n const [internalSwitchChecked, setInternalSwitchChecked] = useState(\n controlledStateRef.current === CONTROLLED\n ? Boolean(isChecked)\n : Boolean(isDefaultChecked),\n );\n\n useEffect(() => {\n if (controlledStateRef.current === CONTROLLED) {\n setInternalSwitchChecked(Boolean(isChecked));\n }\n }, [isChecked]);\n\n const inputId = useUniqueId(idProp);\n\n const hintId = hint ? `${inputId}-hint` : undefined;\n const labelElementId = `${inputId}-label`;\n\n const handleOnChange = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (event) => {\n if (isReadOnly) {\n event.preventDefault();\n return;\n }\n const target = event.target;\n const { checked, value } = target;\n setInternalSwitchChecked(checked);\n onChange?.({ checked, value });\n },\n [onChange, setInternalSwitchChecked, isReadOnly],\n );\n\n return (\n <Box\n sx={{\n marginBlockEnd: odysseyDesignTokens.Spacing2,\n \"&:last-child\": {\n marginBlockEnd: 0,\n },\n }}\n >\n <SwitchAndLabelContainer\n isFullWidth={isFullWidth}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <MemoizedSwitchLabel\n hint={hint}\n hintId={hintId}\n HintLinkComponent={HintLinkComponent}\n inputId={inputId}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isReadOnly={isReadOnly}\n label={label}\n />\n <SwitchContainer>\n <HiddenCheckbox\n {...inputValues}\n aria-checked={internalSwitchChecked}\n aria-describedby={hintId}\n aria-label={\n internalSwitchChecked\n ? `${label}: ${t(\"switch.active\")}`\n : `${label}: ${t(\"switch.inactive\")}`\n }\n aria-labelledby={labelElementId}\n data-se={testId}\n disabled={isDisabled}\n id={inputId}\n isReadOnly={isReadOnly}\n name={name ?? inputId}\n odysseyDesignTokens={odysseyDesignTokens}\n onChange={handleOnChange}\n readOnly={isReadOnly}\n type=\"checkbox\"\n value={value}\n />\n <SwitchTrack\n data-switch-track\n isChecked={internalSwitchChecked}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <SwitchThumb\n isChecked={internalSwitchChecked}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <SwitchCheckMark\n isChecked={internalSwitchChecked}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </SwitchTrack>\n </SwitchContainer>\n </SwitchAndLabelContainer>\n </Box>\n );\n};\n\nconst MemoizedSwitch = memo(Switch);\nMemoizedSwitch.displayName = \"Switch\";\n\nexport { MemoizedSwitch as Switch };\n"],"mappings":"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","ignoreList":[]}
package/dist/esm/Tabs.js CHANGED
@@ -17,26 +17,6 @@ import { Badge } from "./Badge.js";
17
17
  import { Box } from "./Box.js";
18
18
  import { useOdysseyDesignTokens } from "./OdysseyDesignTokensContext.js";
19
19
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const TabsTestSelector = {
21
- children: {
22
- tabItem: {
23
- elementSelector: {
24
- method: "ByRole",
25
- options: {
26
- label: "name"
27
- },
28
- role: "tab"
29
- }
30
- }
31
- },
32
- elementSelector: {
33
- method: "ByRole",
34
- options: {
35
- label: "name"
36
- },
37
- role: "tablist"
38
- }
39
- };
40
20
  const TabLabel = ({
41
21
  label,
42
22
  notificationCount,