@okta/odyssey-react-mui 1.15.9 → 1.20.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 (960) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/Accordion.js +2 -0
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/Autocomplete.js +9 -0
  5. package/dist/Autocomplete.js.map +1 -1
  6. package/dist/Badge.js +1 -0
  7. package/dist/Badge.js.map +1 -1
  8. package/dist/Banner.js +6 -5
  9. package/dist/Banner.js.map +1 -1
  10. package/dist/Button.js +15 -11
  11. package/dist/Button.js.map +1 -1
  12. package/dist/Callout.js +45 -7
  13. package/dist/Callout.js.map +1 -1
  14. package/dist/{Tile.js → Card.js} +43 -28
  15. package/dist/Card.js.map +1 -0
  16. package/dist/DataTable/DataTable.js +68 -41
  17. package/dist/DataTable/DataTable.js.map +1 -1
  18. package/dist/DataTable/DataTableRowActions.js.map +1 -1
  19. package/dist/DataTable/constants.js +0 -1
  20. package/dist/DataTable/constants.js.map +1 -1
  21. package/dist/DataTable/index.js +0 -1
  22. package/dist/DataTable/index.js.map +1 -1
  23. package/dist/Dialog.js +9 -3
  24. package/dist/Dialog.js.map +1 -1
  25. package/dist/{labs/Drawer.js → Drawer.js} +5 -5
  26. package/dist/Drawer.js.map +1 -0
  27. package/dist/{DataTable/DataTableEmptyState.js → EmptyState.js} +17 -15
  28. package/dist/EmptyState.js.map +1 -0
  29. package/dist/ErrorMessageList.js +1 -1
  30. package/dist/ErrorMessageList.js.map +1 -1
  31. package/dist/FieldError.js +3 -2
  32. package/dist/FieldError.js.map +1 -1
  33. package/dist/HtmlProps.js.map +1 -1
  34. package/dist/MenuItem.js +1 -0
  35. package/dist/MenuItem.js.map +1 -1
  36. package/dist/OdysseyCacheProvider.js +5 -2
  37. package/dist/OdysseyCacheProvider.js.map +1 -1
  38. package/dist/OdysseyProvider.js +1 -1
  39. package/dist/OdysseyProvider.js.map +1 -1
  40. package/dist/OdysseyTranslationProvider.js +1 -6
  41. package/dist/OdysseyTranslationProvider.js.map +1 -1
  42. package/dist/{DataTable/DataTablePagination.js → Pagination/Pagination.js} +56 -59
  43. package/dist/Pagination/Pagination.js.map +1 -0
  44. package/dist/Pagination/constants.js +14 -0
  45. package/dist/Pagination/constants.js.map +1 -0
  46. package/dist/Pagination/index.js +15 -0
  47. package/dist/Pagination/index.js.map +1 -0
  48. package/dist/Pagination/usePagination.js +51 -0
  49. package/dist/Pagination/usePagination.js.map +1 -0
  50. package/dist/Radio.js +17 -5
  51. package/dist/Radio.js.map +1 -1
  52. package/dist/ScreenReaderText.js +4 -0
  53. package/dist/ScreenReaderText.js.map +1 -1
  54. package/dist/Select.js +1 -0
  55. package/dist/Select.js.map +1 -1
  56. package/dist/Status.js +5 -3
  57. package/dist/Status.js.map +1 -1
  58. package/dist/Surface.js +38 -0
  59. package/dist/Surface.js.map +1 -0
  60. package/dist/Tabs.js +22 -0
  61. package/dist/Tabs.js.map +1 -1
  62. package/dist/TextField.js +48 -0
  63. package/dist/TextField.js.map +1 -1
  64. package/dist/Toast.js +37 -34
  65. package/dist/Toast.js.map +1 -1
  66. package/dist/assertEnv.d.ts +18 -0
  67. package/dist/assertEnv.d.ts.map +1 -0
  68. package/dist/assertEnv.js +32 -0
  69. package/dist/icons.generated/Add.js +1 -1
  70. package/dist/icons.generated/Add.js.map +1 -1
  71. package/dist/icons.generated/AddCircle.js +1 -1
  72. package/dist/icons.generated/AddCircle.js.map +1 -1
  73. package/dist/icons.generated/Apps.js +1 -1
  74. package/dist/icons.generated/Apps.js.map +1 -1
  75. package/dist/icons.generated/ArrowBottom.js +2 -2
  76. package/dist/icons.generated/ArrowBottom.js.map +1 -1
  77. package/dist/icons.generated/ArrowDown.js +1 -1
  78. package/dist/icons.generated/ArrowDown.js.map +1 -1
  79. package/dist/icons.generated/ArrowLeft.js +1 -1
  80. package/dist/icons.generated/ArrowLeft.js.map +1 -1
  81. package/dist/icons.generated/ArrowLowerLeft.js +1 -1
  82. package/dist/icons.generated/ArrowLowerLeft.js.map +1 -1
  83. package/dist/icons.generated/ArrowLowerRight.js +1 -1
  84. package/dist/icons.generated/ArrowLowerRight.js.map +1 -1
  85. package/dist/icons.generated/ArrowRight.js +1 -1
  86. package/dist/icons.generated/ArrowRight.js.map +1 -1
  87. package/dist/icons.generated/ArrowTop.js +2 -2
  88. package/dist/icons.generated/ArrowTop.js.map +1 -1
  89. package/dist/icons.generated/ArrowUnsorted.js +1 -1
  90. package/dist/icons.generated/ArrowUnsorted.js.map +1 -1
  91. package/dist/icons.generated/ArrowUp.js +1 -1
  92. package/dist/icons.generated/ArrowUp.js.map +1 -1
  93. package/dist/icons.generated/ArrowUpperLeft.js +1 -1
  94. package/dist/icons.generated/ArrowUpperLeft.js.map +1 -1
  95. package/dist/icons.generated/ArrowUpperRight.js +1 -1
  96. package/dist/icons.generated/ArrowUpperRight.js.map +1 -1
  97. package/dist/icons.generated/Bug.js +1 -1
  98. package/dist/icons.generated/Bug.js.map +1 -1
  99. package/dist/icons.generated/Calendar.js +1 -1
  100. package/dist/icons.generated/Calendar.js.map +1 -1
  101. package/dist/icons.generated/Call.js +1 -1
  102. package/dist/icons.generated/Call.js.map +1 -1
  103. package/dist/icons.generated/Chat.js +1 -1
  104. package/dist/icons.generated/Chat.js.map +1 -1
  105. package/dist/icons.generated/Check.js +1 -1
  106. package/dist/icons.generated/Check.js.map +1 -1
  107. package/dist/icons.generated/CheckCircleFilled.js +1 -1
  108. package/dist/icons.generated/CheckCircleFilled.js.map +1 -1
  109. package/dist/icons.generated/ChevronDown.js +1 -1
  110. package/dist/icons.generated/ChevronDown.js.map +1 -1
  111. package/dist/icons.generated/ChevronLeft.js +1 -1
  112. package/dist/icons.generated/ChevronLeft.js.map +1 -1
  113. package/dist/icons.generated/ChevronRight.js +1 -1
  114. package/dist/icons.generated/ChevronRight.js.map +1 -1
  115. package/dist/icons.generated/ChevronUp.js +1 -1
  116. package/dist/icons.generated/ChevronUp.js.map +1 -1
  117. package/dist/icons.generated/Clock.js +1 -1
  118. package/dist/icons.generated/Clock.js.map +1 -1
  119. package/dist/icons.generated/Close.js +1 -1
  120. package/dist/icons.generated/Close.js.map +1 -1
  121. package/dist/icons.generated/CloseCircleFilled.js +1 -1
  122. package/dist/icons.generated/CloseCircleFilled.js.map +1 -1
  123. package/dist/icons.generated/CollapseLeft.js +1 -1
  124. package/dist/icons.generated/CollapseLeft.js.map +1 -1
  125. package/dist/icons.generated/CollapseRight.js +1 -1
  126. package/dist/icons.generated/CollapseRight.js.map +1 -1
  127. package/dist/icons.generated/Copy.js +1 -1
  128. package/dist/icons.generated/Copy.js.map +1 -1
  129. package/dist/icons.generated/Custom.js +39 -0
  130. package/dist/icons.generated/Custom.js.map +1 -0
  131. package/dist/icons.generated/DangerDiamond.js +1 -1
  132. package/dist/icons.generated/DangerDiamond.js.map +1 -1
  133. package/dist/icons.generated/DangerDiamondFilled.js +1 -1
  134. package/dist/icons.generated/DangerDiamondFilled.js.map +1 -1
  135. package/dist/icons.generated/Delete.js +1 -1
  136. package/dist/icons.generated/Delete.js.map +1 -1
  137. package/dist/icons.generated/Deny.js +1 -1
  138. package/dist/icons.generated/Deny.js.map +1 -1
  139. package/dist/icons.generated/Devices.js +1 -1
  140. package/dist/icons.generated/Devices.js.map +1 -1
  141. package/dist/icons.generated/Directory.js +1 -1
  142. package/dist/icons.generated/Directory.js.map +1 -1
  143. package/dist/icons.generated/Documentation.js +1 -1
  144. package/dist/icons.generated/Documentation.js.map +1 -1
  145. package/dist/icons.generated/Download.js +1 -1
  146. package/dist/icons.generated/Download.js.map +1 -1
  147. package/dist/icons.generated/DragIndicator.js +1 -1
  148. package/dist/icons.generated/DragIndicator.js.map +1 -1
  149. package/dist/icons.generated/Duo.js +47 -0
  150. package/dist/icons.generated/Duo.js.map +1 -0
  151. package/dist/icons.generated/Edit.js +1 -1
  152. package/dist/icons.generated/Edit.js.map +1 -1
  153. package/dist/icons.generated/Email.js +38 -0
  154. package/dist/icons.generated/Email.js.map +1 -0
  155. package/dist/icons.generated/ExpandLeft.js +1 -1
  156. package/dist/icons.generated/ExpandLeft.js.map +1 -1
  157. package/dist/icons.generated/ExpandRight.js +1 -1
  158. package/dist/icons.generated/ExpandRight.js.map +1 -1
  159. package/dist/icons.generated/ExternalLink.js +1 -1
  160. package/dist/icons.generated/ExternalLink.js.map +1 -1
  161. package/dist/icons.generated/Fido2.js +57 -0
  162. package/dist/icons.generated/Fido2.js.map +1 -0
  163. package/dist/icons.generated/Filter.js +1 -1
  164. package/dist/icons.generated/Filter.js.map +1 -1
  165. package/dist/icons.generated/Folder.js +1 -1
  166. package/dist/icons.generated/Folder.js.map +1 -1
  167. package/dist/icons.generated/Globe.js +1 -1
  168. package/dist/icons.generated/Globe.js.map +1 -1
  169. package/dist/icons.generated/GoogleAuth.js +54 -0
  170. package/dist/icons.generated/GoogleAuth.js.map +1 -0
  171. package/dist/icons.generated/Grid.js +1 -1
  172. package/dist/icons.generated/Grid.js.map +1 -1
  173. package/dist/icons.generated/Group.js +1 -1
  174. package/dist/icons.generated/Group.js.map +1 -1
  175. package/dist/icons.generated/Hide.js +1 -1
  176. package/dist/icons.generated/Hide.js.map +1 -1
  177. package/dist/icons.generated/Home.js +1 -1
  178. package/dist/icons.generated/Home.js.map +1 -1
  179. package/dist/icons.generated/Idp.js +42 -0
  180. package/dist/icons.generated/Idp.js.map +1 -0
  181. package/dist/icons.generated/InformationCircle.js +1 -1
  182. package/dist/icons.generated/InformationCircle.js.map +1 -1
  183. package/dist/icons.generated/InformationCircleFilled.js +1 -1
  184. package/dist/icons.generated/InformationCircleFilled.js.map +1 -1
  185. package/dist/icons.generated/Link.js +1 -1
  186. package/dist/icons.generated/Link.js.map +1 -1
  187. package/dist/icons.generated/List.js +1 -1
  188. package/dist/icons.generated/List.js.map +1 -1
  189. package/dist/icons.generated/Lock.js +1 -1
  190. package/dist/icons.generated/Lock.js.map +1 -1
  191. package/dist/icons.generated/More.js +1 -1
  192. package/dist/icons.generated/More.js.map +1 -1
  193. package/dist/icons.generated/Notification.js +1 -1
  194. package/dist/icons.generated/Notification.js.map +1 -1
  195. package/dist/icons.generated/OktaVerify.js +33 -0
  196. package/dist/icons.generated/OktaVerify.js.map +1 -0
  197. package/dist/icons.generated/OnPremMfa.js +39 -0
  198. package/dist/icons.generated/OnPremMfa.js.map +1 -0
  199. package/dist/icons.generated/OneTimePassword.js +49 -0
  200. package/dist/icons.generated/OneTimePassword.js.map +1 -0
  201. package/dist/icons.generated/Password.js +61 -0
  202. package/dist/icons.generated/Password.js.map +1 -0
  203. package/dist/icons.generated/Pause.js +1 -1
  204. package/dist/icons.generated/Pause.js.map +1 -1
  205. package/dist/icons.generated/QuestionCircle.js +1 -1
  206. package/dist/icons.generated/QuestionCircle.js.map +1 -1
  207. package/dist/icons.generated/QuestionCircleFilled.js +1 -1
  208. package/dist/icons.generated/QuestionCircleFilled.js.map +1 -1
  209. package/dist/icons.generated/Refresh.js +1 -1
  210. package/dist/icons.generated/Refresh.js.map +1 -1
  211. package/dist/icons.generated/Reset.js +1 -1
  212. package/dist/icons.generated/Reset.js.map +1 -1
  213. package/dist/icons.generated/Resume.js +1 -1
  214. package/dist/icons.generated/Resume.js.map +1 -1
  215. package/dist/icons.generated/Search.js +1 -1
  216. package/dist/icons.generated/Search.js.map +1 -1
  217. package/dist/icons.generated/SecurityQuestion.js +41 -0
  218. package/dist/icons.generated/SecurityQuestion.js.map +1 -0
  219. package/dist/icons.generated/Server.js +1 -1
  220. package/dist/icons.generated/Server.js.map +1 -1
  221. package/dist/icons.generated/Settings.js +1 -1
  222. package/dist/icons.generated/Settings.js.map +1 -1
  223. package/dist/icons.generated/Show.js +1 -1
  224. package/dist/icons.generated/Show.js.map +1 -1
  225. package/dist/icons.generated/SmartCard.js +49 -0
  226. package/dist/icons.generated/SmartCard.js.map +1 -0
  227. package/dist/icons.generated/Sms.js +49 -0
  228. package/dist/icons.generated/Sms.js.map +1 -0
  229. package/dist/icons.generated/Subtract.js +1 -1
  230. package/dist/icons.generated/Subtract.js.map +1 -1
  231. package/dist/icons.generated/SymantecVip.js +38 -0
  232. package/dist/icons.generated/SymantecVip.js.map +1 -0
  233. package/dist/icons.generated/Sync.js +1 -1
  234. package/dist/icons.generated/Sync.js.map +1 -1
  235. package/dist/icons.generated/ThumbsDown.js +33 -0
  236. package/dist/icons.generated/ThumbsDown.js.map +1 -0
  237. package/dist/icons.generated/ThumbsUp.js +33 -0
  238. package/dist/icons.generated/ThumbsUp.js.map +1 -0
  239. package/dist/icons.generated/Unlock.js +1 -1
  240. package/dist/icons.generated/Unlock.js.map +1 -1
  241. package/dist/icons.generated/Upload.js +1 -1
  242. package/dist/icons.generated/Upload.js.map +1 -1
  243. package/dist/icons.generated/User.js +1 -1
  244. package/dist/icons.generated/User.js.map +1 -1
  245. package/dist/icons.generated/Video.js +1 -1
  246. package/dist/icons.generated/Video.js.map +1 -1
  247. package/dist/icons.generated/VoiceCall.js +54 -0
  248. package/dist/icons.generated/VoiceCall.js.map +1 -0
  249. package/dist/icons.generated/Warning.js +1 -1
  250. package/dist/icons.generated/Warning.js.map +1 -1
  251. package/dist/icons.generated/WarningFilled.js +1 -1
  252. package/dist/icons.generated/WarningFilled.js.map +1 -1
  253. package/dist/icons.generated/Yubikey.js +31 -0
  254. package/dist/icons.generated/Yubikey.js.map +1 -0
  255. package/dist/icons.generated/index.js +18 -0
  256. package/dist/icons.generated/index.js.map +1 -1
  257. package/dist/index.d.ts +24 -0
  258. package/dist/index.d.ts.map +1 -0
  259. package/dist/index.js +7 -2
  260. package/dist/index.js.map +1 -1
  261. package/dist/index.scss +457 -0
  262. package/dist/labs/DataComponents/BulkActionsMenu.js +77 -0
  263. package/dist/labs/DataComponents/BulkActionsMenu.js.map +1 -0
  264. package/dist/labs/DataComponents/DataStack.js +79 -0
  265. package/dist/labs/DataComponents/DataStack.js.map +1 -0
  266. package/dist/labs/DataComponents/DataTable.js +90 -0
  267. package/dist/labs/DataComponents/DataTable.js.map +1 -0
  268. package/dist/labs/DataComponents/DataView.js +278 -0
  269. package/dist/labs/DataComponents/DataView.js.map +1 -0
  270. package/dist/{src/DataTable/DataTableEmptyState.d.ts → labs/DataComponents/DetailPanel.js} +14 -9
  271. package/dist/labs/DataComponents/DetailPanel.js.map +1 -0
  272. package/dist/labs/DataComponents/LayoutSwitcher.js +53 -0
  273. package/dist/labs/DataComponents/LayoutSwitcher.js.map +1 -0
  274. package/dist/labs/DataComponents/RowActions.js +80 -0
  275. package/dist/labs/DataComponents/RowActions.js.map +1 -0
  276. package/dist/labs/DataComponents/StackCard.js +163 -0
  277. package/dist/labs/DataComponents/StackCard.js.map +1 -0
  278. package/dist/labs/DataComponents/StackContent.js +143 -0
  279. package/dist/labs/DataComponents/StackContent.js.map +1 -0
  280. package/dist/labs/DataComponents/TableContent.js +248 -0
  281. package/dist/labs/DataComponents/TableContent.js.map +1 -0
  282. package/dist/labs/DataComponents/TableSettings.js +96 -0
  283. package/dist/labs/DataComponents/TableSettings.js.map +1 -0
  284. package/dist/labs/DataComponents/componentTypes.js +2 -0
  285. package/dist/labs/DataComponents/componentTypes.js.map +1 -0
  286. package/dist/labs/DataComponents/constants.js +17 -0
  287. package/dist/labs/DataComponents/constants.js.map +1 -0
  288. package/dist/labs/DataComponents/dataTypes.js +2 -0
  289. package/dist/labs/DataComponents/dataTypes.js.map +1 -0
  290. package/dist/labs/DataComponents/fetchData.js +33 -0
  291. package/dist/labs/DataComponents/fetchData.js.map +1 -0
  292. package/dist/labs/DataComponents/index.js +18 -0
  293. package/dist/labs/DataComponents/index.js.map +1 -0
  294. package/dist/labs/DataComponents/tableConstants.js +146 -0
  295. package/dist/labs/DataComponents/tableConstants.js.map +1 -0
  296. package/dist/labs/DataComponents/useFilterConversion.js +58 -0
  297. package/dist/labs/DataComponents/useFilterConversion.js.map +1 -0
  298. package/dist/labs/DataFilters.js +139 -82
  299. package/dist/labs/DataFilters.js.map +1 -1
  300. package/dist/labs/DateField.js +77 -0
  301. package/dist/labs/DateField.js.map +1 -0
  302. package/dist/labs/DatePicker.js +186 -23
  303. package/dist/labs/DatePicker.js.map +1 -1
  304. package/dist/labs/{DatePicker.types.js → DatePicker.types.d.js} +1 -1
  305. package/dist/labs/DatePicker.types.d.js.map +1 -0
  306. package/dist/labs/FileUpload.js +28 -25
  307. package/dist/labs/FileUpload.js.map +1 -1
  308. package/dist/labs/FileUploadIllustration.js +1 -1
  309. package/dist/labs/FileUploadIllustration.js.map +1 -1
  310. package/dist/labs/FileUploadPreview.js +1 -0
  311. package/dist/labs/FileUploadPreview.js.map +1 -1
  312. package/dist/labs/Layout.js +49 -0
  313. package/dist/labs/Layout.js.map +1 -0
  314. package/dist/labs/NavAccordion.js +80 -0
  315. package/dist/labs/NavAccordion.js.map +1 -0
  316. package/dist/labs/PageTemplate.js +140 -0
  317. package/dist/labs/PageTemplate.js.map +1 -0
  318. package/dist/labs/SideNav.js +478 -0
  319. package/dist/labs/SideNav.js.map +1 -0
  320. package/dist/labs/Switch.js +186 -77
  321. package/dist/labs/Switch.js.map +1 -1
  322. package/dist/labs/datePickerTheme.js +138 -80
  323. package/dist/labs/datePickerTheme.js.map +1 -1
  324. package/dist/labs/index.js +5 -1
  325. package/dist/labs/index.js.map +1 -1
  326. package/dist/labs/useDatePickerTranslations.js +71 -0
  327. package/dist/labs/useDatePickerTranslations.js.map +1 -0
  328. package/dist/preset.d.ts +23 -0
  329. package/dist/preset.d.ts.map +1 -0
  330. package/dist/preset.js +35 -0
  331. package/dist/properties/ts/odyssey-react-mui.js +68 -10
  332. package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
  333. package/dist/properties/ts/odyssey-react-mui_cs.js +55 -8
  334. package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  335. package/dist/properties/ts/odyssey-react-mui_da.js +55 -8
  336. package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
  337. package/dist/properties/ts/odyssey-react-mui_de.js +55 -8
  338. package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
  339. package/dist/properties/ts/odyssey-react-mui_el.js +55 -8
  340. package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
  341. package/dist/properties/ts/odyssey-react-mui_es.js +55 -8
  342. package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
  343. package/dist/properties/ts/odyssey-react-mui_fi.js +55 -8
  344. package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  345. package/dist/properties/ts/odyssey-react-mui_fr.js +55 -8
  346. package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  347. package/dist/properties/ts/odyssey-react-mui_ht.js +98 -0
  348. package/dist/properties/ts/odyssey-react-mui_ht.js.map +1 -0
  349. package/dist/properties/ts/odyssey-react-mui_hu.js +55 -8
  350. package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  351. package/dist/properties/ts/odyssey-react-mui_id.js +55 -8
  352. package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
  353. package/dist/properties/ts/odyssey-react-mui_it.js +55 -8
  354. package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
  355. package/dist/properties/ts/odyssey-react-mui_ja.js +55 -8
  356. package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  357. package/dist/properties/ts/odyssey-react-mui_ko.js +55 -8
  358. package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  359. package/dist/properties/ts/odyssey-react-mui_ms.js +55 -8
  360. package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  361. package/dist/properties/ts/odyssey-react-mui_nb.js +55 -8
  362. package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  363. package/dist/properties/ts/odyssey-react-mui_nl_NL.js +55 -8
  364. package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  365. package/dist/properties/ts/odyssey-react-mui_pl.js +55 -8
  366. package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  367. package/dist/properties/ts/odyssey-react-mui_pt_BR.js +55 -8
  368. package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  369. package/dist/properties/ts/odyssey-react-mui_ro.js +55 -8
  370. package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  371. package/dist/properties/ts/odyssey-react-mui_ru.js +55 -8
  372. package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  373. package/dist/properties/ts/odyssey-react-mui_sv.js +55 -8
  374. package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  375. package/dist/properties/ts/odyssey-react-mui_th.js +55 -8
  376. package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
  377. package/dist/properties/ts/odyssey-react-mui_tr.js +55 -8
  378. package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  379. package/dist/properties/ts/odyssey-react-mui_uk.js +55 -8
  380. package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  381. package/dist/properties/ts/odyssey-react-mui_vi.js +55 -8
  382. package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  383. package/dist/properties/ts/odyssey-react-mui_zh_CN.js +55 -8
  384. package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  385. package/dist/properties/ts/odyssey-react-mui_zh_TW.js +55 -8
  386. package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  387. package/dist/remUtils.js +14 -0
  388. package/dist/remUtils.js.map +1 -0
  389. package/dist/scripts/generateTestSelectorsJson.d.ts +13 -0
  390. package/dist/scripts/generateTestSelectorsJson.d.ts.map +1 -0
  391. package/dist/src/Accordion.d.ts +1 -1
  392. package/dist/src/Accordion.d.ts.map +1 -1
  393. package/dist/src/Autocomplete.d.ts +7 -1
  394. package/dist/src/Autocomplete.d.ts.map +1 -1
  395. package/dist/src/Badge.d.ts +2 -2
  396. package/dist/src/Badge.d.ts.map +1 -1
  397. package/dist/src/Banner.d.ts.map +1 -1
  398. package/dist/src/Button.d.ts +10 -6
  399. package/dist/src/Button.d.ts.map +1 -1
  400. package/dist/src/Callout.d.ts +38 -2
  401. package/dist/src/Callout.d.ts.map +1 -1
  402. package/dist/src/{Tile.d.ts → Card.d.ts} +6 -27
  403. package/dist/src/Card.d.ts.map +1 -0
  404. package/dist/src/DataTable/DataTable.d.ts +65 -48
  405. package/dist/src/DataTable/DataTable.d.ts.map +1 -1
  406. package/dist/src/DataTable/DataTableRowActions.d.ts +1 -1
  407. package/dist/src/DataTable/DataTableRowActions.d.ts.map +1 -1
  408. package/dist/src/DataTable/constants.d.ts +0 -1
  409. package/dist/src/DataTable/constants.d.ts.map +1 -1
  410. package/dist/src/DataTable/index.d.ts +1 -2
  411. package/dist/src/DataTable/index.d.ts.map +1 -1
  412. package/dist/src/DataTable/reorderDataRowsLocally.d.ts.map +1 -1
  413. package/dist/src/DataTable/useRowReordering.d.ts +3 -3
  414. package/dist/src/DataTable/useRowReordering.d.ts.map +1 -1
  415. package/dist/src/Dialog.d.ts +19 -7
  416. package/dist/src/Dialog.d.ts.map +1 -1
  417. package/dist/src/{labs/Drawer.d.ts → Drawer.d.ts} +3 -3
  418. package/dist/src/Drawer.d.ts.map +1 -0
  419. package/dist/src/EmptyState.d.ts +34 -0
  420. package/dist/src/EmptyState.d.ts.map +1 -0
  421. package/dist/src/ErrorMessageList.d.ts.map +1 -1
  422. package/dist/src/FieldError.d.ts.map +1 -1
  423. package/dist/src/HtmlProps.d.ts +1 -0
  424. package/dist/src/HtmlProps.d.ts.map +1 -1
  425. package/dist/src/MenuItem.d.ts.map +1 -1
  426. package/dist/src/OdysseyCacheProvider.d.ts +6 -2
  427. package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
  428. package/dist/src/OdysseyProvider.d.ts.map +1 -1
  429. package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
  430. package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
  431. package/dist/src/Pagination/Pagination.d.ts +70 -0
  432. package/dist/src/Pagination/Pagination.d.ts.map +1 -0
  433. package/dist/src/Pagination/constants.d.ts +13 -0
  434. package/dist/src/Pagination/constants.d.ts.map +1 -0
  435. package/dist/src/Pagination/index.d.ts +15 -0
  436. package/dist/src/Pagination/index.d.ts.map +1 -0
  437. package/dist/src/Pagination/usePagination.d.ts +23 -0
  438. package/dist/src/Pagination/usePagination.d.ts.map +1 -0
  439. package/dist/src/Radio.d.ts +2 -2
  440. package/dist/src/Radio.d.ts.map +1 -1
  441. package/dist/src/ScreenReaderText.d.ts +3 -2
  442. package/dist/src/ScreenReaderText.d.ts.map +1 -1
  443. package/dist/src/Select.d.ts.map +1 -1
  444. package/dist/src/Status.d.ts +7 -2
  445. package/dist/src/Status.d.ts.map +1 -1
  446. package/dist/src/{labs/DatePicker.types.d.ts → Surface.d.ts} +7 -8
  447. package/dist/src/Surface.d.ts.map +1 -0
  448. package/dist/src/Tabs.d.ts +22 -0
  449. package/dist/src/Tabs.d.ts.map +1 -1
  450. package/dist/src/TextField.d.ts +48 -0
  451. package/dist/src/TextField.d.ts.map +1 -1
  452. package/dist/src/Toast.d.ts.map +1 -1
  453. package/dist/src/icons.generated/Add.d.ts +1 -1
  454. package/dist/src/icons.generated/AddCircle.d.ts +1 -1
  455. package/dist/src/icons.generated/Apps.d.ts +1 -1
  456. package/dist/src/icons.generated/ArrowBottom.d.ts +1 -1
  457. package/dist/src/icons.generated/ArrowDown.d.ts +1 -1
  458. package/dist/src/icons.generated/ArrowLeft.d.ts +1 -1
  459. package/dist/src/icons.generated/ArrowLowerLeft.d.ts +1 -1
  460. package/dist/src/icons.generated/ArrowLowerRight.d.ts +1 -1
  461. package/dist/src/icons.generated/ArrowRight.d.ts +1 -1
  462. package/dist/src/icons.generated/ArrowTop.d.ts +1 -1
  463. package/dist/src/icons.generated/ArrowUnsorted.d.ts +1 -1
  464. package/dist/src/icons.generated/ArrowUp.d.ts +1 -1
  465. package/dist/src/icons.generated/ArrowUpperLeft.d.ts +1 -1
  466. package/dist/src/icons.generated/ArrowUpperRight.d.ts +1 -1
  467. package/dist/src/icons.generated/Bug.d.ts +1 -1
  468. package/dist/src/icons.generated/Calendar.d.ts +1 -1
  469. package/dist/src/icons.generated/Call.d.ts +1 -1
  470. package/dist/src/icons.generated/Chat.d.ts +1 -1
  471. package/dist/src/icons.generated/Check.d.ts +1 -1
  472. package/dist/src/icons.generated/CheckCircleFilled.d.ts +1 -1
  473. package/dist/src/icons.generated/ChevronDown.d.ts +1 -1
  474. package/dist/src/icons.generated/ChevronLeft.d.ts +1 -1
  475. package/dist/src/icons.generated/ChevronRight.d.ts +1 -1
  476. package/dist/src/icons.generated/ChevronUp.d.ts +1 -1
  477. package/dist/src/icons.generated/Clock.d.ts +1 -1
  478. package/dist/src/icons.generated/Close.d.ts +1 -1
  479. package/dist/src/icons.generated/CloseCircleFilled.d.ts +1 -1
  480. package/dist/src/icons.generated/CollapseLeft.d.ts +1 -1
  481. package/dist/src/icons.generated/CollapseRight.d.ts +1 -1
  482. package/dist/src/icons.generated/Copy.d.ts +1 -1
  483. package/dist/src/icons.generated/Custom.d.ts +16 -0
  484. package/dist/src/icons.generated/Custom.d.ts.map +1 -0
  485. package/dist/src/icons.generated/DangerDiamond.d.ts +1 -1
  486. package/dist/src/icons.generated/DangerDiamondFilled.d.ts +1 -1
  487. package/dist/src/icons.generated/Delete.d.ts +1 -1
  488. package/dist/src/icons.generated/Deny.d.ts +1 -1
  489. package/dist/src/icons.generated/Devices.d.ts +1 -1
  490. package/dist/src/icons.generated/Directory.d.ts +1 -1
  491. package/dist/src/icons.generated/Documentation.d.ts +1 -1
  492. package/dist/src/icons.generated/Download.d.ts +1 -1
  493. package/dist/src/icons.generated/DragIndicator.d.ts +1 -1
  494. package/dist/src/icons.generated/Duo.d.ts +16 -0
  495. package/dist/src/icons.generated/Duo.d.ts.map +1 -0
  496. package/dist/src/icons.generated/Edit.d.ts +1 -1
  497. package/dist/src/icons.generated/Email.d.ts +16 -0
  498. package/dist/src/icons.generated/Email.d.ts.map +1 -0
  499. package/dist/src/icons.generated/ExpandLeft.d.ts +1 -1
  500. package/dist/src/icons.generated/ExpandRight.d.ts +1 -1
  501. package/dist/src/icons.generated/ExternalLink.d.ts +1 -1
  502. package/dist/src/icons.generated/Fido2.d.ts +16 -0
  503. package/dist/src/icons.generated/Fido2.d.ts.map +1 -0
  504. package/dist/src/icons.generated/Filter.d.ts +1 -1
  505. package/dist/src/icons.generated/Folder.d.ts +1 -1
  506. package/dist/src/icons.generated/Globe.d.ts +1 -1
  507. package/dist/src/icons.generated/GoogleAuth.d.ts +16 -0
  508. package/dist/src/icons.generated/GoogleAuth.d.ts.map +1 -0
  509. package/dist/src/icons.generated/Grid.d.ts +1 -1
  510. package/dist/src/icons.generated/Group.d.ts +1 -1
  511. package/dist/src/icons.generated/Hide.d.ts +1 -1
  512. package/dist/src/icons.generated/Home.d.ts +1 -1
  513. package/dist/src/icons.generated/Idp.d.ts +16 -0
  514. package/dist/src/icons.generated/Idp.d.ts.map +1 -0
  515. package/dist/src/icons.generated/InformationCircle.d.ts +1 -1
  516. package/dist/src/icons.generated/InformationCircleFilled.d.ts +1 -1
  517. package/dist/src/icons.generated/Link.d.ts +1 -1
  518. package/dist/src/icons.generated/List.d.ts +1 -1
  519. package/dist/src/icons.generated/Lock.d.ts +1 -1
  520. package/dist/src/icons.generated/More.d.ts +1 -1
  521. package/dist/src/icons.generated/Notification.d.ts +1 -1
  522. package/dist/src/icons.generated/OktaVerify.d.ts +16 -0
  523. package/dist/src/icons.generated/OktaVerify.d.ts.map +1 -0
  524. package/dist/src/icons.generated/OnPremMfa.d.ts +16 -0
  525. package/dist/src/icons.generated/OnPremMfa.d.ts.map +1 -0
  526. package/dist/src/icons.generated/OneTimePassword.d.ts +16 -0
  527. package/dist/src/icons.generated/OneTimePassword.d.ts.map +1 -0
  528. package/dist/src/icons.generated/Password.d.ts +16 -0
  529. package/dist/src/icons.generated/Password.d.ts.map +1 -0
  530. package/dist/src/icons.generated/Pause.d.ts +1 -1
  531. package/dist/src/icons.generated/QuestionCircle.d.ts +1 -1
  532. package/dist/src/icons.generated/QuestionCircleFilled.d.ts +1 -1
  533. package/dist/src/icons.generated/Refresh.d.ts +1 -1
  534. package/dist/src/icons.generated/Reset.d.ts +1 -1
  535. package/dist/src/icons.generated/Resume.d.ts +1 -1
  536. package/dist/src/icons.generated/Search.d.ts +1 -1
  537. package/dist/src/icons.generated/SecurityQuestion.d.ts +16 -0
  538. package/dist/src/icons.generated/SecurityQuestion.d.ts.map +1 -0
  539. package/dist/src/icons.generated/Server.d.ts +1 -1
  540. package/dist/src/icons.generated/Settings.d.ts +1 -1
  541. package/dist/src/icons.generated/Show.d.ts +1 -1
  542. package/dist/src/icons.generated/SmartCard.d.ts +16 -0
  543. package/dist/src/icons.generated/SmartCard.d.ts.map +1 -0
  544. package/dist/src/icons.generated/Sms.d.ts +16 -0
  545. package/dist/src/icons.generated/Sms.d.ts.map +1 -0
  546. package/dist/src/icons.generated/Subtract.d.ts +1 -1
  547. package/dist/src/icons.generated/SymantecVip.d.ts +16 -0
  548. package/dist/src/icons.generated/SymantecVip.d.ts.map +1 -0
  549. package/dist/src/icons.generated/Sync.d.ts +1 -1
  550. package/dist/src/icons.generated/ThumbsDown.d.ts +16 -0
  551. package/dist/src/icons.generated/ThumbsDown.d.ts.map +1 -0
  552. package/dist/src/icons.generated/ThumbsUp.d.ts +16 -0
  553. package/dist/src/icons.generated/ThumbsUp.d.ts.map +1 -0
  554. package/dist/src/icons.generated/Unlock.d.ts +1 -1
  555. package/dist/src/icons.generated/Upload.d.ts +1 -1
  556. package/dist/src/icons.generated/User.d.ts +1 -1
  557. package/dist/src/icons.generated/Video.d.ts +1 -1
  558. package/dist/src/icons.generated/VoiceCall.d.ts +16 -0
  559. package/dist/src/icons.generated/VoiceCall.d.ts.map +1 -0
  560. package/dist/src/icons.generated/Warning.d.ts +1 -1
  561. package/dist/src/icons.generated/WarningFilled.d.ts +1 -1
  562. package/dist/src/icons.generated/Yubikey.d.ts +16 -0
  563. package/dist/src/icons.generated/Yubikey.d.ts.map +1 -0
  564. package/dist/src/icons.generated/index.d.ts +18 -0
  565. package/dist/src/icons.generated/index.d.ts.map +1 -1
  566. package/dist/src/index.d.ts +7 -2
  567. package/dist/src/index.d.ts.map +1 -1
  568. package/dist/src/inputUtils.d.ts.map +1 -1
  569. package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts +23 -0
  570. package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts.map +1 -0
  571. package/dist/src/labs/DataComponents/DataStack.d.ts +21 -0
  572. package/dist/src/labs/DataComponents/DataStack.d.ts.map +1 -0
  573. package/dist/src/labs/DataComponents/DataTable.d.ts +17 -0
  574. package/dist/src/labs/DataComponents/DataTable.d.ts.map +1 -0
  575. package/dist/src/labs/DataComponents/DataView.d.ts +17 -0
  576. package/dist/src/labs/DataComponents/DataView.d.ts.map +1 -0
  577. package/dist/src/labs/DataComponents/DetailPanel.d.ts +20 -0
  578. package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +1 -0
  579. package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts +21 -0
  580. package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts.map +1 -0
  581. package/dist/src/labs/DataComponents/RowActions.d.ts +31 -0
  582. package/dist/src/labs/DataComponents/RowActions.d.ts.map +1 -0
  583. package/dist/src/labs/DataComponents/StackCard.d.ts +36 -0
  584. package/dist/src/labs/DataComponents/StackCard.d.ts.map +1 -0
  585. package/dist/src/labs/DataComponents/StackContent.d.ts +64 -0
  586. package/dist/src/labs/DataComponents/StackContent.d.ts.map +1 -0
  587. package/dist/src/labs/DataComponents/TableContent.d.ts +66 -0
  588. package/dist/src/labs/DataComponents/TableContent.d.ts.map +1 -0
  589. package/dist/src/labs/DataComponents/TableSettings.d.ts +21 -0
  590. package/dist/src/labs/DataComponents/TableSettings.d.ts.map +1 -0
  591. package/dist/src/labs/DataComponents/componentTypes.d.ts +81 -0
  592. package/dist/src/labs/DataComponents/componentTypes.d.ts.map +1 -0
  593. package/dist/src/labs/DataComponents/constants.d.ts +16 -0
  594. package/dist/src/labs/DataComponents/constants.d.ts.map +1 -0
  595. package/dist/src/labs/DataComponents/dataTypes.d.ts +52 -0
  596. package/dist/src/labs/DataComponents/dataTypes.d.ts.map +1 -0
  597. package/dist/src/labs/DataComponents/fetchData.d.ts +26 -0
  598. package/dist/src/labs/DataComponents/fetchData.d.ts.map +1 -0
  599. package/dist/src/labs/DataComponents/index.d.ts +18 -0
  600. package/dist/src/labs/DataComponents/index.d.ts.map +1 -0
  601. package/dist/src/labs/DataComponents/tableConstants.d.ts +100 -0
  602. package/dist/src/labs/DataComponents/tableConstants.d.ts.map +1 -0
  603. package/dist/src/labs/DataComponents/useFilterConversion.d.ts +20 -0
  604. package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +1 -0
  605. package/dist/src/labs/DataFilters.d.ts +14 -7
  606. package/dist/src/labs/DataFilters.d.ts.map +1 -1
  607. package/dist/src/labs/DateField.d.ts +23 -0
  608. package/dist/src/labs/DateField.d.ts.map +1 -0
  609. package/dist/src/labs/DatePicker.d.ts +31 -8
  610. package/dist/src/labs/DatePicker.d.ts.map +1 -1
  611. package/dist/src/labs/FileUpload.d.ts +2 -2
  612. package/dist/src/labs/FileUpload.d.ts.map +1 -1
  613. package/dist/src/labs/FileUploadPreview.d.ts.map +1 -1
  614. package/dist/src/labs/GroupPicker.d.ts.map +1 -1
  615. package/dist/src/labs/Layout.d.ts +28 -0
  616. package/dist/src/labs/Layout.d.ts.map +1 -0
  617. package/dist/src/labs/NavAccordion.d.ts +52 -0
  618. package/dist/src/labs/NavAccordion.d.ts.map +1 -0
  619. package/dist/src/labs/PageTemplate.d.ts +57 -0
  620. package/dist/src/labs/PageTemplate.d.ts.map +1 -0
  621. package/dist/src/labs/PaginatedTable.d.ts.map +1 -1
  622. package/dist/src/labs/SideNav.d.ts +120 -0
  623. package/dist/src/labs/SideNav.d.ts.map +1 -0
  624. package/dist/src/labs/StaticTable.d.ts.map +1 -1
  625. package/dist/src/labs/Switch.d.ts +3 -7
  626. package/dist/src/labs/Switch.d.ts.map +1 -1
  627. package/dist/src/labs/datePickerTheme.d.ts.map +1 -1
  628. package/dist/src/labs/index.d.ts +5 -1
  629. package/dist/src/labs/index.d.ts.map +1 -1
  630. package/dist/src/labs/useDatePickerTranslations.d.ts +15 -0
  631. package/dist/src/labs/useDatePickerTranslations.d.ts.map +1 -0
  632. package/dist/src/properties/ts/odyssey-react-mui.d.ts +66 -8
  633. package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  634. package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +54 -7
  635. package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  636. package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +54 -7
  637. package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  638. package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +54 -7
  639. package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  640. package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +54 -7
  641. package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  642. package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +54 -7
  643. package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  644. package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +54 -7
  645. package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  646. package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +54 -7
  647. package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  648. package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts +98 -0
  649. package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -0
  650. package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +54 -7
  651. package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  652. package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +54 -7
  653. package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  654. package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +54 -7
  655. package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  656. package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +54 -7
  657. package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  658. package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +54 -7
  659. package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  660. package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +54 -7
  661. package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  662. package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +54 -7
  663. package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  664. package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +54 -7
  665. package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  666. package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +54 -7
  667. package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  668. package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +54 -7
  669. package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  670. package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +54 -7
  671. package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  672. package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +54 -7
  673. package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  674. package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +54 -7
  675. package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  676. package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +54 -7
  677. package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  678. package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +54 -7
  679. package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  680. package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +54 -7
  681. package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  682. package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +54 -7
  683. package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  684. package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +54 -7
  685. package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  686. package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +54 -7
  687. package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  688. package/dist/src/remUtils.d.ts +24 -0
  689. package/dist/src/remUtils.d.ts.map +1 -0
  690. package/dist/src/test-selectors/featureTestSelector.d.ts +31 -0
  691. package/dist/src/test-selectors/featureTestSelector.d.ts.map +1 -0
  692. package/dist/src/test-selectors/index.d.ts +15 -0
  693. package/dist/src/test-selectors/index.d.ts.map +1 -0
  694. package/dist/src/test-selectors/odysseyTestSelectors.d.ts +120 -0
  695. package/dist/src/test-selectors/odysseyTestSelectors.d.ts.map +1 -0
  696. package/dist/src/test-selectors/querySelector.d.ts +3632 -0
  697. package/dist/src/test-selectors/querySelector.d.ts.map +1 -0
  698. package/dist/src/theme/components.d.ts +1 -1
  699. package/dist/src/theme/components.d.ts.map +1 -1
  700. package/dist/src/theme/components.types.d.ts +5 -3
  701. package/dist/src/theme/components.types.d.ts.map +1 -1
  702. package/dist/src/theme/createOdysseyMuiTheme.d.ts +1 -1
  703. package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -1
  704. package/dist/src/theme/mixins.d.ts.map +1 -1
  705. package/dist/src/theme/palette.d.ts.map +1 -1
  706. package/dist/src/theme/shape.d.ts.map +1 -1
  707. package/dist/src/theme/spacing.d.ts.map +1 -1
  708. package/dist/src/theme/typography.d.ts.map +1 -1
  709. package/dist/test-selectors/featureTestSelector.js +2 -0
  710. package/dist/test-selectors/featureTestSelector.js.map +1 -0
  711. package/dist/test-selectors/index.js +15 -0
  712. package/dist/test-selectors/index.js.map +1 -0
  713. package/dist/test-selectors/odysseyTestSelectors.js +20 -0
  714. package/dist/test-selectors/odysseyTestSelectors.js.map +1 -0
  715. package/dist/test-selectors/querySelector.js +78 -0
  716. package/dist/test-selectors/querySelector.js.map +1 -0
  717. package/dist/test-selectors/testSelectors.json +1 -0
  718. package/dist/theme/components.js +248 -177
  719. package/dist/theme/components.js.map +1 -1
  720. package/dist/theme/components.types.js.map +1 -1
  721. package/dist/tsconfig.production.tsbuildinfo +1 -1
  722. package/dist/tsconfig.tsbuildinfo +1 -0
  723. package/i18n.config.json +3 -1
  724. package/package.json +13 -5
  725. package/scripts/generateTestSelectorsJson.ts +28 -0
  726. package/src/Accordion.tsx +3 -0
  727. package/src/Autocomplete.tsx +13 -0
  728. package/src/Badge.tsx +4 -3
  729. package/src/Banner.tsx +4 -4
  730. package/src/Button.tsx +30 -16
  731. package/src/Callout.tsx +59 -12
  732. package/src/{Tile.tsx → Card.tsx} +63 -57
  733. package/src/DataTable/DataTable.tsx +164 -95
  734. package/src/DataTable/DataTableRowActions.tsx +1 -1
  735. package/src/DataTable/constants.ts +0 -1
  736. package/src/DataTable/index.tsx +1 -1
  737. package/src/Dialog.tsx +38 -13
  738. package/src/{labs/Drawer.tsx → Drawer.tsx} +10 -9
  739. package/src/{DataTable/DataTableEmptyState.tsx → EmptyState.tsx} +34 -19
  740. package/src/ErrorMessageList.tsx +6 -1
  741. package/src/FieldError.tsx +10 -5
  742. package/src/HtmlProps.ts +1 -0
  743. package/src/MenuItem.tsx +1 -0
  744. package/src/OdysseyCacheProvider.tsx +11 -3
  745. package/src/OdysseyProvider.tsx +1 -1
  746. package/src/OdysseyTranslationProvider.tsx +1 -17
  747. package/src/{DataTable/DataTablePagination.tsx → Pagination/Pagination.tsx} +107 -74
  748. package/src/Pagination/constants.ts +13 -0
  749. package/src/Pagination/index.ts +15 -0
  750. package/src/Pagination/usePagination.ts +49 -0
  751. package/src/Radio.tsx +18 -6
  752. package/src/ScreenReaderText.tsx +15 -3
  753. package/src/Select.tsx +2 -0
  754. package/src/Status.tsx +14 -2
  755. package/src/Surface.tsx +48 -0
  756. package/src/Tabs.tsx +24 -0
  757. package/src/TextField.tsx +50 -0
  758. package/src/Toast.tsx +44 -40
  759. package/src/icons.generated/Add.tsx +1 -1
  760. package/src/icons.generated/AddCircle.tsx +1 -1
  761. package/src/icons.generated/Apps.tsx +1 -1
  762. package/src/icons.generated/ArrowBottom.tsx +2 -2
  763. package/src/icons.generated/ArrowDown.tsx +1 -1
  764. package/src/icons.generated/ArrowLeft.tsx +1 -1
  765. package/src/icons.generated/ArrowLowerLeft.tsx +1 -1
  766. package/src/icons.generated/ArrowLowerRight.tsx +1 -1
  767. package/src/icons.generated/ArrowRight.tsx +1 -1
  768. package/src/icons.generated/ArrowTop.tsx +2 -2
  769. package/src/icons.generated/ArrowUnsorted.tsx +1 -1
  770. package/src/icons.generated/ArrowUp.tsx +1 -1
  771. package/src/icons.generated/ArrowUpperLeft.tsx +1 -1
  772. package/src/icons.generated/ArrowUpperRight.tsx +1 -1
  773. package/src/icons.generated/Bug.tsx +1 -1
  774. package/src/icons.generated/Calendar.tsx +1 -1
  775. package/src/icons.generated/Call.tsx +1 -1
  776. package/src/icons.generated/Chat.tsx +1 -1
  777. package/src/icons.generated/Check.tsx +1 -1
  778. package/src/icons.generated/CheckCircleFilled.tsx +1 -1
  779. package/src/icons.generated/ChevronDown.tsx +1 -1
  780. package/src/icons.generated/ChevronLeft.tsx +1 -1
  781. package/src/icons.generated/ChevronRight.tsx +1 -1
  782. package/src/icons.generated/ChevronUp.tsx +1 -1
  783. package/src/icons.generated/Clock.tsx +1 -1
  784. package/src/icons.generated/Close.tsx +1 -1
  785. package/src/icons.generated/CloseCircleFilled.tsx +1 -1
  786. package/src/icons.generated/CollapseLeft.tsx +1 -1
  787. package/src/icons.generated/CollapseRight.tsx +1 -1
  788. package/src/icons.generated/Copy.tsx +1 -1
  789. package/src/icons.generated/Custom.tsx +49 -0
  790. package/src/icons.generated/DangerDiamond.tsx +1 -1
  791. package/src/icons.generated/DangerDiamondFilled.tsx +1 -1
  792. package/src/icons.generated/Delete.tsx +1 -1
  793. package/src/icons.generated/Deny.tsx +1 -1
  794. package/src/icons.generated/Devices.tsx +1 -1
  795. package/src/icons.generated/Directory.tsx +1 -1
  796. package/src/icons.generated/Documentation.tsx +1 -1
  797. package/src/icons.generated/Download.tsx +1 -1
  798. package/src/icons.generated/DragIndicator.tsx +1 -1
  799. package/src/icons.generated/Duo.tsx +59 -0
  800. package/src/icons.generated/Edit.tsx +1 -1
  801. package/src/icons.generated/Email.tsx +48 -0
  802. package/src/icons.generated/ExpandLeft.tsx +1 -1
  803. package/src/icons.generated/ExpandRight.tsx +1 -1
  804. package/src/icons.generated/ExternalLink.tsx +1 -1
  805. package/src/icons.generated/Fido2.tsx +71 -0
  806. package/src/icons.generated/Filter.tsx +1 -1
  807. package/src/icons.generated/Folder.tsx +1 -1
  808. package/src/icons.generated/Globe.tsx +1 -1
  809. package/src/icons.generated/GoogleAuth.tsx +67 -0
  810. package/src/icons.generated/Grid.tsx +1 -1
  811. package/src/icons.generated/Group.tsx +1 -1
  812. package/src/icons.generated/Hide.tsx +1 -1
  813. package/src/icons.generated/Home.tsx +1 -1
  814. package/src/icons.generated/Idp.tsx +51 -0
  815. package/src/icons.generated/InformationCircle.tsx +1 -1
  816. package/src/icons.generated/InformationCircleFilled.tsx +1 -1
  817. package/src/icons.generated/Link.tsx +1 -1
  818. package/src/icons.generated/List.tsx +1 -1
  819. package/src/icons.generated/Lock.tsx +1 -1
  820. package/src/icons.generated/More.tsx +1 -1
  821. package/src/icons.generated/Notification.tsx +1 -1
  822. package/src/icons.generated/OktaVerify.tsx +43 -0
  823. package/src/icons.generated/OnPremMfa.tsx +49 -0
  824. package/src/icons.generated/OneTimePassword.tsx +63 -0
  825. package/src/icons.generated/Password.tsx +77 -0
  826. package/src/icons.generated/Pause.tsx +1 -1
  827. package/src/icons.generated/QuestionCircle.tsx +1 -1
  828. package/src/icons.generated/QuestionCircleFilled.tsx +1 -1
  829. package/src/icons.generated/Refresh.tsx +1 -1
  830. package/src/icons.generated/Reset.tsx +1 -1
  831. package/src/icons.generated/Resume.tsx +1 -1
  832. package/src/icons.generated/Search.tsx +1 -1
  833. package/src/icons.generated/SecurityQuestion.tsx +48 -0
  834. package/src/icons.generated/Server.tsx +1 -1
  835. package/src/icons.generated/Settings.tsx +1 -1
  836. package/src/icons.generated/Show.tsx +1 -1
  837. package/src/icons.generated/SmartCard.tsx +62 -0
  838. package/src/icons.generated/Sms.tsx +52 -0
  839. package/src/icons.generated/Subtract.tsx +1 -1
  840. package/src/icons.generated/SymantecVip.tsx +49 -0
  841. package/src/icons.generated/Sync.tsx +1 -1
  842. package/src/icons.generated/ThumbsDown.tsx +43 -0
  843. package/src/icons.generated/ThumbsUp.tsx +43 -0
  844. package/src/icons.generated/Unlock.tsx +1 -1
  845. package/src/icons.generated/Upload.tsx +1 -1
  846. package/src/icons.generated/User.tsx +1 -1
  847. package/src/icons.generated/Video.tsx +1 -1
  848. package/src/icons.generated/VoiceCall.tsx +59 -0
  849. package/src/icons.generated/Warning.tsx +1 -1
  850. package/src/icons.generated/WarningFilled.tsx +1 -1
  851. package/src/icons.generated/Yubikey.tsx +41 -0
  852. package/src/icons.generated/index.ts +18 -0
  853. package/src/index.ts +7 -2
  854. package/src/labs/DataComponents/BulkActionsMenu.tsx +97 -0
  855. package/src/labs/DataComponents/DataStack.tsx +99 -0
  856. package/src/labs/DataComponents/DataTable.tsx +111 -0
  857. package/src/labs/DataComponents/DataView.tsx +394 -0
  858. package/src/labs/DataComponents/DetailPanel.tsx +31 -0
  859. package/src/labs/DataComponents/LayoutSwitcher.tsx +73 -0
  860. package/src/labs/DataComponents/RowActions.tsx +122 -0
  861. package/src/labs/DataComponents/StackCard.tsx +256 -0
  862. package/src/labs/DataComponents/StackContent.tsx +254 -0
  863. package/src/labs/DataComponents/TableContent.tsx +390 -0
  864. package/src/labs/DataComponents/TableSettings.tsx +138 -0
  865. package/src/labs/DataComponents/componentTypes.ts +111 -0
  866. package/src/labs/DataComponents/constants.tsx +20 -0
  867. package/src/labs/DataComponents/dataTypes.ts +77 -0
  868. package/src/labs/DataComponents/fetchData.ts +47 -0
  869. package/src/labs/DataComponents/index.tsx +19 -0
  870. package/src/labs/DataComponents/tableConstants.tsx +162 -0
  871. package/src/labs/DataComponents/useFilterConversion.ts +92 -0
  872. package/src/labs/DataFilters.tsx +250 -162
  873. package/src/labs/DateField.tsx +119 -0
  874. package/src/labs/DatePicker.tsx +304 -31
  875. package/src/labs/{DatePicker.types.ts → DatePicker.types.d.ts} +0 -10
  876. package/src/labs/FileUpload.tsx +30 -21
  877. package/src/labs/FileUploadIllustration.tsx +1 -1
  878. package/src/labs/FileUploadPreview.tsx +1 -0
  879. package/src/labs/Layout.tsx +85 -0
  880. package/src/labs/NavAccordion.tsx +133 -0
  881. package/src/labs/PageTemplate.tsx +225 -0
  882. package/src/labs/SideNav.tsx +745 -0
  883. package/src/labs/Switch.tsx +240 -119
  884. package/src/labs/datePickerTheme.tsx +119 -83
  885. package/src/labs/index.ts +7 -1
  886. package/src/labs/useDatePickerTranslations.ts +92 -0
  887. package/src/properties/odyssey-react-mui.properties +76 -10
  888. package/src/properties/translations/odyssey-react-mui_cs.properties +64 -7
  889. package/src/properties/translations/odyssey-react-mui_da.properties +64 -7
  890. package/src/properties/translations/odyssey-react-mui_de.properties +64 -7
  891. package/src/properties/translations/odyssey-react-mui_el.properties +64 -7
  892. package/src/properties/translations/odyssey-react-mui_es.properties +65 -8
  893. package/src/properties/translations/odyssey-react-mui_fi.properties +64 -7
  894. package/src/properties/translations/odyssey-react-mui_fr.properties +65 -8
  895. package/src/properties/translations/odyssey-react-mui_ht.properties +112 -0
  896. package/src/properties/translations/odyssey-react-mui_hu.properties +64 -7
  897. package/src/properties/translations/odyssey-react-mui_id.properties +64 -7
  898. package/src/properties/translations/odyssey-react-mui_it.properties +64 -7
  899. package/src/properties/translations/odyssey-react-mui_ja.properties +64 -7
  900. package/src/properties/translations/odyssey-react-mui_ko.properties +64 -7
  901. package/src/properties/translations/odyssey-react-mui_ms.properties +64 -7
  902. package/src/properties/translations/odyssey-react-mui_nb.properties +64 -7
  903. package/src/properties/translations/odyssey-react-mui_nl_NL.properties +64 -7
  904. package/src/properties/translations/odyssey-react-mui_pl.properties +65 -8
  905. package/src/properties/translations/odyssey-react-mui_pt_BR.properties +64 -7
  906. package/src/properties/translations/odyssey-react-mui_ro.properties +64 -7
  907. package/src/properties/translations/odyssey-react-mui_ru.properties +65 -8
  908. package/src/properties/translations/odyssey-react-mui_sv.properties +64 -7
  909. package/src/properties/translations/odyssey-react-mui_th.properties +64 -7
  910. package/src/properties/translations/odyssey-react-mui_tr.properties +64 -7
  911. package/src/properties/translations/odyssey-react-mui_uk.properties +64 -7
  912. package/src/properties/translations/odyssey-react-mui_vi.properties +64 -7
  913. package/src/properties/translations/odyssey-react-mui_zh_CN.properties +64 -7
  914. package/src/properties/translations/odyssey-react-mui_zh_TW.properties +64 -7
  915. package/src/properties/ts/odyssey-react-mui.ts +1 -1
  916. package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
  917. package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
  918. package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
  919. package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
  920. package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
  921. package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
  922. package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
  923. package/src/properties/ts/odyssey-react-mui_ht.ts +1 -0
  924. package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
  925. package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
  926. package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
  927. package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
  928. package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
  929. package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
  930. package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
  931. package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
  932. package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
  933. package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
  934. package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
  935. package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
  936. package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
  937. package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
  938. package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
  939. package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
  940. package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
  941. package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
  942. package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
  943. package/src/remUtils.ts +27 -0
  944. package/src/test-selectors/featureTestSelector.ts +41 -0
  945. package/src/test-selectors/index.ts +15 -0
  946. package/src/test-selectors/odysseyTestSelectors.ts +22 -0
  947. package/src/test-selectors/querySelector.ts +198 -0
  948. package/src/theme/components.tsx +270 -189
  949. package/src/theme/components.types.ts +5 -3
  950. package/dist/DataTable/DataTableEmptyState.js.map +0 -1
  951. package/dist/DataTable/DataTablePagination.js.map +0 -1
  952. package/dist/Tile.js.map +0 -1
  953. package/dist/labs/DatePicker.types.js.map +0 -1
  954. package/dist/labs/Drawer.js.map +0 -1
  955. package/dist/src/DataTable/DataTableEmptyState.d.ts.map +0 -1
  956. package/dist/src/DataTable/DataTablePagination.d.ts +0 -33
  957. package/dist/src/DataTable/DataTablePagination.d.ts.map +0 -1
  958. package/dist/src/Tile.d.ts.map +0 -1
  959. package/dist/src/labs/DatePicker.types.d.ts.map +0 -1
  960. package/dist/src/labs/Drawer.d.ts.map +0 -1
