@okta/odyssey-react-mui 1.52.1 → 1.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/dist/appswitcher/admin-app-default.svg +6 -0
  2. package/dist/appswitcher/admin-app-selected.svg +6 -0
  3. package/dist/appswitcher/aerial-default.svg +7 -0
  4. package/dist/appswitcher/aerial-selected.svg +7 -0
  5. package/dist/appswitcher/okta-dashboard-default.svg +7 -0
  6. package/dist/appswitcher/okta-dashboard-selected.svg +7 -0
  7. package/dist/appswitcher/privileged-access-default.svg +4 -0
  8. package/dist/appswitcher/privileged-access-selected.svg +4 -0
  9. package/dist/appswitcher/workflows-default.svg +5 -0
  10. package/dist/appswitcher/workflows-selected.svg +5 -0
  11. package/dist/assets/Accordion-CLdY3bef.js +1 -0
  12. package/dist/assets/Accordion.stories-X3jwsTUf.js +85 -0
  13. package/dist/assets/AccordionSummary-wkTP8_D6.js +1 -0
  14. package/dist/assets/AddCircle-zDqHIKbQ.js +1 -0
  15. package/dist/assets/AlertTitle-UQV7DT5q.js +1 -0
  16. package/dist/assets/AppSwitcher-Dgfa_AoU.js +21 -0
  17. package/dist/assets/AppSwitcher.stories-CwjWKK9x.js +100 -0
  18. package/dist/assets/AppTile.stories-BfdQQaCS.js +136 -0
  19. package/dist/assets/ArrowDropDown-BbLKA4fg.js +1 -0
  20. package/dist/assets/ArrowRight-C5USrGY5.js +1 -0
  21. package/dist/assets/Autocomplete-BajR4gNT.js +1 -0
  22. package/dist/assets/Autocomplete-BwSwXNq_.js +1 -0
  23. package/dist/assets/Autocomplete.stories-C7T-kCUQ.js +316 -0
  24. package/dist/assets/Badge-4k4qHpX4.js +11 -0
  25. package/dist/assets/Banner-CfvXqDEI.js +1 -0
  26. package/dist/assets/Banner.stories-NnVFdOhp.js +96 -0
  27. package/dist/assets/BaseButton-C9tiChQu.js +11 -0
  28. package/dist/assets/BaseMenuButton-BXkyi9Y-.js +1 -0
  29. package/dist/assets/Box--NDTewyO.js +1 -0
  30. package/dist/assets/Box-B3rdnavX.js +1 -0
  31. package/dist/assets/Box-CnVllI1S.js +1 -0
  32. package/dist/assets/Box-Dieb6jd6.js +11 -0
  33. package/dist/assets/Box.stories-0iw_Ut4E.js +38 -0
  34. package/dist/assets/Breadcrumb.stories-BOG-nvIn.js +19 -0
  35. package/dist/assets/BreadcrumbList.stories-BjYldubq.js +81 -0
  36. package/dist/assets/Breadcrumbs-DlF1RjAJ.js +6 -0
  37. package/dist/assets/Bug-BnGJL5iO.js +1 -0
  38. package/dist/assets/Button-0PI4ljbj.js +11 -0
  39. package/dist/assets/Button-BEdrRzeO.js +11 -0
  40. package/dist/assets/Button-CQAScxdp.js +31 -0
  41. package/dist/assets/Button-Dug4qNr3.js +1 -0
  42. package/dist/assets/Button.stories-CNPwpgVA.js +133 -0
  43. package/dist/assets/Button.stories-CaESBfZW.js +271 -0
  44. package/dist/assets/ButtonBase-Rz8p08Xo.js +74 -0
  45. package/dist/assets/Calendar-Do4wfihU.js +1 -0
  46. package/dist/assets/Call-CZmd0zlk.js +1 -0
  47. package/dist/assets/Callout-WJN7MCgu.js +1 -0
  48. package/dist/assets/Callout.stories-EyhGsZIg.js +322 -0
  49. package/dist/assets/Card-BejcE3ak.js +8 -0
  50. package/dist/assets/Card-CYHxgfcj.js +1 -0
  51. package/dist/assets/Card.stories-CB7itEof.js +56 -0
  52. package/dist/assets/CardActionArea-CjEHgWqq.js +1 -0
  53. package/dist/assets/CardActions-AjPk7ICQ.js +1 -0
  54. package/dist/assets/Checkbox-3Yu84dfy.js +1 -0
  55. package/dist/assets/Checkbox-mRntsWEy.js +1 -0
  56. package/dist/assets/Checkbox.stories-CnAqBzmf.js +113 -0
  57. package/dist/assets/CheckboxGroup-Bris2fCF.js +1 -0
  58. package/dist/assets/CheckboxGroup.stories-CIRolYTR.js +89 -0
  59. package/dist/assets/ChevronRight-QYu5EQHS.js +1 -0
  60. package/dist/assets/ChevronUp-D226bAv0.js +1 -0
  61. package/dist/assets/Chip-BgPaZbUf.js +1 -0
  62. package/dist/assets/CircularProgress-B7sj16Me.js +1 -0
  63. package/dist/assets/CircularProgress-D6L1y9kt.js +28 -0
  64. package/dist/assets/CircularProgress.stories-CvfXEtcf.js +44 -0
  65. package/dist/assets/Clock-CRMbzsTS.js +1 -0
  66. package/dist/assets/Close-CELHOmN_.js +1 -0
  67. package/dist/assets/Code Styling Guidelines-CstdJT8e.js +13 -0
  68. package/dist/assets/Collapse-DULszxZp.js +1 -0
  69. package/dist/assets/Color-ASIRERSW-D1UGGYVZ.js +1 -0
  70. package/dist/assets/CssBaseline-BxXlsiez.js +191 -0
  71. package/dist/assets/CssBaseline.stories-DVe508J0.js +364 -0
  72. package/dist/assets/Custom Theming-ccLDrBQS.js +135 -0
  73. package/dist/assets/Custom Theming.stories-CWCReKRB.js +95 -0
  74. package/dist/assets/DataFilters-4og6bOFS.js +1 -0
  75. package/dist/assets/DataFilters-BkX84ZQL.js +55 -0
  76. package/dist/assets/DataFilters.stories-DewPnjr_.js +31 -0
  77. package/dist/assets/DataTable-019cW0Jq.js +495 -0
  78. package/dist/assets/DataTable-B5iX_c6m.js +21 -0
  79. package/dist/assets/DataTable-DV-P1c62.js +41 -0
  80. package/dist/assets/DataTable.stories-Bn546tQH.js +21 -0
  81. package/dist/assets/DataTable.stories-CZ38vjC1.js +438 -0
  82. package/dist/assets/DataView-BS0E464o.js +91 -0
  83. package/dist/assets/DataView-C1SHLIDp.js +332 -0
  84. package/dist/assets/DataView.stories-CzFmgLtp.js +439 -0
  85. package/dist/assets/DataView.stories-E0Zxfc-o.js +646 -0
  86. package/dist/assets/DatePicker-DE3q9EuO.js +11 -0
  87. package/dist/assets/DatePicker-vZfA4IWy.js +1 -0
  88. package/dist/assets/DatePicker.stories-DWhZFsWV.js +133 -0
  89. package/dist/assets/DateTimePicker-ByepBMwy.js +1 -0
  90. package/dist/assets/DateTimePicker.stories-Cas4UCrt.js +158 -0
  91. package/dist/assets/DebugMenu-3nsw5Xt7.js +1 -0
  92. package/dist/assets/Design Tokens-OxRvZCcK.js +4 -0
  93. package/dist/assets/Dialog-DiU8nQnH.js +1 -0
  94. package/dist/assets/Dialog.stories-Cl9r8_yI.js +207 -0
  95. package/dist/assets/DialogContent-C6DlqjnA.js +1 -0
  96. package/dist/assets/DialogTitle-B_QxN4PO.js +1 -0
  97. package/dist/assets/Divider-C7lvc1xB.js +1 -0
  98. package/dist/assets/Divider.stories-BEuF_CK6.js +5 -0
  99. package/dist/assets/DocsRenderer-GHJI37HO-DFEQwt06.js +2 -0
  100. package/dist/assets/Documentation-nAJnZGCK.js +1 -0
  101. package/dist/assets/Download-CA8gZ8xE.js +1 -0
  102. package/dist/assets/Drawer-CYAKZaWu.js +33 -0
  103. package/dist/assets/Drawer.stories-we3mu0fd.js +95 -0
  104. package/dist/assets/EmptyState-B1EvR4rn.js +11 -0
  105. package/dist/assets/EmptyState.stories-BoZoxyTs.js +11 -0
  106. package/dist/assets/ExampleButton.stories-C3scpIjS.js +11 -0
  107. package/dist/assets/Extending Translations-3H_cpfNQ.js +147 -0
  108. package/dist/assets/ExternalLink-3_gWbh_U.js +1 -0
  109. package/dist/assets/Fade-ZBabHGDm.js +1 -0
  110. package/dist/assets/Field-CqIOaZfg.js +11 -0
  111. package/dist/assets/FieldHint-Cs73lQge.js +1 -0
  112. package/dist/assets/Fieldset-emRDW8u7.js +11 -0
  113. package/dist/assets/Fieldset.stories-B_r0XFjE.js +15 -0
  114. package/dist/assets/FileUploader.stories-82Cob1aQ.js +58 -0
  115. package/dist/assets/Filter-XcwxIcdg.js +1 -0
  116. package/dist/assets/Folder-CVKRyg4P.js +1 -0
  117. package/dist/assets/Form Field Accessibility-CZo064GW.js +17 -0
  118. package/dist/assets/Form-jEIBfmsN.js +11 -0
  119. package/dist/assets/Form.stories-Bge8Frr0.js +69 -0
  120. package/dist/assets/FormControlLabel-BG9mNqQc.js +1 -0
  121. package/dist/assets/FormGroup-D8ZDwdpx.js +1 -0
  122. package/dist/assets/FormHelperText-CVc1kPQJ.js +1 -0
  123. package/dist/assets/FormLabel-CWWbs_c2.js +1 -0
  124. package/dist/assets/FullScreenOverlay-GJH3R5s4.js +11 -0
  125. package/dist/assets/Generating Icons-DzaDzJO9.js +15 -0
  126. package/dist/assets/Globe-C0SMdL8H.js +1 -0
  127. package/dist/assets/Grid-DnpTJXeB.js +1 -0
  128. package/dist/assets/Group-BJr9nAnt.js +1 -0
  129. package/dist/assets/GroupPicker.stories-Oc5zKcw1.js +33 -0
  130. package/dist/assets/Grow-DvH-Xu1P.js +1 -0
  131. package/dist/assets/Hide-C2jA-JOQ.js +1 -0
  132. package/dist/assets/Hint-BXue9c6p.js +11 -0
  133. package/dist/assets/HintLink.stories-FqiBpDGQ.js +44 -0
  134. package/dist/assets/Home-D8RWt2JU.js +1 -0
  135. package/dist/assets/Icon.stories-CB1sFVG5.js +16 -0
  136. package/dist/assets/IconButton-BPR_sq0F.js +1 -0
  137. package/dist/assets/IconWithTooltip.stories-qhJ3BM2A.js +19 -0
  138. package/dist/assets/IgaComponentsOdysseyStorybookThemeDecorator-DdMym0aA.js +269 -0
  139. package/dist/assets/InformationCircle-DRZkRWne.js +1 -0
  140. package/dist/assets/InputAdornment-Clfg5IS6.js +1 -0
  141. package/dist/assets/InputBase-BYnzr12H.js +2 -0
  142. package/dist/assets/Installing odyssey-react-mui-C75NTz-Q.js +216 -0
  143. package/dist/assets/Introduction-DqVi6Ihy.js +46 -0
  144. package/dist/assets/Layout-XY1MknZE.js +11 -0
  145. package/dist/assets/Layout.stories-CnOmeQ-W.js +285 -0
  146. package/dist/assets/Legacy Migrations-D05TylMb.js +85 -0
  147. package/dist/assets/LinearProgress-Z53mwHnp.js +54 -0
  148. package/dist/assets/Link-BKNciOfr.js +1 -0
  149. package/dist/assets/Link-Cg_KakDo.js +1 -0
  150. package/dist/assets/Link-Djl4opNm.js +11 -0
  151. package/dist/assets/Link-thynTosX.js +1 -0
  152. package/dist/assets/Link.stories-Clh1Bkzm.js +38 -0
  153. package/dist/assets/List-CZ2bN2bA.js +1 -0
  154. package/dist/assets/List-D0N4Xybp.js +1 -0
  155. package/dist/assets/ListItem-BNz1zv6N.js +1 -0
  156. package/dist/assets/ListSubheader-Dwx7m0BA.js +1 -0
  157. package/dist/assets/ListSubheader.stories-nA_TcAiG.js +5 -0
  158. package/dist/assets/Menu-DB2s3Jn0.js +1 -0
  159. package/dist/assets/MenuButton-BffESdH9.js +11 -0
  160. package/dist/assets/MenuButton-BrxZ5EA2.js +31 -0
  161. package/dist/assets/MenuButton.stories-CtQrmY2o.js +246 -0
  162. package/dist/assets/MenuButton.stories-l4pnLJBo.js +75 -0
  163. package/dist/assets/MenuContext-UsOwIWpO.js +11 -0
  164. package/dist/assets/MenuItem-Cmq8TfUJ.js +1 -0
  165. package/dist/assets/MenuItem-CpMFWgaz.js +1 -0
  166. package/dist/assets/MenuItem-nncwAWHS.js +1 -0
  167. package/dist/assets/MenuItem.stories-76iDefqo.js +22 -0
  168. package/dist/assets/MenuItem.stories-CQ-735qG.js +38 -0
  169. package/dist/assets/MenuList-D3GSt85L.js +1 -0
  170. package/dist/assets/Modal-C5P7v6Gt.js +1 -0
  171. package/dist/assets/More-BAN0OFVF.js +1 -0
  172. package/dist/assets/MuiPropsContext-D6i6qZME.js +11 -0
  173. package/dist/assets/MuiPropsContext-Df02xyKB.js +11 -0
  174. package/dist/assets/NativeSelect.stories-D2Ob7KE5.js +114 -0
  175. package/dist/assets/Notification-CqbysXIb.js +1 -0
  176. package/dist/assets/OdysseyProvider-PxeTd-wx.js +197 -0
  177. package/dist/assets/OdysseyProvider-rboSNY26.js +76 -0
  178. package/dist/assets/OdysseyStorybookThemeDecorator-CHlNoX17.js +1 -0
  179. package/dist/assets/OdysseyThemeProvider-BA0_xP7N.js +174 -0
  180. package/dist/assets/PageHeader-DHtVYyb-.js +6 -0
  181. package/dist/assets/PageHeader.stories-CCvS30-w.js +17 -0
  182. package/dist/assets/PageHeader.stories-DzO4wv8w.js +364 -0
  183. package/dist/assets/PageHeader.stories-xG6qoBox.js +364 -0
  184. package/dist/assets/PageTemplate-BUVvgcIj.js +21 -0
  185. package/dist/assets/PageTemplate-Dfm2PU1P.js +8 -0
  186. package/dist/assets/PageTemplate.stories-M6ewVPJx.js +205 -0
  187. package/dist/assets/PageTemplate.stories-XizDmXOT.js +205 -0
  188. package/dist/assets/PageTemplate.stories-mpYXgZT4.js +306 -0
  189. package/dist/assets/PaginatedTable.stories-BGRIoKo4.js +65 -0
  190. package/dist/assets/Paper-vUVrw-QB.js +1 -0
  191. package/dist/assets/PasswordField.stories-T70RtAAe.js +121 -0
  192. package/dist/assets/Picker.stories-DHQ88s15.js +44 -0
  193. package/dist/assets/PickerWithOptionAdornment.stories-DC1J_qH3.js +93 -0
  194. package/dist/assets/PlaceholderLogo-SOqcoUNb.js +11 -0
  195. package/dist/assets/Popper-CISS1LuJ.js +1 -0
  196. package/dist/assets/Portal-DeJFqeW-.js +1 -0
  197. package/dist/assets/ProgressBar.stories-Cyam9OIf.js +258 -0
  198. package/dist/assets/Radio-BlxlCYZY.js +1 -0
  199. package/dist/assets/Radio-C5-GzJtb.js +1 -0
  200. package/dist/assets/Radio.stories-BrGqWocJ.js +63 -0
  201. package/dist/assets/RadioGroup-BcwUBGJo.js +1 -0
  202. package/dist/assets/RadioGroup-D8i98nDO.js +10 -0
  203. package/dist/assets/RadioGroup-sL620ofZ.js +1 -0
  204. package/dist/assets/RadioGroup.stories-CBlRX0KY.js +138 -0
  205. package/dist/assets/Refresh-ZZ_nNcXg.js +1 -0
  206. package/dist/assets/ResourceAccessPolicyComponentsStorybookThemeDecorator-C-AyLafs.js +212 -0
  207. package/dist/assets/Right-to-Left (RTL)-DMJ1RF_H.js +61 -0
  208. package/dist/assets/ScopedCssBaseline-BOa6kM98.js +1 -0
  209. package/dist/assets/ScreenReaderText-BfpueyoK.js +15 -0
  210. package/dist/assets/ScreenReaderText-toqV93JE.js +1 -0
  211. package/dist/assets/ScreenReaderText.stories-C1dE1n7A.js +8 -0
  212. package/dist/assets/Search-0744_rm_.js +1 -0
  213. package/dist/assets/SearchDropdown.stories-lpj_p0pn.js +53 -0
  214. package/dist/assets/SearchField-DmDpB-Sd.js +1 -0
  215. package/dist/assets/SearchField.stories-LT1ewC26.js +37 -0
  216. package/dist/assets/Select-CQoJvuLM.js +15 -0
  217. package/dist/assets/Select-DE0mojaE.js +1 -0
  218. package/dist/assets/Select.stories-B8cWbr6v.js +233 -0
  219. package/dist/assets/Server-1eTAy_EZ.js +1 -0
  220. package/dist/assets/Settings-CnuBvsmb.js +1 -0
  221. package/dist/assets/Setup-CG2Lh3Ff.js +6 -0
  222. package/dist/assets/Shadow DOM-D2Xm68lR.js +63 -0
  223. package/dist/assets/Show-C6ORd-wr.js +1 -0
  224. package/dist/assets/SideNav-WgViafRP.js +131 -0
  225. package/dist/assets/SideNav-tldrZCp2.js +85 -0
  226. package/dist/assets/SideNav.stories-Crrw-ySP.js +207 -0
  227. package/dist/assets/Skeleton-DxFSebyW.js +51 -0
  228. package/dist/assets/Snackbar-C2LtiN82.js +1 -0
  229. package/dist/assets/Stack-Duw-TXBf.js +1 -0
  230. package/dist/assets/Stack-jxMWaEAU.js +1 -0
  231. package/dist/assets/Stack.stories-B9W1XlQs.js +1 -0
  232. package/dist/assets/StaticTable.stories-D0R7o_xf.js +34 -0
  233. package/dist/assets/Status-DyDCzqET.js +1 -0
  234. package/dist/assets/Status.stories-CT9I5C3E.js +66 -0
  235. package/dist/assets/Stepper.stories-BGyCeC7L.js +486 -0
  236. package/dist/assets/Surface-s9E2mDWU.js +1 -0
  237. package/dist/assets/Switch.stories-CiNsUF_b.js +72 -0
  238. package/dist/assets/SwitchBase-C_6ALR3v.js +1 -0
  239. package/dist/assets/Sync-Bo0k4rYZ.js +1 -0
  240. package/dist/assets/Tabs-BPWnyCAU.js +1 -0
  241. package/dist/assets/Tabs-BnDKqj9p.js +23 -0
  242. package/dist/assets/Tabs.stories-xaGU0YrM.js +100 -0
  243. package/dist/assets/Tag-CYK8pNzu.js +11 -0
  244. package/dist/assets/Tag.stories-CFd40qf5.js +96 -0
  245. package/dist/assets/TagList-CunLkaIS.js +1 -0
  246. package/dist/assets/TextField-DF5R_omM.js +1 -0
  247. package/dist/assets/TextField.stories-julPXfI1.js +177 -0
  248. package/dist/assets/Toast.stories-BuX-cdk6.js +164 -0
  249. package/dist/assets/ToastManager.stories-C6VVt3In.js +195 -0
  250. package/dist/assets/Tooltip-B-PXZNTK.js +11 -0
  251. package/dist/assets/Tooltip-yxN-KFjL.js +1 -0
  252. package/dist/assets/Tooltip.stories-BXjrRGGM.js +68 -0
  253. package/dist/assets/TopNav-CCO_Sukh.js +11 -0
  254. package/dist/assets/TopNav.stories-C3X2SUf9.js +13 -0
  255. package/dist/assets/TransitionGroupContext-yBqGXZYI.js +1 -0
  256. package/dist/assets/Typography-CP569bC2.js +1 -0
  257. package/dist/assets/Typography-CjpHjc10.js +1 -0
  258. package/dist/assets/Typography-Dy2bDiU6.js +9 -0
  259. package/dist/assets/Typography-Jr4Brrb5.js +1 -0
  260. package/dist/assets/Typography.stories-CBkQTJR8.js +73 -0
  261. package/dist/assets/Typography.stories-DjnTqZOD.js +139 -0
  262. package/dist/assets/Typography.stories-dzvvlIBm.js +73 -0
  263. package/dist/assets/UiShell.stories-Cz9ZqBh6.js +569 -0
  264. package/dist/assets/UiShellProvider-oDzwqt6Y.js +31 -0
  265. package/dist/assets/Upload-nb-hV6Ym.js +1 -0
  266. package/dist/assets/User-BEFwQRGi.js +1 -0
  267. package/dist/assets/UserProfile-BM4I2P2Q.js +11 -0
  268. package/dist/assets/UserProfile.stories-BOMOuxsL.js +14 -0
  269. package/dist/assets/UserProfileMenuButton.stories-PNsdwClg.js +30 -0
  270. package/dist/assets/Video-DHeibuka.js +1 -0
  271. package/dist/assets/WarningFilled-DOHs-JmZ.js +1 -0
  272. package/dist/assets/WithTooltip-IO6J4KBT-DQaUt46F.js +9 -0
  273. package/dist/assets/WorkflowsComponentsStorybookThemeDecorator-DrWk22II.js +1 -0
  274. package/dist/assets/WpComponentsStorybookThemeDecorator-Db3wSJC0.js +1 -0
  275. package/dist/assets/ariaDisabledStyles-BnD13Dho.js +11 -0
  276. package/dist/assets/axe-9-4xvXvL.js +30 -0
  277. package/dist/assets/axeRun-w5CBCc9V.js +11 -0
  278. package/dist/assets/blocks-D521Uej3.js +162 -0
  279. package/dist/assets/colorManipulator-BYcVMQmD.js +1 -0
  280. package/{vitest-browser-setup.ts → dist/assets/constants-CGUp4oSR.js} +1 -4
  281. package/dist/assets/createChainedFunction-BO_9K8Jh.js +1 -0
  282. package/dist/assets/createStyled-BKWdp2xc.js +1 -0
  283. package/dist/assets/createSvgIcon-CaWcxZng.js +1 -0
  284. package/{vitest-node-setup.ts → dist/assets/createUniqueId-BHjR7HQF.js} +2 -4
  285. package/dist/assets/debounce-Be36O1Ab.js +1 -0
  286. package/dist/assets/dialogActionsClasses-J0iu7jYO.js +1 -0
  287. package/dist/assets/fieldComponentPropsMetaData-C9gCwuus.js +11 -0
  288. package/dist/assets/formatter-QJ4M4OGQ-BVt8pa2h.js +1 -0
  289. package/dist/assets/getScrollbarSize-Bqq2hMjQ.js +1 -0
  290. package/dist/assets/i18next-7SyOfhCu.js +1 -0
  291. package/dist/assets/iconUtils-DmnxHGuV.js +11 -0
  292. package/dist/assets/iframe-CQjT1fxh.js +1672 -0
  293. package/dist/assets/index-5Qx3hCfP.js +1 -0
  294. package/dist/assets/index-C77ZwfYm.js +39 -0
  295. package/dist/assets/index-D5BUEpVX.js +1 -0
  296. package/dist/assets/index-Vzl5wUDu.js +1 -0
  297. package/dist/assets/index.esm-Bohtd3OQ.js +85 -0
  298. package/dist/assets/index.esm-Dvk_qjX0.js +1 -0
  299. package/dist/assets/index.modern-DX91rx7y.js +14 -0
  300. package/dist/assets/inputUtils-BBH9ADKa.js +11 -0
  301. package/dist/assets/isHostComponent-DVu5iVWx.js +1 -0
  302. package/dist/assets/matchers-DMFSMG2O-CAdg16Fl.js +14 -0
  303. package/dist/assets/ownerDocument-DW-IO8s5.js +1 -0
  304. package/dist/assets/ownerWindow-HkKU3E4x.js +1 -0
  305. package/dist/assets/personData-Bi-Gg5yH.js +1 -0
  306. package/dist/assets/personData-CV-uVWcJ.js +21 -0
  307. package/dist/assets/pickerComponentPropsMetaData-aBuTm1AZ.js +75 -0
  308. package/dist/assets/preload-helper-Dp1pzeXC.js +1 -0
  309. package/{vitest-jsdom-setup.ts → dist/assets/pxToRem-BrMhKUxS.js} +1 -3
  310. package/dist/assets/react-18-DkaAwiRb.js +1 -0
  311. package/dist/assets/renderUiShell.stories-R-ckgOdr.js +902 -0
  312. package/dist/assets/resolveComponentProps-DGxe9oED.js +1 -0
  313. package/dist/assets/syntaxhighlighter-IQDEPFLK-CL1ROTuv.js +6 -0
  314. package/dist/assets/tableRowClasses-Bk1uFtwh.js +9 -0
  315. package/dist/assets/tableSortLabelClasses-i_d6KGQQ.js +1 -0
  316. package/{vitest.config.project.ts → dist/assets/uiShellSharedConstants-CvCey4L_.js} +1 -6
  317. package/dist/assets/useAutocomplete-DG_kuhWb.js +11 -0
  318. package/dist/assets/useControlled-BUhC7uWK.js +1 -0
  319. package/dist/assets/useIsFocusVisible-D1xCTBdT.js +1 -0
  320. package/dist/assets/useMobilePicker-DJQJ3D8W.js +6 -0
  321. package/dist/assets/useMountLifecycleEffect-BNByHT_g.js +11 -0
  322. package/dist/assets/useOdysseyDateFields-BVmmVg1G.js +61 -0
  323. package/dist/assets/useScrollIndication-BGw7dgC5.js +41 -0
  324. package/dist/assets/useSlot-BMAKysxJ.js +1 -0
  325. package/dist/assets/useStoryArgOrLocalState-CRQAGSTX.js +11 -0
  326. package/dist/assets/useThemeProps-BCUqwy59.js +1 -0
  327. package/dist/assets/useThemeProps-Bc2iWdri.js +1 -0
  328. package/dist/assets/useUniqueId-DG6rB8dI.js +11 -0
  329. package/dist/assets/utilities.esm-D9akhJLQ.js +5 -0
  330. package/dist/assets/utils-D-QCjykO.js +1 -0
  331. package/dist/assets/visuallyHidden-Dan1xhjv.js +1 -0
  332. package/dist/cjs/Field.cjs +2 -4
  333. package/dist/cjs/Field.cjs.map +1 -1
  334. package/dist/cjs/index.cjs.map +1 -1
  335. package/dist/cjs/labs/DataView/DataView.cjs +17 -4
  336. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  337. package/dist/cjs/labs/OdysseyPickers/Picker.cjs +2 -0
  338. package/dist/cjs/labs/OdysseyPickers/Picker.cjs.map +1 -1
  339. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
  340. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  341. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  342. package/dist/esm/Field.js +4 -6
  343. package/dist/esm/Field.js.map +1 -1
  344. package/dist/esm/index.js.map +1 -1
  345. package/dist/esm/labs/DataView/DataView.js +17 -4
  346. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  347. package/dist/esm/labs/OdysseyPickers/Picker.js +2 -0
  348. package/dist/esm/labs/OdysseyPickers/Picker.js.map +1 -1
  349. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
  350. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  351. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  352. package/dist/favicon-wrapper.svg +46 -0
  353. package/dist/favicon.svg +1 -0
  354. package/dist/iframe.html +768 -0
  355. package/dist/index.d.ts +21 -232
  356. package/dist/index.d.ts.map +1 -0
  357. package/dist/index.html +173 -0
  358. package/dist/index.js +25 -0
  359. package/dist/index.json +1 -0
  360. package/dist/nunito-sans-bold-italic.woff2 +0 -0
  361. package/dist/nunito-sans-bold.woff2 +0 -0
  362. package/dist/nunito-sans-italic.woff2 +0 -0
  363. package/dist/nunito-sans-regular.woff2 +0 -0
  364. package/dist/project.json +1 -0
  365. package/dist/sb-addons/a11y-3/manager-bundle.js +5 -0
  366. package/dist/sb-addons/docs-1/manager-bundle.js +3 -0
  367. package/dist/sb-addons/links-2/manager-bundle.js +3 -0
  368. package/dist/sb-addons/rtl-4/manager-bundle.js +3 -0
  369. package/dist/sb-addons/storybook-6/manager-bundle.js +786 -0
  370. package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +628 -0
  371. package/dist/sb-addons/tag-badges-5/manager-bundle.js +35 -0
  372. package/dist/sb-common-assets/favicon-wrapper.svg +46 -0
  373. package/dist/sb-common-assets/favicon.svg +1 -0
  374. package/dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  375. package/dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  376. package/dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  377. package/dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  378. package/dist/sb-manager/globals-runtime.js +75605 -0
  379. package/dist/sb-manager/globals.js +24 -0
  380. package/dist/sb-manager/manager-stores.js +23 -0
  381. package/dist/sb-manager/runtime.js +19717 -0
  382. package/dist/tsconfig.production.tsbuildinfo +1 -1
  383. package/dist/tsconfig.tsbuildinfo +1 -0
  384. package/dist/types/Field.d.ts.map +1 -1
  385. package/dist/types/index.d.ts +1 -0
  386. package/dist/types/index.d.ts.map +1 -1
  387. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  388. package/dist/types/labs/OdysseyPickers/Picker.d.ts +4 -5
  389. package/dist/types/labs/OdysseyPickers/Picker.d.ts.map +1 -1
  390. package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts +7 -5
  391. package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
  392. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  393. package/dist/vite-inject-mocker-entry.js +18 -0
  394. package/package.json +9 -7
  395. package/CHANGELOG.md +0 -49
  396. package/dist/index.cjs +0 -231
  397. package/dist/index.es.js +0 -3173
  398. package/dist/index.es.js.map +0 -1
  399. package/dist/index.iife.js +0 -9
  400. package/dist/index.iife.js.map +0 -1
  401. package/dist/index.mjs +0 -229
  402. package/dist/index.scss +0 -549
  403. package/dist/index.umd.cjs +0 -9
  404. package/dist/index.umd.cjs.map +0 -1
  405. package/dist/types/getTranslationServices.browser.test.d.ts +0 -1
  406. package/dist/types/getTranslationServices.browser.test.js +0 -88
  407. package/dist/types/getTranslationServices.browser.test.js.map +0 -1
  408. package/dist/types/getTranslationServices.d.ts +0 -91
  409. package/dist/types/getTranslationServices.js +0 -77
  410. package/dist/types/getTranslationServices.js.map +0 -1
  411. package/dist/types/getTypedObjectEntries.d.ts +0 -1
  412. package/dist/types/getTypedObjectEntries.js +0 -2
  413. package/dist/types/getTypedObjectEntries.js.map +0 -1
  414. package/dist/types/index.js +0 -3
  415. package/dist/types/index.js.map +0 -1
  416. package/dist/types/translationServices.types.d.ts +0 -2
  417. package/dist/types/translationServices.types.js +0 -34
  418. package/dist/types/translationServices.types.js.map +0 -1
  419. package/dist/types/tsconfig.tsbuildinfo +0 -1
  420. package/ok.yaml +0 -1
  421. package/src/getTranslationServices.browser.test.tsx +0 -173
  422. package/src/getTranslationServices.tsx +0 -286
  423. package/src/getTypedObjectEntries.ts +0 -3
  424. package/src/index.ts +0 -2
  425. package/src/translationServices.types.ts +0 -36
  426. package/src/tsconfig.json +0 -7
  427. package/tsconfig.json +0 -41
  428. package/vite.config.project.ts +0 -61
  429. package/vite.config.ts +0 -21
  430. package/vite.config.ts.bak +0 -33
  431. package/vitest.config.ts +0 -27
  432. package/vitest.config.ts.bak +0 -27
