@okta/odyssey-react-mui 1.21.2 → 1.22.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 (432) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/Autocomplete.js +76 -38
  3. package/dist/Autocomplete.js.map +1 -1
  4. package/dist/Checkbox.js +26 -11
  5. package/dist/Checkbox.js.map +1 -1
  6. package/dist/CheckboxGroup.js +14 -3
  7. package/dist/CheckboxGroup.js.map +1 -1
  8. package/dist/DataTable/DataTable.js +10 -2
  9. package/dist/DataTable/DataTable.js.map +1 -1
  10. package/dist/DataTable/useScrollIndication.js +2 -2
  11. package/dist/DataTable/useScrollIndication.js.map +1 -1
  12. package/dist/Field.js +3 -1
  13. package/dist/Field.js.map +1 -1
  14. package/dist/OdysseyCacheProvider.js +4 -3
  15. package/dist/OdysseyCacheProvider.js.map +1 -1
  16. package/dist/OdysseyProvider.js +6 -3
  17. package/dist/OdysseyProvider.js.map +1 -1
  18. package/dist/OdysseyThemeProvider.js +3 -2
  19. package/dist/OdysseyThemeProvider.js.map +1 -1
  20. package/dist/Radio.js +34 -7
  21. package/dist/Radio.js.map +1 -1
  22. package/dist/RadioGroup.js +17 -5
  23. package/dist/RadioGroup.js.map +1 -1
  24. package/dist/Select.js +53 -31
  25. package/dist/Select.js.map +1 -1
  26. package/dist/ToastStack.js.map +1 -1
  27. package/dist/{createShadowRootElement.js → createShadowDomElements.js} +22 -6
  28. package/dist/createShadowDomElements.js.map +1 -0
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.scss +5 -5
  32. package/dist/labs/AppTile.js +124 -0
  33. package/dist/labs/AppTile.js.map +1 -0
  34. package/dist/labs/DataView/BulkActionsMenu.js.map +1 -0
  35. package/dist/labs/{DataComponents/StackContent.js → DataView/CardLayoutContent.js} +14 -14
  36. package/dist/labs/DataView/CardLayoutContent.js.map +1 -0
  37. package/dist/labs/{DataComponents/StackCard.js → DataView/DataCard.js} +6 -6
  38. package/dist/labs/DataView/DataCard.js.map +1 -0
  39. package/dist/labs/{DataComponents → DataView}/DataTable.js +6 -2
  40. package/dist/labs/DataView/DataTable.js.map +1 -0
  41. package/dist/labs/{DataComponents → DataView}/DataView.js +25 -15
  42. package/dist/labs/DataView/DataView.js.map +1 -0
  43. package/dist/labs/DataView/DetailPanel.js.map +1 -0
  44. package/dist/labs/DataView/LayoutSwitcher.js.map +1 -0
  45. package/dist/labs/DataView/RowActions.js.map +1 -0
  46. package/dist/labs/{DataComponents/TableContent.js → DataView/TableLayoutContent.js} +17 -17
  47. package/dist/labs/DataView/TableLayoutContent.js.map +1 -0
  48. package/dist/labs/{DataComponents → DataView}/TableSettings.js +2 -2
  49. package/dist/labs/DataView/TableSettings.js.map +1 -0
  50. package/dist/labs/DataView/componentTypes.js.map +1 -0
  51. package/dist/labs/{DataComponents → DataView}/constants.js +2 -2
  52. package/dist/labs/DataView/constants.js.map +1 -0
  53. package/dist/labs/DataView/dataTypes.js.map +1 -0
  54. package/dist/labs/DataView/fetchData.js.map +1 -0
  55. package/dist/labs/{DataComponents → DataView}/index.js +0 -1
  56. package/dist/labs/DataView/index.js.map +1 -0
  57. package/dist/labs/DataView/tableConstants.js.map +1 -0
  58. package/dist/labs/DataView/useFilterConversion.js.map +1 -0
  59. package/dist/labs/SideNav/CollapseIcon.js +44 -0
  60. package/dist/labs/SideNav/CollapseIcon.js.map +1 -0
  61. package/dist/labs/SideNav/SideNav.js +246 -0
  62. package/dist/labs/SideNav/SideNav.js.map +1 -0
  63. package/dist/labs/SideNav/SideNavFooterContent.js +49 -0
  64. package/dist/labs/SideNav/SideNavFooterContent.js.map +1 -0
  65. package/dist/labs/SideNav/SideNavHeader.js +58 -0
  66. package/dist/labs/SideNav/SideNavHeader.js.map +1 -0
  67. package/dist/labs/SideNav/SideNavItemContent.js +157 -0
  68. package/dist/labs/SideNav/SideNavItemContent.js.map +1 -0
  69. package/dist/labs/SideNav/SideNavItemLinkContent.js +71 -0
  70. package/dist/labs/SideNav/SideNavItemLinkContent.js.map +1 -0
  71. package/dist/labs/SideNav/index.js +14 -0
  72. package/dist/labs/SideNav/index.js.map +1 -0
  73. package/dist/labs/SideNav/types.js +2 -0
  74. package/dist/labs/SideNav/types.js.map +1 -0
  75. package/dist/labs/Switch.js +70 -16
  76. package/dist/labs/Switch.js.map +1 -1
  77. package/dist/labs/index.js +3 -2
  78. package/dist/labs/index.js.map +1 -1
  79. package/dist/properties/ts/odyssey-react-mui_cs.js +17 -3
  80. package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  81. package/dist/properties/ts/odyssey-react-mui_da.js +17 -3
  82. package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
  83. package/dist/properties/ts/odyssey-react-mui_de.js +16 -2
  84. package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
  85. package/dist/properties/ts/odyssey-react-mui_el.js +18 -4
  86. package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
  87. package/dist/properties/ts/odyssey-react-mui_es.js +17 -3
  88. package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
  89. package/dist/properties/ts/odyssey-react-mui_fi.js +17 -3
  90. package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  91. package/dist/properties/ts/odyssey-react-mui_fr.js +17 -3
  92. package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  93. package/dist/properties/ts/odyssey-react-mui_ht.js +18 -4
  94. package/dist/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  95. package/dist/properties/ts/odyssey-react-mui_hu.js +17 -3
  96. package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  97. package/dist/properties/ts/odyssey-react-mui_id.js +17 -3
  98. package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
  99. package/dist/properties/ts/odyssey-react-mui_it.js +17 -3
  100. package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
  101. package/dist/properties/ts/odyssey-react-mui_ja.js +16 -2
  102. package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  103. package/dist/properties/ts/odyssey-react-mui_ko.js +16 -2
  104. package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  105. package/dist/properties/ts/odyssey-react-mui_ms.js +17 -3
  106. package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  107. package/dist/properties/ts/odyssey-react-mui_nb.js +17 -3
  108. package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  109. package/dist/properties/ts/odyssey-react-mui_nl_NL.js +17 -3
  110. package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  111. package/dist/properties/ts/odyssey-react-mui_pl.js +17 -3
  112. package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  113. package/dist/properties/ts/odyssey-react-mui_pt_BR.js +17 -3
  114. package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  115. package/dist/properties/ts/odyssey-react-mui_ro.js +17 -3
  116. package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  117. package/dist/properties/ts/odyssey-react-mui_ru.js +17 -3
  118. package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  119. package/dist/properties/ts/odyssey-react-mui_sv.js +17 -3
  120. package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  121. package/dist/properties/ts/odyssey-react-mui_th.js +16 -2
  122. package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
  123. package/dist/properties/ts/odyssey-react-mui_tr.js +17 -3
  124. package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  125. package/dist/properties/ts/odyssey-react-mui_uk.js +17 -3
  126. package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  127. package/dist/properties/ts/odyssey-react-mui_vi.js +17 -3
  128. package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  129. package/dist/properties/ts/odyssey-react-mui_zh_CN.js +16 -2
  130. package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  131. package/dist/properties/ts/odyssey-react-mui_zh_TW.js +16 -2
  132. package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  133. package/dist/src/Autocomplete.d.ts.map +1 -1
  134. package/dist/src/Checkbox.d.ts +2 -2
  135. package/dist/src/Checkbox.d.ts.map +1 -1
  136. package/dist/src/CheckboxGroup.d.ts +3 -3
  137. package/dist/src/CheckboxGroup.d.ts.map +1 -1
  138. package/dist/src/DataTable/DataTable.d.ts +9 -1
  139. package/dist/src/DataTable/DataTable.d.ts.map +1 -1
  140. package/dist/src/Field.d.ts +3 -2
  141. package/dist/src/Field.d.ts.map +1 -1
  142. package/dist/src/OdysseyCacheProvider.d.ts +7 -3
  143. package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
  144. package/dist/src/OdysseyProvider.d.ts +1 -1
  145. package/dist/src/OdysseyProvider.d.ts.map +1 -1
  146. package/dist/src/OdysseyThemeProvider.d.ts +3 -1
  147. package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
  148. package/dist/src/Radio.d.ts +6 -8
  149. package/dist/src/Radio.d.ts.map +1 -1
  150. package/dist/src/RadioGroup.d.ts +4 -5
  151. package/dist/src/RadioGroup.d.ts.map +1 -1
  152. package/dist/src/Select.d.ts +2 -2
  153. package/dist/src/Select.d.ts.map +1 -1
  154. package/dist/src/ToastStack.d.ts +2 -2
  155. package/dist/src/ToastStack.d.ts.map +1 -1
  156. package/dist/src/{createShadowRootElement.d.ts → createShadowDomElements.d.ts} +6 -1
  157. package/dist/src/createShadowDomElements.d.ts.map +1 -0
  158. package/dist/src/index.d.ts +1 -1
  159. package/dist/src/labs/AppTile.d.ts +39 -0
  160. package/dist/src/labs/AppTile.d.ts.map +1 -0
  161. package/dist/src/labs/DataView/BulkActionsMenu.d.ts.map +1 -0
  162. package/dist/src/labs/{DataComponents/StackContent.d.ts → DataView/CardLayoutContent.d.ts} +7 -7
  163. package/dist/src/labs/DataView/CardLayoutContent.d.ts.map +1 -0
  164. package/dist/src/labs/{DataComponents/StackCard.d.ts → DataView/DataCard.d.ts} +4 -4
  165. package/dist/src/labs/DataView/DataCard.d.ts.map +1 -0
  166. package/dist/src/labs/DataView/DataTable.d.ts +16 -0
  167. package/dist/src/labs/DataView/DataTable.d.ts.map +1 -0
  168. package/dist/src/labs/{DataComponents → DataView}/DataView.d.ts +1 -1
  169. package/dist/src/labs/DataView/DataView.d.ts.map +1 -0
  170. package/dist/src/labs/{DataComponents → DataView}/DetailPanel.d.ts +2 -2
  171. package/dist/src/labs/DataView/DetailPanel.d.ts.map +1 -0
  172. package/dist/src/labs/DataView/LayoutSwitcher.d.ts.map +1 -0
  173. package/dist/src/labs/DataView/RowActions.d.ts.map +1 -0
  174. package/dist/src/labs/{DataComponents/TableContent.d.ts → DataView/TableLayoutContent.d.ts} +7 -7
  175. package/dist/src/labs/DataView/TableLayoutContent.d.ts.map +1 -0
  176. package/dist/src/labs/{DataComponents → DataView}/TableSettings.d.ts +3 -3
  177. package/dist/src/labs/DataView/TableSettings.d.ts.map +1 -0
  178. package/dist/src/labs/{DataComponents → DataView}/componentTypes.d.ts +11 -9
  179. package/dist/src/labs/DataView/componentTypes.d.ts.map +1 -0
  180. package/dist/src/labs/{DataComponents → DataView}/constants.d.ts +1 -1
  181. package/dist/src/labs/DataView/constants.d.ts.map +1 -0
  182. package/dist/src/labs/DataView/dataTypes.d.ts.map +1 -0
  183. package/dist/src/labs/DataView/fetchData.d.ts.map +1 -0
  184. package/dist/src/labs/{DataComponents → DataView}/index.d.ts +0 -1
  185. package/dist/src/labs/DataView/index.d.ts.map +1 -0
  186. package/dist/src/labs/DataView/tableConstants.d.ts.map +1 -0
  187. package/dist/src/labs/{DataComponents → DataView}/useFilterConversion.d.ts +2 -2
  188. package/dist/src/labs/DataView/useFilterConversion.d.ts.map +1 -0
  189. package/dist/src/labs/SideNav/CollapseIcon.d.ts +17 -0
  190. package/dist/src/labs/SideNav/CollapseIcon.d.ts.map +1 -0
  191. package/dist/src/labs/SideNav/SideNav.d.ts +15 -0
  192. package/dist/src/labs/SideNav/SideNav.d.ts.map +1 -0
  193. package/dist/src/labs/SideNav/SideNavFooterContent.d.ts +17 -0
  194. package/dist/src/labs/SideNav/SideNavFooterContent.d.ts.map +1 -0
  195. package/dist/src/labs/SideNav/SideNavHeader.d.ts +16 -0
  196. package/dist/src/labs/SideNav/SideNavHeader.d.ts.map +1 -0
  197. package/dist/src/labs/SideNav/SideNavItemContent.d.ts +33 -0
  198. package/dist/src/labs/SideNav/SideNavItemContent.d.ts.map +1 -0
  199. package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts +16 -0
  200. package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts.map +1 -0
  201. package/dist/src/labs/SideNav/index.d.ts +14 -0
  202. package/dist/src/labs/SideNav/index.d.ts.map +1 -0
  203. package/dist/src/labs/{SideNav.d.ts → SideNav/types.d.ts} +31 -33
  204. package/dist/src/labs/SideNav/types.d.ts.map +1 -0
  205. package/dist/src/labs/Switch.d.ts +5 -1
  206. package/dist/src/labs/Switch.d.ts.map +1 -1
  207. package/dist/src/labs/index.d.ts +2 -1
  208. package/dist/src/labs/index.d.ts.map +1 -1
  209. package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +15 -1
  210. package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  211. package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +15 -1
  212. package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  213. package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +15 -1
  214. package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  215. package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +15 -1
  216. package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  217. package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +15 -1
  218. package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  219. package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +15 -1
  220. package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  221. package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +15 -1
  222. package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  223. package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts +16 -2
  224. package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  225. package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +15 -1
  226. package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  227. package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +15 -1
  228. package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  229. package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +15 -1
  230. package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  231. package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +15 -1
  232. package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  233. package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +15 -1
  234. package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  235. package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +15 -1
  236. package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  237. package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +15 -1
  238. package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  239. package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +15 -1
  240. package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  241. package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +15 -1
  242. package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  243. package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +15 -1
  244. package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  245. package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +15 -1
  246. package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  247. package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +15 -1
  248. package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  249. package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +15 -1
  250. package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  251. package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +15 -1
  252. package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  253. package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +15 -1
  254. package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  255. package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +15 -1
  256. package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  257. package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +15 -1
  258. package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  259. package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +15 -1
  260. package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  261. package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +15 -1
  262. package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  263. package/dist/src/theme/components.d.ts +3 -1
  264. package/dist/src/theme/components.d.ts.map +1 -1
  265. package/dist/src/theme/createOdysseyMuiTheme.d.ts +3 -1
  266. package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -1
  267. package/dist/theme/components.js +232 -146
  268. package/dist/theme/components.js.map +1 -1
  269. package/dist/theme/createOdysseyMuiTheme.js +3 -2
  270. package/dist/theme/createOdysseyMuiTheme.js.map +1 -1
  271. package/dist/tsconfig.production.tsbuildinfo +1 -1
  272. package/package.json +3 -4
  273. package/src/Autocomplete.tsx +108 -45
  274. package/src/Checkbox.tsx +39 -9
  275. package/src/CheckboxGroup.tsx +20 -4
  276. package/src/DataTable/DataTable.tsx +24 -1
  277. package/src/DataTable/useScrollIndication.tsx +2 -2
  278. package/src/Field.tsx +5 -2
  279. package/src/OdysseyCacheProvider.tsx +18 -4
  280. package/src/OdysseyProvider.tsx +6 -3
  281. package/src/OdysseyThemeProvider.tsx +6 -2
  282. package/src/Radio.tsx +42 -13
  283. package/src/RadioGroup.tsx +26 -7
  284. package/src/Select.tsx +78 -45
  285. package/src/ToastStack.tsx +2 -2
  286. package/src/{createShadowRootElement.ts → createShadowDomElements.ts} +24 -5
  287. package/src/index.ts +1 -1
  288. package/src/labs/AppTile.tsx +200 -0
  289. package/src/labs/{DataComponents/StackContent.tsx → DataView/CardLayoutContent.tsx} +24 -19
  290. package/src/labs/{DataComponents/StackCard.tsx → DataView/DataCard.tsx} +7 -7
  291. package/src/labs/{DataComponents → DataView}/DataTable.tsx +8 -4
  292. package/src/labs/{DataComponents → DataView}/DataView.tsx +46 -17
  293. package/src/labs/{DataComponents → DataView}/DetailPanel.tsx +2 -2
  294. package/src/labs/{DataComponents/TableContent.tsx → DataView/TableLayoutContent.tsx} +31 -26
  295. package/src/labs/{DataComponents → DataView}/TableSettings.tsx +5 -4
  296. package/src/labs/{DataComponents → DataView}/componentTypes.ts +11 -9
  297. package/src/labs/{DataComponents → DataView}/constants.tsx +2 -2
  298. package/src/labs/{DataComponents → DataView}/index.tsx +0 -1
  299. package/src/labs/{DataComponents → DataView}/useFilterConversion.ts +2 -2
  300. package/src/labs/SideNav/CollapseIcon.tsx +48 -0
  301. package/src/labs/SideNav/SideNav.tsx +350 -0
  302. package/src/labs/SideNav/SideNavFooterContent.tsx +64 -0
  303. package/src/labs/SideNav/SideNavHeader.tsx +65 -0
  304. package/src/labs/SideNav/SideNavItemContent.tsx +216 -0
  305. package/src/labs/SideNav/SideNavItemLinkContent.tsx +87 -0
  306. package/src/labs/SideNav/index.ts +15 -0
  307. package/src/labs/SideNav/types.ts +125 -0
  308. package/src/labs/Switch.tsx +85 -31
  309. package/src/labs/index.ts +3 -1
  310. package/src/properties/translations/odyssey-react-mui_cs.properties +15 -3
  311. package/src/properties/translations/odyssey-react-mui_da.properties +15 -3
  312. package/src/properties/translations/odyssey-react-mui_de.properties +14 -2
  313. package/src/properties/translations/odyssey-react-mui_el.properties +16 -4
  314. package/src/properties/translations/odyssey-react-mui_es.properties +15 -3
  315. package/src/properties/translations/odyssey-react-mui_fi.properties +15 -3
  316. package/src/properties/translations/odyssey-react-mui_fr.properties +15 -3
  317. package/src/properties/translations/odyssey-react-mui_ht.properties +17 -6
  318. package/src/properties/translations/odyssey-react-mui_hu.properties +15 -3
  319. package/src/properties/translations/odyssey-react-mui_id.properties +15 -3
  320. package/src/properties/translations/odyssey-react-mui_it.properties +15 -3
  321. package/src/properties/translations/odyssey-react-mui_ja.properties +14 -2
  322. package/src/properties/translations/odyssey-react-mui_ko.properties +14 -2
  323. package/src/properties/translations/odyssey-react-mui_ms.properties +15 -3
  324. package/src/properties/translations/odyssey-react-mui_nb.properties +15 -3
  325. package/src/properties/translations/odyssey-react-mui_nl_NL.properties +15 -3
  326. package/src/properties/translations/odyssey-react-mui_pl.properties +15 -3
  327. package/src/properties/translations/odyssey-react-mui_pt_BR.properties +15 -3
  328. package/src/properties/translations/odyssey-react-mui_ro.properties +15 -3
  329. package/src/properties/translations/odyssey-react-mui_ru.properties +15 -3
  330. package/src/properties/translations/odyssey-react-mui_sv.properties +15 -3
  331. package/src/properties/translations/odyssey-react-mui_th.properties +14 -2
  332. package/src/properties/translations/odyssey-react-mui_tr.properties +15 -3
  333. package/src/properties/translations/odyssey-react-mui_uk.properties +15 -3
  334. package/src/properties/translations/odyssey-react-mui_vi.properties +15 -3
  335. package/src/properties/translations/odyssey-react-mui_zh_CN.properties +14 -2
  336. package/src/properties/translations/odyssey-react-mui_zh_TW.properties +14 -2
  337. package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
  338. package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
  339. package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
  340. package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
  341. package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
  342. package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
  343. package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
  344. package/src/properties/ts/odyssey-react-mui_ht.ts +1 -1
  345. package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
  346. package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
  347. package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
  348. package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
  349. package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
  350. package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
  351. package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
  352. package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
  353. package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
  354. package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
  355. package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
  356. package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
  357. package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
  358. package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
  359. package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
  360. package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
  361. package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
  362. package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
  363. package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
  364. package/src/theme/components.tsx +240 -150
  365. package/src/theme/createOdysseyMuiTheme.ts +4 -1
  366. package/dist/createShadowRootElement.js.map +0 -1
  367. package/dist/labs/DataComponents/BulkActionsMenu.js.map +0 -1
  368. package/dist/labs/DataComponents/DataStack.js +0 -85
  369. package/dist/labs/DataComponents/DataStack.js.map +0 -1
  370. package/dist/labs/DataComponents/DataTable.js.map +0 -1
  371. package/dist/labs/DataComponents/DataView.js.map +0 -1
  372. package/dist/labs/DataComponents/DetailPanel.js.map +0 -1
  373. package/dist/labs/DataComponents/LayoutSwitcher.js.map +0 -1
  374. package/dist/labs/DataComponents/RowActions.js.map +0 -1
  375. package/dist/labs/DataComponents/StackCard.js.map +0 -1
  376. package/dist/labs/DataComponents/StackContent.js.map +0 -1
  377. package/dist/labs/DataComponents/TableContent.js.map +0 -1
  378. package/dist/labs/DataComponents/TableSettings.js.map +0 -1
  379. package/dist/labs/DataComponents/componentTypes.js.map +0 -1
  380. package/dist/labs/DataComponents/constants.js.map +0 -1
  381. package/dist/labs/DataComponents/dataTypes.js.map +0 -1
  382. package/dist/labs/DataComponents/fetchData.js.map +0 -1
  383. package/dist/labs/DataComponents/index.js.map +0 -1
  384. package/dist/labs/DataComponents/tableConstants.js.map +0 -1
  385. package/dist/labs/DataComponents/useFilterConversion.js.map +0 -1
  386. package/dist/labs/SideNav.js +0 -478
  387. package/dist/labs/SideNav.js.map +0 -1
  388. package/dist/src/createShadowRootElement.d.ts.map +0 -1
  389. package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts.map +0 -1
  390. package/dist/src/labs/DataComponents/DataStack.d.ts +0 -20
  391. package/dist/src/labs/DataComponents/DataStack.d.ts.map +0 -1
  392. package/dist/src/labs/DataComponents/DataTable.d.ts +0 -16
  393. package/dist/src/labs/DataComponents/DataTable.d.ts.map +0 -1
  394. package/dist/src/labs/DataComponents/DataView.d.ts.map +0 -1
  395. package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +0 -1
  396. package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts.map +0 -1
  397. package/dist/src/labs/DataComponents/RowActions.d.ts.map +0 -1
  398. package/dist/src/labs/DataComponents/StackCard.d.ts.map +0 -1
  399. package/dist/src/labs/DataComponents/StackContent.d.ts.map +0 -1
  400. package/dist/src/labs/DataComponents/TableContent.d.ts.map +0 -1
  401. package/dist/src/labs/DataComponents/TableSettings.d.ts.map +0 -1
  402. package/dist/src/labs/DataComponents/componentTypes.d.ts.map +0 -1
  403. package/dist/src/labs/DataComponents/constants.d.ts.map +0 -1
  404. package/dist/src/labs/DataComponents/dataTypes.d.ts.map +0 -1
  405. package/dist/src/labs/DataComponents/fetchData.d.ts.map +0 -1
  406. package/dist/src/labs/DataComponents/index.d.ts.map +0 -1
  407. package/dist/src/labs/DataComponents/tableConstants.d.ts.map +0 -1
  408. package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +0 -1
  409. package/dist/src/labs/SideNav.d.ts.map +0 -1
  410. package/src/labs/DataComponents/DataStack.tsx +0 -105
  411. package/src/labs/SideNav.tsx +0 -745
  412. /package/dist/labs/{DataComponents → DataView}/BulkActionsMenu.js +0 -0
  413. /package/dist/labs/{DataComponents → DataView}/DetailPanel.js +0 -0
  414. /package/dist/labs/{DataComponents → DataView}/LayoutSwitcher.js +0 -0
  415. /package/dist/labs/{DataComponents → DataView}/RowActions.js +0 -0
  416. /package/dist/labs/{DataComponents → DataView}/componentTypes.js +0 -0
  417. /package/dist/labs/{DataComponents → DataView}/dataTypes.js +0 -0
  418. /package/dist/labs/{DataComponents → DataView}/fetchData.js +0 -0
  419. /package/dist/labs/{DataComponents → DataView}/tableConstants.js +0 -0
  420. /package/dist/labs/{DataComponents → DataView}/useFilterConversion.js +0 -0
  421. /package/dist/src/labs/{DataComponents → DataView}/BulkActionsMenu.d.ts +0 -0
  422. /package/dist/src/labs/{DataComponents → DataView}/LayoutSwitcher.d.ts +0 -0
  423. /package/dist/src/labs/{DataComponents → DataView}/RowActions.d.ts +0 -0
  424. /package/dist/src/labs/{DataComponents → DataView}/dataTypes.d.ts +0 -0
  425. /package/dist/src/labs/{DataComponents → DataView}/fetchData.d.ts +0 -0
  426. /package/dist/src/labs/{DataComponents → DataView}/tableConstants.d.ts +0 -0
  427. /package/src/labs/{DataComponents → DataView}/BulkActionsMenu.tsx +0 -0
  428. /package/src/labs/{DataComponents → DataView}/LayoutSwitcher.tsx +0 -0
  429. /package/src/labs/{DataComponents → DataView}/RowActions.tsx +0 -0
  430. /package/src/labs/{DataComponents → DataView}/dataTypes.ts +0 -0
  431. /package/src/labs/{DataComponents → DataView}/fetchData.ts +0 -0
  432. /package/src/labs/{DataComponents → DataView}/tableConstants.tsx +0 -0