@@ -13,17 +13,17 @@ import _CardActions from "@mui/material/CardActions";
13
13
  * See the License for the specific language governing permissions and limitations under the License.
14
14
  */
15
15
 
16
- import { memo, useMemo } from "react";
16
+ import { memo, useMemo, useEffect } from "react";
17
17
  import styled from "@emotion/styled";
18
18
  import { ButtonContext } from "./ButtonContext.js";
19
19
  import { MoreIcon } from "./icons.generated/index.js";
20
20
  import { MenuButton } from "./MenuButton.js";
21
21
  import { useOdysseyDesignTokens } from "./OdysseyDesignTokensContext.js";
22
22
  import { Heading5, Paragraph, Support } from "./Typography.js";
23
+ import { Box } from "./Box.js";
23
24
  import { jsx as _jsx } from "react/jsx-runtime";
24
- import { Fragment as _Fragment } from "react/jsx-runtime";
25
25
  import { jsxs as _jsxs } from "react/jsx-runtime";
26
- export const TILE_IMAGE_HEIGHT = "64px";
26
+ export const CARD_IMAGE_HEIGHT = "64px";
27
27
  const ImageContainer = styled("div", {
28
28
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "hasMenuButtonChildren"
29
29
  })(({
@@ -32,7 +32,7 @@ const ImageContainer = styled("div", {
32
32
  }) => ({
33
33
  display: "flex",
34
34
  alignItems: "flex-start",
35
- maxHeight: `${TILE_IMAGE_HEIGHT}`,
35
+ maxHeight: CARD_IMAGE_HEIGHT,
36
36
  marginBlockEnd: odysseyDesignTokens.Spacing5,
37
37
  paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0
38
38
  }));
@@ -45,10 +45,13 @@ const MenuButtonContainer = styled("div", {
45
45
  right: odysseyDesignTokens.Spacing3,
46
46
  top: odysseyDesignTokens.Spacing3
47
47
  }));
48
+ const CardContentContainer = styled("div")(() => ({
49
+ display: "flex"
50
+ }));
48
51
  const buttonProviderValue = {
49
52
  isFullWidth: true
50
53
  };
51
- const Tile = ({
54
+ const Card = ({
52
55
  button,
53
56
  description,
54
57
  image,
@@ -58,26 +61,28 @@ const Tile = ({
58
61
  title
59
62
  }) => {
60
63
  const odysseyDesignTokens = useOdysseyDesignTokens();
61
- const cardContent = useMemo(() => _jsxs(_Fragment, {
62
- children: [image && _jsx(ImageContainer, {
63
- odysseyDesignTokens: odysseyDesignTokens,
64
- hasMenuButtonChildren: Boolean(menuButtonChildren),
65
- children: image
66
- }), overline && _jsx(Support, {
67
- component: "div",
68
- children: overline
69
- }), title && _jsx(Heading5, {
70
- component: "div",
71
- children: title
72
- }), description && _jsx(Paragraph, {
73
- color: "textSecondary",
74
- children: description
75
- }), button && _jsx(_CardActions, {
76
- children: _jsx(ButtonContext.Provider, {
77
- value: buttonProviderValue,
78
- children: button
79
- })
80
- })]
64
+ const cardContent = useMemo(() => _jsx(CardContentContainer, {
65
+ children: _jsxs(Box, {
66
+ children: [image && _jsx(ImageContainer, {
67
+ odysseyDesignTokens: odysseyDesignTokens,
68
+ hasMenuButtonChildren: Boolean(menuButtonChildren),
69
+ children: image
70
+ }), overline && _jsx(Support, {
71
+ component: "div",
72
+ children: overline
73
+ }), title && _jsx(Heading5, {
74
+ component: "div",
75
+ children: title
76
+ }), description && _jsx(Paragraph, {
77
+ color: "textSecondary",
78
+ children: description
79
+ }), button && _jsx(_CardActions, {
80
+ children: _jsx(ButtonContext.Provider, {
81
+ value: buttonProviderValue,
82
+ children: button
83
+ })
84
+ })]
85
+ })
81
86
  }), [button, description, image, menuButtonChildren, overline, title, odysseyDesignTokens]);
82
87
  return _jsxs(_Card, {
83
88
  className: onClick ? "isClickable" : "",
@@ -88,7 +93,7 @@ const Tile = ({
88
93
  odysseyDesignTokens: odysseyDesignTokens,
89
94
  children: _jsx(MenuButton, {
90
95
  endIcon: _jsx(MoreIcon, {}),
91
- ariaLabel: "Tile menu",
96
+ ariaLabel: "Card menu",
92
97
  buttonVariant: "floating",
93
98
  menuAlignment: "right",
94
99
  size: "small",
@@ -98,7 +103,17 @@ const Tile = ({
98
103
  })]
99
104
  });
100
105
  };
106
+ const MemoizedCard = memo(Card);
107
+ MemoizedCard.displayName = "Card";
108
+ const Tile = props => {
109
+ useEffect(() => {
110
+ console.warn("Warning: The 'Tile' component is now called 'Card'. Please update your references as 'Tile' will be deprecated soon.");
111
+ }, []);
112
+ return _jsx(MemoizedCard, {
113
+ ...props
114
+ });
115
+ };
101
116
  const MemoizedTile = memo(Tile);
102
117
  MemoizedTile.displayName = "Tile";
103
- export { MemoizedTile as Tile };
104
- //# sourceMappingURL=Tile.js.map
118
+ export { MemoizedCard as Card, MemoizedTile as Tile };
119
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","names":["memo","useMemo","useEffect","styled","ButtonContext","MoreIcon","MenuButton","useOdysseyDesignTokens","Heading5","Paragraph","Support","Box","jsx","_jsx","jsxs","_jsxs","CARD_IMAGE_HEIGHT","ImageContainer","shouldForwardProp","prop","odysseyDesignTokens","hasMenuButtonChildren","display","alignItems","maxHeight","marginBlockEnd","Spacing5","paddingRight","MenuButtonContainer","position","right","Spacing3","top","CardContentContainer","buttonProviderValue","isFullWidth","Card","button","description","image","menuButtonChildren","onClick","overline","title","cardContent","children","Boolean","component","color","_CardActions","Provider","value","_Card","className","_CardActionArea","endIcon","ariaLabel","buttonVariant","menuAlignment","size","tooltipText","MemoizedCard","displayName","Tile","props","console","warn","MemoizedTile"],"sources":["../src/Card.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 {\n MouseEventHandler,\n ReactElement,\n memo,\n useMemo,\n useEffect,\n} from \"react\";\nimport {\n Card as MuiCard,\n CardActions as MuiCardActions,\n CardActionArea as MuiCardActionArea,\n} from \"@mui/material\";\nimport styled from \"@emotion/styled\";\n\nimport { Button } from \"./Button\";\nimport { ButtonContext } from \"./ButtonContext\";\nimport { MoreIcon } from \"./icons.generated\";\nimport { MenuButton, MenuButtonProps } from \"./MenuButton\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"./OdysseyDesignTokensContext\";\nimport { Heading5, Paragraph, Support } from \"./Typography\";\nimport { Box } from \"./Box\";\n\nexport const CARD_IMAGE_HEIGHT = \"64px\";\n\nexport type CardProps = {\n description?: string;\n image?: ReactElement;\n overline?: string;\n title?: string;\n} & (\n | {\n onClick: MouseEventHandler;\n button?: never;\n menuButtonChildren?: never;\n }\n | {\n onClick?: never;\n button?: ReactElement<typeof Button>;\n menuButtonChildren?: MenuButtonProps[\"children\"];\n }\n);\n\nconst ImageContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"hasMenuButtonChildren\",\n})<{\n odysseyDesignTokens: DesignTokens;\n hasMenuButtonChildren: boolean;\n}>(({ odysseyDesignTokens, hasMenuButtonChildren }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n maxHeight: CARD_IMAGE_HEIGHT,\n marginBlockEnd: odysseyDesignTokens.Spacing5,\n paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0,\n}));\n\nconst MenuButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n position: \"absolute\",\n right: odysseyDesignTokens.Spacing3,\n top: odysseyDesignTokens.Spacing3,\n}));\n\nconst CardContentContainer = styled(\"div\")(() => ({\n display: \"flex\",\n}));\n\nconst buttonProviderValue = { isFullWidth: true };\n\nconst Card = ({\n button,\n description,\n image,\n menuButtonChildren,\n onClick,\n overline,\n title,\n}: CardProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const cardContent = useMemo(\n () => (\n <CardContentContainer>\n <Box>\n {image && (\n <ImageContainer\n odysseyDesignTokens={odysseyDesignTokens}\n hasMenuButtonChildren={Boolean(menuButtonChildren)}\n >\n {image}\n </ImageContainer>\n )}\n\n {overline && <Support component=\"div\">{overline}</Support>}\n {title && <Heading5 component=\"div\">{title}</Heading5>}\n {description && (\n <Paragraph color=\"textSecondary\">{description}</Paragraph>\n )}\n\n {button && (\n <MuiCardActions>\n <ButtonContext.Provider value={buttonProviderValue}>\n {button}\n </ButtonContext.Provider>\n </MuiCardActions>\n )}\n </Box>\n </CardContentContainer>\n ),\n [\n button,\n description,\n image,\n menuButtonChildren,\n overline,\n title,\n odysseyDesignTokens,\n ],\n );\n\n return (\n <MuiCard className={onClick ? \"isClickable\" : \"\"}>\n {onClick ? (\n <MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>\n ) : (\n cardContent\n )}\n\n {menuButtonChildren && (\n <MenuButtonContainer odysseyDesignTokens={odysseyDesignTokens}>\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel=\"Card menu\"\n buttonVariant=\"floating\"\n menuAlignment=\"right\"\n size=\"small\"\n tooltipText=\"Actions\"\n >\n {menuButtonChildren}\n </MenuButton>\n </MenuButtonContainer>\n )}\n </MuiCard>\n );\n};\n\nconst MemoizedCard = memo(Card);\nMemoizedCard.displayName = \"Card\";\n\n/**\n * @deprecated The 'Tile' component is now called 'Card'. Please update your references as 'Tile' will be deprecated soon.\n */\nconst Tile = (props: CardProps) => {\n useEffect(() => {\n console.warn(\n \"Warning: The 'Tile' component is now called 'Card'. Please update your references as 'Tile' will be deprecated soon.\",\n );\n }, []);\n\n return <MemoizedCard {...props} />;\n};\n\nconst MemoizedTile = memo(Tile);\nMemoizedTile.displayName = \"Tile\";\n\nexport { MemoizedCard as Card, MemoizedTile as Tile };\n"],"mappings":"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"}
@@ -12,9 +12,10 @@
12
12
 
13
13
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
14
14
  import { useMaterialReactTable, MRT_TableContainer } from "material-react-table";
15
- import { ArrowDownIcon, ArrowUnsortedIcon, DragIndicatorIcon, MoreIcon } from "../icons.generated/index.js";
15
+ import { useTranslation } from "react-i18next";
16
+ import { ArrowDownIcon, ArrowUnsortedIcon, ChevronDownIcon, DragIndicatorIcon, MoreIcon } from "../icons.generated/index.js";
16
17
  import { densityValues } from "./constants.js";
17
- import { DataTablePagination } from "./DataTablePagination.js";
18
+ import { Pagination, usePagination } from "../Pagination/index.js";
18
19
  import { DataFilters } from "../labs/DataFilters.js";
19
20
  import { DataTableRowActions } from "./DataTableRowActions.js";
20
21
  import { useRowReordering } from "./useRowReordering.js";
@@ -24,9 +25,8 @@ import { Box } from "../Box.js";
24
25
  import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
25
26
  import { useScrollIndication } from "./useScrollIndication.js";
26
27
  import styled from "@emotion/styled";
27
- import { DataTableEmptyState } from "./DataTableEmptyState.js";
28
+ import { EmptyState } from "../EmptyState.js";
28
29
  import { Callout } from "../Callout.js";
29
- import { t } from "i18next";
30
30
  import { jsx as _jsx } from "react/jsx-runtime";
31
31
  import { Fragment as _Fragment } from "react/jsx-runtime";
32
32
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -84,6 +84,9 @@ const displayColumnDefOptions = {
84
84
  muiTableBodyCellProps: {
85
85
  padding: "checkbox"
86
86
  }
87
+ },
88
+ "mrt-row-expand": {
89
+ header: ""
87
90
  }
88
91
  };
89
92
  const ScrollableTableContainer = styled("div", {
@@ -93,9 +96,6 @@ const ScrollableTableContainer = styled("div", {
93
96
  isScrollableStart,
94
97
  isScrollableEnd
95
98
  }) => ({
96
- borderBlockEndColor: odysseyDesignTokens.HueNeutral100,
97
- borderBlockEndStyle: "solid",
98
- borderBlockEndWidth: odysseyDesignTokens.BorderWidthMain,
99
99
  marginBlockEnd: odysseyDesignTokens.Spacing4,
100
100
  position: "relative",
101
101
  borderInlineStartColor: isScrollableStart ? odysseyDesignTokens.HueNeutral200 : "transparent",
@@ -131,20 +131,14 @@ const ScrollableTableContainer = styled("div", {
131
131
  }
132
132
  }));
133
133
  const DataTable = ({
134
+ bulkActionMenuItems,
134
135
  columns,
135
- getRowId: getRowIdProp,
136
136
  currentPage = 1,
137
- initialDensity = densityValues[0],
138
- resultsPerPage = 20,
137
+ emptyPlaceholder,
138
+ errorMessage: errorMessageProp,
139
+ filters: filtersProp,
139
140
  getData,
140
- onReorderRows,
141
- totalRows,
142
- hasSearchSubmitButton,
143
- searchDelayTime,
144
- paginationType = "paged",
145
- onChangeRowSelection,
146
- rowActionButtons,
147
- rowActionMenuItems,
141
+ getRowId: getRowIdProp,
148
142
  hasChangeableDensity,
149
143
  hasColumnResizing,
150
144
  hasColumnVisibility,
@@ -153,13 +147,24 @@ const DataTable = ({
153
147
  hasRowReordering,
154
148
  hasRowSelection,
155
149
  hasSearch,
150
+ hasSearchSubmitButton,
156
151
  hasSorting,
157
- bulkActionMenuItems,
158
- errorMessage: errorMessageProp,
159
- emptyPlaceholder,
152
+ initialDensity = densityValues[0],
153
+ initialSearchValue = "",
160
154
  noResultsPlaceholder,
161
- filters: filtersProp
155
+ onChangeRowSelection,
156
+ onReorderRows,
157
+ paginationType = "paged",
158
+ renderDetailPanel,
159
+ resultsPerPage = 20,
160
+ rowActionButtons,
161
+ rowActionMenuItems,
162
+ searchDelayTime,
163
+ totalRows
162
164
  }) => {
165
+ const {
166
+ t
167
+ } = useTranslation();
163
168
  const [data, setData] = useState([]);
164
169
  const [pagination, setPagination] = useState({
165
170
  pageIndex: currentPage,
@@ -176,7 +181,7 @@ const DataTable = ({
176
181
  const [columnVisibility, setColumnVisibility] = useState();
177
182
  const [rowDensity, setRowDensity] = useState(initialDensity);
178
183
  const [rowSelection, setRowSelection] = useState({});
179
- const [search, setSearch] = useState("");
184
+ const [search, setSearch] = useState(initialSearchValue);
180
185
  const [filters, setFilters] = useState();
181
186
  const [initialFilters, setInitialFilters] = useState();
182
187
  const [isLoading, setIsLoading] = useState(true);
@@ -210,8 +215,8 @@ const DataTable = ({
210
215
  page: pagination.pageIndex
211
216
  });
212
217
  const getRowId = getRowIdProp ? getRowIdProp : row => row.id;
213
- const rowDensityCellClassName = useMemo(() => {
214
- return rowDensity === "spacious" ? "MuiTableCell-spacious" : rowDensity === "compact" ? "MuiTableCell-compact" : "MuiTableCell-default";
218
+ const rowDensityClassName = useMemo(() => {
219
+ return rowDensity === "spacious" ? "MuiTableBody-spacious" : rowDensity === "compact" ? "MuiTableBody-compact" : "MuiTableBody-default";
215
220
  }, [rowDensity]);
216
221
  const renderRowActions = useCallback(({
217
222
  row
@@ -265,8 +270,8 @@ const DataTable = ({
265
270
  cell
266
271
  }) => {
267
272
  const value = cell.getValue();
268
- const enableWrapping = cell.column.columnDef.enableWrapping;
269
- return enableWrapping ? value : _jsx(Box, {
273
+ const hasTextWrapping = cell.column.columnDef.hasTextWrapping || cell.column.columnDef.enableWrapping;
274
+ return hasTextWrapping ? value : _jsx(Box, {
270
275
  sx: {
271
276
  whiteSpace: "nowrap",
272
277
  textOverflow: "ellipsis",
@@ -276,9 +281,9 @@ const DataTable = ({
276
281
  });
277
282
  }, []);
278
283
  const emptyState = useCallback(() => {
279
- const noResultsInnerContent = noResultsPlaceholder || _jsx(DataTableEmptyState, {
284
+ const noResultsInnerContent = noResultsPlaceholder || _jsx(EmptyState, {
280
285
  heading: t("table.noresults.heading"),
281
- text: t("table.noresults.text")
286
+ description: t("table.noresults.text")
282
287
  });
283
288
  const emptyStateInnerContent = emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;
284
289
  return _jsx(Box, {
@@ -287,23 +292,28 @@ const DataTable = ({
287
292
  },
288
293
  children: emptyStateInnerContent
289
294
  });
290
- }, [tableInnerContainerWidth, emptyPlaceholder, noResultsPlaceholder, isEmpty]);
295
+ }, [emptyPlaceholder, isEmpty, noResultsPlaceholder, t, tableInnerContainerWidth]);
296
+ const columnIds = useMemo(() => {
297
+ return columns.map(column => column.accessorKey);
298
+ }, [columns]);
299
+ const columnOrder = useMemo(() => ["mrt-row-drag", "mrt-row-select", "mrt-row-expand", ...columnIds, "mrt-row-actions"], [columnIds]);
291
300
  const dataTable = useMaterialReactTable({
292
301
  columns: columns,
293
302
  data: data,
294
303
  getRowId: getRowId,
295
304
  state: {
296
- density: rowDensity,
297
305
  sorting: columnSorting,
298
306
  globalFilter: search,
299
307
  columnVisibility,
300
308
  isLoading,
301
- rowSelection
309
+ rowSelection,
310
+ columnOrder
302
311
  },
303
312
  icons: {
304
313
  ArrowDownwardIcon: ArrowDownIcon,
305
314
  DragHandleIcon: DragIndicatorIcon,
306
- SyncAltIcon: ArrowUnsortedIcon
315
+ SyncAltIcon: ArrowUnsortedIcon,
316
+ ExpandMoreIcon: ChevronDownIcon
307
317
  },
308
318
  enableColumnActions: false,
309
319
  enableColumnResizing: hasColumnResizing,
@@ -324,8 +334,8 @@ const DataTable = ({
324
334
  },
325
335
  selectAllMode: "all",
326
336
  displayColumnDefOptions: displayColumnDefOptions,
327
- muiTableBodyCellProps: () => ({
328
- className: rowDensityCellClassName
337
+ muiTableBodyProps: () => ({
338
+ className: rowDensityClassName
329
339
  }),
330
340
  defaultColumn: {
331
341
  Cell: defaultCell
@@ -384,7 +394,9 @@ const DataTable = ({
384
394
  },
385
395
  muiTableContainerProps: {
386
396
  ref: tableInnerContainerRef
387
- }
397
+ },
398
+ enableExpandAll: false,
399
+ renderDetailPanel: renderDetailPanel
388
400
  });
389
401
  const bulkActionMenuButton = useMemo(() => _jsx(_Fragment, {
390
402
  children: _jsx(MenuButton, {
@@ -414,7 +426,7 @@ const DataTable = ({
414
426
  setIsLoading(false);
415
427
  }
416
428
  })();
417
- }, [pagination, columnSorting, search, filters, getData, errorMessageProp]);
429
+ }, [columnSorting, errorMessageProp, filters, getData, pagination, search, t]);
418
430
  useEffect(() => {
419
431
  if (!initialFilters && filters) {
420
432
  setInitialFilters(filters);
@@ -424,6 +436,13 @@ const DataTable = ({
424
436
  useEffect(() => {
425
437
  onChangeRowSelection?.(rowSelection);
426
438
  }, [rowSelection, onChangeRowSelection]);
439
+ const {
440
+ lastRow
441
+ } = usePagination({
442
+ pageIndex: pagination.pageIndex,
443
+ pageSize: pagination.pageSize,
444
+ totalRows
445
+ });
427
446
  return _jsxs(_Fragment, {
428
447
  children: [(hasSearch || hasFilters || hasChangeableDensity || hasColumnVisibility || bulkActionMenuItems) && _jsx(Box, {
429
448
  sx: {
@@ -435,6 +454,7 @@ const DataTable = ({
435
454
  hasSearchSubmitButton: hasSearchSubmitButton,
436
455
  searchDelayTime: searchDelayTime,
437
456
  filters: hasFilters ? dataTableFilters : undefined,
457
+ defaultSearchTerm: initialSearchValue,
438
458
  isDisabled: isEmpty,
439
459
  additionalActions: _jsxs(_Fragment, {
440
460
  children: [_jsx(DataTableSettings, {
@@ -464,12 +484,19 @@ const DataTable = ({
464
484
  children: _jsx(MRT_TableContainer, {
465
485
  table: dataTable
466
486
  })
467
- }), hasPagination && _jsx(DataTablePagination, {
468
- pagination: pagination,
469
- setPagination: setPagination,
487
+ }), hasPagination && _jsx(Pagination, {
488
+ pageIndex: pagination.pageIndex,
489
+ pageSize: pagination.pageSize,
490
+ onPaginationChange: setPagination,
491
+ lastRow: lastRow,
470
492
  totalRows: totalRows,
471
493
  isDisabled: isEmpty,
472
- variant: paginationType
494
+ variant: paginationType,
495
+ rowsPerPageLabel: t("pagination.rowsperpage"),
496
+ currentPageLabel: t("pagination.page"),
497
+ previousLabel: t("pagination.previous"),
498
+ nextLabel: t("pagination.next"),
499
+ loadMoreLabel: t("pagination.loadmore")
473
500
  })]
474
501
  });
475
502
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","useMaterialReactTable","MRT_TableContainer","ArrowDownIcon","ArrowUnsortedIcon","DragIndicatorIcon","MoreIcon","densityValues","DataTablePagination","DataFilters","DataTableRowActions","useRowReordering","DataTableSettings","MenuButton","Box","useOdysseyDesignTokens","useScrollIndication","styled","DataTableEmptyState","Callout","t","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","displayColumnDefOptions","header","grow","muiTableBodyCellProps","align","sx","overflow","width","className","muiTableHeadCellProps","minWidth","children","marginInline","opacity","padding","ScrollableTableContainer","shouldForwardProp","prop","odysseyDesignTokens","isScrollableStart","isScrollableEnd","borderBlockEndColor","HueNeutral100","borderBlockEndStyle","borderBlockEndWidth","BorderWidthMain","marginBlockEnd","Spacing4","position","borderInlineStartColor","HueNeutral200","borderInlineStartStyle","borderInlineStartWidth","background","content","pointerEvents","top","left","bottom","Spacing6","zIndex","transition","TransitionDurationMain","TransitionTimingMain","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","right","DataTable","columns","getRowId","getRowIdProp","currentPage","initialDensity","resultsPerPage","getData","onReorderRows","totalRows","hasSearchSubmitButton","searchDelayTime","paginationType","onChangeRowSelection","rowActionButtons","rowActionMenuItems","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSorting","bulkActionMenuItems","errorMessage","errorMessageProp","emptyPlaceholder","noResultsPlaceholder","filters","filtersProp","data","setData","pagination","setPagination","pageIndex","pageSize","draggingRow","setDraggingRow","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","columnSorting","setColumnSorting","columnVisibility","setColumnVisibility","rowDensity","setRowDensity","rowSelection","setRowSelection","search","setSearch","setFilters","initialFilters","setInitialFilters","isLoading","setIsLoading","isEmpty","setIsEmpty","setErrorMessage","tableOuterContainer","current","tableInnerContainer","dragHandleStyles","dragHandleText","draggableTableBodyRowClassName","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","page","row","id","rowDensityCellClassName","renderRowActions","currentIndex","index","rowIndex","undefined","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","defaultCell","cell","getValue","enableWrapping","columnDef","whiteSpace","textOverflow","emptyState","noResultsInnerContent","heading","text","emptyStateInnerContent","dataTable","state","density","sorting","globalFilter","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","enableColumnActions","enableColumnResizing","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","enableHiding","enablePagination","layoutMode","manualFiltering","manualSorting","muiTablePaperProps","elevation","selectAllMode","defaultColumn","Cell","enableRowOrdering","Boolean","enableRowDragging","muiTableBodyRowProps","table","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","enableRowActions","positionActionsColumn","enableRowSelection","onRowSelectionChange","enableSorting","onSortingChange","currentColumn","sortedColumn","enableRowVirtualization","rowVirtualizerInstanceRef","rowVirtualizerOptions","overscan","renderEmptyRowsFallback","muiTableProps","ref","muiTableContainerProps","bulkActionMenuButton","buttonVariant","endIcon","isDisabled","Object","keys","length","ariaLabel","incomingData","sort","error","marginBottom","onChangeSearch","onChangeFilters","additionalActions","severity","MemoizedDataTable","displayName"],"sources":["../../src/DataTable/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n MRT_Cell,\n MRT_DensityState,\n MRT_Row,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_VisibilityState,\n useMaterialReactTable,\n MRT_TableContainer,\n MRT_Column,\n MRT_ColumnDef,\n} from \"material-react-table\";\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { densityValues, paginationTypeValues } from \"./constants\";\nimport { DataTablePagination } from \"./DataTablePagination\";\nimport { DataFilter, DataFilters } from \"../labs/DataFilters\";\nimport {\n DataTableRowActions,\n DataTableRowActionsProps,\n} from \"./DataTableRowActions\";\nimport { useRowReordering } from \"./useRowReordering\";\nimport { DataTableSettings } from \"./DataTableSettings\";\nimport { MenuButton, MenuButtonProps } from \"../MenuButton\";\nimport { Box } from \"../Box\";\nimport { DataTableRowSelectionState, DataTableRowData } from \".\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { useScrollIndication } from \"./useScrollIndication\";\nimport styled from \"@emotion/styled\";\nimport { DataTableEmptyState } from \"./DataTableEmptyState\";\nimport { Callout } from \"../Callout\";\nimport { t } from \"i18next\";\n\nexport type DataTableColumn<T extends DataTableRowData> = MRT_ColumnDef<T> & {\n enableWrapping?: boolean;\n};\n\ntype DataTableColumnInstance<T extends DataTableRowData> = Omit<\n MRT_Column<T, unknown>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<T>;\n};\n\ntype DataTableCell<T extends DataTableRowData> = Omit<MRT_Cell<T>, \"column\"> & {\n column: DataTableColumnInstance<T>;\n};\n\nexport type DataTableGetDataType = {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n};\n\nexport type DataTableOnReorderRowsType = {\n rowId: string;\n newRowIndex: number;\n};\n\nexport type DataTableProps = {\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<DataTableRowData>[];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<DataTableRowData>[\"getRowId\"];\n /**\n * The initial density (height & padding) of the table rows. This is available even if the\n * table density isn't changeable by the end user via hasChangeableDensity.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onChangeRowSelection?: (rowSelection: DataTableRowSelectionState) => void;\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataTableGetDataType) =>\n | MRT_TableOptions<DataTableRowData>[\"data\"]\n | Promise<MRT_TableOptions<DataTableRowData>[\"data\"]>;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n onReorderRows?: ({ rowId, newRowIndex }: DataTableOnReorderRowsType) => void;\n /**\n * The current page number.\n */\n currentPage?: number;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: DataTableRowActionsProps[\"rowActionButtons\"];\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: DataTableRowActionsProps[\"rowActionMenuItems\"];\n /**\n * Menu items to include in the bulk actions menu, which appears above the table if a row or rows are selected\n */\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n /**\n * If `error` is not undefined, the DataTable will indicate an error.\n */\n errorMessage?: string;\n /**\n * The component to display when the table is displaying the initial empty state\n */\n emptyPlaceholder?: ReactNode;\n /**\n * The component to display when the query returns no results\n */\n noResultsPlaceholder?: ReactNode;\n /**\n * An optional set of filters to render in the filters menu\n */\n filters?: Array<DataFilter | DataTableColumn<DataTableRowData> | string>;\n};\n\nconst displayColumnDefOptions = {\n \"mrt-row-actions\": {\n header: \"\",\n grow: true,\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n className: \"ods-drag-handle\",\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n children: (\n // Add a spacer to simulate the width of the drag handle in the column.\n // Without this, the head cells are offset from their body cell counterparts\n <Box sx={{ marginInline: \"-0.1rem\" }}>\n <DragIndicatorIcon sx={{ marginInline: 1, opacity: 0 }} />\n </Box>\n ),\n },\n },\n \"mrt-row-select\": {\n muiTableHeadCellProps: {\n padding: \"checkbox\",\n },\n muiTableBodyCellProps: {\n padding: \"checkbox\",\n },\n },\n};\n\nconst ScrollableTableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isScrollableStart\" &&\n prop !== \"isScrollableEnd\",\n})(\n ({\n odysseyDesignTokens,\n isScrollableStart,\n isScrollableEnd,\n }: {\n odysseyDesignTokens: DesignTokens;\n isScrollableStart: boolean;\n isScrollableEnd: boolean;\n }) => ({\n borderBlockEndColor: odysseyDesignTokens.HueNeutral100,\n borderBlockEndStyle: \"solid\",\n borderBlockEndWidth: odysseyDesignTokens.BorderWidthMain,\n marginBlockEnd: odysseyDesignTokens.Spacing4,\n position: \"relative\",\n borderInlineStartColor: isScrollableStart\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineStartStyle: \"solid\",\n borderInlineStartWidth: odysseyDesignTokens.BorderWidthMain,\n \"::before\": {\n background:\n \"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableStart ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n zIndex: 100,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n borderInlineEndColor: isScrollableEnd\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineEndStyle: \"solid\",\n borderInlineEndWidth: odysseyDesignTokens.BorderWidthMain,\n \"::after\": {\n background:\n \"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableEnd ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n }),\n);\n\nconst DataTable = ({\n columns,\n getRowId: getRowIdProp,\n currentPage = 1,\n initialDensity = densityValues[0],\n resultsPerPage = 20,\n getData,\n onReorderRows,\n totalRows,\n hasSearchSubmitButton,\n searchDelayTime,\n paginationType = \"paged\",\n onChangeRowSelection,\n rowActionButtons,\n rowActionMenuItems,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSorting,\n bulkActionMenuItems,\n errorMessage: errorMessageProp,\n emptyPlaceholder,\n noResultsPlaceholder,\n filters: filtersProp,\n}: DataTableProps) => {\n const [data, setData] = useState<DataTableRowData[]>([]);\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n const [draggingRow, setDraggingRow] =\n useState<MRT_Row<DataTableRowData> | null>();\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n // Table states\n const [columnSorting, setColumnSorting] = useState<MRT_SortingState>([]);\n const [columnVisibility, setColumnVisibility] =\n useState<MRT_VisibilityState>();\n const [rowDensity, setRowDensity] =\n useState<MRT_DensityState>(initialDensity);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [search, setSearch] = useState<string>(\"\");\n const [filters, setFilters] = useState<DataFilter[]>();\n const [initialFilters, setInitialFilters] = useState<DataFilter[]>();\n const [isLoading, setIsLoading] = useState<boolean | undefined>(true);\n const [isEmpty, setIsEmpty] = useState<boolean | undefined>();\n const [errorMessage, setErrorMessage] = useState<string | undefined>(\n errorMessageProp,\n );\n\n useScrollIndication({\n tableOuterContainer: tableOuterContainerRef.current,\n tableInnerContainer: tableInnerContainerRef.current,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const {\n dragHandleStyles,\n dragHandleText,\n draggableTableBodyRowClassName,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n const getRowId = getRowIdProp\n ? getRowIdProp\n : (row: DataTableRowData) => row.id;\n\n const rowDensityCellClassName = useMemo(() => {\n return rowDensity === \"spacious\"\n ? \"MuiTableCell-spacious\"\n : rowDensity === \"compact\"\n ? \"MuiTableCell-compact\"\n : \"MuiTableCell-default\";\n }, [rowDensity]);\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<DataTableRowData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <DataTableRowActions\n row={row}\n rowIndex={currentIndex}\n rowActionButtons={rowActionButtons}\n rowActionMenuItems={rowActionMenuItems}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n );\n },\n [\n pagination,\n rowActionButtons,\n rowActionMenuItems,\n hasRowReordering,\n onReorderRows,\n totalRows,\n updateRowOrder,\n ],\n );\n\n /**\n * This hack is to provide compatibility with Material-React-Table's\n * filterOptions format, which allows for strings and { label: string, value: string }\n */\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<DataTableRowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: option.label ?? option.value,\n value: option.value ?? option.label,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<DataTableRowData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? ({\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n } satisfies DataFilter as DataFilter)\n : null,\n [convertFilterSelectOptions],\n );\n\n /**\n * Filters default to the columns, but can be overridden\n * with the `filters` prop. `filters` should be an array\n * of column accessorKeys, column defs, or DataFilters.\n */\n const dataTableFilters = useMemo(() => {\n const providedFilters = filtersProp || columns;\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns.find(\n (column) => column.accessorKey === item,\n );\n if (foundColumn) {\n const filter = convertColumnToFilter(foundColumn);\n if (filter) {\n return accumulator.concat(filter);\n }\n }\n } else if (\"accessorKey\" in item) {\n // Checks if it's a column\n const filter = convertColumnToFilter(item);\n if (filter) {\n return accumulator.concat(filter);\n }\n } else if (\"label\" in item) {\n // Checks if it's a DataFilter\n return accumulator.concat(item);\n }\n // If none of the conditions match, item is ignored (not mapping to undefined)\n return accumulator;\n }, []);\n }, [columns, filtersProp, convertColumnToFilter]);\n\n const defaultCell = useCallback(\n ({ cell }: { cell: DataTableCell<DataTableRowData> }) => {\n const value = cell.getValue<string>();\n const enableWrapping = cell.column.columnDef.enableWrapping;\n return enableWrapping ? (\n value\n ) : (\n <Box\n sx={{\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n </Box>\n );\n },\n [],\n );\n\n const emptyState = useCallback(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <DataTableEmptyState\n heading={t(\"table.noresults.heading\")}\n text={t(\"table.noresults.text\")}\n />\n );\n\n const emptyStateInnerContent =\n emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;\n\n return (\n <Box sx={{ width: tableInnerContainerWidth }}>\n {emptyStateInnerContent}\n </Box>\n );\n }, [\n tableInnerContainerWidth,\n emptyPlaceholder,\n noResultsPlaceholder,\n isEmpty,\n ]);\n\n const dataTable = useMaterialReactTable({\n columns: columns,\n data: data,\n getRowId: getRowId,\n state: {\n density: rowDensity,\n sorting: columnSorting,\n globalFilter: search,\n columnVisibility,\n isLoading,\n rowSelection,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n },\n\n // Base table settings\n enableColumnActions: false,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFilters: false,\n enableFullScreenToggle: false,\n enableGlobalFilter: false,\n enableHiding: false,\n enablePagination: false,\n layoutMode: \"grid-no-grow\",\n manualFiltering: true,\n manualSorting: true,\n muiTablePaperProps: {\n elevation: 0,\n sx: {\n overflow: \"visible\",\n },\n },\n selectAllMode: \"all\",\n displayColumnDefOptions:\n displayColumnDefOptions as MRT_TableOptions<DataTableRowData>[\"displayColumnDefOptions\"],\n muiTableBodyCellProps: () => ({\n className: rowDensityCellClassName,\n }),\n defaultColumn: {\n Cell: defaultCell,\n },\n\n // Reordering\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiTableBodyRowProps: ({ table, row }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n\n // Row actions\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n rowActionButtons ||\n rowActionMenuItems\n ? true\n : false,\n positionActionsColumn:\n \"last\" as MRT_TableOptions<DataTableRowData>[\"positionActionsColumn\"],\n renderRowActions: ({ row }) => renderRowActions({ row }),\n\n // Row selection\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n\n // Sorting\n enableSorting: hasSorting,\n onSortingChange: setColumnSorting,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n // Virtualization\n enableRowVirtualization:\n paginationType !== \"loadMore\" && pagination.pageSize > 50,\n rowVirtualizerInstanceRef:\n useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null),\n rowVirtualizerOptions: {\n overscan: 4,\n },\n\n // States\n renderEmptyRowsFallback: emptyState,\n\n // Refs\n muiTableProps: {\n ref: tableContentRef,\n },\n\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n });\n\n // Effects\n const bulkActionMenuButton = useMemo(\n () => (\n <>\n <MenuButton\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n isDisabled={Object.keys(rowSelection).length === 0}\n ariaLabel=\"More actions\"\n >\n {bulkActionMenuItems?.(rowSelection)}\n </MenuButton>\n </>\n ),\n [bulkActionMenuItems, rowSelection],\n );\n\n useEffect(() => {\n (async () => {\n setIsLoading(true);\n setErrorMessage(errorMessageProp);\n try {\n const incomingData = await getData?.({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters,\n sort: columnSorting,\n });\n setData(incomingData);\n } catch (error) {\n setErrorMessage(typeof error === \"string\" ? error : t(\"table.error\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [pagination, columnSorting, search, filters, getData, errorMessageProp]);\n\n useEffect(() => {\n if (!initialFilters && filters) {\n setInitialFilters(filters);\n }\n\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n filters,\n pagination,\n search,\n data,\n currentPage,\n initialFilters,\n resultsPerPage,\n ]);\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n // Render the table\n return (\n <>\n {(hasSearch ||\n hasFilters ||\n hasChangeableDensity ||\n hasColumnVisibility ||\n bulkActionMenuItems) && (\n <Box sx={{ marginBottom: 5 }}>\n <DataFilters\n onChangeSearch={hasSearch ? setSearch : undefined}\n onChangeFilters={hasFilters ? setFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n filters={hasFilters ? dataTableFilters : undefined}\n isDisabled={isEmpty}\n additionalActions={\n <>\n <DataTableSettings\n hasChangeableDensity={hasChangeableDensity}\n rowDensity={rowDensity}\n setRowDensity={setRowDensity}\n hasColumnVisibility={hasColumnVisibility}\n columns={columns}\n columnVisibility={columnVisibility}\n setColumnVisibility={setColumnVisibility}\n />\n {bulkActionMenuItems && bulkActionMenuButton}\n </>\n }\n />\n </Box>\n )}\n\n {errorMessage && (\n <Box sx={{ marginBlockEnd: 2 }}>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n <ScrollableTableContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isScrollableStart={!isTableContainerScrolledToStart}\n isScrollableEnd={!isTableContainerScrolledToEnd}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n\n {hasPagination && (\n <DataTablePagination\n pagination={pagination}\n setPagination={setPagination}\n totalRows={totalRows}\n isDisabled={isEmpty}\n variant={paginationType}\n />\n )}\n </>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":["memo","useCallback","useEffect","useMemo","useRef","useState","useMaterialReactTable","MRT_TableContainer","useTranslation","ArrowDownIcon","ArrowUnsortedIcon","ChevronDownIcon","DragIndicatorIcon","MoreIcon","densityValues","Pagination","usePagination","DataFilters","DataTableRowActions","useRowReordering","DataTableSettings","MenuButton","Box","useOdysseyDesignTokens","useScrollIndication","styled","EmptyState","Callout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","displayColumnDefOptions","header","grow","muiTableBodyCellProps","align","sx","overflow","width","className","muiTableHeadCellProps","minWidth","children","marginInline","opacity","padding","ScrollableTableContainer","shouldForwardProp","prop","odysseyDesignTokens","isScrollableStart","isScrollableEnd","marginBlockEnd","Spacing4","position","borderInlineStartColor","HueNeutral200","borderInlineStartStyle","borderInlineStartWidth","BorderWidthMain","background","content","pointerEvents","top","left","bottom","Spacing6","zIndex","transition","TransitionDurationMain","TransitionTimingMain","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","right","DataTable","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","initialDensity","initialSearchValue","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","t","data","setData","pagination","setPagination","pageIndex","pageSize","draggingRow","setDraggingRow","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","columnSorting","setColumnSorting","columnVisibility","setColumnVisibility","rowDensity","setRowDensity","rowSelection","setRowSelection","search","setSearch","setFilters","initialFilters","setInitialFilters","isLoading","setIsLoading","isEmpty","setIsEmpty","setErrorMessage","tableOuterContainer","current","tableInnerContainer","dragHandleStyles","dragHandleText","draggableTableBodyRowClassName","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","page","row","id","rowDensityClassName","renderRowActions","currentIndex","index","rowIndex","undefined","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","defaultCell","cell","getValue","hasTextWrapping","columnDef","enableWrapping","whiteSpace","textOverflow","emptyState","noResultsInnerContent","heading","description","emptyStateInnerContent","columnIds","columnOrder","dataTable","state","sorting","globalFilter","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","ExpandMoreIcon","enableColumnActions","enableColumnResizing","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","enableHiding","enablePagination","layoutMode","manualFiltering","manualSorting","muiTablePaperProps","elevation","selectAllMode","muiTableBodyProps","defaultColumn","Cell","enableRowOrdering","Boolean","enableRowDragging","muiTableBodyRowProps","table","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","enableRowActions","positionActionsColumn","enableRowSelection","onRowSelectionChange","enableSorting","onSortingChange","currentColumn","sortedColumn","enableRowVirtualization","rowVirtualizerInstanceRef","rowVirtualizerOptions","overscan","renderEmptyRowsFallback","muiTableProps","ref","muiTableContainerProps","enableExpandAll","bulkActionMenuButton","buttonVariant","endIcon","isDisabled","Object","keys","length","ariaLabel","incomingData","sort","error","lastRow","marginBottom","onChangeSearch","onChangeFilters","defaultSearchTerm","additionalActions","severity","text","onPaginationChange","rowsPerPageLabel","currentPageLabel","previousLabel","nextLabel","loadMoreLabel","MemoizedDataTable","displayName"],"sources":["../../src/DataTable/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n ReactNode,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n MRT_Cell,\n MRT_DensityState,\n MRT_Row,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_RowSelectionState,\n MRT_RowVirtualizer,\n MRT_VisibilityState,\n useMaterialReactTable,\n MRT_TableContainer,\n MRT_Column,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n ChevronDownIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../icons.generated\";\nimport { densityValues } from \"./constants\";\nimport { Pagination, paginationTypeValues, usePagination } from \"../Pagination\";\nimport { DataFilter, DataFilters } from \"../labs/DataFilters\";\nimport {\n DataTableRowActions,\n DataTableRowActionsProps,\n} from \"./DataTableRowActions\";\nimport { useRowReordering } from \"./useRowReordering\";\nimport { DataTableSettings } from \"./DataTableSettings\";\nimport { MenuButton, MenuButtonProps } from \"../MenuButton\";\nimport { Box } from \"../Box\";\nimport { DataTableRowSelectionState, DataTableRowData } from \".\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../OdysseyDesignTokensContext\";\nimport { useScrollIndication } from \"./useScrollIndication\";\nimport styled from \"@emotion/styled\";\nimport { EmptyState } from \"../EmptyState\";\nimport { Callout } from \"../Callout\";\n\nexport type DataTableColumn<T extends DataTableRowData> = MRT_ColumnDef<T> & {\n /**\n * @deprecated use hasTextWrapping instead of enableWrapping\n */\n enableWrapping?: boolean;\n hasTextWrapping?: boolean;\n};\n\ntype DataTableColumnInstance<T extends DataTableRowData> = Omit<\n MRT_Column<T, unknown>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<T>;\n};\n\ntype DataTableCell<T extends DataTableRowData> = Omit<MRT_Cell<T>, \"column\"> & {\n column: DataTableColumnInstance<T>;\n};\n\nexport type DataTableGetDataType = {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n};\n\nexport type DataTableOnReorderRowsType = {\n rowId: string;\n newRowIndex: number;\n};\n\nexport type DataTableRenderDetailPanelType = {\n row: MRT_Row<DataTableRowData>;\n table: MRT_TableInstance<DataTableRowData>;\n};\n\nexport type DataTableProps = {\n /**\n * Menu items to include in the bulk actions menu, which appears above the table if a row or rows are selected\n */\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n /**\n * The columns that make up the table\n */\n columns: DataTableColumn<DataTableRowData>[];\n /**\n * The current page number.\n */\n currentPage?: number;\n /**\n * If `error` is not undefined, the DataTable will indicate an error.\n */\n errorMessage?: string;\n /**\n * The component to display when the table is displaying the initial empty state\n */\n emptyPlaceholder?: ReactNode;\n /**\n * An optional set of filters to render in the filters menu\n */\n filters?: Array<DataFilter | DataTableColumn<DataTableRowData> | string>;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<DataTableRowData>[\"getRowId\"];\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataTableGetDataType) =>\n | MRT_TableOptions<DataTableRowData>[\"data\"]\n | Promise<MRT_TableOptions<DataTableRowData>[\"data\"]>;\n /**\n * If true, the end user can resize individual columns.\n */\n hasColumnResizing?: boolean;\n /**\n * If true, the end user will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user will be able to change the table density.\n */\n hasChangeableDensity?: boolean;\n /**\n * The initial density (height & padding) of the table rows. This is available even if the\n * table density isn't changeable by the end user via hasChangeableDensity.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * The initial search value\n */\n initialSearchValue?: string;\n /**\n * The component to display when the query returns no results\n */\n noResultsPlaceholder?: ReactNode;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The optional component to display when expanding a row.\n */\n renderDetailPanel?: MRT_TableOptions<DataTableRowData>[\"renderDetailPanel\"];\n /**\n * Action buttons to display in each row\n */\n rowActionButtons?: DataTableRowActionsProps[\"rowActionButtons\"];\n /**\n * Menu items to include in the optional actions menu on each row.\n */\n rowActionMenuItems?: DataTableRowActionsProps[\"rowActionMenuItems\"];\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onChangeRowSelection?: (rowSelection: DataTableRowSelectionState) => void;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n onReorderRows?: ({ rowId, newRowIndex }: DataTableOnReorderRowsType) => void;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[number];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n};\n\nconst displayColumnDefOptions = {\n \"mrt-row-actions\": {\n header: \"\",\n grow: true,\n muiTableBodyCellProps: {\n align: \"right\",\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\",\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n },\n \"mrt-row-drag\": {\n header: \"\",\n muiTableBodyCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n className: \"ods-drag-handle\",\n },\n muiTableHeadCellProps: {\n sx: {\n minWidth: 0,\n width: \"auto\",\n },\n children: (\n // Add a spacer to simulate the width of the drag handle in the column.\n // Without this, the head cells are offset from their body cell counterparts\n <Box sx={{ marginInline: \"-0.1rem\" }}>\n <DragIndicatorIcon sx={{ marginInline: 1, opacity: 0 }} />\n </Box>\n ),\n },\n },\n \"mrt-row-select\": {\n muiTableHeadCellProps: {\n padding: \"checkbox\",\n },\n muiTableBodyCellProps: {\n padding: \"checkbox\",\n },\n },\n \"mrt-row-expand\": {\n header: \"\",\n },\n};\n\nconst ScrollableTableContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isScrollableStart\" &&\n prop !== \"isScrollableEnd\",\n})(\n ({\n odysseyDesignTokens,\n isScrollableStart,\n isScrollableEnd,\n }: {\n odysseyDesignTokens: DesignTokens;\n isScrollableStart: boolean;\n isScrollableEnd: boolean;\n }) => ({\n marginBlockEnd: odysseyDesignTokens.Spacing4,\n position: \"relative\",\n borderInlineStartColor: isScrollableStart\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineStartStyle: \"solid\",\n borderInlineStartWidth: odysseyDesignTokens.BorderWidthMain,\n \"::before\": {\n background:\n \"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableStart ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n zIndex: 100,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n borderInlineEndColor: isScrollableEnd\n ? odysseyDesignTokens.HueNeutral200\n : \"transparent\",\n borderInlineEndStyle: \"solid\",\n borderInlineEndWidth: odysseyDesignTokens.BorderWidthMain,\n \"::after\": {\n background:\n \"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)\",\n content: '\"\"',\n opacity: isScrollableEnd ? \"0.075\" : \"0\",\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n width: odysseyDesignTokens.Spacing6,\n transition: `opacity ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,\n },\n }),\n);\n\nconst DataTable = ({\n bulkActionMenuItems,\n columns,\n currentPage = 1,\n emptyPlaceholder,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n initialDensity = densityValues[0],\n initialSearchValue = \"\",\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n renderDetailPanel,\n resultsPerPage = 20,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const { t } = useTranslation();\n\n const [data, setData] = useState<DataTableRowData[]>([]);\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n const [draggingRow, setDraggingRow] =\n useState<MRT_Row<DataTableRowData> | null>();\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n // Table states\n const [columnSorting, setColumnSorting] = useState<MRT_SortingState>([]);\n const [columnVisibility, setColumnVisibility] =\n useState<MRT_VisibilityState>();\n const [rowDensity, setRowDensity] =\n useState<MRT_DensityState>(initialDensity);\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n const [search, setSearch] = useState<string>(initialSearchValue);\n const [filters, setFilters] = useState<DataFilter[]>();\n const [initialFilters, setInitialFilters] = useState<DataFilter[]>();\n const [isLoading, setIsLoading] = useState<boolean | undefined>(true);\n const [isEmpty, setIsEmpty] = useState<boolean | undefined>();\n const [errorMessage, setErrorMessage] = useState<string | undefined>(\n errorMessageProp,\n );\n\n useScrollIndication({\n tableOuterContainer: tableOuterContainerRef.current,\n tableInnerContainer: tableInnerContainerRef.current,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const {\n dragHandleStyles,\n dragHandleText,\n draggableTableBodyRowClassName,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n const getRowId = getRowIdProp\n ? getRowIdProp\n : (row: DataTableRowData) => row.id;\n\n const rowDensityClassName = useMemo(() => {\n return rowDensity === \"spacious\"\n ? \"MuiTableBody-spacious\"\n : rowDensity === \"compact\"\n ? \"MuiTableBody-compact\"\n : \"MuiTableBody-default\";\n }, [rowDensity]);\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<DataTableRowData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <DataTableRowActions\n row={row}\n rowIndex={currentIndex}\n rowActionButtons={rowActionButtons}\n rowActionMenuItems={rowActionMenuItems}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n );\n },\n [\n pagination,\n rowActionButtons,\n rowActionMenuItems,\n hasRowReordering,\n onReorderRows,\n totalRows,\n updateRowOrder,\n ],\n );\n\n /**\n * This hack is to provide compatibility with Material-React-Table's\n * filterOptions format, which allows for strings and { label: string, value: string }\n */\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<DataTableRowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: option.label ?? option.value,\n value: option.value ?? option.label,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<DataTableRowData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? ({\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n } satisfies DataFilter as DataFilter)\n : null,\n [convertFilterSelectOptions],\n );\n\n /**\n * Filters default to the columns, but can be overridden\n * with the `filters` prop. `filters` should be an array\n * of column accessorKeys, column defs, or DataFilters.\n */\n const dataTableFilters = useMemo(() => {\n const providedFilters = filtersProp || columns;\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns.find(\n (column) => column.accessorKey === item,\n );\n if (foundColumn) {\n const filter = convertColumnToFilter(foundColumn);\n if (filter) {\n return accumulator.concat(filter);\n }\n }\n } else if (\"accessorKey\" in item) {\n // Checks if it's a column\n const filter = convertColumnToFilter(item);\n if (filter) {\n return accumulator.concat(filter);\n }\n } else if (\"label\" in item) {\n // Checks if it's a DataFilter\n return accumulator.concat(item);\n }\n // If none of the conditions match, item is ignored (not mapping to undefined)\n return accumulator;\n }, []);\n }, [columns, filtersProp, convertColumnToFilter]);\n\n const defaultCell = useCallback(\n ({ cell }: { cell: DataTableCell<DataTableRowData> }) => {\n const value = cell.getValue<string>();\n const hasTextWrapping =\n cell.column.columnDef.hasTextWrapping ||\n cell.column.columnDef.enableWrapping;\n\n return hasTextWrapping ? (\n value\n ) : (\n <Box\n sx={{\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n </Box>\n );\n },\n [],\n );\n\n const emptyState = useCallback(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n heading={t(\"table.noresults.heading\")}\n description={t(\"table.noresults.text\")}\n />\n );\n\n const emptyStateInnerContent =\n emptyPlaceholder && isEmpty ? emptyPlaceholder : noResultsInnerContent;\n\n return (\n <Box sx={{ width: tableInnerContainerWidth }}>\n {emptyStateInnerContent}\n </Box>\n );\n }, [\n emptyPlaceholder,\n isEmpty,\n noResultsPlaceholder,\n t,\n tableInnerContainerWidth,\n ]);\n\n const columnIds = useMemo(() => {\n return columns.map((column) => column.accessorKey);\n }, [columns]);\n\n const columnOrder = useMemo(\n () => [\n \"mrt-row-drag\",\n \"mrt-row-select\",\n \"mrt-row-expand\",\n ...columnIds,\n \"mrt-row-actions\",\n ],\n [columnIds],\n ) as string[];\n\n const dataTable = useMaterialReactTable({\n columns: columns,\n data: data,\n getRowId: getRowId,\n state: {\n sorting: columnSorting,\n globalFilter: search,\n columnVisibility,\n isLoading,\n rowSelection,\n columnOrder,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n ExpandMoreIcon: ChevronDownIcon,\n },\n\n // Base table settings\n enableColumnActions: false,\n enableColumnResizing: hasColumnResizing,\n enableDensityToggle: false,\n enableFilters: false,\n enableFullScreenToggle: false,\n enableGlobalFilter: false,\n enableHiding: false,\n enablePagination: false,\n layoutMode: \"grid-no-grow\",\n manualFiltering: true,\n manualSorting: true,\n muiTablePaperProps: {\n elevation: 0,\n sx: {\n overflow: \"visible\",\n },\n },\n selectAllMode: \"all\",\n displayColumnDefOptions:\n displayColumnDefOptions as MRT_TableOptions<DataTableRowData>[\"displayColumnDefOptions\"],\n muiTableBodyProps: () => ({\n className: rowDensityClassName,\n }),\n defaultColumn: {\n Cell: defaultCell,\n },\n\n // Reordering\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiTableBodyRowProps: ({ table, row }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n\n // Row actions\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n rowActionButtons ||\n rowActionMenuItems\n ? true\n : false,\n positionActionsColumn:\n \"last\" as MRT_TableOptions<DataTableRowData>[\"positionActionsColumn\"],\n renderRowActions: ({ row }) => renderRowActions({ row }),\n\n // Row selection\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n\n // Sorting\n enableSorting: hasSorting,\n onSortingChange: setColumnSorting,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n\n // Virtualization\n enableRowVirtualization:\n paginationType !== \"loadMore\" && pagination.pageSize > 50,\n rowVirtualizerInstanceRef:\n useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null),\n rowVirtualizerOptions: {\n overscan: 4,\n },\n\n // States\n renderEmptyRowsFallback: emptyState,\n\n // Refs\n muiTableProps: {\n ref: tableContentRef,\n },\n\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n\n // Row expansion\n enableExpandAll: false,\n renderDetailPanel: renderDetailPanel,\n });\n\n // Effects\n const bulkActionMenuButton = useMemo(\n () => (\n <>\n <MenuButton\n buttonVariant=\"secondary\"\n endIcon={<MoreIcon />}\n isDisabled={Object.keys(rowSelection).length === 0}\n ariaLabel=\"More actions\"\n >\n {bulkActionMenuItems?.(rowSelection)}\n </MenuButton>\n </>\n ),\n [bulkActionMenuItems, rowSelection],\n );\n\n useEffect(() => {\n (async () => {\n setIsLoading(true);\n setErrorMessage(errorMessageProp);\n try {\n const incomingData = await getData?.({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters,\n sort: columnSorting,\n });\n setData(incomingData);\n } catch (error) {\n setErrorMessage(typeof error === \"string\" ? error : t(\"table.error\"));\n } finally {\n setIsLoading(false);\n }\n })();\n }, [\n columnSorting,\n errorMessageProp,\n filters,\n getData,\n pagination,\n search,\n t,\n ]);\n\n useEffect(() => {\n if (!initialFilters && filters) {\n setInitialFilters(filters);\n }\n\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n filters === initialFilters &&\n data.length === 0,\n );\n }, [\n filters,\n pagination,\n search,\n data,\n currentPage,\n initialFilters,\n resultsPerPage,\n ]);\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const { lastRow } = usePagination({\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n // Render the table\n return (\n <>\n {(hasSearch ||\n hasFilters ||\n hasChangeableDensity ||\n hasColumnVisibility ||\n bulkActionMenuItems) && (\n <Box sx={{ marginBottom: 5 }}>\n <DataFilters\n onChangeSearch={hasSearch ? setSearch : undefined}\n onChangeFilters={hasFilters ? setFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\n filters={hasFilters ? dataTableFilters : undefined}\n defaultSearchTerm={initialSearchValue}\n isDisabled={isEmpty}\n additionalActions={\n <>\n <DataTableSettings\n hasChangeableDensity={hasChangeableDensity}\n rowDensity={rowDensity}\n setRowDensity={setRowDensity}\n hasColumnVisibility={hasColumnVisibility}\n columns={columns}\n columnVisibility={columnVisibility}\n setColumnVisibility={setColumnVisibility}\n />\n {bulkActionMenuItems && bulkActionMenuButton}\n </>\n }\n />\n </Box>\n )}\n\n {errorMessage && (\n <Box sx={{ marginBlockEnd: 2 }}>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n <ScrollableTableContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isScrollableStart={!isTableContainerScrolledToStart}\n isScrollableEnd={!isTableContainerScrolledToEnd}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n\n {hasPagination && (\n <Pagination\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n onPaginationChange={setPagination}\n lastRow={lastRow}\n totalRows={totalRows}\n isDisabled={isEmpty}\n variant={paginationType}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n currentPageLabel={t(\"pagination.page\")}\n previousLabel={t(\"pagination.previous\")}\n nextLabel={t(\"pagination.next\")}\n loadMoreLabel={t(\"pagination.loadmore\")}\n />\n )}\n </>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAEEA,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SASEC,qBAAqB,EACrBC,kBAAkB,QAIb,sBAAsB;AAC7B,SAASC,cAAc,QAAQ,eAAe;AAAC,SAE7CC,aAAa,EACbC,iBAAiB,EACjBC,eAAe,EACfC,iBAAiB,EACjBC,QAAQ;AAAA,SAEDC,aAAa;AAAA,SACbC,UAAU,EAAwBC,aAAa;AAAA,SACnCC,WAAW;AAAA,SAE9BC,mBAAmB;AAAA,SAGZC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,UAAU;AAAA,SACVC,GAAG;AAAA,SAIVC,sBAAsB;AAAA,SAEfC,mBAAmB;AAC5B,OAAOC,MAAM,MAAM,iBAAiB;AAAC,SAC5BC,UAAU;AAAA,SACVC,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAqLhB,MAAMC,uBAAuB,GAAG;EAC9B,iBAAiB,EAAE;IACjBC,MAAM,EAAE,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,qBAAqB,EAAE;MACrBC,KAAK,EAAE,OAAO;MACdC,EAAE,EAAE;QACFC,QAAQ,EAAE,SAAS;QACnBC,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;IACb,CAAC;IACDC,qBAAqB,EAAE;MACrBL,KAAK,EAAE,OAAO;MACdC,EAAE,EAAE;QACFE,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;IACb;EACF,CAAC;EACD,cAAc,EAAE;IACdP,MAAM,EAAE,EAAE;IACVE,qBAAqB,EAAE;MACrBE,EAAE,EAAE;QACFK,QAAQ,EAAE,CAAC;QACXH,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;IACb,CAAC;IACDC,qBAAqB,EAAE;MACrBJ,EAAE,EAAE;QACFK,QAAQ,EAAE,CAAC;QACXH,KAAK,EAAE;MACT,CAAC;MACDI,QAAQ,EAGNhB,IAAA,CAACP,GAAG;QAACiB,EAAE,EAAE;UAAEO,YAAY,EAAE;QAAU,CAAE;QAAAD,QAAA,EACnChB,IAAA,CAACjB,iBAAiB;UAAC2B,EAAE,EAAE;YAAEO,YAAY,EAAE,CAAC;YAAEC,OAAO,EAAE;UAAE;QAAE,CAAE;MAAC,CACvD;IAET;EACF,CAAC;EACD,gBAAgB,EAAE;IAChBJ,qBAAqB,EAAE;MACrBK,OAAO,EAAE;IACX,CAAC;IACDX,qBAAqB,EAAE;MACrBW,OAAO,EAAE;IACX;EACF,CAAC;EACD,gBAAgB,EAAE;IAChBb,MAAM,EAAE;EACV;AACF,CAAC;AAED,MAAMc,wBAAwB,GAAGxB,MAAM,CAAC,KAAK,EAAE;EAC7CyB,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAC9BA,IAAI,KAAK,mBAAmB,IAC5BA,IAAI,KAAK;AACb,CAAC,CAAC,CACA,CAAC;EACCC,mBAAmB;EACnBC,iBAAiB;EACjBC;AAKF,CAAC,MAAM;EACLC,cAAc,EAAEH,mBAAmB,CAACI,QAAQ;EAC5CC,QAAQ,EAAE,UAAU;EACpBC,sBAAsB,EAAEL,iBAAiB,GACrCD,mBAAmB,CAACO,aAAa,GACjC,aAAa;EACjBC,sBAAsB,EAAE,OAAO;EAC/BC,sBAAsB,EAAET,mBAAmB,CAACU,eAAe;EAC3D,UAAU,EAAE;IACVC,UAAU,EACR,8FAA8F;IAChGC,OAAO,EAAE,IAAI;IACbjB,OAAO,EAAEM,iBAAiB,GAAG,OAAO,GAAG,GAAG;IAC1CY,aAAa,EAAE,MAAM;IACrBR,QAAQ,EAAE,UAAU;IACpBS,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE,CAAC;IACT3B,KAAK,EAAEW,mBAAmB,CAACiB,QAAQ;IACnCC,MAAM,EAAE,GAAG;IACXC,UAAU,EAAG,WAAUnB,mBAAmB,CAACoB,sBAAuB,IAAGpB,mBAAmB,CAACqB,oBAAqB;EAChH,CAAC;EACDC,oBAAoB,EAAEpB,eAAe,GACjCF,mBAAmB,CAACO,aAAa,GACjC,aAAa;EACjBgB,oBAAoB,EAAE,OAAO;EAC7BC,oBAAoB,EAAExB,mBAAmB,CAACU,eAAe;EACzD,SAAS,EAAE;IACTC,UAAU,EACR,6FAA6F;IAC/FC,OAAO,EAAE,IAAI;IACbjB,OAAO,EAAEO,eAAe,GAAG,OAAO,GAAG,GAAG;IACxCW,aAAa,EAAE,MAAM;IACrBR,QAAQ,EAAE,UAAU;IACpBS,GAAG,EAAE,CAAC;IACNW,KAAK,EAAE,CAAC;IACRT,MAAM,EAAE,CAAC;IACT3B,KAAK,EAAEW,mBAAmB,CAACiB,QAAQ;IACnCE,UAAU,EAAG,WAAUnB,mBAAmB,CAACoB,sBAAuB,IAAGpB,mBAAmB,CAACqB,oBAAqB;EAChH;AACF,CAAC,CACH,CAAC;AAED,MAAMK,SAAS,GAAGA,CAAC;EACjBC,mBAAmB;EACnBC,OAAO;EACPC,WAAW,GAAG,CAAC;EACfC,gBAAgB;EAChBC,YAAY,EAAEC,gBAAgB;EAC9BC,OAAO,EAAEC,WAAW;EACpBC,OAAO;EACPC,QAAQ,EAAEC,YAAY;EACtBC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,UAAU;EACVC,cAAc,GAAGtF,aAAa,CAAC,CAAC,CAAC;EACjCuF,kBAAkB,GAAG,EAAE;EACvBC,oBAAoB;EACpBC,oBAAoB;EACpBC,aAAa;EACbC,cAAc,GAAG,OAAO;EACxBC,iBAAiB;EACjBC,cAAc,GAAG,EAAE;EACnBC,gBAAgB;EAChBC,kBAAkB;EAClBC,eAAe;EACfC;AACc,CAAC,KAAK;EACpB,MAAM;IAAEC;EAAE,CAAC,GAAGxG,cAAc,CAAC,CAAC;EAE9B,MAAM,CAACyG,IAAI,EAAEC,OAAO,CAAC,GAAG7G,QAAQ,CAAqB,EAAE,CAAC;EACxD,MAAM,CAAC8G,UAAU,EAAEC,aAAa,CAAC,GAAG/G,QAAQ,CAAC;IAC3CgH,SAAS,EAAEpC,WAAW;IACtBqC,QAAQ,EAAEX;EACZ,CAAC,CAAC;EACF,MAAM,CAACY,WAAW,EAAEC,cAAc,CAAC,GACjCnH,QAAQ,CAAmC,CAAC;EAC9C,MAAM,CAACoH,+BAA+B,EAAEC,kCAAkC,CAAC,GACzErH,QAAQ,CAAC,IAAI,CAAC;EAChB,MAAM,CAACsH,6BAA6B,EAAEC,gCAAgC,CAAC,GACrEvH,QAAQ,CAAC,IAAI,CAAC;EAChB,MAAM,CAACwH,wBAAwB,EAAEC,2BAA2B,CAAC,GAC3DzH,QAAQ,CAAS,MAAM,CAAC;EAC1B,MAAM0H,sBAAsB,GAAG3H,MAAM,CAAiB,IAAI,CAAC;EAC3D,MAAM4H,sBAAsB,GAAG5H,MAAM,CAAiB,IAAI,CAAC;EAC3D,MAAM6H,eAAe,GAAG7H,MAAM,CAAmB,IAAI,CAAC;EAGtD,MAAM,CAAC8H,aAAa,EAAEC,gBAAgB,CAAC,GAAG9H,QAAQ,CAAmB,EAAE,CAAC;EACxE,MAAM,CAAC+H,gBAAgB,EAAEC,mBAAmB,CAAC,GAC3ChI,QAAQ,CAAsB,CAAC;EACjC,MAAM,CAACiI,UAAU,EAAEC,aAAa,CAAC,GAC/BlI,QAAQ,CAAmB+F,cAAc,CAAC;EAC5C,MAAM,CAACoC,YAAY,EAAEC,eAAe,CAAC,GAAGpI,QAAQ,CAAwB,CAAC,CAAC,CAAC;EAC3E,MAAM,CAACqI,MAAM,EAAEC,SAAS,CAAC,GAAGtI,QAAQ,CAASgG,kBAAkB,CAAC;EAChE,MAAM,CAAChB,OAAO,EAAEuD,UAAU,CAAC,GAAGvI,QAAQ,CAAe,CAAC;EACtD,MAAM,CAACwI,cAAc,EAAEC,iBAAiB,CAAC,GAAGzI,QAAQ,CAAe,CAAC;EACpE,MAAM,CAAC0I,SAAS,EAAEC,YAAY,CAAC,GAAG3I,QAAQ,CAAsB,IAAI,CAAC;EACrE,MAAM,CAAC4I,OAAO,EAAEC,UAAU,CAAC,GAAG7I,QAAQ,CAAsB,CAAC;EAC7D,MAAM,CAAC8E,YAAY,EAAEgE,eAAe,CAAC,GAAG9I,QAAQ,CAC9C+E,gBACF,CAAC;EAED5D,mBAAmB,CAAC;IAClB4H,mBAAmB,EAAErB,sBAAsB,CAACsB,OAAO;IACnDC,mBAAmB,EAAEtB,sBAAsB,CAACqB,OAAO;IACnD3B,kCAAkC,EAAEA,kCAAkC;IACtEE,gCAAgC,EAAEA,gCAAgC;IAClEE,2BAA2B,EAAEA;EAC/B,CAAC,CAAC;EAEF,MAAM1E,mBAAmB,GAAG7B,sBAAsB,CAAC,CAAC;EAEpD,MAAM;IACJgI,gBAAgB;IAChBC,cAAc;IACdC,8BAA8B;IAC9BC,uBAAuB;IACvBC,6BAA6B;IAC7BC,yBAAyB;IACzBC,0BAA0B;IAC1BC;EACF,CAAC,GAAG3I,gBAAgB,CAAC;IACnB4F,SAAS;IACTP,aAAa;IACbS,IAAI;IACJC,OAAO;IACPK,WAAW;IACXC,cAAc;IACdb,cAAc,EAAEQ,UAAU,CAACG,QAAQ;IACnCyC,IAAI,EAAE5C,UAAU,CAACE;EACnB,CAAC,CAAC;EAEF,MAAM7B,QAAQ,GAAGC,YAAY,GACzBA,YAAY,GACXuE,GAAqB,IAAKA,GAAG,CAACC,EAAE;EAErC,MAAMC,mBAAmB,GAAG/J,OAAO,CAAC,MAAM;IACxC,OAAOmI,UAAU,KAAK,UAAU,GAC5B,uBAAuB,GACvBA,UAAU,KAAK,SAAS,GACtB,sBAAsB,GACtB,sBAAsB;EAC9B,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,MAAM6B,gBAAgB,GAAGlK,WAAW,CAClC,CAAC;IAAE+J;EAAwC,CAAC,KAAK;IAC/C,MAAMI,YAAY,GAChBJ,GAAG,CAACK,KAAK,GAAG,CAAClD,UAAU,CAACE,SAAS,GAAG,CAAC,IAAIF,UAAU,CAACG,QAAQ;IAC9D,OACEzF,IAAA,CAACX,mBAAmB;MAClB8I,GAAG,EAAEA,GAAI;MACTM,QAAQ,EAAEF,YAAa;MACvBxD,gBAAgB,EAAEA,gBAAiB;MACnCC,kBAAkB,EAAEA,kBAAmB;MACvCE,SAAS,EAAEA,SAAU;MACrB+C,cAAc,EACZ/D,gBAAgB,IAAIS,aAAa,GAAGsD,cAAc,GAAGS;IACtD,CACF,CAAC;EAEN,CAAC,EACD,CACEpD,UAAU,EACVP,gBAAgB,EAChBC,kBAAkB,EAClBd,gBAAgB,EAChBS,aAAa,EACbO,SAAS,EACT+C,cAAc,CAElB,CAAC;EAMD,MAAMU,0BAA0B,GAAGvK,WAAW,CAC3CwK,OAAiE,IAChEA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAED,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAK;IACnCA,KAAK,EAAEF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EAChC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAG7K,WAAW,CACtC8K,MAAyC,IACxCA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACpD;IACChB,EAAE,EAAEc,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAAC5I,MAAM;IACpB+I,OAAO,EAAEH,MAAM,CAACI,aAAa;IAC7BV,OAAO,EAAED,0BAA0B,CAACO,MAAM,CAACK,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACZ,0BAA0B,CAC7B,CAAC;EAOD,MAAMa,gBAAgB,GAAGlL,OAAO,CAAC,MAAM;IACrC,MAAMmL,eAAe,GAAGhG,WAAW,IAAIN,OAAO;IAC9C,OAAOsG,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAG1G,OAAO,CAAC2G,IAAI,CAC7BZ,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKQ,IACrC,CAAC;QACD,IAAIC,WAAW,EAAE;UACf,MAAME,MAAM,GAAGd,qBAAqB,CAACY,WAAW,CAAC;UACjD,IAAIE,MAAM,EAAE;YACV,OAAOJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC;UACnC;QACF;MACF,CAAC,MAAM,IAAI,aAAa,IAAIH,IAAI,EAAE;QAEhC,MAAMG,MAAM,GAAGd,qBAAqB,CAACW,IAAI,CAAC;QAC1C,IAAIG,MAAM,EAAE;UACV,OAAOJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC;QACnC;MACF,CAAC,MAAM,IAAI,OAAO,IAAIH,IAAI,EAAE;QAE1B,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACxG,OAAO,EAAEM,WAAW,EAAEwF,qBAAqB,CAAC,CAAC;EAEjD,MAAMgB,WAAW,GAAG7L,WAAW,CAC7B,CAAC;IAAE8L;EAAgD,CAAC,KAAK;IACvD,MAAMlB,KAAK,GAAGkB,IAAI,CAACC,QAAQ,CAAS,CAAC;IACrC,MAAMC,eAAe,GACnBF,IAAI,CAAChB,MAAM,CAACmB,SAAS,CAACD,eAAe,IACrCF,IAAI,CAAChB,MAAM,CAACmB,SAAS,CAACC,cAAc;IAEtC,OAAOF,eAAe,GACpBpB,KAAK,GAELhJ,IAAA,CAACP,GAAG;MACFiB,EAAE,EAAE;QACF6J,UAAU,EAAE,QAAQ;QACpBC,YAAY,EAAE,UAAU;QACxB7J,QAAQ,EAAE;MACZ,CAAE;MAAAK,QAAA,EAEDgI;IAAK,CACH,CACN;EACH,CAAC,EACD,EACF,CAAC;EAED,MAAMyB,UAAU,GAAGrM,WAAW,CAAC,MAAM;IACnC,MAAMsM,qBAAqB,GAAGjG,oBAAoB,IAChDzE,IAAA,CAACH,UAAU;MACT8K,OAAO,EAAExF,CAAC,CAAC,yBAAyB,CAAE;MACtCyF,WAAW,EAAEzF,CAAC,CAAC,sBAAsB;IAAE,CACxC,CACF;IAED,MAAM0F,sBAAsB,GAC1BxH,gBAAgB,IAAI+D,OAAO,GAAG/D,gBAAgB,GAAGqH,qBAAqB;IAExE,OACE1K,IAAA,CAACP,GAAG;MAACiB,EAAE,EAAE;QAAEE,KAAK,EAAEoF;MAAyB,CAAE;MAAAhF,QAAA,EAC1C6J;IAAsB,CACpB,CAAC;EAEV,CAAC,EAAE,CACDxH,gBAAgB,EAChB+D,OAAO,EACP3C,oBAAoB,EACpBU,CAAC,EACDa,wBAAwB,CACzB,CAAC;EAEF,MAAM8E,SAAS,GAAGxM,OAAO,CAAC,MAAM;IAC9B,OAAO6E,OAAO,CAAC0F,GAAG,CAAEK,MAAM,IAAKA,MAAM,CAACE,WAAW,CAAC;EACpD,CAAC,EAAE,CAACjG,OAAO,CAAC,CAAC;EAEb,MAAM4H,WAAW,GAAGzM,OAAO,CACzB,MAAM,CACJ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,GAAGwM,SAAS,EACZ,iBAAiB,CAClB,EACD,CAACA,SAAS,CACZ,CAAa;EAEb,MAAME,SAAS,GAAGvM,qBAAqB,CAAC;IACtC0E,OAAO,EAAEA,OAAO;IAChBiC,IAAI,EAAEA,IAAI;IACVzB,QAAQ,EAAEA,QAAQ;IAClBsH,KAAK,EAAE;MACLC,OAAO,EAAE7E,aAAa;MACtB8E,YAAY,EAAEtE,MAAM;MACpBN,gBAAgB;MAChBW,SAAS;MACTP,YAAY;MACZoE;IACF,CAAC;IACDK,KAAK,EAAE;MACLC,iBAAiB,EAAEzM,aAAa;MAChC0M,cAAc,EAAEvM,iBAAiB;MACjCwM,WAAW,EAAE1M,iBAAiB;MAC9B2M,cAAc,EAAE1M;IAClB,CAAC;IAGD2M,mBAAmB,EAAE,KAAK;IAC1BC,oBAAoB,EAAE5H,iBAAiB;IACvC6H,mBAAmB,EAAE,KAAK;IAC1BC,aAAa,EAAE,KAAK;IACpBC,sBAAsB,EAAE,KAAK;IAC7BC,kBAAkB,EAAE,KAAK;IACzBC,YAAY,EAAE,KAAK;IACnBC,gBAAgB,EAAE,KAAK;IACvBC,UAAU,EAAE,cAAc;IAC1BC,eAAe,EAAE,IAAI;IACrBC,aAAa,EAAE,IAAI;IACnBC,kBAAkB,EAAE;MAClBC,SAAS,EAAE,CAAC;MACZ3L,EAAE,EAAE;QACFC,QAAQ,EAAE;MACZ;IACF,CAAC;IACD2L,aAAa,EAAE,KAAK;IACpBjM,uBAAuB,EACrBA,uBAAwF;IAC1FkM,iBAAiB,EAAEA,CAAA,MAAO;MACxB1L,SAAS,EAAEwH;IACb,CAAC,CAAC;IACFmE,aAAa,EAAE;MACbC,IAAI,EAAExC;IACR,CAAC;IAGDyC,iBAAiB,EAAExI,gBAAgB,IAAIyI,OAAO,CAAChI,aAAa,CAAC;IAC7DiI,iBAAiB,EAAE1I,gBAAgB,IAAIyI,OAAO,CAAChI,aAAa,CAAC;IAC7DkI,oBAAoB,EAAEA,CAAC;MAAEC,KAAK;MAAE3E;IAAI,CAAC,MAAM;MACzCtH,SAAS,EAAE+G,8BAA8B,CAAC;QACxCmF,YAAY,EAAE5E,GAAG,CAACC,EAAE;QACpB4E,aAAa,EAAEtH,WAAW,EAAE0C,EAAE;QAC9B6E,YAAY,EAAEH,KAAK,CAACI,QAAQ,CAAC,CAAC,CAACC,UAAU,EAAE/E;MAC7C,CAAC;IACH,CAAC,CAAC;IACFgF,qBAAqB,EAAEA,CAAC;MAAEN,KAAK;MAAE3E;IAAI,CAAC,MAAM;MAC1CkF,SAAS,EAAGC,KAAK,IAAKzF,uBAAuB,CAAC;QAAEiF,KAAK;QAAE3E,GAAG;QAAEmF;MAAM,CAAC,CAAC;MACpEC,MAAM,EAAEA,CAAA,KAAMvF,0BAA0B,CAAC8E,KAAK,CAAC;MAC/CU,SAAS,EAAEA,CAAA,KAAMzF,yBAAyB,CAAC+E,KAAK,CAAC;MACjDW,aAAa,EAAEA,CAAA,KAAM3F,6BAA6B,CAACgF,KAAK,CAAC;MACzDpM,EAAE,EAAEgH,gBAAgB;MACpB,GAAGC;IACL,CAAC,CAAC;IAGF+F,gBAAgB,EACbxJ,gBAAgB,KAAK,IAAI,IAAIS,aAAa,IAC3CI,gBAAgB,IAChBC,kBAAkB,GACd,IAAI,GACJ,KAAK;IACX2I,qBAAqB,EACnB,MAAqE;IACvErF,gBAAgB,EAAEA,CAAC;MAAEH;IAAI,CAAC,KAAKG,gBAAgB,CAAC;MAAEH;IAAI,CAAC,CAAC;IAGxDyF,kBAAkB,EAAEzJ,eAAe;IACnC0J,oBAAoB,EAAEjH,eAAe;IAGrCkH,aAAa,EAAExJ,UAAU;IACzByJ,eAAe,EAAEzH,gBAAgB;IACjCxF,qBAAqB,EAAEA,CAAC;MAAEoI,MAAM,EAAE8E;IAAc,CAAC,MAAM;MACrDnN,SAAS,EAAEwF,aAAa,CAACyD,IAAI,CAC1BmE,YAAY,IAAKA,YAAY,CAAC7F,EAAE,KAAK4F,aAAa,CAAC5F,EACtD,CAAC,GACG,UAAU,GACV;IACN,CAAC,CAAC;IAGF8F,uBAAuB,EACrBtJ,cAAc,KAAK,UAAU,IAAIU,UAAU,CAACG,QAAQ,GAAG,EAAE;IAC3D0I,yBAAyB,EACvB5P,MAAM,CAA0D,IAAI,CAAC;IACvE6P,qBAAqB,EAAE;MACrBC,QAAQ,EAAE;IACZ,CAAC;IAGDC,uBAAuB,EAAE7D,UAAU;IAGnC8D,aAAa,EAAE;MACbC,GAAG,EAAEpI;IACP,CAAC;IAEDqI,sBAAsB,EAAE;MACtBD,GAAG,EAAErI;IACP,CAAC;IAGDuI,eAAe,EAAE,KAAK;IACtB7J,iBAAiB,EAAEA;EACrB,CAAC,CAAC;EAGF,MAAM8J,oBAAoB,GAAGrQ,OAAO,CAClC,MACE0B,IAAA,CAAAE,SAAA;IAAAc,QAAA,EACEhB,IAAA,CAACR,UAAU;MACToP,aAAa,EAAC,WAAW;MACzBC,OAAO,EAAE7O,IAAA,CAAChB,QAAQ,IAAE,CAAE;MACtB8P,UAAU,EAAEC,MAAM,CAACC,IAAI,CAACrI,YAAY,CAAC,CAACsI,MAAM,KAAK,CAAE;MACnDC,SAAS,EAAC,cAAc;MAAAlO,QAAA,EAEvBkC,mBAAmB,GAAGyD,YAAY;IAAC,CAC1B;EAAC,CACb,CACH,EACD,CAACzD,mBAAmB,EAAEyD,YAAY,CACpC,CAAC;EAEDtI,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX8I,YAAY,CAAC,IAAI,CAAC;MAClBG,eAAe,CAAC/D,gBAAgB,CAAC;MACjC,IAAI;QACF,MAAM4L,YAAY,GAAG,MAAMzL,OAAO,GAAG;UACnCwE,IAAI,EAAE5C,UAAU,CAACE,SAAS;UAC1BV,cAAc,EAAEQ,UAAU,CAACG,QAAQ;UACnCoB,MAAM;UACNrD,OAAO;UACP4L,IAAI,EAAE/I;QACR,CAAC,CAAC;QACFhB,OAAO,CAAC8J,YAAY,CAAC;MACvB,CAAC,CAAC,OAAOE,KAAK,EAAE;QACd/H,eAAe,CAAC,OAAO+H,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGlK,CAAC,CAAC,aAAa,CAAC,CAAC;MACvE,CAAC,SAAS;QACRgC,YAAY,CAAC,KAAK,CAAC;MACrB;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CACDd,aAAa,EACb9C,gBAAgB,EAChBC,OAAO,EACPE,OAAO,EACP4B,UAAU,EACVuB,MAAM,EACN1B,CAAC,CACF,CAAC;EAEF9G,SAAS,CAAC,MAAM;IACd,IAAI,CAAC2I,cAAc,IAAIxD,OAAO,EAAE;MAC9ByD,iBAAiB,CAACzD,OAAO,CAAC;IAC5B;IAEA6D,UAAU,CACR/B,UAAU,CAACE,SAAS,KAAKpC,WAAW,IAClCkC,UAAU,CAACG,QAAQ,KAAKX,cAAc,IACtC+B,MAAM,KAAK,EAAE,IACbrD,OAAO,KAAKwD,cAAc,IAC1B5B,IAAI,CAAC6J,MAAM,KAAK,CACpB,CAAC;EACH,CAAC,EAAE,CACDzL,OAAO,EACP8B,UAAU,EACVuB,MAAM,EACNzB,IAAI,EACJhC,WAAW,EACX4D,cAAc,EACdlC,cAAc,CACf,CAAC;EAEFzG,SAAS,CAAC,MAAM;IACdqG,oBAAoB,GAAGiC,YAAY,CAAC;EACtC,CAAC,EAAE,CAACA,YAAY,EAAEjC,oBAAoB,CAAC,CAAC;EAExC,MAAM;IAAE4K;EAAQ,CAAC,GAAGnQ,aAAa,CAAC;IAChCqG,SAAS,EAAEF,UAAU,CAACE,SAAS;IAC/BC,QAAQ,EAAEH,UAAU,CAACG,QAAQ;IAC7BP;EACF,CAAC,CAAC;EAGF,OACE9E,KAAA,CAAAF,SAAA;IAAAc,QAAA,GACG,CAACoD,SAAS,IACTJ,UAAU,IACVH,oBAAoB,IACpBE,mBAAmB,IACnBb,mBAAmB,KACnBlD,IAAA,CAACP,GAAG;MAACiB,EAAE,EAAE;QAAE6O,YAAY,EAAE;MAAE,CAAE;MAAAvO,QAAA,EAC3BhB,IAAA,CAACZ,WAAW;QACVoQ,cAAc,EAAEpL,SAAS,GAAG0C,SAAS,GAAG4B,SAAU;QAClD+G,eAAe,EAAEzL,UAAU,GAAG+C,UAAU,GAAG2B,SAAU;QACrDrE,qBAAqB,EAAEA,qBAAsB;QAC7CY,eAAe,EAAEA,eAAgB;QACjCzB,OAAO,EAAEQ,UAAU,GAAGwF,gBAAgB,GAAGd,SAAU;QACnDgH,iBAAiB,EAAElL,kBAAmB;QACtCsK,UAAU,EAAE1H,OAAQ;QACpBuI,iBAAiB,EACfvP,KAAA,CAAAF,SAAA;UAAAc,QAAA,GACEhB,IAAA,CAACT,iBAAiB;YAChBsE,oBAAoB,EAAEA,oBAAqB;YAC3C4C,UAAU,EAAEA,UAAW;YACvBC,aAAa,EAAEA,aAAc;YAC7B3C,mBAAmB,EAAEA,mBAAoB;YACzCZ,OAAO,EAAEA,OAAQ;YACjBoD,gBAAgB,EAAEA,gBAAiB;YACnCC,mBAAmB,EAAEA;UAAoB,CAC1C,CAAC,EACDtD,mBAAmB,IAAIyL,oBAAoB;QAAA,CAC5C;MACH,CACF;IAAC,CACC,CACN,EAEArL,YAAY,IACXtD,IAAA,CAACP,GAAG;MAACiB,EAAE,EAAE;QAAEgB,cAAc,EAAE;MAAE,CAAE;MAAAV,QAAA,EAC7BhB,IAAA,CAACF,OAAO;QAAC8P,QAAQ,EAAC,OAAO;QAACC,IAAI,EAAEvM;MAAa,CAAE;IAAC,CAC7C,CACN,EAEDtD,IAAA,CAACoB,wBAAwB;MACvBG,mBAAmB,EAAEA,mBAAoB;MACzCC,iBAAiB,EAAE,CAACoE,+BAAgC;MACpDnE,eAAe,EAAE,CAACqE,6BAA8B;MAChD0I,GAAG,EAAEtI,sBAAuB;MAAAlF,QAAA,EAE5BhB,IAAA,CAACtB,kBAAkB;QAACoO,KAAK,EAAE9B;MAAU,CAAE;IAAC,CAChB,CAAC,EAE1B/G,aAAa,IACZjE,IAAA,CAACd,UAAU;MACTsG,SAAS,EAAEF,UAAU,CAACE,SAAU;MAChCC,QAAQ,EAAEH,UAAU,CAACG,QAAS;MAC9BqK,kBAAkB,EAAEvK,aAAc;MAClC+J,OAAO,EAAEA,OAAQ;MACjBpK,SAAS,EAAEA,SAAU;MACrB4J,UAAU,EAAE1H,OAAQ;MACpBiC,OAAO,EAAEzE,cAAe;MACxBmL,gBAAgB,EAAE5K,CAAC,CAAC,wBAAwB,CAAE;MAC9C6K,gBAAgB,EAAE7K,CAAC,CAAC,iBAAiB,CAAE;MACvC8K,aAAa,EAAE9K,CAAC,CAAC,qBAAqB,CAAE;MACxC+K,SAAS,EAAE/K,CAAC,CAAC,iBAAiB,CAAE;MAChCgL,aAAa,EAAEhL,CAAC,CAAC,qBAAqB;IAAE,CACzC,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAED,MAAMiL,iBAAiB,GAAGjS,IAAI,CAAC8E,SAAS,CAAC;AACzCmN,iBAAiB,CAACC,WAAW,GAAG,WAAW;AAE3C,SAASD,iBAAiB,IAAInN,SAAS"}