@@ -0,0 +1,495 @@
1
+ import{j as e}from"./iframe-CQjT1fxh.js";import{useMDXComponents as s}from"./index-D5BUEpVX.js";import{M as r,T as l,S as d,D as c,C as a}from"./blocks-D521Uej3.js";import{D as o,a as h,A as p,E as u,C as m,F as x,b as f}from"./DataTable.stories-CZ38vjC1.js";import"./preload-helper-Dp1pzeXC.js";import"./index-C77ZwfYm.js";import"./index-5Qx3hCfP.js";import"./OdysseyStorybookThemeDecorator-CHlNoX17.js";import"./OdysseyThemeProvider-BA0_xP7N.js";import"./tableRowClasses-Bk1uFtwh.js";import"./WarningFilled-DOHs-JmZ.js";import"./OdysseyProvider-rboSNY26.js";import"./ScopedCssBaseline-BOa6kM98.js";import"./personData-Bi-Gg5yH.js";import"./Status-DyDCzqET.js";import"./MuiPropsContext-D6i6qZME.js";import"./Chip-BgPaZbUf.js";import"./createSvgIcon-CaWcxZng.js";import"./useIsFocusVisible-D1xCTBdT.js";import"./ButtonBase-Rz8p08Xo.js";import"./TransitionGroupContext-yBqGXZYI.js";import"./Box-B3rdnavX.js";import"./Box-CnVllI1S.js";import"./Button-0PI4ljbj.js";import"./BaseButton-C9tiChQu.js";import"./Tooltip-B-PXZNTK.js";import"./Tooltip-yxN-KFjL.js";import"./Grow-DvH-Xu1P.js";import"./utils-D-QCjykO.js";import"./Portal-DeJFqeW-.js";import"./resolveComponentProps-DGxe9oED.js";import"./isHostComponent-DVu5iVWx.js";import"./useControlled-BUhC7uWK.js";import"./Popper-CISS1LuJ.js";import"./ownerDocument-DW-IO8s5.js";import"./Button-Dug4qNr3.js";import"./Typography-CjpHjc10.js";import"./Typography-Jr4Brrb5.js";import"./ArrowRight-C5USrGY5.js";import"./DataTable-B5iX_c6m.js";import"./index.esm-Bohtd3OQ.js";import"./createChainedFunction-BO_9K8Jh.js";import"./debounce-Be36O1Ab.js";import"./ListItem-BNz1zv6N.js";import"./FormHelperText-CVc1kPQJ.js";import"./FormLabel-CWWbs_c2.js";import"./List-D0N4Xybp.js";import"./ownerWindow-HkKU3E4x.js";import"./Stack-Duw-TXBf.js";import"./createStyled-BKWdp2xc.js";import"./useThemeProps-BCUqwy59.js";import"./Paper-vUVrw-QB.js";import"./CircularProgress-D6L1y9kt.js";import"./DialogContent-C6DlqjnA.js";import"./Fade-ZBabHGDm.js";import"./Modal-C5P7v6Gt.js";import"./getScrollbarSize-Bqq2hMjQ.js";import"./dialogActionsClasses-J0iu7jYO.js";import"./DialogTitle-B_QxN4PO.js";import"./Menu-DB2s3Jn0.js";import"./MenuList-D3GSt85L.js";import"./colorManipulator-BYcVMQmD.js";import"./IconButton-BPR_sq0F.js";import"./Radio-C5-GzJtb.js";import"./SwitchBase-C_6ALR3v.js";import"./Checkbox-mRntsWEy.js";import"./useMobilePicker-DJQJ3D8W.js";import"./Select-DE0mojaE.js";import"./ArrowDropDown-BbLKA4fg.js";import"./InputBase-BYnzr12H.js";import"./useThemeProps-Bc2iWdri.js";import"./InputAdornment-Clfg5IS6.js";import"./visuallyHidden-Dan1xhjv.js";import"./MenuItem-CpMFWgaz.js";import"./Collapse-DULszxZp.js";import"./AlertTitle-UQV7DT5q.js";import"./useSlot-BMAKysxJ.js";import"./Close-CELHOmN_.js";import"./LinearProgress-Z53mwHnp.js";import"./Skeleton-DxFSebyW.js";import"./Divider-C7lvc1xB.js";import"./Autocomplete-BajR4gNT.js";import"./ListSubheader-Dwx7m0BA.js";import"./tableSortLabelClasses-i_d6KGQQ.js";import"./FormControlLabel-BG9mNqQc.js";import"./DateTimePicker-ByepBMwy.js";import"./Tabs-BPWnyCAU.js";import"./DatePicker-vZfA4IWy.js";import"./MenuButton-BffESdH9.js";import"./BaseMenuButton-BXkyi9Y-.js";import"./useUniqueId-DG6rB8dI.js";import"./createUniqueId-BHjR7HQF.js";import"./MenuContext-UsOwIWpO.js";import"./More-BAN0OFVF.js";import"./Callout-WJN7MCgu.js";import"./Link-Cg_KakDo.js";import"./Link-thynTosX.js";import"./ExternalLink-3_gWbh_U.js";import"./EmptyState-B1EvR4rn.js";import"./DataFilters-4og6bOFS.js";import"./Autocomplete-BwSwXNq_.js";import"./useAutocomplete-DG_kuhWb.js";import"./index.esm-Dvk_qjX0.js";import"./Field-CqIOaZfg.js";import"./ScreenReaderText-toqV93JE.js";import"./FieldHint-Cs73lQge.js";import"./inputUtils-BBH9ADKa.js";import"./Checkbox-3Yu84dfy.js";import"./Hint-BXue9c6p.js";import"./CheckboxGroup-Bris2fCF.js";import"./FormGroup-D8ZDwdpx.js";import"./Radio-BlxlCYZY.js";import"./RadioGroup-sL620ofZ.js";import"./RadioGroup-BcwUBGJo.js";import"./SearchField-DmDpB-Sd.js";import"./Search-0744_rm_.js";import"./Tag-CYK8pNzu.js";import"./TagList-CunLkaIS.js";import"./TextField-DF5R_omM.js";import"./Filter-XcwxIcdg.js";import"./ChevronRight-QYu5EQHS.js";import"./useScrollIndication-BGw7dgC5.js";import"./MenuItem-Cmq8TfUJ.js";import"./List-CZ2bN2bA.js";import"./Show-C6ORd-wr.js";function i(t){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...s(),...t.components};return e.jsxs(e.Fragment,{children:[e.jsx(r,{of:o}),`
2
+ `,e.jsx(l,{of:o}),`
3
+ `,e.jsx(d,{of:o}),`
4
+ `,e.jsx(c,{of:o}),`
5
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"<DataTable>"}),` is intended to be simple to set up, but flexible and extensible enough that you can make it do
6
+ whatever you need.`]}),`
7
+ `,e.jsxs(n.p,{children:["It's built on top of ",e.jsx(n.a,{href:"https://www.material-react-table.com/",rel:"nofollow",children:"Material-React-Table v2"}),`, so reading those docs might
8
+ be helpful in understanding how `,e.jsx(n.code,{children:"<DataTable>"}),` works under-the-hood. DataTable offers additional functionality on top of MRT,
9
+ and also restricts certain MRT behaviors to match the desired behavior and appearance of an Odyssey table.`]}),`
10
+ `,e.jsx(n.p,{children:`You can build anything from a simple list of local data to a sortable, filterable, searchable, reorderable view of data
11
+ pulled live from an API.`}),`
12
+ `,e.jsx(n.p,{children:`DataTable is "bring-your-own functionality." It offers the UI and local functionality you need, with hooks for you to provide
13
+ your own data handling. This means that the table can render a robust filtering and searching UI out-of-the-box, and you can provide
14
+ a function that retrieves the relevant data based on the user's query.`}),`
15
+ `,e.jsxs(n.blockquote,{children:[`
16
+ `,e.jsxs(n.p,{children:["⚠️ ",e.jsx(n.strong,{children:"Deprecated:"})," DataTable is deprecated. Use ",e.jsx(n.strong,{children:"DataView"})," for all new work."]}),`
17
+ `]}),`
18
+ `,e.jsx(n.h2,{id:"migrating-to-dataview",children:"Migrating to DataView"}),`
19
+ `,e.jsx(n.h3,{id:"imports",children:"Imports"}),`
20
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`// Before
21
+ import { DataTable, DataTableColumn } from "@okta/odyssey-react-mui";
22
+
23
+ // After
24
+ import {
25
+ DataView,
26
+ type DataTableColumn,
27
+ type TableLayoutProps,
28
+ } from "@okta/odyssey-react-mui/labs";
29
+ `})}),`
30
+ `,e.jsx(n.h3,{id:"prop-mapping",children:"Prop mapping"}),`
31
+ `,e.jsxs(n.ul,{children:[`
32
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"columns"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.columns"})]}),`
33
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"getData"})," / ",e.jsx(n.strong,{children:"fetchDataFn"})," → ",e.jsx(n.code,{children:"getData"})," (same args and return shape)"]}),`
34
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasChangeableDensity"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.hasChangeableDensity"})]}),`
35
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasColumnResizing"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.hasColumnResizing"})]}),`
36
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasColumnVisibility"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.hasColumnVisibility"})]}),`
37
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasSorting"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.hasSorting"})]}),`
38
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"initialDensity"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.initialDensity"})]}),`
39
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"rowActionButtons"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.rowActionButtons"})]}),`
40
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"rowActionMenuItems"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.rowActionMenuItems"})]}),`
41
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"renderDetailPanel"})," → ",e.jsx(n.code,{children:"tableLayoutOptions.renderDetailPanel"})]}),`
42
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"onChangeRowSelection"})," → ",e.jsx(n.code,{children:"onRowSelectionChange"})]}),`
43
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasFilters"}),", ",e.jsx(n.strong,{children:"hasSearch"}),", ",e.jsx(n.strong,{children:"hasSearchSubmitButton"})," → same prop names on DataView"]}),`
44
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasPagination"}),", ",e.jsx(n.strong,{children:"paginationType"}),", ",e.jsx(n.strong,{children:"currentPage"}),", ",e.jsx(n.strong,{children:"resultsPerPage"}),", ",e.jsx(n.strong,{children:"totalRows"})," → same prop names on DataView"]}),`
45
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"hasRowSelection"}),", ",e.jsx(n.strong,{children:"hasRowReordering"}),", ",e.jsx(n.strong,{children:"onReorderRows"})," → same prop names on DataView"]}),`
46
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"emptyPlaceholder"}),", ",e.jsx(n.strong,{children:"noResultsPlaceholder"})," → same props; optionally set ",e.jsx(n.code,{children:"isEmpty"})," and ",e.jsx(n.code,{children:"isNoResults"})," to control which state shows"]}),`
47
+ `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"searchDelayTime"})," → same prop name on DataView"]}),`
48
+ `]}),`
49
+ `,e.jsx(n.h3,{id:"keep-a-table-only-layout",children:"Keep a table-only layout"}),`
50
+ `,e.jsx(n.p,{children:"Lock layouts to keep the table experience while you migrate:"}),`
51
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`<DataView
52
+ availableLayouts={["table"]}
53
+ getData={getData}
54
+ hasFilters
55
+ hasSearch
56
+ hasSearchSubmitButton
57
+ hasPagination
58
+ hasRowSelection
59
+ hasSorting
60
+ tableLayoutOptions={{
61
+ columns,
62
+ hasChangeableDensity: true,
63
+ hasColumnResizing: true,
64
+ hasColumnVisibility: false,
65
+ rowActionButtons: (row) => (
66
+ <Button
67
+ ariaLabel="Edit"
68
+ endIcon={<EditIcon />}
69
+ size="small"
70
+ variant="floating"
71
+ />
72
+ ),
73
+ }}
74
+ />
75
+ `})}),`
76
+ `,e.jsx(n.h3,{id:"row-reordering",children:"Row reordering"}),`
77
+ `,e.jsx(n.p,{children:"Same API, just on DataView:"}),`
78
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`<DataView
79
+ getData={getData}
80
+ hasRowReordering
81
+ onReorderRows={({ rowId, newRowIndex }) => {
82
+ const updated = reorderData({ data, rowId, newRowIndex });
83
+ setData(updated);
84
+ }}
85
+ tableLayoutOptions={{ columns }}
86
+ />
87
+ `})}),`
88
+ `,e.jsx(n.h3,{id:"empty-states",children:"Empty states"}),`
89
+ `,e.jsxs(n.ul,{children:[`
90
+ `,e.jsxs(n.li,{children:["Both DataTable and DataView support ",e.jsx(n.code,{children:"emptyPlaceholder"})," and ",e.jsx(n.code,{children:"noResultsPlaceholder"}),"."]}),`
91
+ `,e.jsxs(n.li,{children:["DataView adds optional control flags:",`
92
+ `,e.jsxs(n.ul,{children:[`
93
+ `,e.jsxs(n.li,{children:[e.jsx(n.code,{children:"isEmpty"}),": force the empty state (e.g., onboarding) instead of relying on automatic detection."]}),`
94
+ `,e.jsxs(n.li,{children:[e.jsx(n.code,{children:"isNoResults"}),": force the “no results” state when data exists but the current query is empty."]}),`
95
+ `]}),`
96
+ `]}),`
97
+ `]}),`
98
+ `,e.jsx(n.h3,{id:"migration-checklist",children:"Migration checklist"}),`
99
+ `,e.jsxs(n.ol,{children:[`
100
+ `,e.jsxs(n.li,{children:["Swap the import to DataView from ",e.jsx(n.code,{children:"@okta/odyssey-react-mui/labs"}),"."]}),`
101
+ `,e.jsxs(n.li,{children:["Move column/table props into ",e.jsx(n.code,{children:"tableLayoutOptions"}),"."]}),`
102
+ `,e.jsxs(n.li,{children:["Keep your existing ",e.jsx(n.code,{children:"getData"}),", pagination, search, filter, and row selection hooks; rename ",e.jsx(n.code,{children:"onChangeRowSelection"})," to ",e.jsx(n.code,{children:"onRowSelectionChange"}),"."]}),`
103
+ `,e.jsxs(n.li,{children:["Lock ",e.jsx(n.code,{children:"availableLayouts"})," to ",e.jsx(n.code,{children:'["table"]'})," if you do not want list/grid yet."]}),`
104
+ `,e.jsxs(n.li,{children:["Adopt ",e.jsx(n.code,{children:"emptyPlaceholder"})," / ",e.jsx(n.code,{children:"noResultsPlaceholder"})," and ",e.jsx(n.code,{children:"errorMessage"})," as needed."]}),`
105
+ `]}),`
106
+ `,e.jsx(n.h2,{id:"getting-started",children:"Getting started"}),`
107
+ `,e.jsxs(n.p,{children:["A simple ",e.jsx(n.code,{children:"<DataTable>"})," only needs two props: ",e.jsx(n.code,{children:"columns"})," and ",e.jsx(n.code,{children:"getData"}),":"]}),`
108
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`<DataTable columns={columns} getData={getData} />
109
+ `})}),`
110
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"columns"})," is an array of ",e.jsx(n.code,{children:"DataTableColumn<DataTableRowData>"})," objects that define the structure of the table."]}),`
111
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"getData"})," is a function that accepts a set of query params and returns an array of objects that match the ",e.jsx(n.code,{children:"columns"})," shape."]}),`
112
+ `,e.jsx(n.h3,{id:"a-simple-example-planet-explorer",children:"A simple example: Planet Explorer"}),`
113
+ `,e.jsx(n.p,{children:"Let's create a simple table that displays information about the ~9 planets~ 8 planets plus Pluto."}),`
114
+ `,e.jsxs(n.p,{children:["First, we'll define a ",e.jsx(n.code,{children:"Planet"})," type, to hold ourselves accountable to the shape of data we want to be working with:"]}),`
115
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`export type Planet = {
116
+ id: number;
117
+ name: string;
118
+ distance: number;
119
+ visit: "flyby" | "orbit" | "landing";
120
+ };
121
+ `})}),`
122
+ `,e.jsx(n.p,{children:"Next, we'll define the table columns:"}),`
123
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`export const columns: DataTableColumn<DataTableRowData>[] = [
124
+ {
125
+ accessorKey: "id",
126
+ header: "number",
127
+ },
128
+ {
129
+ accessorKey: "name",
130
+ header: "Name",
131
+ },
132
+ {
133
+ accessorKey: "distance",
134
+ header: "Distance from Sun (AU)",
135
+ },
136
+ ...
137
+ ];
138
+ `})}),`
139
+ `,e.jsxs(n.p,{children:["Those first three columns are pretty simple and only need an ",e.jsx(n.code,{children:"accessorKey"}),` (functionally, the unique id of the column)
140
+ and a `,e.jsx(n.code,{children:"header"})," (the title displayed to the end user). The other two columns include additional info, such as ",e.jsx(n.code,{children:"filterVariant"}),`
141
+ (which defines what kind of control is shown when filtering the column; a text input, radio buttons, etc), `,e.jsx(n.code,{children:"filterOptions"}),`
142
+ (the options available in a radio- or checkbox-type filter), and `,e.jsx(n.code,{children:"Cell"}),` (which allows you to define a custom table cell to
143
+ display the column data).`]}),`
144
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"DataTableColumn"})," matches ",e.jsx(n.code,{children:"MRT_TableColumn"}),", so for full information, check the ",e.jsx(n.a,{href:"https://www.material-react-table.com/docs/api/column-options",rel:"nofollow",children:"Column Options"})," docs from Material-React-Table."]}),`
145
+ `,e.jsxs(n.p,{children:["(Note that not every feature of Material-React-Table is available in ",e.jsx(n.code,{children:"DataTable"}),", so things like custom edit states won't work.)"]}),`
146
+ `,e.jsx(n.p,{children:"Finally, we'll define the planet data itself:"}),`
147
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`export const data: Planet[] = [
148
+ {
149
+ id: 1,
150
+ name: "Mercury",
151
+ distance: 0.4,
152
+ visit: "landing",
153
+ },
154
+ {
155
+ id: 2,
156
+ name: "Venus",
157
+ distance: 0.7,
158
+ visit: "landing",
159
+ },
160
+ ...
161
+ ];
162
+ `})}),`
163
+ `,e.jsx(n.p,{children:"Now, in our component file, we'll put it all together:"}),`
164
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`import {
165
+ columns as planetColumns,
166
+ data as planetData
167
+ } from "./planetData";
168
+
169
+ ...
170
+
171
+ const getData = () => {
172
+ return planetData;
173
+ };
174
+
175
+ <DataTable
176
+ columns={planetColumns}
177
+ getData={getData}
178
+ />
179
+ `})}),`
180
+ `,e.jsx(n.h3,{id:"making-it-real",children:"Making it real"}),`
181
+ `,e.jsx(n.p,{children:"The example is slightly simplified. Here's a live example of this same table:"}),`
182
+ `,e.jsx(a,{of:h}),`
183
+ `,e.jsx(n.p,{children:"And here's how we get there:"}),`
184
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`const ParentComponent = () => {
185
+ // It's best-practice to save the incoming data in a state so we
186
+ // can manipulate it locally if needed. This isn't strictly necessary
187
+ // for this example, but if we started playing with the row order, we'd need this.
188
+ const [data, setData] = useState<Planet[]>(planetData);
189
+
190
+ // Typically, you'll take the query params sent via getData and use them to filter the
191
+ // data being sent from the API. For this example, I've created a \`filterData\` function
192
+ // that lives outside the component, and then I'm passing the data and the params into that
193
+ // and returning the response.
194
+ // The full filterData function is explained later in the docs.
195
+ const getData = useCallback(
196
+ ({
197
+ search,
198
+ filters,
199
+ sort,
200
+ page = 1,
201
+ resultsPerPage = 20,
202
+ }: DataTableGetDataType) => {
203
+ return filterData({ data, search, filters, sort, page, resultsPerPage });
204
+ },
205
+ [data],
206
+ );
207
+
208
+ // Callback that fires when the user selects or unselects a row.
209
+ // It passes through the full rowSelection state, so you can count
210
+ // the selected rows or perform actions on them.
211
+ const onChangeRowSelection = useCallback(
212
+ (rowSelection: DataTableRowSelectionState) => {
213
+ if (Object.keys(rowSelection).length > 0) {
214
+ console.log(\`\${Object.keys(rowSelection).length} selected\`);
215
+ }
216
+ },
217
+ [],
218
+ );
219
+
220
+ return (
221
+ <DataTable
222
+ columns={planetColumns}
223
+ getData={getData}
224
+ onChangeRowSelection={onChangeRowSelection}
225
+ // These are true by default, but adding them
226
+ // here to be extra-clear
227
+ hasChangeableDensity
228
+ hasColumnResizing
229
+ hasFilters
230
+ hasRowSelection
231
+ hasSearch
232
+ hasSorting
233
+ // These are true by default, but
234
+ // disabled for this simple example
235
+ hasPagination={false}
236
+ hasColumnVisibility={false}
237
+ hasRowReordering={false}
238
+ />
239
+ );
240
+ };
241
+ `})}),`
242
+ `,e.jsx(n.h3,{id:"filtering-data",children:"Filtering data"}),`
243
+ `,e.jsxs(n.p,{children:["In the above example, the incoming data is stored via ",e.jsx(n.code,{children:"useState"}),", and the ",e.jsx(n.code,{children:"getData"}),` callback passes that
244
+ data and the query params to a separate `,e.jsx(n.code,{children:"filterData"})," function that lives outside the component."]}),`
245
+ `,e.jsx(n.p,{children:"This might feel obtuse, but it's necessary for building robust and scalable DataTables. Here's why:"}),`
246
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"getData"})," is purely a GET function. It retrieves data, but doesn't mutate it. ",e.jsxs(n.em,{children:["Whatever is returned by ",e.jsx(n.code,{children:"getData"}),`
247
+ is treated as final data, which the table will not modify.`]})]}),`
248
+ `,e.jsxs(n.p,{children:[`If you need to mutate the data at all, you need to store it separately. The most common way to mutate table data is through
249
+ the `,e.jsx(n.code,{children:"onReorderRows"}),` callback, which handles drag-and-drop and other row-reordering operations. So: if you need to reorder rows,
250
+ you need to store data in state.`]}),`
251
+ `,e.jsxs(n.p,{children:["This is what the ",e.jsx(n.code,{children:"filterData"})," function looks like in this example. ",e.jsx(n.em,{children:`Yours will probably look different; this is just here
252
+ as a demonstration of the sort of functionality it encapsulates.`})]}),`
253
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`const filterData = ({
254
+ data,
255
+ ...args
256
+ }: {
257
+ data: Planet[];
258
+ } & DataTableGetDataType) => {
259
+ let filteredData = data;
260
+ const { search, filters, sort, page = 1, resultsPerPage = 20 } = args;
261
+
262
+ // Implement text-based query filtering
263
+ if (search) {
264
+ filteredData = filteredData.filter((row) =>
265
+ Object.values(row).some((value) =>
266
+ value.toString().toLowerCase().includes(search.toLowerCase()),
267
+ ),
268
+ );
269
+ }
270
+
271
+ // Implement column-specific filtering
272
+ if (filters) {
273
+ filteredData = filteredData.filter((row) => {
274
+ return filters.every(({ id, value }) => {
275
+ // If filter value is null or undefined, skip this filter
276
+ if (value === null || value === undefined) {
277
+ return true;
278
+ }
279
+
280
+ // If filter value is array, search for each array value
281
+ if (Array.isArray(value)) {
282
+ return value.some((arrayValue) => {
283
+ return row[id as keyof Planet]
284
+ ?.toString()
285
+ .toLowerCase()
286
+ .includes(arrayValue.toString().toLowerCase());
287
+ });
288
+ }
289
+
290
+ // General filtering for other columns
291
+ return row[id as keyof Planet]
292
+ ?.toString()
293
+ .toLowerCase()
294
+ .includes(value.toString().toLowerCase());
295
+ });
296
+ });
297
+ }
298
+
299
+ // Implement sorting
300
+ if (sort && sort.length > 0) {
301
+ filteredData.sort((a, b) => {
302
+ for (const { id, desc } of sort) {
303
+ const aValue = a[id as keyof Planet];
304
+ const bValue = b[id as keyof Planet];
305
+
306
+ if (aValue < bValue) return desc ? 1 : -1;
307
+ if (aValue > bValue) return desc ? -1 : 1;
308
+ }
309
+
310
+ return 0;
311
+ });
312
+ }
313
+
314
+ // Implement pagination
315
+ const startRow = (page - 1) * resultsPerPage;
316
+ const endRow = startRow + resultsPerPage;
317
+ filteredData = filteredData.slice(startRow, endRow);
318
+
319
+ return filteredData;
320
+ };
321
+ `})}),`
322
+ `,e.jsx(n.h2,{id:"a-fully-featured-example",children:"A fully-featured example"}),`
323
+ `,e.jsx(n.p,{children:`Here's a table that hits a (simulated) API and includes filtering, sorting, drag-and-drop reordering,
324
+ pagination, and more:`}),`
325
+ `,e.jsx(a,{of:p}),`
326
+ `,e.jsx(n.h3,{id:"row-reordering-1",children:"Row reordering"}),`
327
+ `,e.jsxs(n.p,{children:["To enable row reordering, the ",e.jsx(n.code,{children:"onReorderRows"})," callback must be defined. Similar to ",e.jsx(n.code,{children:"getData"}),`, in this example
328
+ the component itself has an `,e.jsx(n.code,{children:"onReorderRows"})," handler:"]}),`
329
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`const onReorderRows = useCallback(
330
+ ({ ...props }: DataTableOnReorderRowsType) => {
331
+ const reorderedData = reorderData({ data, ...props });
332
+ setData(reorderedData as Planet[]);
333
+ },
334
+ [data],
335
+ );
336
+ `})}),`
337
+ `,e.jsxs(n.p,{children:["And the ",e.jsx(n.code,{children:"reorderData"})," function it calls out to:"]}),`
338
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`const reorderData = ({
339
+ data,
340
+ ...args
341
+ }: {
342
+ data: (Planet | Person)[];
343
+ } & DataTableOnReorderRowsType) => {
344
+ const updatedData = data;
345
+ const { rowId, newRowIndex } = args;
346
+ const rowIndex = updatedData.findIndex((row) => row.id === rowId);
347
+
348
+ if (rowIndex !== -1) {
349
+ // Remove the row from its current position
350
+ const [removedRow] = updatedData.splice(rowIndex, 1);
351
+
352
+ // Insert the row at the new index
353
+ updatedData.splice(newRowIndex, 0, removedRow);
354
+ }
355
+
356
+ return updatedData;
357
+ };
358
+ `})}),`
359
+ `,e.jsx(n.p,{children:`In a real-world scenario, the table would handle the visual portion of the reordering locally and send
360
+ the revised order to the API in the background to save.`}),`
361
+ `,e.jsx(n.h1,{id:"a-deep-dive-into-specific-features",children:"A deep dive into specific features"}),`
362
+ `,e.jsx(n.p,{children:"Some particular features warrant more explanation."}),`
363
+ `,e.jsx(n.h2,{id:"pagination",children:"Pagination"}),`
364
+ `,e.jsx(n.p,{children:`DataTable comes with standard pagination controls, allowing the user to set how many rows are visible per page, and
365
+ allowing them to navigate forward and back through the pages.`}),`
366
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"paginationType"})," is set to ",e.jsx(n.code,{children:"paged"})," by default. You can change it to ",e.jsx(n.code,{children:"loadMore"}),`, in which case the only pagination control
367
+ will be a "Show more" button that loads more rows when pressed. This shouldn't be used in new tables, but is provided as a
368
+ convenience to teams migrating from ARC who are already using that functionality.`]}),`
369
+ `,e.jsxs(n.p,{children:["If ",e.jsx(n.code,{children:"totalRows"}),` is provided, the pagination will disable the "next" button when the last page has been reached. Otherwise,
370
+ the Next button will always be active.`]}),`
371
+ `,e.jsxs(n.p,{children:["Providing ",e.jsx(n.code,{children:"totalRows"})," leads to a much better end-user experience, but due to API limitations, that data might not always be available."]}),`
372
+ `,e.jsx(n.h2,{id:"empty-states--loading-states",children:"Empty states & loading states"}),`
373
+ `,e.jsxs(n.p,{children:["The DataTable will handle its own loading state, toggling it on or off as it hits the ",e.jsx(n.code,{children:"getData"})," callback."]}),`
374
+ `,e.jsx(n.p,{children:`There's a default "no results" state, which shows when the end user passes a query that produces no response. (For example, if
375
+ the user filters the table for the name "asdfadsfadsfasdfdsfd" and that name doesn't exist in the data, the "no response" state
376
+ will be shown.)`}),`
377
+ `,e.jsxs(n.p,{children:['You can provide a custom "no response" state using the custom ',e.jsx(n.code,{children:"<EmptyState>"})," component:"]}),`
378
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`noResultsPlaceholder={<EmptyState
379
+ heading="Whoops, there's nothing here!"
380
+ text="You should try searching or filtering for something else."
381
+ />}
382
+ `})}),`
383
+ `,e.jsx(n.p,{children:`If the table data is completely empty — calculated based on whether there's no data present even when the search and filtering params
384
+ are in their default state — the placeholder state will be shown. However, you can provide a custom empty state, which is useful
385
+ for providing a first-run experience for the DataTable:`}),`
386
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`emptyPlaceholder={
387
+ <EmptyState
388
+ heading="Start by adding data assets"
389
+ text="All relevant data will be displayed and can be searched and filtered"
390
+ PrimaryCallToActionComponent={<Button variant="primary" label="Primary" />}
391
+ SecondaryCallToActionComponent={<Button variant="secondary" label="Secondary" />}
392
+ />
393
+ }
394
+ `})}),`
395
+ `,e.jsx(a,{of:u}),`
396
+ `,e.jsx(n.h2,{id:"row-reordering-2",children:"Row reordering"}),`
397
+ `,e.jsx(n.p,{children:`Rows can be reordered via drag-and-drop. The table also includes keyboard support for reordering — if the user
398
+ presses the spacebar while focused on a row, the table enters "reorder mode" and the row can be moved up and down
399
+ via arrow keys. When the user is satisfied with its position, they can "lock it in" by hitting Space or Enter again.`}),`
400
+ `,e.jsx(n.p,{children:`For accessibility reasons, if drag-and-drop reordering is enabled, each row will have an action menu on the right side that
401
+ includes items for moving the row to the top, bottom, up one, or down one. This cannot be disabled if row reordering is active.`}),`
402
+ `,e.jsxs(n.p,{children:['"Move to bottom" is only provided if you provide the ',e.jsx(n.code,{children:"totalRows"}),` to the table, since otherwise the table doesn't know the index
403
+ of the bottom row.`]}),`
404
+ `,e.jsx(n.h2,{id:"table-settings-density--column-visibility",children:"Table settings (density & column visibility)"}),`
405
+ `,e.jsx(n.p,{children:`DataTable can provide controls that allow the end user to change which columns are visible, as well as the density of each row. Note
406
+ that, even if the density settings are disabled, you can change the initial table density without exposing that control to the end user.
407
+ (For example, if you wanted to make a table with extra breathing room, or a table that's particularly compact).`}),`
408
+ `,e.jsx(n.h2,{id:"scroll-indication",children:"Scroll indication"}),`
409
+ `,e.jsx(n.p,{children:`If the table content is wider than the available space, a subtle shadow will be displayed in whichever direction the
410
+ table can be scrolled. This happens automatically, adjusts when the table container is resized, and adapts to the current
411
+ scroll position of the content.`}),`
412
+ `,e.jsx(n.h2,{id:"row-actions--bulk-actions",children:"Row actions & bulk actions"}),`
413
+ `,e.jsx(n.p,{children:`Action buttons and menu items can be added to each row. If rows are selectable, you can also add bulk actions to the top of the table,
414
+ which will be applied to all selected rows. (For example, the bulk actions menu starts out disabled, but if the user selects 3 rows,
415
+ the actions menu will be enabled and any actions performed would be applied to all 3 selected rows.)`}),`
416
+ `,e.jsx(n.h2,{id:"additional-action-buttons-and-menu-items",children:"Additional action buttons and menu items"}),`
417
+ `,e.jsxs(n.p,{children:["Using ",e.jsx(n.code,{children:"additionalActionButton"})," and ",e.jsx(n.code,{children:"additionalActionMenuItems"}),", you can provide additional actions that sit at the top of the ",e.jsx(n.code,{children:"DataView"}),`. This is
418
+ perfect for things like an "Add row" button or a menu of actions that affect the entire table or list.`]}),`
419
+ `,e.jsx(n.h2,{id:"row-details",children:"Row details"}),`
420
+ `,e.jsxs(n.p,{children:["Rows can optionally expand down to reveal additional content, defined via the ",e.jsx(n.code,{children:"renderDetailPanel"}),` prop, which expects a function with two
421
+ optional args (`,e.jsx(n.code,{children:"row"})," and ",e.jsx(n.code,{children:"table"}),"). By using the ",e.jsx(n.code,{children:"row"}),` arg, you can add logic that conditionally returns either a ReactNode or undefined; by this
422
+ mechanism, you can choose to display details for some rows and not others.`]}),`
423
+ `,e.jsx(n.h2,{id:"custom-filters",children:"Custom filters"}),`
424
+ `,e.jsx(a,{of:m}),`
425
+ `,e.jsxs(n.p,{children:["Within ",e.jsx(n.code,{children:"<DataTable>"}),", you can now pass a custom ",e.jsx(n.code,{children:"filters"})," prop. ",e.jsx(n.em,{children:"This will override the default filters, which are based off the table columns"}),"."]}),`
426
+ `,e.jsxs(n.p,{children:["The ",e.jsx(n.code,{children:"filters"})," variable should be an array, which can contain any combination of:"]}),`
427
+ `,e.jsxs(n.ol,{children:[`
428
+ `,e.jsx(n.li,{children:"A table column (the full column def)"}),`
429
+ `,e.jsxs(n.li,{children:["A string that matches the ",e.jsx(n.code,{children:"accessorKey"})," of a table column"]}),`
430
+ `,e.jsx(n.li,{children:"A custom filter."}),`
431
+ `]}),`
432
+ `,e.jsx(n.p,{children:"Using this schema, you can pass in the existing set of table columns plus your own filters. You can also use this mechanism to change the order that the filters are displayed."}),`
433
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`const filters = [
434
+ ...columns,
435
+ {
436
+ id: "",
437
+ label: "",
438
+ render: (updateFilters: UpdateFiltersCallback) => {},
439
+ },
440
+ ];
441
+ `})}),`
442
+ `,e.jsx(n.p,{children:"This is the shape of a custom filter:"}),`
443
+ `,e.jsx(n.pre,{children:e.jsx(n.code,{className:"language-tsx",children:`export type DataFilter = {
444
+ /**
445
+ * A unique ID for the filter, typically the same id
446
+ * as the column it'll be applied to.
447
+ */
448
+ id: string;
449
+ /**
450
+ * The human-friendly name of the filter.
451
+ */
452
+ label: string;
453
+ /**
454
+ * The type of filter, which determines which filtering control
455
+ * is shown.
456
+ */
457
+ variant?: MRT_ColumnDef<MRT_RowData>["filterVariant"];
458
+ /**
459
+ * The current value of the filter. Typically a string, but
460
+ * filters that allow for multiple selections (such as multi-select)
461
+ * can accept an array.
462
+ */
463
+ value?: DataFilterValue;
464
+ /**
465
+ * If the filter control has preset options (such as a select or multi-select),
466
+ * these are the options provided.
467
+ */
468
+ options?: Array<{ label: string; value: string }>;
469
+ /**
470
+ * A callback which renders a custom filter control
471
+ */
472
+ render?: (updateFilters: UpdateFilters) => ReactNode;
473
+ };
474
+ `})}),`
475
+ `,e.jsxs(n.p,{children:["The ",e.jsx(n.code,{children:"id"})," is the string representing the filter (it'll be passed through to your filtering function, so if your filter id is ",e.jsx(n.code,{children:"foo"}),", within your filtering function you'll be able to target ",e.jsx(n.code,{children:'filter.id === "foo"'})," and then retrieve the value with ",e.jsx(n.code,{children:"filter.value"}),"."]}),`
476
+ `,e.jsxs(n.p,{children:["The ",e.jsx(n.code,{children:"label"})," is the human-readable name of the filter."]}),`
477
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"value"})," is the current value"]}),`
478
+ `,e.jsxs(n.p,{children:[e.jsx(n.code,{children:"render"})," is a function that accepts the callback for changing the filters and returns a ReactNode with the custom filter control."]}),`
479
+ `,e.jsx(n.p,{children:"You can add a custom control to a default filter:"}),`
480
+ `,e.jsx(a,{of:x}),`
481
+ `,e.jsx(n.p,{children:"You can use an out-of-the-box filter variant with a custom filter:"}),`
482
+ `,e.jsx(a,{of:f}),`
483
+ `,e.jsx(n.h1,{id:"gotchas",children:"Gotchas"}),`
484
+ `,e.jsxs(n.p,{children:[`It is very, very important that you memoize your callbacks! Performance slows to a crawl if you don't.
485
+ For the best performance, keep your `,e.jsx(n.code,{children:"getData"})," and ",e.jsx(n.code,{children:"onChangeRowSelection"}),` functions outside of the component
486
+ and then call them from within, passing the table data in at the same time.`]}),`
487
+ `,e.jsx(n.h1,{id:"upgrading-from-labs-datatable-to-datatable",children:"Upgrading from Labs DataTable to DataTable"}),`
488
+ `,e.jsx(n.p,{children:"We've made some API changes between the previous version (in Odyssey Labs) and this stable version."}),`
489
+ `,e.jsx(n.p,{children:"Be aware of the following:"}),`
490
+ `,e.jsxs(n.ul,{children:[`
491
+ `,e.jsxs(n.li,{children:[e.jsx(n.code,{children:"fetchDataFn"})," is now ",e.jsx(n.code,{children:"getData"})]}),`
492
+ `,e.jsxs(n.li,{children:[e.jsx(n.code,{children:"onRowSelectionChange"})," is now ",e.jsx(n.code,{children:"onChangeRowSelection"})]}),`
493
+ `,e.jsxs(n.li,{children:[e.jsx(n.code,{children:"reorderDataFn"})," is now ",e.jsx(n.code,{children:"onReorderRows"})]}),`
494
+ `,e.jsxs(n.li,{children:["Within ",e.jsx(n.code,{children:"reorderDataFn"}),", the param ",e.jsx(n.code,{children:"newIndex"})," is now ",e.jsx(n.code,{children:"newRowIndex"})]}),`
495
+ `]})]})}function Nn(t={}){const{wrapper:n}={...s(),...t.components};return n?e.jsx(n,{...t,children:e.jsx(i,{...t})}):i(t)}export{Nn as default};
@@ -0,0 +1,21 @@
1
+ import{s as ba}from"./tableRowClasses-Bk1uFtwh.js";import{u as ma,a as ua}from"./index.esm-Bohtd3OQ.js";import{r as a,j as e}from"./iframe-CQjT1fxh.js";import{M}from"./Box-B3rdnavX.js";import{M as ga}from"./Button-0PI4ljbj.js";import{M as H}from"./MenuButton-BffESdH9.js";import{M as pa}from"./Callout-WJN7MCgu.js";import{M as fa}from"./EmptyState-B1EvR4rn.js";import{a as A,T as V,u as xa}from"./OdysseyThemeProvider-BA0_xP7N.js";import{M as ha}from"./DataFilters-4og6bOFS.js";import{u as Ca,a as Sa,b as Ta,M as ya}from"./useScrollIndication-BGw7dgC5.js";import{M as E}from"./MenuItem-Cmq8TfUJ.js";import{B as ja}from"./Box-CnVllI1S.js";import{M as Ma,a as Ia,b as Ce,c as Da,d as za,e as he,f as ka}from"./List-CZ2bN2bA.js";import{M as $}from"./More-BAN0OFVF.js";import{C as va}from"./Checkbox-mRntsWEy.js";import{M as Ea}from"./Show-C6ORd-wr.js";import{M as wa}from"./WarningFilled-DOHs-JmZ.js";/*!
2
+ * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
3
+ * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
4
+ *
5
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
6
+ * Unless required by applicable law or agreed to in writing, software
7
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
8
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ *
10
+ * See the License for the specific language governing permissions and limitations under the License.
11
+ */const Se=["comfortable","spacious","compact"],Fa=({row:t,rowIndex:r,rowActionButtons:o,rowActionMenuItems:c,totalRows:b,updateRowOrder:i})=>{const{t:p}=A(),f=a.useCallback(()=>{i&&i({rowId:t.id,newRowIndex:0})},[t.id,i]),x=a.useCallback(()=>{i&&i({rowId:t.id,newRowIndex:Math.max(0,r-1)})},[t.id,r,i]),w=a.useCallback(()=>{i&&i({rowId:t.id,newRowIndex:r+1})},[t.id,r,i]),I=a.useCallback(()=>{i&&i({rowId:t.id,newRowIndex:b?b-1:r})},[t.id,r,b,i]);return e.jsxs(ja,{display:"flex",children:[o==null?void 0:o(t),(c||i)&&e.jsxs(H,{ariaLabel:p("table.moreactions.arialabel"),buttonVariant:"floating",endIcon:e.jsx($,{}),menuAlignment:"right",size:"small",children:[c&&e.jsx(e.Fragment,{children:c(t)}),c&&i&&e.jsx("hr",{}),i&&e.jsxs(e.Fragment,{children:[e.jsxs(E,{isDisabled:r<=0,onClick:f,children:[e.jsx(Ma,{})," ",e.jsx(V,{i18nKey:"table.reorder.tofront"})]}),e.jsxs(E,{isDisabled:r<=0,onClick:x,children:[e.jsx(Ia,{})," ",e.jsx(V,{i18nKey:"table.reorder.forward"})]}),e.jsxs(E,{isDisabled:b?r>=b-1:!1,onClick:w,children:[e.jsx(Ce,{})," ",e.jsx(V,{i18nKey:"table.reorder.backward"})]}),b&&e.jsxs(E,{isDisabled:r>=b-1,onClick:I,children:[e.jsx(Da,{})," ",e.jsx(V,{i18nKey:"table.reorder.toback"})]})]})]})]})},Te=a.memo(Fa);Te.displayName="DataTableRowActions";const Ba=({hasChangeableDensity:t,rowDensity:r,setRowDensity:o,hasColumnVisibility:c,columns:b,columnVisibility:i,setColumnVisibility:p})=>{const{t:f}=A(),x=a.useCallback(l=>S=>{o(l)},[o]),w=a.useCallback(l=>S=>{p(g=>({...g,[l]:g?g[l]===!1:!1}))},[p]),I=a.useMemo(()=>b.reduce((l,S)=>{const g=i?i[S.accessorKey]!==!1:!0;return l[S.accessorKey]=g,l},{}),[b,i]);return e.jsxs(e.Fragment,{children:[t&&e.jsx(H,{ariaLabel:f("table.density.arialabel"),endIcon:e.jsx(za,{}),menuAlignment:"right",shouldCloseOnSelect:!1,children:e.jsx(e.Fragment,{children:Se.map(l=>e.jsx(E,{isSelected:r===l,onClick:x(l),children:f(`table.density.${l}`)},l))})}),c&&e.jsx(H,{ariaLabel:f("table.columnvisibility.arialabel"),endIcon:e.jsx(Ea,{}),menuAlignment:"right",shouldCloseOnSelect:!1,children:e.jsx(e.Fragment,{children:b.filter(l=>l.enableHiding!==!1).map(l=>e.jsxs(E,{onClick:w(l.id),children:[e.jsx(va,{checked:I[l.accessorKey]}),l.header]},l.accessorKey))})})]})},ye=a.memo(Ba);ye.displayName="DataTableSettings";/*!
12
+ * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
13
+ * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
14
+ *
15
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
18
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ *
20
+ * See the License for the specific language governing permissions and limitations under the License.
21
+ */const Pa=ba("div",{shouldForwardProp:t=>t!=="odysseyDesignTokens"&&t!=="isScrollableStart"&&t!=="isScrollableEnd"})(({odysseyDesignTokens:t,isScrollableStart:r,isScrollableEnd:o})=>({marginBlockEnd:t.Spacing4,position:"relative",borderInlineStartColor:r?t.HueNeutral200:"transparent",borderInlineStartStyle:"solid",borderInlineStartWidth:t.BorderWidthMain,"::before":{background:"linear-gradient(-90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)",content:'""',opacity:r?"0.075":"0",pointerEvents:"none",position:"absolute",top:0,left:0,bottom:0,width:t.Spacing6,zIndex:100,transition:`opacity ${t.TransitionDurationMain} ${t.TransitionTimingMain}`},borderInlineEndColor:o?t.HueNeutral200:"transparent",borderInlineEndStyle:"solid",borderInlineEndWidth:t.BorderWidthMain,"::after":{background:"linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.33) 50%, rgba(0, 0, 0, 1) 100%)",content:'""',opacity:o?"0.075":"0",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,width:t.Spacing6,transition:`opacity ${t.TransitionDurationMain} ${t.TransitionTimingMain}`}})),Ha=t=>t.id,Ka=({additionalActionButton:t,additionalActionMenuItems:r,bulkActionMenuItems:o,columns:c,currentPage:b=1,emptyPlaceholder:i,errorMessage:p,filters:f,getData:x,getRowId:w=Ha,hasChangeableDensity:I,hasColumnResizing:l,hasColumnVisibility:S,hasFilters:g,hasPagination:je,hasRowReordering:T,hasRowSelection:Me,hasSearch:q,hasSearchSubmitButton:Ie,hasSorting:De,initialDensity:ze=Se[0],initialSearchValue:J="",isPaginationMoreDisabled:ke,noResultsPlaceholder:Q,onChangeRowSelection:K,onReorderRows:h,paginationType:X="paged",renderDetailPanel:ve,resultsPerPage:G=20,maxResultsPerPage:Ee,maxPages:we,rowActionButtons:D,rowActionMenuItems:F,searchDelayTime:Fe,selectedRows:Be,totalRows:B})=>{const{t:m}=A(),[z,Y]=a.useState([]),[d,Z]=a.useState({pageIndex:b,pageSize:G}),[y,Pe]=a.useState(),[He,Ke]=a.useState(!0),[Ne,We]=a.useState(!0),[R,Le]=a.useState("100%"),ee=a.useRef(null),ae=a.useRef(null),Ve=a.useRef(null),[P,$e]=a.useState([]),[ne,Ge]=a.useState(),[N,Oe]=a.useState(ze),[k,Ue]=a.useState(J),[j,_e]=a.useState(),[O,Ae]=a.useState(),[qe,te]=a.useState(!0),[W,Je]=a.useState(),[se,ie]=a.useState(p),[v,Qe]=a.useState(Be??{});Ca({tableOuterContainer:ee.current,tableInnerContainer:ae.current,setIsTableContainerScrolledToStart:Ke,setIsTableContainerScrolledToEnd:We,setTableInnerContainerWidth:Le});const U=xa(),{dragHandleStyles:le,dragHandleText:re,draggableTableBodyRowClassName:oe,handleDragHandleKeyDown:ce,handleDragHandleOnDragCapture:de,handleDragHandleOnDragEnd:be,resetDraggingAndHoveredRow:me,updateRowOrder:ue}=Sa({totalRows:B,onReorderRows:h,data:z,setData:Y,draggingRow:y,setDraggingRow:Pe,resultsPerPage:d.pageSize,page:d.pageIndex}),ge=a.useMemo(()=>N==="spacious"?"MuiTableBody-spacious":N==="compact"?"MuiTableBody-compact":"MuiTableBody-default",[N]),Xe=a.useCallback(({row:n})=>{const s=n.index+(d.pageIndex-1)*d.pageSize;return e.jsx(Te,{row:n,rowActionButtons:D,rowActionMenuItems:F,rowIndex:s,totalRows:B,updateRowOrder:T&&h?ue:void 0})},[d,D,F,T,h,B,ue]),pe=a.useCallback(n=>n==null?void 0:n.map(s=>typeof s=="string"?{label:s,value:s}:{label:s.label??s.value,value:s.value??s.label}),[]),_=a.useCallback(n=>n.enableColumnFilter!==!1&&n.accessorKey?{id:n.accessorKey,label:n.header,variant:n.filterVariant,options:pe(n.filterSelectOptions)}:null,[pe]),Ye=a.useMemo(()=>(f||c).reduce((s,u)=>{if(typeof u=="string"){const C=c.find(L=>L.accessorKey===u);if(C){const L=_(C);if(L)return s.concat(L)}}else if("accessorKey"in u){const C=_(u);if(C)return s.concat(C)}else if("label"in u)return s.concat(u);return s},[]),[c,f,_]),Ze=a.useCallback(({cell:n})=>{const s=n.getValue();return n.column.columnDef.hasTextWrapping||n.column.columnDef.enableWrapping?s:e.jsx(M,{sx:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},children:s})},[]),Re=a.useCallback(()=>{const n=Q||e.jsx(fa,{description:m("table.noresults.text"),heading:m("table.noresults.heading")}),s=i&&W?i:n;return e.jsx(M,{sx:{width:R},children:s})},[i,W,Q,m,R]),fe=a.useMemo(()=>c.map(n=>n.accessorKey),[c]),ea=a.useMemo(()=>["mrt-row-drag","mrt-row-select","mrt-row-expand",...fe,"mrt-row-actions"],[fe]),xe=a.useMemo(()=>!!(T===!0&&h||D||F),[T,h,D,F]),aa=a.useCallback(()=>({className:ge}),[ge]),na=a.useCallback(({column:n})=>({className:n.getIsResizing()?"isResizing":"",sx:{overflowWrap:"anywhere"}}),[]),ta=a.useCallback(({row:n})=>({sx:{paddingBlock:n.getIsExpanded()?`${U.Spacing3} !important`:void 0}}),[U.Spacing3]),sa=a.useCallback(({table:n,row:s,isDetailPanel:u})=>{var C;return{className:oe({currentRowId:s.id,draggingRowId:y==null?void 0:y.id,hoveredRowId:(C=n.getState().hoveredRow)==null?void 0:C.id}),sx:{...u&&{paddingBlock:"0 !important",border:0,"&:hover":{backgroundColor:"transparent !important"}}}}},[oe,y==null?void 0:y.id]),ia=a.useCallback(({table:n,row:s})=>({onKeyDown:u=>ce({table:n,row:s,event:u}),onBlur:()=>me(n),onDragEnd:()=>be(n),onDragCapture:()=>de(n),sx:le,...re}),[le,re,ce,me,be,de]),la=a.useCallback(({column:n})=>({className:P.find(s=>s.id===n.id)?"isSorted":"isUnsorted"}),[P]),ra=a.useMemo(()=>c.some(n=>n.grow===!0),[c]),oa=ma({columns:c,data:z,getRowId:w,state:{sorting:P,globalFilter:k,columnVisibility:ne,isLoading:qe,rowSelection:v,columnOrder:ea},icons:{ArrowDownwardIcon:Ce,DragHandleIcon:he,SyncAltIcon:ka,ExpandMoreIcon:wa},enableColumnActions:!1,enableColumnResizing:l,enableDensityToggle:!1,enableFilters:!1,enableFullScreenToggle:!1,enableGlobalFilter:!1,enableHiding:!1,enablePagination:!1,layoutMode:"grid-no-grow",manualFiltering:!0,manualSorting:!0,muiTablePaperProps:{elevation:0,sx:{overflow:"visible"}},selectAllMode:"all",displayColumnDefOptions:{"mrt-row-actions":{header:"",grow:!0,muiTableBodyCellProps:{align:"right",sx:{overflow:"visible",width:"unset"},className:"ods-actions-cell"},muiTableHeadCellProps:{align:"right",sx:{width:"unset"},className:"ods-actions-cell",children:e.jsxs(M,{sx:{display:"flex",visibility:"hidden"},children:[D&&D({id:null}),(T&&h||F)&&e.jsx(M,{children:e.jsx(ga,{ariaLabel:m("table.moreactions.arialabel"),endIcon:e.jsx($,{}),isDisabled:!0,size:"small",variant:"floating"})})]})}},"mrt-row-drag":{header:"",muiTableBodyCellProps:{sx:{minWidth:0,width:"auto"},className:"ods-drag-handle"},muiTableHeadCellProps:{sx:{minWidth:0,width:"auto"},children:e.jsx(M,{sx:{marginInline:"-0.1rem"},children:e.jsx(he,{sx:{marginInline:1,opacity:0}})})}},"mrt-row-select":{muiTableHeadCellProps:{padding:"checkbox"},muiTableBodyCellProps:{padding:"checkbox"}},"mrt-row-expand":{header:""}},muiTableBodyProps:aa,defaultColumn:{Cell:Ze},muiTableBodyCellProps:na,enableRowOrdering:T&&!!h,enableRowDragging:T&&!!h,muiDetailPanelProps:ta,muiTableBodyRowProps:sa,muiRowDragHandleProps:ia,enableRowActions:xe,positionActionsColumn:"last",renderRowActions:({row:n})=>Xe({row:n}),enableRowSelection:Me,onRowSelectionChange:Qe,enableSorting:De,onSortingChange:$e,muiTableHeadCellProps:la,enableRowVirtualization:X!=="loadMore"&&d.pageSize>50,rowVirtualizerInstanceRef:a.useRef(null),rowVirtualizerOptions:{overscan:4},renderEmptyRowsFallback:Re,muiTableProps:{ref:Ve,className:!xe&&l?ra?"ods-hide-spacer-column":"ods-hide-spacer-column ods-column-grow":""},muiTableContainerProps:{ref:ae},enableExpandAll:!1,renderDetailPanel:ve}),ca=a.useMemo(()=>e.jsx(e.Fragment,{children:e.jsx(H,{ariaLabel:"More actions",buttonVariant:"secondary",endIcon:e.jsx($,{}),isDisabled:Object.keys(v).length===0,children:o==null?void 0:o(v)})}),[o,v]);a.useEffect(()=>{(async()=>{te(!0),ie(p);try{const n=await(x==null?void 0:x({page:d.pageIndex,resultsPerPage:d.pageSize,search:k,filters:j,sort:P}));Y(n)}catch(n){ie(typeof n=="string"?n:m("table.error"))}finally{te(!1)}})()},[P,p,j,x,d,k,m]),a.useEffect(()=>{!O&&j&&Ae(j),Je(d.pageIndex===b&&d.pageSize===G&&k===""&&j===O&&z.length===0)},[j,d,k,z,b,O,G]),a.useEffect(()=>{Z(n=>({pageIndex:1,pageSize:n.pageSize}))},[j,k]),a.useEffect(()=>{K==null||K(v)},[v,K]);const{lastRow:da}=Ta({currentRowsCount:z.length,pageIndex:d.pageIndex,pageSize:d.pageSize,totalRows:B});return e.jsxs(e.Fragment,{children:[(q||g||I||S||o||t||r)&&e.jsx(M,{sx:{marginBottom:5},children:e.jsx(ha,{additionalActions:e.jsxs(e.Fragment,{children:[e.jsx(ye,{columns:c,columnVisibility:ne,hasChangeableDensity:I,hasColumnVisibility:S,rowDensity:N,setColumnVisibility:Ge,setRowDensity:Oe}),o&&ca,t,r&&e.jsx(H,{ariaLabel:m("table.moreactions.arialabel"),buttonVariant:"secondary",endIcon:e.jsx($,{}),menuAlignment:"right",children:r})]}),defaultSearchTerm:J,filters:g?Ye:void 0,hasSearchSubmitButton:Ie,isDisabled:W,onChangeFilters:g?_e:void 0,onChangeSearch:q?Ue:void 0,searchDelayTime:Fe})}),se&&e.jsx(M,{sx:{marginBlockEnd:2},children:e.jsx(pa,{severity:"error",text:se})}),e.jsx(Pa,{isScrollableEnd:!Ne,isScrollableStart:!He,odysseyDesignTokens:U,ref:ee,children:e.jsx(ua,{table:oa})}),je&&e.jsx(ya,{currentPageLabel:m("pagination.page"),currentRowsCount:z.length,isDisabled:W,isMoreDisabled:ke,lastRow:da,loadMoreLabel:m("pagination.loadmore"),maxPageIndex:we,maxPageSize:Ee,nextLabel:m("pagination.next"),onPaginationChange:Z,pageIndex:d.pageIndex,pageSize:d.pageSize,previousLabel:m("pagination.previous"),rowsPerPageLabel:m("pagination.rowsperpage"),totalRows:B,variant:X})]})},Na=a.memo(Ka);Na.displayName="DataTable";export{Na as M,Se as d};
@@ -0,0 +1,41 @@
1
+ import{j as o}from"./iframe-CQjT1fxh.js";import{useMDXComponents as m}from"./index-D5BUEpVX.js";import{M as n,T as e,S as s,D as a}from"./blocks-D521Uej3.js";import{D as r}from"./DataTable.stories-Bn546tQH.js";import"./preload-helper-Dp1pzeXC.js";import"./index-C77ZwfYm.js";import"./index-5Qx3hCfP.js";import"./OdysseyStorybookThemeDecorator-CHlNoX17.js";import"./OdysseyThemeProvider-BA0_xP7N.js";import"./tableRowClasses-Bk1uFtwh.js";import"./WarningFilled-DOHs-JmZ.js";import"./OdysseyProvider-rboSNY26.js";import"./ScopedCssBaseline-BOa6kM98.js";import"./personData-CV-uVWcJ.js";import"./Status-DyDCzqET.js";import"./MuiPropsContext-D6i6qZME.js";import"./Chip-BgPaZbUf.js";import"./createSvgIcon-CaWcxZng.js";import"./useIsFocusVisible-D1xCTBdT.js";import"./ButtonBase-Rz8p08Xo.js";import"./TransitionGroupContext-yBqGXZYI.js";import"./DataView-BS0E464o.js";import"./Box-B3rdnavX.js";import"./Box-CnVllI1S.js";import"./MenuButton-BffESdH9.js";import"./BaseMenuButton-BXkyi9Y-.js";import"./useUniqueId-DG6rB8dI.js";import"./createUniqueId-BHjR7HQF.js";import"./BaseButton-C9tiChQu.js";import"./Tooltip-B-PXZNTK.js";import"./Tooltip-yxN-KFjL.js";import"./Grow-DvH-Xu1P.js";import"./utils-D-QCjykO.js";import"./Portal-DeJFqeW-.js";import"./resolveComponentProps-DGxe9oED.js";import"./isHostComponent-DVu5iVWx.js";import"./useControlled-BUhC7uWK.js";import"./Popper-CISS1LuJ.js";import"./ownerDocument-DW-IO8s5.js";import"./Button-Dug4qNr3.js";import"./MenuContext-UsOwIWpO.js";import"./More-BAN0OFVF.js";import"./Menu-DB2s3Jn0.js";import"./ownerWindow-HkKU3E4x.js";import"./debounce-Be36O1Ab.js";import"./Modal-C5P7v6Gt.js";import"./getScrollbarSize-Bqq2hMjQ.js";import"./createChainedFunction-BO_9K8Jh.js";import"./Fade-ZBabHGDm.js";import"./Paper-vUVrw-QB.js";import"./MenuList-D3GSt85L.js";import"./List-D0N4Xybp.js";import"./Callout-WJN7MCgu.js";import"./Link-Cg_KakDo.js";import"./Link-thynTosX.js";import"./Typography-Jr4Brrb5.js";import"./ExternalLink-3_gWbh_U.js";import"./Typography-CjpHjc10.js";import"./AlertTitle-UQV7DT5q.js";import"./useSlot-BMAKysxJ.js";import"./Close-CELHOmN_.js";import"./IconButton-BPR_sq0F.js";import"./useScrollIndication-BGw7dgC5.js";import"./Button-0PI4ljbj.js";import"./ArrowRight-C5USrGY5.js";import"./InputBase-BYnzr12H.js";import"./FormHelperText-CVc1kPQJ.js";import"./ListItem-BNz1zv6N.js";import"./FormLabel-CWWbs_c2.js";import"./EmptyState-B1EvR4rn.js";import"./DataFilters-4og6bOFS.js";import"./Autocomplete-BwSwXNq_.js";import"./useAutocomplete-DG_kuhWb.js";import"./index.esm-Dvk_qjX0.js";import"./Field-CqIOaZfg.js";import"./ScreenReaderText-toqV93JE.js";import"./visuallyHidden-Dan1xhjv.js";import"./FieldHint-Cs73lQge.js";import"./inputUtils-BBH9ADKa.js";import"./Autocomplete-BajR4gNT.js";import"./ArrowDropDown-BbLKA4fg.js";import"./ListSubheader-Dwx7m0BA.js";import"./Checkbox-3Yu84dfy.js";import"./Hint-BXue9c6p.js";import"./FormControlLabel-BG9mNqQc.js";import"./Stack-Duw-TXBf.js";import"./createStyled-BKWdp2xc.js";import"./useThemeProps-BCUqwy59.js";import"./Checkbox-mRntsWEy.js";import"./SwitchBase-C_6ALR3v.js";import"./CheckboxGroup-Bris2fCF.js";import"./FormGroup-D8ZDwdpx.js";import"./Radio-BlxlCYZY.js";import"./Radio-C5-GzJtb.js";import"./RadioGroup-sL620ofZ.js";import"./RadioGroup-BcwUBGJo.js";import"./SearchField-DmDpB-Sd.js";import"./InputAdornment-Clfg5IS6.js";import"./Search-0744_rm_.js";import"./Tag-CYK8pNzu.js";import"./TagList-CunLkaIS.js";import"./TextField-DF5R_omM.js";import"./Filter-XcwxIcdg.js";import"./MenuItem-CpMFWgaz.js";import"./ChevronRight-QYu5EQHS.js";import"./CircularProgress-B7sj16Me.js";import"./CircularProgress-D6L1y9kt.js";import"./Card-CYHxgfcj.js";import"./Skeleton-DxFSebyW.js";import"./colorManipulator-BYcVMQmD.js";import"./CardActions-AjPk7ICQ.js";import"./CardActionArea-CjEHgWqq.js";import"./ChevronUp-D226bAv0.js";import"./MenuItem-Cmq8TfUJ.js";import"./List-CZ2bN2bA.js";import"./constants-CGUp4oSR.js";import"./index.esm-Bohtd3OQ.js";import"./DialogContent-C6DlqjnA.js";import"./dialogActionsClasses-J0iu7jYO.js";import"./DialogTitle-B_QxN4PO.js";import"./useMobilePicker-DJQJ3D8W.js";import"./Select-DE0mojaE.js";import"./useThemeProps-Bc2iWdri.js";import"./Collapse-DULszxZp.js";import"./LinearProgress-Z53mwHnp.js";import"./Divider-C7lvc1xB.js";import"./tableSortLabelClasses-i_d6KGQQ.js";import"./DateTimePicker-ByepBMwy.js";import"./Tabs-BPWnyCAU.js";import"./DatePicker-vZfA4IWy.js";import"./Show-C6ORd-wr.js";import"./Refresh-ZZ_nNcXg.js";function p(i){const t={code:"code",p:"p",pre:"pre",...m(),...i.components};return o.jsxs(o.Fragment,{children:[o.jsx(n,{of:r}),`
2
+ `,o.jsx(e,{of:r}),`
3
+ `,o.jsx(s,{of:r}),`
4
+ `,o.jsx(a,{of:r}),`
5
+ `,o.jsxs(t.p,{children:[o.jsx(t.code,{children:"DataTable"})," is a convenience wrapper on top of ",o.jsx(t.code,{children:"DataView"})," that allows consumers to use the existing ",o.jsx(t.code,{children:"DataTable"}),` API, so you can have all the benefits
6
+ of `,o.jsx(t.code,{children:"DataView"})," without needing to change any code."]}),`
7
+ `,o.jsxs(t.p,{children:["To use this, just change your existing ",o.jsx(t.code,{children:"DataTable"})," import to use the ",o.jsx(t.code,{children:"@odyssey-react-mui/labs"})," version."]}),`
8
+ `,o.jsx(t.p,{children:"For example, this:"}),`
9
+ `,o.jsx(t.pre,{children:o.jsx(t.code,{children:`<DataTable
10
+ getData={getData}
11
+ columns={props.columns}
12
+ hasChangeableDensity={props.hasChangeableDensity}
13
+ hasColumnResizing={props.hasColumnResizing}
14
+ hasColumnVisibility={props.hasColumnVisibility}
15
+ hasSorting={props.hasSorting}
16
+ initialDensity={props.initialDensity}
17
+ renderDetailPanel={props.renderDetailPanel}
18
+ rowActionButtons={props.rowActionButtons}
19
+ rowActionMenuItems={props.rowActionMenuItems}
20
+ {...props}
21
+ />
22
+ `})}),`
23
+ `,o.jsx(t.p,{children:"is the same as:"}),`
24
+ `,o.jsx(t.pre,{children:o.jsx(t.code,{children:`<DataView
25
+ availableLayouts={["table"]}
26
+ getData={getData}
27
+ tableLayoutOptions={{
28
+ columns: props.columns,
29
+ hasChangeableDensity: props.hasChangeableDensity,
30
+ hasColumnResizing: props.hasColumnResizing,
31
+ hasColumnVisibility: props.hasColumnVisibility,
32
+ hasSorting: props.hasSorting,
33
+ initialDensity: props.initialDensity,
34
+ renderDetailPanel: props.renderDetailPanel,
35
+ rowActionButtons: props.rowActionButtons,
36
+ rowActionMenuItems: props.rowActionMenuItems,
37
+ }}
38
+ {...props}
39
+ />
40
+ `})}),`
41
+ `,o.jsx(t.p,{children:"For more information, consult the DataView documentation."})]})}function Ft(i={}){const{wrapper:t}={...m(),...i.components};return t?o.jsx(t,{...i,children:o.jsx(p,{...i})}):p(i)}export{Ft as default};