@@ -1 +1 @@
1
- export const translation = {"breadcrumbs.home.text":"首頁","breadcrumbs.label.text":"軌跡","close.text":"關閉","clear.text":"清除","picker.calendar.navigation.nextmonth":"下個月","picker.calendar.navigation.previousmonth":"上個月","picker.date.toolbar.title":"已選取日期","picker.daterange.toolbar.title":"選取日期範圍","picker.datetime.toolbar.title":"選取日期與時間","picker.field.placeholder.day":"DD","picker.field.placeholder.hours":"hh","picker.field.placeholder.meridiem":"aa","picker.field.placeholder.minutes":"mm","picker.field.placeholder.month":"MM","picker.field.placeholder.seconds":"ss","picker.field.placeholder.year":"YYYY","picker.labels.action.apply":"套用","picker.labels.action.cancel":"取消","picker.labels.action.today":"今天","picker.labels.clock.empty":"沒有選取時間","picker.labels.clock.hours":"小時","picker.labels.clock.minutes":"秒","picker.labels.clock.selected":"選取的時間是","picker.labels.date.choose":"選擇日期","picker.labels.date.selected":"選取的日期是","picker.labels.empty":"空白","picker.labels.field.clear":"清除值","picker.labels.range.end":"結束","picker.labels.range.enddate":"結束日期","picker.labels.range.endtime":"結束時間","picker.labels.range.start":"開始","picker.labels.range.startdate":"開始日期","picker.labels.range.starttime":"開始時間","picker.labels.select":"選取","picker.labels.table.date":"挑選日期","picker.labels.table.time":"挑選時間","picker.labels.time.choose":"選擇時間","picker.time.toolbar.title":"選取時間","picker.view.name.day":"天","picker.view.name.hours":"小時","picker.view.name.meridiem":"十二小時制","picker.view.name.minutes":"分鐘","picker.view.name.month":"個月","picker.view.name.seconds":"秒","picker.view.name.weekday":"星期幾","picker.view.name.year":"年","picker.view.navigation.open.nextview":"開啟下一個檢視","picker.view.navigation.open.previousview":"開啟上一個檢視","picker.view.navigation.switch.calendarview":"年檢視已開啟,切換至行事曆檢視","picker.view.navigation.switch.yearview":"行事曆檢視已開啟,切換至年檢視","fielderror.screenreader.text":"錯誤","fieldlabel.optional.text":"選擇性","fieldlabel.required.text":"必要","filters.clear.label":"清除篩選條件","filters.filter.any":"任何","filters.filter.clear":"清除篩選條件","filters.filters.arialabel":"篩選條件","filters.menuitem.any":"任何 {{label}}","filters.menuitem.selected":"已選取 {{selected}}","filters.search.label":"搜尋","fileupload.button.text":"新增檔案","fileupload.prompt.text":"將檔案拖放到此處或按一下以新增檔案","fileupload.removefile.text":"移除檔案","passwordfield.icon.label.hide":"隱藏密碼","passwordfield.icon.label.show":"顯示密碼","severity.error":"錯誤","severity.info":"資訊","severity.success":"成功","severity.warning":"警告","switch.active":"作用中","switch.inactive":"非作用中","table.actions":"動作","table.columnvisibility.arialabel":"顯示/隱藏欄","table.density.arialabel":"表格密度","table.draghandle.arialabel":"拖曳列以重新排序。或者按下空白鍵或 Enter 鍵以開始和停止重新排序,按下 Esc 鍵可取消。","table.draghandle.tooltip":"拖曳列或按下空白鍵/Enter 鍵即可開始和停止重新排序","table.error":"載入資料時發生錯誤。","table.fetchedrows.text":"已擷取 {{totalRows}} 列","table.fetchedrows.text_plural":"已擷取總共 {{totalRows}} 列","table.moreactions.arialabel":"更多動作","table.noresults.heading":"沒有結果。","table.noresults.text":"請嘗試不同的查詢。","table.reorder.backward":"往後傳送","table.reorder.forward":"往前帶","table.reorder.toback":"向後傳送","table.reorder.tofront":"向前帶","table.rows.text":"{{totalRows}} 列","table.rows.text_plural":"{{totalRows}} 列","pagination.loadmore":"顯示更多","pagination.next":"下一頁","pagination.previous":"上一頁","pagination.page":"頁面","pagination.rowsperpage":"每頁列數","pagination.rowswithtotal":"第 {{firstRow}}-{{lastRow}} 列,總共 {{totalRows}} 列","pagination.rowswithouttotal":"第 {{firstRow}}-{{lastRow}} 列"};
1
+ export const translation = {"breadcrumbs.home.text":"首頁","breadcrumbs.label.text":"軌跡","close.text":"關閉","clear.text":"清除","open.text":"開啟","picker.calendar.navigation.nextmonth":"下個月","picker.calendar.navigation.previousmonth":"上個月","picker.date.toolbar.title":"已選取日期","picker.daterange.toolbar.title":"選取日期範圍","picker.datetime.toolbar.title":"選取日期與時間","picker.error.invalid":"修正日期格式,或從行事曆中選取日期。","picker.error.mindate":"輸入的日期早於允許的日期。從行事曆中的可用範圍選取日期。","picker.error.maxdate":"輸入的日期晚於允許的日期。從行事曆中的可用範圍選取日期。","picker.field.placeholder.day":"DD","picker.field.placeholder.hours":"hh","picker.field.placeholder.meridiem":"aa","picker.field.placeholder.minutes":"mm","picker.field.placeholder.month":"MM","picker.field.placeholder.seconds":"ss","picker.field.placeholder.year":"YYYY","picker.labels.action.apply":"套用","picker.labels.action.cancel":"取消","picker.labels.action.today":"今天","picker.labels.clock.empty":"沒有選取時間","picker.labels.clock.hours":"小時","picker.labels.clock.minutes":"秒","picker.labels.clock.selected":"選取的時間是","picker.labels.date.choose":"選擇日期","picker.labels.date.selected":"選取的日期是","picker.labels.empty":"空白","picker.labels.field.clear":"清除值","picker.labels.range.end":"結束","picker.labels.range.enddate":"結束日期","picker.labels.range.endtime":"結束時間","picker.labels.range.start":"開始","picker.labels.range.startdate":"開始日期","picker.labels.range.starttime":"開始時間","picker.labels.select":"選取","picker.labels.table.date":"挑選日期","picker.labels.table.time":"挑選時間","picker.labels.time.choose":"選擇時間","picker.time.toolbar.title":"選取時間","picker.view.name.day":"天","picker.view.name.hours":"小時","picker.view.name.meridiem":"十二小時制","picker.view.name.minutes":"分鐘","picker.view.name.month":"個月","picker.view.name.seconds":"秒","picker.view.name.weekday":"星期幾","picker.view.name.year":"年","picker.view.navigation.open.nextview":"開啟下一個檢視","picker.view.navigation.open.previousview":"開啟上一個檢視","picker.view.navigation.switch.calendarview":"年檢視已開啟,切換至行事曆檢視","picker.view.navigation.switch.yearview":"行事曆檢視已開啟,切換至年檢視","fielderror.screenreader.text":"錯誤","fieldlabel.optional.text":"選擇性","fieldlabel.required.text":"必要","filters.clear.label":"清除篩選條件","filters.filter.any":"任何","filters.filter.clear":"清除篩選條件","filters.filters.arialabel":"篩選條件","filters.menuitem.any":"任何 {{label}}","filters.menuitem.selected":"已選取 {{selected}}","filters.search.label":"搜尋","fileupload.button.text":"新增檔案","fileupload.prompt.text":"將檔案拖放到此處或按一下以新增檔案","fileupload.removefile.text":"移除檔案","passwordfield.icon.label.hide":"隱藏密碼","passwordfield.icon.label.show":"顯示密碼","severity.error":"錯誤","severity.info":"資訊","severity.success":"成功","severity.warning":"警告","switch.active":"作用中","switch.inactive":"非作用中","table.columnvisibility.arialabel":"顯示/隱藏欄","table.density.arialabel":"表格密度","table.draghandle.arialabel":"拖曳列以重新排序。或者按下空白鍵或 Enter 鍵以開始和停止重新排序,按下 Esc 鍵可取消。","table.draghandle.tooltip":"拖曳列或按下空白鍵/Enter 鍵即可開始和停止重新排序","table.actions":"動作","table.error":"載入資料時發生錯誤。","table.fetchedrows.text":"已擷取 {{totalRows}} 列","table.fetchedrows.text_plural":"已擷取總共 {{totalRows}} 列","table.moreactions.arialabel":"更多動作","table.noresults.heading":"沒有結果。","table.noresults.text":"請嘗試不同的查詢。","table.reorder.backward":"往後傳送","table.reorder.forward":"往前帶","table.reorder.toback":"向後傳送","table.reorder.tofront":"向前帶","table.rows.text":"{{totalRows}} 列","table.rows.text_plural":"{{totalRows}} 列","pagination.loadmore":"顯示更多","pagination.next":"下一頁","pagination.previous":"上一頁","pagination.page":"頁面","pagination.rowsperpage":"每頁列數","pagination.rowswithtotal":"第 {{firstRow}}-{{lastRow}} 列,總共 {{totalRows}} 列","pagination.rowswithouttotal":"第 {{firstRow}}-{{lastRow}} 列","table.actions.selectall":"全選","table.actions.selectnone":"沒有選取","table.actions.selectsome":"已選取 {{selectedRowCount}} 個","table.rowexpansion.expand":"展開","table.rowexpansion.expandall":"全部展開","table.rowexpansion.collapse":"摺疊","table.rowexpansion.collapseall":"全部摺疊","dataview.layout.table":"表格","dataview.layout.grid":"網格","dataview.layout.list":"清單"};
@@ -62,9 +62,12 @@ const drawerSizes = {
62
62
  export const components = ({
63
63
  odysseyTokens,
64
64
  shadowDomElement,
65
+ shadowRootElement,
65
66
  }: {
66
67
  odysseyTokens: DesignTokens;
68
+ /** @deprecated use `shadowRootElement` */
67
69
  shadowDomElement?: HTMLElement;
70
+ shadowRootElement?: HTMLElement;
68
71
  }): ThemeOptions["components"] => {
69
72
  return {
70
73
  MuiAccordion: {
@@ -177,41 +180,45 @@ export const components = ({
177
180
  padding: odysseyTokens.Spacing4,
178
181
  gap: odysseyTokens.Spacing4,
179
182
  color: odysseyTokens.TypographyColorBody,
180
- border: 0,
183
+ border: "1px solid",
181
184
 
182
185
  // Severity color variation
183
186
  ...(ownerState.severity === "success" && {
184
- backgroundColor: odysseyTokens.HueGreen100,
187
+ backgroundColor: odysseyTokens.HueGreen50,
188
+ borderColor: odysseyTokens.HueGreen200,
185
189
 
186
190
  ...(ownerState.variant === "toast" && {
187
- backgroundColor: odysseyTokens.HueGreen100.concat(
191
+ backgroundColor: odysseyTokens.HueGreen50.concat(
188
192
  odysseyTokens.PaletteAlphaSemi,
189
193
  ),
190
194
  }),
191
195
  }),
192
196
  ...(ownerState.severity === "info" && {
193
- backgroundColor: odysseyTokens.HueBlue100,
197
+ backgroundColor: odysseyTokens.HueBlue50,
198
+ borderColor: odysseyTokens.HueBlue200,
194
199
 
195
200
  ...(ownerState.variant === "toast" && {
196
- backgroundColor: odysseyTokens.HueBlue100.concat(
201
+ backgroundColor: odysseyTokens.HueBlue50.concat(
197
202
  odysseyTokens.PaletteAlphaSemi,
198
203
  ),
199
204
  }),
200
205
  }),
201
206
  ...(ownerState.severity === "error" && {
202
- backgroundColor: odysseyTokens.HueRed100,
207
+ backgroundColor: odysseyTokens.HueRed50,
208
+ borderColor: odysseyTokens.HueRed200,
203
209
 
204
210
  ...(ownerState.variant === "toast" && {
205
- backgroundColor: odysseyTokens.HueRed100.concat(
211
+ backgroundColor: odysseyTokens.HueRed50.concat(
206
212
  odysseyTokens.PaletteAlphaSemi,
207
213
  ),
208
214
  }),
209
215
  }),
210
216
  ...(ownerState.severity === "warning" && {
211
- backgroundColor: odysseyTokens.HueYellow100,
217
+ backgroundColor: odysseyTokens.HueYellow50,
218
+ borderColor: odysseyTokens.HueYellow500,
212
219
 
213
220
  ...(ownerState.variant === "toast" && {
214
- backgroundColor: odysseyTokens.HueYellow100.concat(
221
+ backgroundColor: odysseyTokens.HueYellow50.concat(
215
222
  odysseyTokens.PaletteAlphaSemi,
216
223
  ),
217
224
  }),
@@ -246,6 +253,7 @@ export const components = ({
246
253
  justifyContent: "center",
247
254
  alignItems: "center",
248
255
  borderRadius: 0,
256
+ border: 0,
249
257
 
250
258
  ...(ownerState.onClose !== undefined && {
251
259
  paddingInline: odysseyTokens.Spacing6,
@@ -481,7 +489,6 @@ export const components = ({
481
489
  background: "transparent",
482
490
  paddingBlockStart: odysseyTokens.Spacing1,
483
491
  ...(ownerState.ListboxComponent !== undefined && {
484
- height: "100%",
485
492
  maxHeight: "40vh",
486
493
  }),
487
494
  }),
@@ -873,86 +880,116 @@ export const components = ({
873
880
  indeterminateIcon: <SubtractIcon />,
874
881
  },
875
882
  styleOverrides: {
876
- root: ({ theme }) => ({
877
- width: `${odysseyTokens.TypographyLineHeightUi}em`,
878
- minWidth: `${odysseyTokens.TypographyLineHeightUi}em`,
879
- height: `${odysseyTokens.TypographyLineHeightUi}em`,
880
- borderRadius: odysseyTokens.BorderRadiusTight,
881
- borderWidth: odysseyTokens.BorderWidthMain,
882
- borderStyle: odysseyTokens.BorderStyleMain,
883
- borderColor: odysseyTokens.HueNeutral500,
884
- padding: 0,
885
- boxShadow: `0 0 0 0 transparent`,
886
- transition: theme.transitions.create(
887
- ["border-color", "background-color", "box-shadow"],
888
- {
889
- duration: odysseyTokens.TransitionDurationMain,
883
+ root: ({ ownerState, theme }) => {
884
+ const isReadOnly = ownerState?.inputProps?.readOnly;
885
+
886
+ return {
887
+ width: `${odysseyTokens.TypographyLineHeightUi}em`,
888
+ minWidth: `${odysseyTokens.TypographyLineHeightUi}em`,
889
+ height: `${odysseyTokens.TypographyLineHeightUi}em`,
890
+ borderRadius: odysseyTokens.BorderRadiusTight,
891
+ border: `1px solid ${odysseyTokens.HueNeutral500}`,
892
+ padding: 0,
893
+ boxShadow: `0 0 0 0 transparent`,
894
+ transition: theme.transitions.create(
895
+ ["border-color", "background-color", "box-shadow"],
896
+ {
897
+ duration: odysseyTokens.TransitionDurationMain,
898
+ },
899
+ ),
900
+
901
+ [`.${svgIconClasses.root}`]: {
902
+ color: odysseyTokens.HueNeutralWhite,
903
+ transition: theme.transitions.create(["color"], {
904
+ duration: odysseyTokens.TransitionDurationMain,
905
+ }),
890
906
  },
891
- ),
892
907
 
893
- [`.${svgIconClasses.root}`]: {
894
- color: odysseyTokens.HueNeutralWhite,
895
- transition: theme.transitions.create(["color"], {
896
- duration: odysseyTokens.TransitionDurationMain,
897
- }),
898
- },
908
+ "&.Mui-checked, &.MuiCheckbox-indeterminate": {
909
+ backgroundColor: odysseyTokens.PalettePrimaryMain,
910
+ borderColor: odysseyTokens.PalettePrimaryMain,
899
911
 
900
- "&.Mui-checked, &.MuiCheckbox-indeterminate": {
901
- backgroundColor: odysseyTokens.PalettePrimaryMain,
902
- borderColor: odysseyTokens.PalettePrimaryMain,
912
+ [`.${formControlLabelClasses.root}:hover > &`]: {
913
+ backgroundColor: odysseyTokens.PalettePrimaryDark,
914
+ borderColor: odysseyTokens.PalettePrimaryDark,
915
+ },
916
+ },
903
917
 
904
918
  [`.${formControlLabelClasses.root}:hover > &`]: {
905
- backgroundColor: odysseyTokens.PalettePrimaryDark,
906
- borderColor: odysseyTokens.PalettePrimaryDark,
919
+ backgroundColor: "transparent",
920
+ borderColor: odysseyTokens.HueNeutral900,
907
921
  },
908
- },
909
-
910
- [`.${formControlLabelClasses.root}:hover > &`]: {
911
- backgroundColor: "transparent",
912
- borderColor: odysseyTokens.HueNeutral900,
913
- },
914
- ".Mui-error:not(.Mui-valid):hover > &": {
915
- borderColor: odysseyTokens.BorderColorDangerDark,
916
922
 
917
- "&.Mui-checked": {
918
- backgroundColor: odysseyTokens.PaletteDangerDark,
923
+ ".Mui-error:not(.Mui-valid):hover > &": {
919
924
  borderColor: odysseyTokens.BorderColorDangerDark,
920
- },
921
- },
922
- ".Mui-error:not(.Mui-valid) > &": {
923
- borderColor: odysseyTokens.BorderColorDangerControl,
924
925
 
925
- "&.Mui-checked": {
926
- backgroundColor: odysseyTokens.PaletteDangerMain,
927
- borderColor: odysseyTokens.BorderColorDangerControl,
926
+ "&.Mui-checked": {
927
+ backgroundColor: odysseyTokens.PaletteDangerDark,
928
+ borderColor: odysseyTokens.BorderColorDangerDark,
929
+ },
928
930
  },
931
+ ".Mui-error:not(.Mui-valid) > &": {
932
+ borderColor: odysseyTokens.BorderColorDangerControl,
929
933
 
934
+ "&.Mui-checked": {
935
+ backgroundColor: odysseyTokens.PaletteDangerMain,
936
+ borderColor: odysseyTokens.BorderColorDangerControl,
937
+ },
938
+
939
+ "&.Mui-focusVisible": {
940
+ boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`,
941
+ },
942
+ },
930
943
  "&.Mui-focusVisible": {
931
- boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`,
944
+ borderColor: odysseyTokens.HueNeutral900,
945
+ boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
946
+ outline: "2px solid transparent",
947
+ outlineOffset: "1px",
932
948
  },
933
- },
934
- "&.Mui-focusVisible": {
935
- borderColor: odysseyTokens.HueNeutral900,
936
- boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
937
- outline: "2px solid transparent",
938
- outlineOffset: "1px",
939
- },
940
- "&.Mui-disabled": {
941
- backgroundColor: odysseyTokens.HueNeutral50,
942
- borderColor: odysseyTokens.HueNeutral300,
943
-
944
- ".Mui-error:not(.Mui-valid) > &": {
949
+ "&.Mui-disabled": {
945
950
  backgroundColor: odysseyTokens.HueNeutral50,
946
951
  borderColor: odysseyTokens.HueNeutral300,
947
- },
948
952
 
949
- [`.${svgIconClasses.root}`]: {
950
- color: odysseyTokens.HueNeutral300,
953
+ ".Mui-error:not(.Mui-valid) > &": {
954
+ backgroundColor: odysseyTokens.HueNeutral50,
955
+ borderColor: odysseyTokens.HueNeutral300,
956
+ },
957
+
958
+ [`.${svgIconClasses.root}`]: {
959
+ color: odysseyTokens.HueNeutral300,
960
+ },
951
961
  },
952
- },
953
- }),
962
+
963
+ ...(isReadOnly && {
964
+ // Override default styles
965
+ backgroundColor: odysseyTokens.HueNeutral100,
966
+ border: `1px solid ${odysseyTokens.HueNeutral300}`,
967
+ cursor: "default",
968
+
969
+ // Override checked/indeterminate styles
970
+ "&.Mui-checked, &.MuiCheckbox-indeterminate": {
971
+ backgroundColor: odysseyTokens.HueNeutral100,
972
+ borderColor: odysseyTokens.HueNeutral300,
973
+
974
+ [`.${formControlLabelClasses.root}:hover > &`]: {
975
+ backgroundColor: odysseyTokens.HueNeutral100,
976
+ borderColor: odysseyTokens.HueNeutral300,
977
+ },
978
+ },
979
+ [`.${formControlLabelClasses.root}:hover > &`]: {
980
+ backgroundColor: odysseyTokens.HueNeutral100,
981
+ borderColor: odysseyTokens.HueNeutral300,
982
+ },
983
+ // ReadOnly styles for SVG check icon
984
+ [`.${svgIconClasses.root}`]: {
985
+ color: odysseyTokens.HueNeutral700,
986
+ },
987
+ }),
988
+ };
989
+ },
954
990
  },
955
991
  },
992
+
956
993
  MuiChip: {
957
994
  defaultProps: {
958
995
  deleteIcon: <CloseCircleFilledIcon />,
@@ -2141,6 +2178,13 @@ export const components = ({
2141
2178
  },
2142
2179
  },
2143
2180
 
2181
+ "&[data-empty='true']": {
2182
+ "&:after": {
2183
+ content: "'&nbsp;'",
2184
+ visibility: "hidden",
2185
+ },
2186
+ },
2187
+
2144
2188
  ...(!ownerState.disableGutters && {
2145
2189
  paddingInline: odysseyTokens.Spacing4,
2146
2190
  }),
@@ -2181,7 +2225,7 @@ export const components = ({
2181
2225
  },
2182
2226
  MuiModal: {
2183
2227
  defaultProps: {
2184
- container: shadowDomElement,
2228
+ container: shadowRootElement || shadowDomElement,
2185
2229
  },
2186
2230
  },
2187
2231
  MuiNativeSelect: {
@@ -2221,7 +2265,7 @@ export const components = ({
2221
2265
  },
2222
2266
  MuiPopover: {
2223
2267
  defaultProps: {
2224
- container: shadowDomElement,
2268
+ container: shadowRootElement || shadowDomElement,
2225
2269
  },
2226
2270
  styleOverrides: {
2227
2271
  paper: {
@@ -2234,7 +2278,7 @@ export const components = ({
2234
2278
  },
2235
2279
  MuiPopper: {
2236
2280
  defaultProps: {
2237
- container: shadowDomElement,
2281
+ container: shadowRootElement || shadowDomElement,
2238
2282
  },
2239
2283
  },
2240
2284
  MuiRadio: {
@@ -2244,83 +2288,105 @@ export const components = ({
2244
2288
  checkedIcon: <></>,
2245
2289
  },
2246
2290
  styleOverrides: {
2247
- root: ({ theme }) => ({
2248
- position: "relative",
2249
- // to visually align input with label
2250
- insetBlockStart: `${2 / theme.typography.fontSize}rem`,
2251
- width: `${odysseyTokens.TypographyLineHeightUi}em`,
2252
- minWidth: `${odysseyTokens.TypographyLineHeightUi}em`,
2253
- height: `${odysseyTokens.TypographyLineHeightUi}em`,
2254
- borderRadius: `${odysseyTokens.TypographyLineHeightUi}em`,
2255
- borderWidth: odysseyTokens.BorderWidthMain,
2256
- borderStyle: odysseyTokens.BorderStyleMain,
2257
- borderColor: odysseyTokens.HueNeutral500,
2258
- padding: 0,
2259
- boxShadow: `0 0 0 0 transparent`,
2260
- transition: theme.transitions.create(
2261
- ["border-color", "background-color", "box-shadow"],
2262
- {
2263
- duration: odysseyTokens.TransitionDurationMain,
2264
- },
2265
- ),
2266
-
2267
- "&::before": {
2268
- content: "''",
2269
- position: "absolute",
2270
- width: odysseyTokens.Spacing2,
2271
- height: odysseyTokens.Spacing2,
2272
- borderRadius: "50%",
2273
- backgroundColor: "transparent",
2274
- transition: theme.transitions.create(["background-color"], {
2275
- duration: odysseyTokens.TransitionDurationMain,
2276
- }),
2277
- },
2291
+ root: ({ ownerState, theme }) => {
2292
+ const isReadOnly = ownerState?.inputProps?.readOnly;
2278
2293
 
2279
- [`.${formControlLabelClasses.root}:hover > &`]: {
2280
- backgroundColor: "transparent",
2281
- borderColor: odysseyTokens.HueNeutral900,
2282
- },
2283
- ".Mui-error:hover > &": {
2284
- backgroundColor: "transparent",
2285
- borderColor: odysseyTokens.BorderColorDangerDark,
2294
+ return {
2295
+ position: "relative",
2296
+ insetBlockStart: `${2 / theme.typography.fontSize}rem`,
2297
+ width: `${odysseyTokens.TypographyLineHeightUi}em`,
2298
+ minWidth: `${odysseyTokens.TypographyLineHeightUi}em`,
2299
+ height: `${odysseyTokens.TypographyLineHeightUi}em`,
2300
+ borderRadius: `${odysseyTokens.TypographyLineHeightUi}em`,
2301
+ borderWidth: odysseyTokens.BorderWidthMain,
2302
+ borderStyle: odysseyTokens.BorderStyleMain,
2303
+ borderColor: odysseyTokens.HueNeutral500,
2304
+ padding: 0,
2305
+ boxShadow: `0 0 0 0 transparent`,
2306
+ transition: theme.transitions.create(
2307
+ ["border-color", "background-color", "box-shadow"],
2308
+ {
2309
+ duration: odysseyTokens.TransitionDurationMain,
2310
+ },
2311
+ ),
2286
2312
  "&::before": {
2287
- backgroundColor: odysseyTokens.PaletteDangerDark,
2313
+ content: "''",
2314
+ position: "absolute",
2315
+ width: odysseyTokens.Spacing2,
2316
+ height: odysseyTokens.Spacing2,
2317
+ borderRadius: "50%",
2318
+ backgroundColor: "transparent",
2319
+ transition: theme.transitions.create(["background-color"], {
2320
+ duration: odysseyTokens.TransitionDurationMain,
2321
+ }),
2322
+ },
2323
+ [`.${formControlLabelClasses.root}:hover > &`]: {
2324
+ backgroundColor: "transparent",
2325
+ borderColor: odysseyTokens.HueNeutral900,
2326
+ },
2327
+ ".Mui-error:hover > &": {
2328
+ backgroundColor: "transparent",
2329
+ borderColor: odysseyTokens.BorderColorDangerDark,
2330
+ "&::before": {
2331
+ backgroundColor: odysseyTokens.PaletteDangerDark,
2332
+ },
2333
+ },
2334
+ ".Mui-error > &": {
2335
+ borderColor: odysseyTokens.BorderColorDangerControl,
2336
+ "&.Mui-focusVisible": {
2337
+ boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`,
2338
+ },
2288
2339
  },
2289
- },
2290
- ".Mui-error > &": {
2291
- borderColor: odysseyTokens.BorderColorDangerControl,
2292
-
2293
2340
  "&.Mui-focusVisible": {
2294
- boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`,
2341
+ borderColor: odysseyTokens.HueNeutral900,
2342
+ boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
2343
+ outline: "2px solid transparent",
2344
+ outlineOffset: "1px",
2295
2345
  },
2296
- },
2297
- "&.Mui-focusVisible": {
2298
- borderColor: odysseyTokens.HueNeutral900,
2299
- boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
2300
- outline: "2px solid transparent",
2301
- outlineOffset: "1px",
2302
- },
2303
- "&.Mui-checked": {
2304
- position: "relative",
2305
-
2306
- "&::before": {
2307
- backgroundColor: odysseyTokens.PalettePrimaryMain,
2346
+ "&.Mui-checked": {
2347
+ position: "relative",
2348
+ "&::before": {
2349
+ backgroundColor: odysseyTokens.PalettePrimaryMain,
2350
+ },
2308
2351
  },
2309
- },
2310
- ".Mui-error > &.Mui-checked::before": {
2311
- backgroundColor: odysseyTokens.PaletteDangerMain,
2312
- },
2313
- "&.Mui-disabled": {
2314
- backgroundColor: odysseyTokens.HueNeutral50,
2315
- borderColor: odysseyTokens.BorderColorDisabled,
2316
-
2317
- "&.Mui-checked::before": {
2318
- backgroundColor: odysseyTokens.BorderColorDisabled,
2352
+ ".Mui-error > &.Mui-checked::before": {
2353
+ backgroundColor: odysseyTokens.PaletteDangerMain,
2319
2354
  },
2320
- },
2321
- }),
2355
+ "&.Mui-disabled": {
2356
+ backgroundColor: odysseyTokens.HueNeutral50,
2357
+ borderColor: odysseyTokens.BorderColorDisabled,
2358
+ "&.Mui-checked::before": {
2359
+ backgroundColor: odysseyTokens.BorderColorDisabled,
2360
+ },
2361
+ },
2362
+ ...(isReadOnly && {
2363
+ backgroundColor: odysseyTokens.HueNeutral100,
2364
+ borderColor: odysseyTokens.HueNeutral300,
2365
+ cursor: "default",
2366
+ "&::before": {
2367
+ content: "''",
2368
+ position: "absolute",
2369
+ width: odysseyTokens.Spacing2,
2370
+ height: odysseyTokens.Spacing2,
2371
+ borderRadius: "50%",
2372
+ backgroundColor: "transparent",
2373
+ transition: theme.transitions.create(["background-color"], {
2374
+ duration: odysseyTokens.TransitionDurationMain,
2375
+ }),
2376
+ },
2377
+ "&.Mui-checked::before": {
2378
+ backgroundColor: odysseyTokens.HueNeutral700,
2379
+ },
2380
+ [`.${formControlLabelClasses.root}:hover > &`]: {
2381
+ backgroundColor: odysseyTokens.HueNeutral100,
2382
+ borderColor: odysseyTokens.HueNeutral300,
2383
+ },
2384
+ }),
2385
+ };
2386
+ },
2322
2387
  },
2323
2388
  },
2389
+
2324
2390
  MuiSnackbar: {
2325
2391
  defaultProps: {
2326
2392
  anchorOrigin: {
@@ -2347,12 +2413,32 @@ export const components = ({
2347
2413
  },
2348
2414
  },
2349
2415
  styleOverrides: {
2350
- select: {
2416
+ root: ({ ownerState }) => ({
2417
+ ...(ownerState?.inputProps?.readOnly && {
2418
+ "&.MuiInputBase-root": {
2419
+ backgroundColor: odysseyTokens.HueNeutral50,
2420
+ borderColor: odysseyTokens.HueNeutral200,
2421
+ "&:hover": {
2422
+ backgroundColor: odysseyTokens.HueNeutral50,
2423
+ },
2424
+ "&.Mui-focused": {
2425
+ borderColor: odysseyTokens.PalettePrimaryMain,
2426
+ },
2427
+ },
2428
+ }),
2429
+ "& .MuiSelect-icon": {
2430
+ right: "unset",
2431
+ insetInlineEnd: odysseyTokens.Spacing3,
2432
+ color: odysseyTokens.TypographyColorSubordinate,
2433
+ },
2434
+ }),
2435
+ select: ({ ownerState }) => ({
2351
2436
  height: "auto",
2352
2437
  // We're subtracting a pixel so the total height, including borders, is 40px
2353
2438
  paddingBlock: `calc(${odysseyTokens.Spacing3} - ${odysseyTokens.BorderWidthMain})`,
2354
2439
  paddingInline: odysseyTokens.Spacing3,
2355
- minHeight: 0,
2440
+ // Setting min-height to the line-height here to avoid the select shrinking in size when the value is an empty string
2441
+ minHeight: `${odysseyTokens.TypographyLineHeightUi}em`,
2356
2442
 
2357
2443
  "&:focus": {
2358
2444
  backgroundColor: "transparent",
@@ -2369,12 +2455,16 @@ export const components = ({
2369
2455
  ["& .MuiListItemSecondaryAction-root"]: {
2370
2456
  display: "none",
2371
2457
  },
2372
- },
2373
- icon: {
2374
- right: "unset",
2375
- insetInlineEnd: odysseyTokens.Spacing3,
2376
- color: odysseyTokens.TypographyColorSubordinate,
2377
- },
2458
+
2459
+ ...(ownerState?.inputProps?.readOnly && {
2460
+ color: odysseyTokens.HueNeutral700,
2461
+ cursor: "default",
2462
+ "&:focus": {
2463
+ backgroundColor: "transparent",
2464
+ borderColor: odysseyTokens.PalettePrimaryMain,
2465
+ },
2466
+ }),
2467
+ }),
2378
2468
  },
2379
2469
  },
2380
2470
  MuiSvgIcon: {
@@ -30,14 +30,17 @@ export type DesignTokensOverride = Partial<typeof Tokens>;
30
30
  export const createOdysseyMuiTheme = ({
31
31
  odysseyTokens,
32
32
  shadowDomElement,
33
+ shadowRootElement,
33
34
  }: {
34
35
  odysseyTokens: DesignTokens;
36
+ /** @deprecated Use `shadowRootElement` */
35
37
  shadowDomElement?: HTMLElement;
38
+ shadowRootElement?: HTMLElement;
36
39
  }) =>
37
40
  createTheme({
38
41
  components: components({
39
42
  odysseyTokens,
40
- shadowDomElement,
43
+ shadowRootElement: shadowRootElement || shadowDomElement,
41
44
  }),
42
45
  mixins: mixins({ odysseyTokens }),
43
46
  palette: palette({ odysseyTokens }),
@@ -1 +0,0 @@
1
- {"version":3,"file":"createShadowRootElement.js","names":["createShadowRootElement","containerElement","shadowRoot","attachShadow","mode","emotionRoot","document","createElement","setAttribute","window","cspNonce","shadowRootElement","appendChild"],"sources":["../src/createShadowRootElement.ts"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport const createShadowRootElement = (\n containerElement: HTMLElement,\n): [HTMLStyleElement, HTMLDivElement] => {\n const shadowRoot = containerElement.attachShadow({ mode: \"open\" });\n\n // the element that styles will be cached into\n const emotionRoot = document.createElement(\"style\");\n emotionRoot.setAttribute(\"id\", \"style-root\");\n emotionRoot.setAttribute(\"nonce\", window.cspNonce);\n\n // the element that emotion renders html into\n const shadowRootElement = document.createElement(\"div\");\n shadowRootElement.setAttribute(\"id\", \"shadow-root\");\n\n shadowRoot.appendChild(emotionRoot);\n shadowRoot.appendChild(shadowRootElement);\n\n return [emotionRoot, shadowRootElement];\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,uBAAuB,GAClCC,gBAA6B,IACU;EACvC,MAAMC,UAAU,GAAGD,gBAAgB,CAACE,YAAY,CAAC;IAAEC,IAAI,EAAE;EAAO,CAAC,CAAC;EAGlE,MAAMC,WAAW,GAAGC,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;EACnDF,WAAW,CAACG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;EAC5CH,WAAW,CAACG,YAAY,CAAC,OAAO,EAAEC,MAAM,CAACC,QAAQ,CAAC;EAGlD,MAAMC,iBAAiB,GAAGL,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EACvDI,iBAAiB,CAACH,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC;EAEnDN,UAAU,CAACU,WAAW,CAACP,WAAW,CAAC;EACnCH,UAAU,CAACU,WAAW,CAACD,iBAAiB,CAAC;EAEzC,OAAO,CAACN,WAAW,EAAEM,iBAAiB,CAAC;AACzC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BulkActionsMenu.js","names":["memo","useCallback","styled","useTranslation","Box","Button","ChevronDownIcon","MenuButton","useOdysseyDesignTokens","jsx","_jsx","jsxs","_jsxs","BulkActionsContainer","shouldForwardProp","prop","odysseyDesignTokens","display","gap","Spacing2","BulkActionsMenu","data","menuItems","rowSelection","setRowSelection","t","selectedRowCount","Object","values","filter","Boolean","length","handleSelectAll","rows","fromEntries","map","row","id","handleSelectNone","children","ariaLabel","buttonLabel","buttonVariant","endIcon","isDisabled","label","onClick","variant","MemoizedBulkActionsMenu","displayName"],"sources":["../../../src/labs/DataComponents/BulkActionsMenu.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, Dispatch, SetStateAction } from \"react\";\nimport { MRT_RowData, MRT_RowSelectionState } from \"material-react-table\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box\";\nimport { Button } from \"../../Button\";\nimport { ChevronDownIcon } from \"../../icons.generated\";\nimport { MenuButton } from \"../../MenuButton\";\nimport { UniversalProps } from \"./componentTypes\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\n\nexport type BulkActionsMenuProps = {\n data: MRT_RowData[];\n menuItems: UniversalProps[\"bulkActionMenuItems\"];\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n};\n\nconst BulkActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst BulkActionsMenu = ({\n data,\n menuItems,\n rowSelection,\n setRowSelection,\n}: BulkActionsMenuProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const selectedRowCount = Object.values(rowSelection).filter(Boolean).length;\n\n const handleSelectAll = useCallback(() => {\n const rows = Object.fromEntries(data.map((row) => [row.id, true]));\n setRowSelection(rows);\n }, [data, setRowSelection]);\n\n const handleSelectNone = useCallback(() => {\n setRowSelection({});\n }, [setRowSelection]);\n\n return (\n <BulkActionsContainer odysseyDesignTokens={odysseyDesignTokens}>\n {selectedRowCount > 0 && (\n <MenuButton\n ariaLabel=\"More actions\"\n buttonLabel={t(\"table.actions.selectsome\", { selectedRowCount })}\n buttonVariant=\"primary\"\n endIcon={<ChevronDownIcon />}\n >\n {menuItems?.(rowSelection)}\n </MenuButton>\n )}\n <Box>\n <Button\n isDisabled={selectedRowCount === data.length} // Disabled if all are selected\n label={t(\"table.actions.selectall\")}\n onClick={handleSelectAll}\n variant=\"secondary\"\n />\n <Button\n isDisabled={selectedRowCount === 0} // Disabled if none are selected\n label={t(\"table.actions.selectnone\")}\n onClick={handleSelectNone}\n variant=\"secondary\"\n />\n </Box>\n </BulkActionsContainer>\n );\n};\n\nconst MemoizedBulkActionsMenu = memo(BulkActionsMenu);\nMemoizedBulkActionsMenu.displayName = \"BulkActionsMenu\";\n\nexport { MemoizedBulkActionsMenu as BulkActionsMenu };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,WAAW,QAAkC,OAAO;AAEnE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,cAAc,QAAQ,eAAe;AAAC,SAEtCC,GAAG;AAAA,SACHC,MAAM;AAAA,SACNC,eAAe;AAAA,SACfC,UAAU;AAAA,SAIjBC,sBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAUxB,MAAMC,oBAAoB,GAAGX,MAAM,CAAC,KAAK,EAAE;EACzCY,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAEC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EAC/BC,OAAO,EAAE,MAAM;EACfC,GAAG,EAAEF,mBAAmB,CAACG;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,eAAe,GAAGA,CAAC;EACvBC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACoB,CAAC,KAAK;EAC1B,MAAMR,mBAAmB,GAAGR,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEiB;EAAE,CAAC,GAAGtB,cAAc,CAAC,CAAC;EAE9B,MAAMuB,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACL,YAAY,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;EAE3E,MAAMC,eAAe,GAAG/B,WAAW,CAAC,MAAM;IACxC,MAAMgC,IAAI,GAAGN,MAAM,CAACO,WAAW,CAACb,IAAI,CAACc,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAClEb,eAAe,CAACS,IAAI,CAAC;EACvB,CAAC,EAAE,CAACZ,IAAI,EAAEG,eAAe,CAAC,CAAC;EAE3B,MAAMc,gBAAgB,GAAGrC,WAAW,CAAC,MAAM;IACzCuB,eAAe,CAAC,CAAC,CAAC,CAAC;EACrB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,OACEZ,KAAA,CAACC,oBAAoB;IAACG,mBAAmB,EAAEA,mBAAoB;IAAAuB,QAAA,GAC5Db,gBAAgB,GAAG,CAAC,IACnBhB,IAAA,CAACH,UAAU;MACTiC,SAAS,EAAC,cAAc;MACxBC,WAAW,EAAEhB,CAAC,CAAC,0BAA0B,EAAE;QAAEC;MAAiB,CAAC,CAAE;MACjEgB,aAAa,EAAC,SAAS;MACvBC,OAAO,EAAEjC,IAAA,CAACJ,eAAe,IAAE,CAAE;MAAAiC,QAAA,EAE5BjB,SAAS,GAAGC,YAAY;IAAC,CAChB,CACb,EACDX,KAAA,CAACR,GAAG;MAAAmC,QAAA,GACF7B,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAKL,IAAI,CAACU,MAAO;QAC7Cc,KAAK,EAAEpB,CAAC,CAAC,yBAAyB,CAAE;QACpCqB,OAAO,EAAEd,eAAgB;QACzBe,OAAO,EAAC;MAAW,CACpB,CAAC,EACFrC,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAK,CAAE;QACnCmB,KAAK,EAAEpB,CAAC,CAAC,0BAA0B,CAAE;QACrCqB,OAAO,EAAER,gBAAiB;QAC1BS,OAAO,EAAC;MAAW,CACpB,CAAC;IAAA,CACC,CAAC;EAAA,CACc,CAAC;AAE3B,CAAC;AAED,MAAMC,uBAAuB,GAAGhD,IAAI,CAACoB,eAAe,CAAC;AACrD4B,uBAAuB,CAACC,WAAW,GAAG,iBAAiB;AAEvD,SAASD,uBAAuB,IAAI5B,eAAe"}