@okta/odyssey-react-mui 1.27.1 → 1.29.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 (470) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/Breadcrumbs.js +1 -0
  3. package/dist/Breadcrumbs.js.map +1 -1
  4. package/dist/{Button.js → Buttons/BaseButton.js} +11 -10
  5. package/dist/Buttons/BaseButton.js.map +1 -0
  6. package/dist/{MenuButton.js → Buttons/BaseMenuButton.js} +30 -10
  7. package/dist/Buttons/BaseMenuButton.js.map +1 -0
  8. package/dist/Buttons/Button.js +24 -0
  9. package/dist/Buttons/Button.js.map +1 -0
  10. package/dist/Buttons/ButtonContext.js.map +1 -0
  11. package/dist/Buttons/MenuButton.js +25 -0
  12. package/dist/Buttons/MenuButton.js.map +1 -0
  13. package/dist/Buttons/MenuContext.js.map +1 -0
  14. package/dist/{MenuItem.js → Buttons/MenuItem.js} +1 -0
  15. package/dist/Buttons/MenuItem.js.map +1 -0
  16. package/dist/Buttons/index.js +18 -0
  17. package/dist/{labs/UiShell → Buttons}/index.js.map +1 -1
  18. package/dist/Card.js +1 -2
  19. package/dist/Card.js.map +1 -1
  20. package/dist/Checkbox.js +62 -35
  21. package/dist/Checkbox.js.map +1 -1
  22. package/dist/DataTable/DataTable.js +1 -2
  23. package/dist/DataTable/DataTable.js.map +1 -1
  24. package/dist/DataTable/DataTableRowActions.js +1 -2
  25. package/dist/DataTable/DataTableRowActions.js.map +1 -1
  26. package/dist/DataTable/DataTableSettings.js +1 -2
  27. package/dist/DataTable/DataTableSettings.js.map +1 -1
  28. package/dist/DataTable/reorderDataRowsLocally.js.map +1 -1
  29. package/dist/DataTable/useRowReordering.js.map +1 -1
  30. package/dist/Dialog.js +1 -1
  31. package/dist/Dialog.js.map +1 -1
  32. package/dist/Drawer.js +1 -1
  33. package/dist/Drawer.js.map +1 -1
  34. package/dist/FileUploader/FileUploader.js +1 -1
  35. package/dist/FileUploader/FileUploader.js.map +1 -1
  36. package/dist/Form.js.map +1 -1
  37. package/dist/HtmlProps.js.map +1 -1
  38. package/dist/Pagination/Pagination.js +3 -2
  39. package/dist/Pagination/Pagination.js.map +1 -1
  40. package/dist/Radio.js +65 -38
  41. package/dist/Radio.js.map +1 -1
  42. package/dist/Toast.js +1 -1
  43. package/dist/Toast.js.map +1 -1
  44. package/dist/Typography.js +20 -0
  45. package/dist/Typography.js.map +1 -1
  46. package/dist/index.js +1 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.scss +1 -1
  49. package/dist/labs/AppSwitcher/AppSwitcher.js +76 -0
  50. package/dist/labs/AppSwitcher/AppSwitcher.js.map +1 -0
  51. package/dist/labs/AppSwitcher/AppSwitcherApp.js +112 -0
  52. package/dist/labs/AppSwitcher/AppSwitcherApp.js.map +1 -0
  53. package/dist/labs/{SideNav → AppSwitcher}/OktaAura.js +16 -3
  54. package/dist/labs/AppSwitcher/OktaAura.js.map +1 -0
  55. package/dist/{src/labs/UiShell/useHasUiShell.d.ts → labs/AppSwitcher/index.js} +2 -2
  56. package/dist/labs/AppSwitcher/index.js.map +1 -0
  57. package/dist/labs/AppTile.js +102 -65
  58. package/dist/labs/AppTile.js.map +1 -1
  59. package/dist/labs/DataFilters.js +10 -6
  60. package/dist/labs/DataFilters.js.map +1 -1
  61. package/dist/labs/DataTable.js +7 -7
  62. package/dist/labs/DataTable.js.map +1 -1
  63. package/dist/labs/DataTablePagination.js +1 -1
  64. package/dist/labs/DataTablePagination.js.map +1 -1
  65. package/dist/labs/DataView/BulkActionsMenu.js +1 -2
  66. package/dist/labs/DataView/BulkActionsMenu.js.map +1 -1
  67. package/dist/labs/DataView/CardLayoutContent.js +6 -5
  68. package/dist/labs/DataView/CardLayoutContent.js.map +1 -1
  69. package/dist/labs/DataView/DataCard.js +54 -42
  70. package/dist/labs/DataView/DataCard.js.map +1 -1
  71. package/dist/labs/DataView/DataTable.js.map +1 -1
  72. package/dist/labs/DataView/DataView.js +3 -3
  73. package/dist/labs/DataView/DataView.js.map +1 -1
  74. package/dist/labs/DataView/DetailPanel.js.map +1 -1
  75. package/dist/labs/DataView/LayoutSwitcher.js +1 -2
  76. package/dist/labs/DataView/LayoutSwitcher.js.map +1 -1
  77. package/dist/labs/DataView/RowActions.js +1 -1
  78. package/dist/labs/DataView/RowActions.js.map +1 -1
  79. package/dist/labs/DataView/TableLayoutContent.js +2 -3
  80. package/dist/labs/DataView/TableLayoutContent.js.map +1 -1
  81. package/dist/labs/DataView/TableSettings.js +1 -2
  82. package/dist/labs/DataView/TableSettings.js.map +1 -1
  83. package/dist/labs/DataView/componentTypes.js.map +1 -1
  84. package/dist/labs/DataView/dataTypes.js.map +1 -1
  85. package/dist/labs/DataView/fetchData.js.map +1 -1
  86. package/dist/labs/DataView/testSupportData.js +201 -0
  87. package/dist/labs/DataView/testSupportData.js.map +1 -0
  88. package/dist/labs/DataView/useFilterConversion.js.map +1 -1
  89. package/dist/labs/{DateField.js → DatePickers/DateField.js} +1 -1
  90. package/dist/labs/DatePickers/DateField.js.map +1 -0
  91. package/dist/labs/DatePickers/DateFieldActionBar.js +56 -0
  92. package/dist/labs/DatePickers/DateFieldActionBar.js.map +1 -0
  93. package/dist/labs/DatePickers/DateFieldLocalizationProvider.js +32 -0
  94. package/dist/labs/DatePickers/DateFieldLocalizationProvider.js.map +1 -0
  95. package/dist/labs/{DatePicker.js → DatePickers/DatePicker.js} +30 -73
  96. package/dist/labs/DatePickers/DatePicker.js.map +1 -0
  97. package/dist/labs/DatePickers/DatePicker.types.d.js.map +1 -0
  98. package/dist/labs/DatePickers/DateTimeField.js +166 -0
  99. package/dist/labs/DatePickers/DateTimeField.js.map +1 -0
  100. package/dist/labs/DatePickers/DateTimePicker.js +233 -0
  101. package/dist/labs/DatePickers/DateTimePicker.js.map +1 -0
  102. package/dist/labs/{datePickerTheme.js → DatePickers/datePickerTheme.js} +2 -2
  103. package/dist/labs/DatePickers/datePickerTheme.js.map +1 -0
  104. package/dist/labs/DatePickers/dateTimePickerTheme.js +230 -0
  105. package/dist/labs/DatePickers/dateTimePickerTheme.js.map +1 -0
  106. package/dist/labs/DatePickers/index.js +15 -0
  107. package/dist/labs/DatePickers/index.js.map +1 -0
  108. package/dist/labs/DatePickers/useDateFieldsTranslations.js.map +1 -0
  109. package/dist/labs/{useOdysseyDateFields.js → DatePickers/useOdysseyDateFields.js} +36 -3
  110. package/dist/labs/DatePickers/useOdysseyDateFields.js.map +1 -0
  111. package/dist/labs/PageTemplate.js +1 -1
  112. package/dist/labs/PageTemplate.js.map +1 -1
  113. package/dist/labs/SideNav/SideNav.js +45 -38
  114. package/dist/labs/SideNav/SideNav.js.map +1 -1
  115. package/dist/labs/SideNav/SideNavHeader.js +6 -4
  116. package/dist/labs/SideNav/SideNavHeader.js.map +1 -1
  117. package/dist/labs/SideNav/SideNavItemContent.js +11 -11
  118. package/dist/labs/SideNav/SideNavItemContent.js.map +1 -1
  119. package/dist/labs/SideNav/SideNavToggleButton.js +1 -1
  120. package/dist/labs/SideNav/SideNavToggleButton.js.map +1 -1
  121. package/dist/labs/SideNav/types.js.map +1 -1
  122. package/dist/labs/TimeZonePicker.js.map +1 -1
  123. package/dist/labs/TopNav/UserProfile.js +16 -3
  124. package/dist/labs/TopNav/UserProfile.js.map +1 -1
  125. package/dist/labs/TopNav/UserProfileMenuButton.js +41 -0
  126. package/dist/labs/TopNav/UserProfileMenuButton.js.map +1 -0
  127. package/dist/labs/TopNav/index.js +1 -0
  128. package/dist/labs/TopNav/index.js.map +1 -1
  129. package/dist/labs/index.js +2 -3
  130. package/dist/labs/index.js.map +1 -1
  131. package/dist/properties/ts/odyssey-react-mui.js +2 -0
  132. package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
  133. package/dist/src/Breadcrumbs.d.ts.map +1 -1
  134. package/dist/src/{Button.d.ts → Buttons/BaseButton.d.ts} +12 -34
  135. package/dist/src/Buttons/BaseButton.d.ts.map +1 -0
  136. package/dist/src/{MenuButton.d.ts → Buttons/BaseMenuButton.d.ts} +37 -14
  137. package/dist/src/Buttons/BaseMenuButton.d.ts.map +1 -0
  138. package/dist/src/Buttons/Button.d.ts +16 -0
  139. package/dist/src/Buttons/Button.d.ts.map +1 -0
  140. package/dist/src/Buttons/ButtonContext.d.ts.map +1 -0
  141. package/dist/src/Buttons/MenuButton.d.ts +17 -0
  142. package/dist/src/Buttons/MenuButton.d.ts.map +1 -0
  143. package/dist/src/Buttons/MenuContext.d.ts.map +1 -0
  144. package/dist/src/{MenuItem.d.ts → Buttons/MenuItem.d.ts} +1 -1
  145. package/dist/src/Buttons/MenuItem.d.ts.map +1 -0
  146. package/dist/src/Buttons/index.d.ts +18 -0
  147. package/dist/src/Buttons/index.d.ts.map +1 -0
  148. package/dist/src/Card.d.ts +1 -2
  149. package/dist/src/Card.d.ts.map +1 -1
  150. package/dist/src/Checkbox.d.ts.map +1 -1
  151. package/dist/src/DataTable/DataTable.d.ts +1 -1
  152. package/dist/src/DataTable/DataTable.d.ts.map +1 -1
  153. package/dist/src/DataTable/DataTableRowActions.d.ts +1 -2
  154. package/dist/src/DataTable/DataTableRowActions.d.ts.map +1 -1
  155. package/dist/src/DataTable/DataTableSettings.d.ts.map +1 -1
  156. package/dist/src/DataTable/reorderDataRowsLocally.d.ts +3 -3
  157. package/dist/src/DataTable/reorderDataRowsLocally.d.ts.map +1 -1
  158. package/dist/src/DataTable/useRowReordering.d.ts +10 -10
  159. package/dist/src/DataTable/useRowReordering.d.ts.map +1 -1
  160. package/dist/src/Dialog.d.ts +1 -1
  161. package/dist/src/Dialog.d.ts.map +1 -1
  162. package/dist/src/Drawer.d.ts +1 -1
  163. package/dist/src/Drawer.d.ts.map +1 -1
  164. package/dist/src/Form.d.ts +1 -1
  165. package/dist/src/Form.d.ts.map +1 -1
  166. package/dist/src/HtmlProps.d.ts +27 -0
  167. package/dist/src/HtmlProps.d.ts.map +1 -1
  168. package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
  169. package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
  170. package/dist/src/Radio.d.ts +1 -1
  171. package/dist/src/Radio.d.ts.map +1 -1
  172. package/dist/src/Typography.d.ts +11 -11
  173. package/dist/src/Typography.d.ts.map +1 -1
  174. package/dist/src/index.d.ts +1 -3
  175. package/dist/src/index.d.ts.map +1 -1
  176. package/dist/src/labs/AppSwitcher/AppSwitcher.d.ts +20 -0
  177. package/dist/src/labs/AppSwitcher/AppSwitcher.d.ts.map +1 -0
  178. package/dist/src/labs/AppSwitcher/AppSwitcherApp.d.ts +24 -0
  179. package/dist/src/labs/AppSwitcher/AppSwitcherApp.d.ts.map +1 -0
  180. package/dist/src/labs/AppSwitcher/OktaAura.d.ts.map +1 -0
  181. package/dist/src/labs/AppSwitcher/index.d.ts +13 -0
  182. package/dist/src/labs/AppSwitcher/index.d.ts.map +1 -0
  183. package/dist/src/labs/AppTile.d.ts +6 -4
  184. package/dist/src/labs/AppTile.d.ts.map +1 -1
  185. package/dist/src/labs/DataFilters.d.ts.map +1 -1
  186. package/dist/src/labs/DataTable.d.ts +12 -12
  187. package/dist/src/labs/DataTable.d.ts.map +1 -1
  188. package/dist/src/labs/DataView/BulkActionsMenu.d.ts +3 -3
  189. package/dist/src/labs/DataView/BulkActionsMenu.d.ts.map +1 -1
  190. package/dist/src/labs/DataView/CardLayoutContent.d.ts +18 -15
  191. package/dist/src/labs/DataView/CardLayoutContent.d.ts.map +1 -1
  192. package/dist/src/labs/DataView/DataCard.d.ts +8 -6
  193. package/dist/src/labs/DataView/DataCard.d.ts.map +1 -1
  194. package/dist/src/labs/DataView/DataTable.d.ts +6 -2
  195. package/dist/src/labs/DataView/DataTable.d.ts.map +1 -1
  196. package/dist/src/labs/DataView/DataView.d.ts +6 -2
  197. package/dist/src/labs/DataView/DataView.d.ts.map +1 -1
  198. package/dist/src/labs/DataView/DetailPanel.d.ts +5 -5
  199. package/dist/src/labs/DataView/DetailPanel.d.ts.map +1 -1
  200. package/dist/src/labs/DataView/LayoutSwitcher.d.ts.map +1 -1
  201. package/dist/src/labs/DataView/RowActions.d.ts +4 -5
  202. package/dist/src/labs/DataView/RowActions.d.ts.map +1 -1
  203. package/dist/src/labs/DataView/TableLayoutContent.d.ts +18 -15
  204. package/dist/src/labs/DataView/TableLayoutContent.d.ts.map +1 -1
  205. package/dist/src/labs/DataView/TableSettings.d.ts +7 -3
  206. package/dist/src/labs/DataView/TableSettings.d.ts.map +1 -1
  207. package/dist/src/labs/DataView/componentTypes.d.ts +17 -17
  208. package/dist/src/labs/DataView/componentTypes.d.ts.map +1 -1
  209. package/dist/src/labs/DataView/dataTypes.d.ts +6 -6
  210. package/dist/src/labs/DataView/dataTypes.d.ts.map +1 -1
  211. package/dist/src/labs/DataView/fetchData.d.ts +6 -6
  212. package/dist/src/labs/DataView/fetchData.d.ts.map +1 -1
  213. package/dist/src/labs/DataView/testSupportData.d.ts +33 -0
  214. package/dist/src/labs/DataView/testSupportData.d.ts.map +1 -0
  215. package/dist/src/labs/DataView/useFilterConversion.d.ts +5 -4
  216. package/dist/src/labs/DataView/useFilterConversion.d.ts.map +1 -1
  217. package/dist/src/labs/{DateField.d.ts → DatePickers/DateField.d.ts} +1 -1
  218. package/dist/src/labs/DatePickers/DateField.d.ts.map +1 -0
  219. package/dist/src/labs/DatePickers/DateFieldActionBar.d.ts +15 -0
  220. package/dist/src/labs/DatePickers/DateFieldActionBar.d.ts.map +1 -0
  221. package/dist/src/labs/DatePickers/DateFieldLocalizationProvider.d.ts +20 -0
  222. package/dist/src/labs/DatePickers/DateFieldLocalizationProvider.d.ts.map +1 -0
  223. package/dist/src/labs/DatePickers/DatePicker.d.ts +17 -0
  224. package/dist/src/labs/DatePickers/DatePicker.d.ts.map +1 -0
  225. package/dist/src/labs/DatePickers/DateTimeField.d.ts +20 -0
  226. package/dist/src/labs/DatePickers/DateTimeField.d.ts.map +1 -0
  227. package/dist/src/labs/DatePickers/DateTimePicker.d.ts +17 -0
  228. package/dist/src/labs/DatePickers/DateTimePicker.d.ts.map +1 -0
  229. package/dist/src/labs/DatePickers/datePickerTheme.d.ts +22 -0
  230. package/dist/src/labs/DatePickers/datePickerTheme.d.ts.map +1 -0
  231. package/dist/src/labs/{datePickerTheme.d.ts → DatePickers/dateTimePickerTheme.d.ts} +2 -2
  232. package/dist/src/labs/DatePickers/dateTimePickerTheme.d.ts.map +1 -0
  233. package/dist/src/labs/DatePickers/index.d.ts +15 -0
  234. package/dist/src/labs/DatePickers/index.d.ts.map +1 -0
  235. package/dist/src/labs/DatePickers/useDateFieldsTranslations.d.ts.map +1 -0
  236. package/dist/src/labs/{useOdysseyDateFields.d.ts → DatePickers/useOdysseyDateFields.d.ts} +49 -6
  237. package/dist/src/labs/DatePickers/useOdysseyDateFields.d.ts.map +1 -0
  238. package/dist/src/labs/SideNav/SideNav.d.ts.map +1 -1
  239. package/dist/src/labs/SideNav/SideNavHeader.d.ts.map +1 -1
  240. package/dist/src/labs/SideNav/SideNavItemContent.d.ts +1 -1
  241. package/dist/src/labs/SideNav/SideNavItemContent.d.ts.map +1 -1
  242. package/dist/src/labs/SideNav/types.d.ts +2 -2
  243. package/dist/src/labs/SideNav/types.d.ts.map +1 -1
  244. package/dist/src/labs/TimeZonePicker.d.ts +4 -1
  245. package/dist/src/labs/TimeZonePicker.d.ts.map +1 -1
  246. package/dist/src/labs/TopNav/UserProfile.d.ts +5 -1
  247. package/dist/src/labs/TopNav/UserProfile.d.ts.map +1 -1
  248. package/dist/src/labs/TopNav/UserProfileMenuButton.d.ts +17 -0
  249. package/dist/src/labs/TopNav/UserProfileMenuButton.d.ts.map +1 -0
  250. package/dist/src/labs/TopNav/index.d.ts +1 -0
  251. package/dist/src/labs/TopNav/index.d.ts.map +1 -1
  252. package/dist/src/labs/index.d.ts +2 -3
  253. package/dist/src/labs/index.d.ts.map +1 -1
  254. package/dist/src/properties/ts/odyssey-react-mui.d.ts +2 -0
  255. package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  256. package/dist/src/theme/components.d.ts.map +1 -1
  257. package/dist/src/theme/mixins.d.ts.map +1 -1
  258. package/dist/src/theme/mixins.types.d.ts +2 -0
  259. package/dist/src/theme/mixins.types.d.ts.map +1 -1
  260. package/dist/src/{labs → ui-shell}/UiShell/UiShell.d.ts +2 -2
  261. package/dist/src/ui-shell/UiShell/UiShell.d.ts.map +1 -0
  262. package/dist/src/ui-shell/UiShell/UiShellContent.d.ts +68 -0
  263. package/dist/src/ui-shell/UiShell/UiShellContent.d.ts.map +1 -0
  264. package/dist/src/ui-shell/UiShell/bufferLatest.d.ts.map +1 -0
  265. package/dist/src/ui-shell/UiShell/createMessageBus.d.ts.map +1 -0
  266. package/dist/src/ui-shell/UiShell/createStore.d.ts.map +1 -0
  267. package/dist/src/ui-shell/UiShell/index.d.ts.map +1 -0
  268. package/dist/src/{labs → ui-shell}/UiShell/renderUiShell.d.ts +3 -4
  269. package/dist/src/ui-shell/UiShell/renderUiShell.d.ts.map +1 -0
  270. package/dist/src/ui-shell/UiShell/useHasUiShell.d.ts +14 -0
  271. package/dist/src/ui-shell/UiShell/useHasUiShell.d.ts.map +1 -0
  272. package/dist/src/ui-shell/UiShell/useScrollState.d.ts.map +1 -0
  273. package/dist/src/ui-shell/index.d.ts +14 -0
  274. package/dist/src/ui-shell/index.d.ts.map +1 -0
  275. package/dist/src/{web-component → ui-shell}/renderReactInWebComponent.d.ts +1 -21
  276. package/dist/src/ui-shell/renderReactInWebComponent.d.ts.map +1 -0
  277. package/dist/src/web-component/index.d.ts +0 -1
  278. package/dist/src/web-component/index.d.ts.map +1 -1
  279. package/dist/src/web-component/shadow-dom.d.ts +23 -2
  280. package/dist/src/web-component/shadow-dom.d.ts.map +1 -1
  281. package/dist/theme/components.js +62 -30
  282. package/dist/theme/components.js.map +1 -1
  283. package/dist/theme/mixins.js +2 -1
  284. package/dist/theme/mixins.js.map +1 -1
  285. package/dist/theme/mixins.types.js.map +1 -1
  286. package/dist/tsconfig.production.tsbuildinfo +1 -1
  287. package/dist/{labs → ui-shell}/UiShell/UiShell.js +8 -5
  288. package/dist/ui-shell/UiShell/UiShell.js.map +1 -0
  289. package/dist/{labs → ui-shell}/UiShell/UiShellContent.js +64 -16
  290. package/dist/ui-shell/UiShell/UiShellContent.js.map +1 -0
  291. package/dist/ui-shell/UiShell/bufferLatest.js.map +1 -0
  292. package/dist/ui-shell/UiShell/createMessageBus.js.map +1 -0
  293. package/dist/ui-shell/UiShell/createStore.js.map +1 -0
  294. package/dist/ui-shell/UiShell/index.js.map +1 -0
  295. package/dist/{labs → ui-shell}/UiShell/renderUiShell.js +8 -2
  296. package/dist/ui-shell/UiShell/renderUiShell.js.map +1 -0
  297. package/dist/{labs → ui-shell}/UiShell/useHasUiShell.js +1 -1
  298. package/dist/ui-shell/UiShell/useHasUiShell.js.map +1 -0
  299. package/dist/ui-shell/UiShell/useScrollState.js.map +1 -0
  300. package/dist/ui-shell/index.js +14 -0
  301. package/dist/ui-shell/index.js.map +1 -0
  302. package/dist/{web-component → ui-shell}/renderReactInWebComponent.js +1 -12
  303. package/dist/ui-shell/renderReactInWebComponent.js.map +1 -0
  304. package/dist/web-component/index.js +0 -1
  305. package/dist/web-component/index.js.map +1 -1
  306. package/dist/web-component/shadow-dom.js +12 -2
  307. package/dist/web-component/shadow-dom.js.map +1 -1
  308. package/package.json +10 -3
  309. package/src/Breadcrumbs.tsx +5 -1
  310. package/src/{Button.tsx → Buttons/BaseButton.tsx} +48 -68
  311. package/src/{MenuButton.tsx → Buttons/BaseMenuButton.tsx} +94 -32
  312. package/src/Buttons/Button.tsx +30 -0
  313. package/src/Buttons/MenuButton.tsx +35 -0
  314. package/src/{MenuItem.tsx → Buttons/MenuItem.tsx} +2 -1
  315. package/src/Buttons/index.ts +22 -0
  316. package/src/Card.tsx +1 -3
  317. package/src/Checkbox.tsx +86 -44
  318. package/src/DataTable/DataTable.tsx +1 -2
  319. package/src/DataTable/DataTableRowActions.tsx +1 -3
  320. package/src/DataTable/DataTableSettings.tsx +1 -2
  321. package/src/DataTable/reorderDataRowsLocally.tsx +3 -3
  322. package/src/DataTable/useRowReordering.tsx +16 -23
  323. package/src/Dialog.tsx +1 -1
  324. package/src/Drawer.tsx +1 -1
  325. package/src/FileUploader/FileUploader.tsx +1 -1
  326. package/src/Form.tsx +1 -1
  327. package/src/HtmlProps.ts +27 -0
  328. package/src/Pagination/Pagination.test.tsx +58 -36
  329. package/src/Pagination/Pagination.tsx +3 -3
  330. package/src/Radio.tsx +78 -39
  331. package/src/Toast.tsx +1 -1
  332. package/src/Typography.tsx +26 -1
  333. package/src/index.ts +1 -3
  334. package/src/labs/AppSwitcher/AppSwitcher.tsx +94 -0
  335. package/src/labs/AppSwitcher/AppSwitcherApp.tsx +146 -0
  336. package/src/labs/{SideNav → AppSwitcher}/OktaAura.tsx +19 -4
  337. package/src/labs/AppSwitcher/index.ts +13 -0
  338. package/src/labs/AppTile.tsx +171 -85
  339. package/src/labs/DataFilters.tsx +8 -4
  340. package/src/labs/DataTable.tsx +42 -34
  341. package/src/labs/DataTablePagination.tsx +1 -1
  342. package/src/labs/DataView/BulkActionsMenu.tsx +5 -6
  343. package/src/labs/DataView/CardLayoutContent.tsx +34 -28
  344. package/src/labs/DataView/DataCard.tsx +69 -37
  345. package/src/labs/DataView/DataTable.tsx +11 -4
  346. package/src/labs/DataView/DataView.test.tsx +1012 -87
  347. package/src/labs/DataView/DataView.tsx +19 -12
  348. package/src/labs/DataView/DetailPanel.tsx +4 -4
  349. package/src/labs/DataView/LayoutSwitcher.tsx +1 -2
  350. package/src/labs/DataView/RowActions.tsx +5 -7
  351. package/src/labs/DataView/TableLayoutContent.tsx +31 -26
  352. package/src/labs/DataView/TableSettings.tsx +13 -8
  353. package/src/labs/DataView/componentTypes.ts +17 -17
  354. package/src/labs/DataView/dataTypes.ts +14 -8
  355. package/src/labs/DataView/fetchData.ts +9 -7
  356. package/src/labs/DataView/testSupportData.tsx +301 -0
  357. package/src/labs/DataView/useFilterConversion.ts +8 -8
  358. package/src/labs/{DateField.tsx → DatePickers/DateField.tsx} +2 -2
  359. package/src/labs/DatePickers/DateFieldActionBar.tsx +65 -0
  360. package/src/labs/DatePickers/DateFieldLocalizationProvider.tsx +46 -0
  361. package/src/labs/{DatePicker.tsx → DatePickers/DatePicker.tsx} +31 -136
  362. package/src/labs/DatePickers/DateTimeField.tsx +271 -0
  363. package/src/labs/DatePickers/DateTimePicker.test.tsx +66 -0
  364. package/src/labs/DatePickers/DateTimePicker.tsx +303 -0
  365. package/src/labs/{datePickerTheme.tsx → DatePickers/datePickerTheme.tsx} +2 -2
  366. package/src/labs/DatePickers/dateTimePickerTheme.ts +213 -0
  367. package/src/labs/DatePickers/index.ts +15 -0
  368. package/src/labs/{useOdysseyDateFields.ts → DatePickers/useOdysseyDateFields.ts} +112 -10
  369. package/src/labs/PageTemplate.tsx +1 -1
  370. package/src/labs/SideNav/SideNav.tsx +48 -43
  371. package/src/labs/SideNav/SideNavHeader.tsx +6 -4
  372. package/src/labs/SideNav/SideNavItemContent.tsx +21 -18
  373. package/src/labs/SideNav/SideNavToggleButton.tsx +1 -1
  374. package/src/labs/SideNav/types.ts +2 -2
  375. package/src/labs/TimeZonePicker.tsx +5 -1
  376. package/src/labs/TopNav/UserProfile.tsx +26 -2
  377. package/src/labs/TopNav/UserProfileMenuButton.tsx +57 -0
  378. package/src/labs/TopNav/index.ts +1 -0
  379. package/src/labs/index.ts +3 -3
  380. package/src/properties/odyssey-react-mui.properties +2 -0
  381. package/src/properties/ts/odyssey-react-mui.ts +1 -1
  382. package/src/theme/components.tsx +69 -31
  383. package/src/theme/mixins.ts +1 -0
  384. package/src/theme/mixins.types.ts +2 -0
  385. package/src/{labs → ui-shell}/UiShell/UiShell.test.tsx +23 -38
  386. package/src/{labs → ui-shell}/UiShell/UiShell.tsx +17 -6
  387. package/src/ui-shell/UiShell/UiShellContent.tsx +268 -0
  388. package/src/{labs → ui-shell}/UiShell/renderUiShell.test.tsx +1 -1
  389. package/src/{labs → ui-shell}/UiShell/renderUiShell.tsx +14 -4
  390. package/src/{labs → ui-shell}/UiShell/useHasUiShell.ts +1 -1
  391. package/src/ui-shell/index.ts +14 -0
  392. package/src/{web-component → ui-shell}/renderReactInWebComponent.test.tsx +1 -1
  393. package/src/{web-component → ui-shell}/renderReactInWebComponent.ts +4 -35
  394. package/src/web-component/index.ts +0 -1
  395. package/src/web-component/shadow-dom.ts +36 -3
  396. package/dist/Button.js.map +0 -1
  397. package/dist/ButtonContext.js.map +0 -1
  398. package/dist/MenuButton.js.map +0 -1
  399. package/dist/MenuContext.js.map +0 -1
  400. package/dist/MenuItem.js.map +0 -1
  401. package/dist/labs/DateField.js.map +0 -1
  402. package/dist/labs/DatePicker.js.map +0 -1
  403. package/dist/labs/DatePicker.types.d.js.map +0 -1
  404. package/dist/labs/SideNav/OktaAura.js.map +0 -1
  405. package/dist/labs/UiShell/UiShell.js.map +0 -1
  406. package/dist/labs/UiShell/UiShellContent.js.map +0 -1
  407. package/dist/labs/UiShell/bufferLatest.js.map +0 -1
  408. package/dist/labs/UiShell/createMessageBus.js.map +0 -1
  409. package/dist/labs/UiShell/createStore.js.map +0 -1
  410. package/dist/labs/UiShell/renderUiShell.js.map +0 -1
  411. package/dist/labs/UiShell/useHasUiShell.js.map +0 -1
  412. package/dist/labs/UiShell/useScrollState.js.map +0 -1
  413. package/dist/labs/datePickerTheme.js.map +0 -1
  414. package/dist/labs/useDateFieldsTranslations.js.map +0 -1
  415. package/dist/labs/useOdysseyDateFields.js.map +0 -1
  416. package/dist/src/Button.d.ts.map +0 -1
  417. package/dist/src/ButtonContext.d.ts.map +0 -1
  418. package/dist/src/MenuButton.d.ts.map +0 -1
  419. package/dist/src/MenuContext.d.ts.map +0 -1
  420. package/dist/src/MenuItem.d.ts.map +0 -1
  421. package/dist/src/labs/DateField.d.ts.map +0 -1
  422. package/dist/src/labs/DatePicker.d.ts +0 -47
  423. package/dist/src/labs/DatePicker.d.ts.map +0 -1
  424. package/dist/src/labs/SideNav/OktaAura.d.ts.map +0 -1
  425. package/dist/src/labs/UiShell/UiShell.d.ts.map +0 -1
  426. package/dist/src/labs/UiShell/UiShellContent.d.ts +0 -47
  427. package/dist/src/labs/UiShell/UiShellContent.d.ts.map +0 -1
  428. package/dist/src/labs/UiShell/bufferLatest.d.ts.map +0 -1
  429. package/dist/src/labs/UiShell/createMessageBus.d.ts.map +0 -1
  430. package/dist/src/labs/UiShell/createStore.d.ts.map +0 -1
  431. package/dist/src/labs/UiShell/index.d.ts.map +0 -1
  432. package/dist/src/labs/UiShell/renderUiShell.d.ts.map +0 -1
  433. package/dist/src/labs/UiShell/useHasUiShell.d.ts.map +0 -1
  434. package/dist/src/labs/UiShell/useScrollState.d.ts.map +0 -1
  435. package/dist/src/labs/datePickerTheme.d.ts.map +0 -1
  436. package/dist/src/labs/useDateFieldsTranslations.d.ts.map +0 -1
  437. package/dist/src/labs/useOdysseyDateFields.d.ts.map +0 -1
  438. package/dist/src/web-component/renderReactInWebComponent.d.ts.map +0 -1
  439. package/dist/web-component/renderReactInWebComponent.js.map +0 -1
  440. package/src/labs/UiShell/UiShellContent.tsx +0 -170
  441. /package/dist/{ButtonContext.js → Buttons/ButtonContext.js} +0 -0
  442. /package/dist/{MenuContext.js → Buttons/MenuContext.js} +0 -0
  443. /package/dist/labs/{DatePicker.types.d.js → DatePickers/DatePicker.types.d.js} +0 -0
  444. /package/dist/labs/{useDateFieldsTranslations.js → DatePickers/useDateFieldsTranslations.js} +0 -0
  445. /package/dist/src/{ButtonContext.d.ts → Buttons/ButtonContext.d.ts} +0 -0
  446. /package/dist/src/{MenuContext.d.ts → Buttons/MenuContext.d.ts} +0 -0
  447. /package/dist/src/labs/{SideNav → AppSwitcher}/OktaAura.d.ts +0 -0
  448. /package/dist/src/labs/{useDateFieldsTranslations.d.ts → DatePickers/useDateFieldsTranslations.d.ts} +0 -0
  449. /package/dist/src/{labs → ui-shell}/UiShell/bufferLatest.d.ts +0 -0
  450. /package/dist/src/{labs → ui-shell}/UiShell/createMessageBus.d.ts +0 -0
  451. /package/dist/src/{labs → ui-shell}/UiShell/createStore.d.ts +0 -0
  452. /package/dist/src/{labs → ui-shell}/UiShell/index.d.ts +0 -0
  453. /package/dist/src/{labs → ui-shell}/UiShell/useScrollState.d.ts +0 -0
  454. /package/dist/{labs → ui-shell}/UiShell/bufferLatest.js +0 -0
  455. /package/dist/{labs → ui-shell}/UiShell/createMessageBus.js +0 -0
  456. /package/dist/{labs → ui-shell}/UiShell/createStore.js +0 -0
  457. /package/dist/{labs → ui-shell}/UiShell/index.js +0 -0
  458. /package/dist/{labs → ui-shell}/UiShell/useScrollState.js +0 -0
  459. /package/src/{ButtonContext.tsx → Buttons/ButtonContext.tsx} +0 -0
  460. /package/src/{MenuContext.ts → Buttons/MenuContext.ts} +0 -0
  461. /package/src/labs/{DatePicker.types.d.ts → DatePickers/DatePicker.types.d.ts} +0 -0
  462. /package/src/labs/{useDateFieldsTranslations.ts → DatePickers/useDateFieldsTranslations.ts} +0 -0
  463. /package/src/{labs → ui-shell}/UiShell/bufferLatest.test.ts +0 -0
  464. /package/src/{labs → ui-shell}/UiShell/bufferLatest.ts +0 -0
  465. /package/src/{labs → ui-shell}/UiShell/createMessageBus.test.ts +0 -0
  466. /package/src/{labs → ui-shell}/UiShell/createMessageBus.ts +0 -0
  467. /package/src/{labs → ui-shell}/UiShell/createStore.test.ts +0 -0
  468. /package/src/{labs → ui-shell}/UiShell/createStore.ts +0 -0
  469. /package/src/{labs → ui-shell}/UiShell/index.ts +0 -0
  470. /package/src/{labs → ui-shell}/UiShell/useScrollState.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DataTablePagination.js","names":["memo","Box","Button","Support","ArrowLeftIcon","ArrowRightIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","paginationTypeValues","DataTablePagination","currentPage","currentNumberOfResults","isNextButtonDisabled","isPreviousButtonDisabled","onClickNext","onClickPrevious","paginationType","sx","display","gap","alignItems","children","label","variant","onClick","isDisabled","color","startIcon","component","endIcon","MemoizedDataTablePagination","displayName"],"sources":["../../src/labs/DataTablePagination.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo } from \"react\";\nimport { Box } from \"../Box\";\nimport { Button } from \"../Button\";\nimport { Support } from \"../Typography\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../icons.generated\";\n\nexport const paginationTypeValues = [\"paged\", \"loadMore\"] as const;\n\nexport type DataTablePaginationProps = {\n currentPage?: number;\n currentNumberOfResults?: number;\n isNextButtonDisabled?: boolean;\n isPreviousButtonDisabled?: boolean;\n onClickNext: () => void;\n onClickPrevious?: () => void;\n paginationType?: (typeof paginationTypeValues)[number];\n};\n\nconst DataTablePagination = ({\n currentPage,\n currentNumberOfResults,\n isNextButtonDisabled,\n isPreviousButtonDisabled,\n onClickNext,\n onClickPrevious,\n paginationType,\n}: DataTablePaginationProps) => {\n return (\n <Box sx={{ display: \"flex\", gap: 4, alignItems: \"center\" }}>\n {paginationType === \"loadMore\" ? (\n <>\n <Button\n label=\"Show more\"\n variant=\"secondary\"\n onClick={onClickNext}\n isDisabled={isNextButtonDisabled}\n />\n {currentNumberOfResults && (\n <Support color=\"textSecondary\">\n {currentNumberOfResults} results\n </Support>\n )}\n </>\n ) : (\n <>\n <Button\n label=\"Previous\"\n startIcon={<ArrowLeftIcon />}\n variant=\"secondary\"\n onClick={onClickPrevious}\n isDisabled={isPreviousButtonDisabled}\n />\n {currentPage && (\n <Box>\n <Support color=\"textSecondary\" component=\"span\">\n Page {currentPage}\n </Support>\n </Box>\n )}\n <Button\n label=\"Next\"\n endIcon={<ArrowRightIcon />}\n variant=\"secondary\"\n onClick={onClickNext}\n isDisabled={isNextButtonDisabled}\n />\n </>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataTablePagination = memo(DataTablePagination);\nMemoizedDataTablePagination.displayName = \"DataTablePagination\";\n\nexport { MemoizedDataTablePagination as DataTablePagination };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,OAAO;AAAC,SACpBC,GAAG;AAAA,SACHC,MAAM;AAAA,SACNC,OAAO;AAAA,SACPC,aAAa,EAAEC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAEtC,OAAO,MAAMC,oBAAoB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAU;AAYlE,MAAMC,mBAAmB,GAAGA,CAAC;EAC3BC,WAAW;EACXC,sBAAsB;EACtBC,oBAAoB;EACpBC,wBAAwB;EACxBC,WAAW;EACXC,eAAe;EACfC;AACwB,CAAC,KAAK;EAC9B,OACEb,IAAA,CAACN,GAAG;IAACoB,EAAE,EAAE;MAAEC,OAAO,EAAE,MAAM;MAAEC,GAAG,EAAE,CAAC;MAAEC,UAAU,EAAE;IAAS,CAAE;IAAAC,QAAA,EACxDL,cAAc,KAAK,UAAU,GAC5BX,KAAA,CAAAE,SAAA;MAAAc,QAAA,GACElB,IAAA,CAACL,MAAM;QACLwB,KAAK,EAAC,WAAW;QACjBC,OAAO,EAAC,WAAW;QACnBC,OAAO,EAAEV,WAAY;QACrBW,UAAU,EAAEb;MAAqB,CAClC,CAAC,EACDD,sBAAsB,IACrBN,KAAA,CAACN,OAAO;QAAC2B,KAAK,EAAC,eAAe;QAAAL,QAAA,GAC3BV,sBAAsB,EAAC,UAC1B;MAAA,CAAS,CACV;IAAA,CACD,CAAC,GAEHN,KAAA,CAAAE,SAAA;MAAAc,QAAA,GACElB,IAAA,CAACL,MAAM;QACLwB,KAAK,EAAC,UAAU;QAChBK,SAAS,EAAExB,IAAA,CAACH,aAAa,IAAE,CAAE;QAC7BuB,OAAO,EAAC,WAAW;QACnBC,OAAO,EAAET,eAAgB;QACzBU,UAAU,EAAEZ;MAAyB,CACtC,CAAC,EACDH,WAAW,IACVP,IAAA,CAACN,GAAG;QAAAwB,QAAA,EACFhB,KAAA,CAACN,OAAO;UAAC2B,KAAK,EAAC,eAAe;UAACE,SAAS,EAAC,MAAM;UAAAP,QAAA,GAAC,OACzC,EAACX,WAAW;QAAA,CACV;MAAC,CACP,CACN,EACDP,IAAA,CAACL,MAAM;QACLwB,KAAK,EAAC,MAAM;QACZO,OAAO,EAAE1B,IAAA,CAACF,cAAc,IAAE,CAAE;QAC5BsB,OAAO,EAAC,WAAW;QACnBC,OAAO,EAAEV,WAAY;QACrBW,UAAU,EAAEb;MAAqB,CAClC,CAAC;IAAA,CACF;EACH,CACE,CAAC;AAEV,CAAC;AAED,MAAMkB,2BAA2B,GAAGlC,IAAI,CAACa,mBAAmB,CAAC;AAC7DqB,2BAA2B,CAACC,WAAW,GAAG,qBAAqB;AAE/D,SAASD,2BAA2B,IAAIrB,mBAAmB"}
1
+ {"version":3,"file":"DataTablePagination.js","names":["memo","Box","Button","Support","ArrowLeftIcon","ArrowRightIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","paginationTypeValues","DataTablePagination","currentPage","currentNumberOfResults","isNextButtonDisabled","isPreviousButtonDisabled","onClickNext","onClickPrevious","paginationType","sx","display","gap","alignItems","children","label","variant","onClick","isDisabled","color","startIcon","component","endIcon","MemoizedDataTablePagination","displayName"],"sources":["../../src/labs/DataTablePagination.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo } from \"react\";\nimport { Box } from \"../Box\";\nimport { Button } from \"../Buttons\";\nimport { Support } from \"../Typography\";\nimport { ArrowLeftIcon, ArrowRightIcon } from \"../icons.generated\";\n\nexport const paginationTypeValues = [\"paged\", \"loadMore\"] as const;\n\nexport type DataTablePaginationProps = {\n currentPage?: number;\n currentNumberOfResults?: number;\n isNextButtonDisabled?: boolean;\n isPreviousButtonDisabled?: boolean;\n onClickNext: () => void;\n onClickPrevious?: () => void;\n paginationType?: (typeof paginationTypeValues)[number];\n};\n\nconst DataTablePagination = ({\n currentPage,\n currentNumberOfResults,\n isNextButtonDisabled,\n isPreviousButtonDisabled,\n onClickNext,\n onClickPrevious,\n paginationType,\n}: DataTablePaginationProps) => {\n return (\n <Box sx={{ display: \"flex\", gap: 4, alignItems: \"center\" }}>\n {paginationType === \"loadMore\" ? (\n <>\n <Button\n label=\"Show more\"\n variant=\"secondary\"\n onClick={onClickNext}\n isDisabled={isNextButtonDisabled}\n />\n {currentNumberOfResults && (\n <Support color=\"textSecondary\">\n {currentNumberOfResults} results\n </Support>\n )}\n </>\n ) : (\n <>\n <Button\n label=\"Previous\"\n startIcon={<ArrowLeftIcon />}\n variant=\"secondary\"\n onClick={onClickPrevious}\n isDisabled={isPreviousButtonDisabled}\n />\n {currentPage && (\n <Box>\n <Support color=\"textSecondary\" component=\"span\">\n Page {currentPage}\n </Support>\n </Box>\n )}\n <Button\n label=\"Next\"\n endIcon={<ArrowRightIcon />}\n variant=\"secondary\"\n onClick={onClickNext}\n isDisabled={isNextButtonDisabled}\n />\n </>\n )}\n </Box>\n );\n};\n\nconst MemoizedDataTablePagination = memo(DataTablePagination);\nMemoizedDataTablePagination.displayName = \"DataTablePagination\";\n\nexport { MemoizedDataTablePagination as DataTablePagination };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,OAAO;AAAC,SACpBC,GAAG;AAAA,SACHC,MAAM;AAAA,SACNC,OAAO;AAAA,SACPC,aAAa,EAAEC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAEtC,OAAO,MAAMC,oBAAoB,GAAG,CAAC,OAAO,EAAE,UAAU,CAAU;AAYlE,MAAMC,mBAAmB,GAAGA,CAAC;EAC3BC,WAAW;EACXC,sBAAsB;EACtBC,oBAAoB;EACpBC,wBAAwB;EACxBC,WAAW;EACXC,eAAe;EACfC;AACwB,CAAC,KAAK;EAC9B,OACEb,IAAA,CAACN,GAAG;IAACoB,EAAE,EAAE;MAAEC,OAAO,EAAE,MAAM;MAAEC,GAAG,EAAE,CAAC;MAAEC,UAAU,EAAE;IAAS,CAAE;IAAAC,QAAA,EACxDL,cAAc,KAAK,UAAU,GAC5BX,KAAA,CAAAE,SAAA;MAAAc,QAAA,GACElB,IAAA,CAACL,MAAM;QACLwB,KAAK,EAAC,WAAW;QACjBC,OAAO,EAAC,WAAW;QACnBC,OAAO,EAAEV,WAAY;QACrBW,UAAU,EAAEb;MAAqB,CAClC,CAAC,EACDD,sBAAsB,IACrBN,KAAA,CAACN,OAAO;QAAC2B,KAAK,EAAC,eAAe;QAAAL,QAAA,GAC3BV,sBAAsB,EAAC,UAC1B;MAAA,CAAS,CACV;IAAA,CACD,CAAC,GAEHN,KAAA,CAAAE,SAAA;MAAAc,QAAA,GACElB,IAAA,CAACL,MAAM;QACLwB,KAAK,EAAC,UAAU;QAChBK,SAAS,EAAExB,IAAA,CAACH,aAAa,IAAE,CAAE;QAC7BuB,OAAO,EAAC,WAAW;QACnBC,OAAO,EAAET,eAAgB;QACzBU,UAAU,EAAEZ;MAAyB,CACtC,CAAC,EACDH,WAAW,IACVP,IAAA,CAACN,GAAG;QAAAwB,QAAA,EACFhB,KAAA,CAACN,OAAO;UAAC2B,KAAK,EAAC,eAAe;UAACE,SAAS,EAAC,MAAM;UAAAP,QAAA,GAAC,OACzC,EAACX,WAAW;QAAA,CACV;MAAC,CACP,CACN,EACDP,IAAA,CAACL,MAAM;QACLwB,KAAK,EAAC,MAAM;QACZO,OAAO,EAAE1B,IAAA,CAACF,cAAc,IAAE,CAAE;QAC5BsB,OAAO,EAAC,WAAW;QACnBC,OAAO,EAAEV,WAAY;QACrBW,UAAU,EAAEb;MAAqB,CAClC,CAAC;IAAA,CACF;EACH,CACE,CAAC;AAEV,CAAC;AAED,MAAMkB,2BAA2B,GAAGlC,IAAI,CAACa,mBAAmB,CAAC;AAC7DqB,2BAA2B,CAACC,WAAW,GAAG,qBAAqB;AAE/D,SAASD,2BAA2B,IAAIrB,mBAAmB"}
@@ -14,9 +14,8 @@ import { memo, useCallback } from "react";
14
14
  import styled from "@emotion/styled";
15
15
  import { useTranslation } from "react-i18next";
16
16
  import { Box } from "../../Box.js";
17
- import { Button } from "../../Button.js";
17
+ import { Button, MenuButton } from "../../Buttons/index.js";
18
18
  import { ChevronDownIcon } from "../../icons.generated/index.js";
19
- import { MenuButton } from "../../MenuButton.js";
20
19
  import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
21
20
  import { jsx as _jsx } from "react/jsx-runtime";
22
21
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"BulkActionsMenu.js","names":["memo","useCallback","styled","useTranslation","Box","Button","ChevronDownIcon","MenuButton","useOdysseyDesignTokens","jsx","_jsx","jsxs","_jsxs","BulkActionsContainer","shouldForwardProp","prop","odysseyDesignTokens","display","gap","Spacing2","BulkActionsMenu","data","menuItems","rowSelection","setRowSelection","t","selectedRowCount","Object","values","filter","Boolean","length","handleSelectAll","rows","fromEntries","map","row","id","handleSelectNone","children","ariaLabel","buttonLabel","buttonVariant","endIcon","isDisabled","label","onClick","variant","MemoizedBulkActionsMenu","displayName"],"sources":["../../../src/labs/DataView/BulkActionsMenu.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, Dispatch, SetStateAction } from \"react\";\nimport { MRT_RowData, MRT_RowSelectionState } from \"material-react-table\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box\";\nimport { Button } from \"../../Button\";\nimport { ChevronDownIcon } from \"../../icons.generated\";\nimport { MenuButton } from \"../../MenuButton\";\nimport { UniversalProps } from \"./componentTypes\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\n\nexport type BulkActionsMenuProps = {\n data: MRT_RowData[];\n menuItems: UniversalProps[\"bulkActionMenuItems\"];\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n};\n\nconst BulkActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst BulkActionsMenu = ({\n data,\n menuItems,\n rowSelection,\n setRowSelection,\n}: BulkActionsMenuProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const selectedRowCount = Object.values(rowSelection).filter(Boolean).length;\n\n const handleSelectAll = useCallback(() => {\n const rows = Object.fromEntries(data.map((row) => [row.id, true]));\n setRowSelection(rows);\n }, [data, setRowSelection]);\n\n const handleSelectNone = useCallback(() => {\n setRowSelection({});\n }, [setRowSelection]);\n\n return (\n <BulkActionsContainer odysseyDesignTokens={odysseyDesignTokens}>\n {selectedRowCount > 0 && (\n <MenuButton\n ariaLabel=\"More actions\"\n buttonLabel={t(\"table.actions.selectsome\", { selectedRowCount })}\n buttonVariant=\"primary\"\n endIcon={<ChevronDownIcon />}\n >\n {menuItems?.(rowSelection)}\n </MenuButton>\n )}\n <Box>\n <Button\n isDisabled={selectedRowCount === data.length} // Disabled if all are selected\n label={t(\"table.actions.selectall\")}\n onClick={handleSelectAll}\n variant=\"secondary\"\n />\n <Button\n isDisabled={selectedRowCount === 0} // Disabled if none are selected\n label={t(\"table.actions.selectnone\")}\n onClick={handleSelectNone}\n variant=\"secondary\"\n />\n </Box>\n </BulkActionsContainer>\n );\n};\n\nconst MemoizedBulkActionsMenu = memo(BulkActionsMenu);\nMemoizedBulkActionsMenu.displayName = \"BulkActionsMenu\";\n\nexport { MemoizedBulkActionsMenu as BulkActionsMenu };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,WAAW,QAAkC,OAAO;AAEnE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,cAAc,QAAQ,eAAe;AAAC,SAEtCC,GAAG;AAAA,SACHC,MAAM;AAAA,SACNC,eAAe;AAAA,SACfC,UAAU;AAAA,SAIjBC,sBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAUxB,MAAMC,oBAAoB,GAAGX,MAAM,CAAC,KAAK,EAAE;EACzCY,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAEC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EAC/BC,OAAO,EAAE,MAAM;EACfC,GAAG,EAAEF,mBAAmB,CAACG;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,eAAe,GAAGA,CAAC;EACvBC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AACoB,CAAC,KAAK;EAC1B,MAAMR,mBAAmB,GAAGR,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEiB;EAAE,CAAC,GAAGtB,cAAc,CAAC,CAAC;EAE9B,MAAMuB,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACL,YAAY,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;EAE3E,MAAMC,eAAe,GAAG/B,WAAW,CAAC,MAAM;IACxC,MAAMgC,IAAI,GAAGN,MAAM,CAACO,WAAW,CAACb,IAAI,CAACc,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAClEb,eAAe,CAACS,IAAI,CAAC;EACvB,CAAC,EAAE,CAACZ,IAAI,EAAEG,eAAe,CAAC,CAAC;EAE3B,MAAMc,gBAAgB,GAAGrC,WAAW,CAAC,MAAM;IACzCuB,eAAe,CAAC,CAAC,CAAC,CAAC;EACrB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,OACEZ,KAAA,CAACC,oBAAoB;IAACG,mBAAmB,EAAEA,mBAAoB;IAAAuB,QAAA,GAC5Db,gBAAgB,GAAG,CAAC,IACnBhB,IAAA,CAACH,UAAU;MACTiC,SAAS,EAAC,cAAc;MACxBC,WAAW,EAAEhB,CAAC,CAAC,0BAA0B,EAAE;QAAEC;MAAiB,CAAC,CAAE;MACjEgB,aAAa,EAAC,SAAS;MACvBC,OAAO,EAAEjC,IAAA,CAACJ,eAAe,IAAE,CAAE;MAAAiC,QAAA,EAE5BjB,SAAS,GAAGC,YAAY;IAAC,CAChB,CACb,EACDX,KAAA,CAACR,GAAG;MAAAmC,QAAA,GACF7B,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAKL,IAAI,CAACU,MAAO;QAC7Cc,KAAK,EAAEpB,CAAC,CAAC,yBAAyB,CAAE;QACpCqB,OAAO,EAAEd,eAAgB;QACzBe,OAAO,EAAC;MAAW,CACpB,CAAC,EACFrC,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAK,CAAE;QACnCmB,KAAK,EAAEpB,CAAC,CAAC,0BAA0B,CAAE;QACrCqB,OAAO,EAAER,gBAAiB;QAC1BS,OAAO,EAAC;MAAW,CACpB,CAAC;IAAA,CACC,CAAC;EAAA,CACc,CAAC;AAE3B,CAAC;AAED,MAAMC,uBAAuB,GAAGhD,IAAI,CAACoB,eAAe,CAAC;AACrD4B,uBAAuB,CAACC,WAAW,GAAG,iBAAiB;AAEvD,SAASD,uBAAuB,IAAI5B,eAAe"}
1
+ {"version":3,"file":"BulkActionsMenu.js","names":["memo","useCallback","styled","useTranslation","Box","Button","MenuButton","ChevronDownIcon","useOdysseyDesignTokens","jsx","_jsx","jsxs","_jsxs","BulkActionsContainer","shouldForwardProp","prop","odysseyDesignTokens","display","gap","Spacing2","BulkActionsMenu","data","menuItems","rowSelection","setRowSelection","t","selectedRowCount","Object","values","filter","Boolean","length","handleSelectAll","rows","fromEntries","map","row","id","handleSelectNone","children","ariaLabel","buttonLabel","buttonVariant","endIcon","isDisabled","label","onClick","variant","MemoizedBulkActionsMenu","displayName"],"sources":["../../../src/labs/DataView/BulkActionsMenu.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useCallback, Dispatch, SetStateAction } from \"react\";\nimport { MRT_RowData, MRT_RowSelectionState } from \"material-react-table\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box\";\nimport { Button, MenuButton } from \"../../Buttons\";\nimport { ChevronDownIcon } from \"../../icons.generated\";\nimport { UniversalProps } from \"./componentTypes\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\n\nexport type BulkActionsMenuProps<TData extends MRT_RowData> = {\n data: MRT_RowData[];\n menuItems: UniversalProps<TData>[\"bulkActionMenuItems\"];\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n};\n\nconst BulkActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst BulkActionsMenu = <TData extends MRT_RowData>({\n data,\n menuItems,\n rowSelection,\n setRowSelection,\n}: BulkActionsMenuProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const selectedRowCount = Object.values(rowSelection).filter(Boolean).length;\n\n const handleSelectAll = useCallback(() => {\n const rows = Object.fromEntries(data.map((row) => [row.id, true]));\n setRowSelection(rows);\n }, [data, setRowSelection]);\n\n const handleSelectNone = useCallback(() => {\n setRowSelection({});\n }, [setRowSelection]);\n\n return (\n <BulkActionsContainer odysseyDesignTokens={odysseyDesignTokens}>\n {selectedRowCount > 0 && (\n <MenuButton\n ariaLabel=\"More actions\"\n buttonLabel={t(\"table.actions.selectsome\", { selectedRowCount })}\n buttonVariant=\"primary\"\n endIcon={<ChevronDownIcon />}\n >\n {menuItems?.(rowSelection)}\n </MenuButton>\n )}\n <Box>\n <Button\n isDisabled={selectedRowCount === data.length} // Disabled if all are selected\n label={t(\"table.actions.selectall\")}\n onClick={handleSelectAll}\n variant=\"secondary\"\n />\n <Button\n isDisabled={selectedRowCount === 0} // Disabled if none are selected\n label={t(\"table.actions.selectnone\")}\n onClick={handleSelectNone}\n variant=\"secondary\"\n />\n </Box>\n </BulkActionsContainer>\n );\n};\n\nconst MemoizedBulkActionsMenu = memo(BulkActionsMenu);\nMemoizedBulkActionsMenu.displayName = \"BulkActionsMenu\";\n\nexport { MemoizedBulkActionsMenu as BulkActionsMenu };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,WAAW,QAAkC,OAAO;AAEnE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,SAASC,cAAc,QAAQ,eAAe;AAAC,SAEtCC,GAAG;AAAA,SACHC,MAAM,EAAEC,UAAU;AAAA,SAClBC,eAAe;AAAA,SAItBC,sBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAUxB,MAAMC,oBAAoB,GAAGX,MAAM,CAAC,KAAK,EAAE;EACzCY,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAEC,CAAC;EAAEC;AAAoB,CAAC,MAAM;EAC/BC,OAAO,EAAE,MAAM;EACfC,GAAG,EAAEF,mBAAmB,CAACG;AAC3B,CAAC,CAAC,CAAC;AAEH,MAAMC,eAAe,GAAGA,CAA4B;EAClDC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC;AAC2B,CAAC,KAAK;EACjC,MAAMR,mBAAmB,GAAGR,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEiB;EAAE,CAAC,GAAGtB,cAAc,CAAC,CAAC;EAE9B,MAAMuB,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACL,YAAY,CAAC,CAACM,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;EAE3E,MAAMC,eAAe,GAAG/B,WAAW,CAAC,MAAM;IACxC,MAAMgC,IAAI,GAAGN,MAAM,CAACO,WAAW,CAACb,IAAI,CAACc,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAClEb,eAAe,CAACS,IAAI,CAAC;EACvB,CAAC,EAAE,CAACZ,IAAI,EAAEG,eAAe,CAAC,CAAC;EAE3B,MAAMc,gBAAgB,GAAGrC,WAAW,CAAC,MAAM;IACzCuB,eAAe,CAAC,CAAC,CAAC,CAAC;EACrB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,OACEZ,KAAA,CAACC,oBAAoB;IAACG,mBAAmB,EAAEA,mBAAoB;IAAAuB,QAAA,GAC5Db,gBAAgB,GAAG,CAAC,IACnBhB,IAAA,CAACJ,UAAU;MACTkC,SAAS,EAAC,cAAc;MACxBC,WAAW,EAAEhB,CAAC,CAAC,0BAA0B,EAAE;QAAEC;MAAiB,CAAC,CAAE;MACjEgB,aAAa,EAAC,SAAS;MACvBC,OAAO,EAAEjC,IAAA,CAACH,eAAe,IAAE,CAAE;MAAAgC,QAAA,EAE5BjB,SAAS,GAAGC,YAAY;IAAC,CAChB,CACb,EACDX,KAAA,CAACR,GAAG;MAAAmC,QAAA,GACF7B,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAKL,IAAI,CAACU,MAAO;QAC7Cc,KAAK,EAAEpB,CAAC,CAAC,yBAAyB,CAAE;QACpCqB,OAAO,EAAEd,eAAgB;QACzBe,OAAO,EAAC;MAAW,CACpB,CAAC,EACFrC,IAAA,CAACL,MAAM;QACLuC,UAAU,EAAElB,gBAAgB,KAAK,CAAE;QACnCmB,KAAK,EAAEpB,CAAC,CAAC,0BAA0B,CAAE;QACrCqB,OAAO,EAAER,gBAAiB;QAC1BS,OAAO,EAAC;MAAW,CACpB,CAAC;IAAA,CACC,CAAC;EAAA,CACc,CAAC;AAE3B,CAAC;AAED,MAAMC,uBAAuB,GAAGhD,IAAI,CAACoB,eAAe,CAAC;AACrD4B,uBAAuB,CAACC,WAAW,GAAG,iBAAiB;AAEvD,SAASD,uBAAuB,IAAI5B,eAAe"}
@@ -85,17 +85,18 @@ const CardLayoutContent = ({
85
85
  const {
86
86
  updateRowOrder
87
87
  } = rowReorderingUtilities;
88
- return _jsx(StackContainer, {
89
- odysseyDesignTokens: odysseyDesignTokens,
90
- currentLayout: currentLayout,
91
- maxGridColumns: cardLayoutOptions.maxGridColumns ?? 3,
88
+ return _jsx(Box, {
92
89
  children: isLoading ? _jsx(LoadingContainer, {
93
90
  odysseyDesignTokens: odysseyDesignTokens,
94
91
  children: _jsx(CircularProgress, {})
95
92
  }) : _jsx(_Fragment, {
96
93
  children: !data || data.length === 0 || isEmpty || isNoResults ? _jsx(Box, {
97
94
  children: emptyState
98
- }) : _jsx(_Fragment, {
95
+ }) : _jsx(StackContainer, {
96
+ odysseyDesignTokens: odysseyDesignTokens,
97
+ currentLayout: currentLayout,
98
+ maxGridColumns: cardLayoutOptions.maxGridColumns ?? 3,
99
+ role: "list",
99
100
  children: data.map((row, index) => {
100
101
  const {
101
102
  overline,
@@ -1 +1 @@
1
- {"version":3,"file":"CardLayoutContent.js","names":["memo","useCallback","styled","Box","CircularProgress","useOdysseyDesignTokens","RowActions","DataCard","jsx","_jsx","Fragment","_Fragment","StackContainer","shouldForwardProp","prop","odysseyDesignTokens","currentLayout","maxGridColumns","display","flexDirection","columnGap","Spacing5","gridTemplateColumns","LoadingContainer","alignItems","justifyContent","width","paddingBlock","CheckboxContainer","marginBlockStart","Spacing1","CardLayoutContent","data","emptyState","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","setRowSelection","cardLayoutOptions","totalRows","handleRowSelectionChange","row","Object","fromEntries","id","entries","filter","key","concat","updateRowOrder","children","length","map","index","overline","title","description","image","variant","itemProps","currentIndex","pageIndex","pageSize","Accessory","_Checkbox","checked","onChange","renderDetailPanel","menuButtonChildren","rowActionMenuItems","rowIndex","undefined","MemoizedCardLayoutContent","displayName"],"sources":["../../../src/labs/DataView/CardLayoutContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Dispatch, ReactNode, SetStateAction, memo, useCallback } from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_TableInstance,\n} from \"material-react-table\";\n\nimport { Box } from \"../../Box\";\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { CircularProgress } from \"../../CircularProgress\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { RowActions } from \"./RowActions\";\nimport { DataCard } from \"./DataCard\";\nimport { CardLayout, CardLayoutProps, UniversalProps } from \"./componentTypes\";\n\nexport type CardLayoutContentProps = {\n currentLayout: CardLayout;\n data: MRT_RowData[];\n draggingRow?: MRT_Row<MRT_RowData> | null;\n emptyState: ReactNode;\n getRowId: UniversalProps[\"getRowId\"];\n hasRowReordering: UniversalProps[\"hasRowReordering\"];\n hasRowSelection: UniversalProps[\"hasRowSelection\"];\n isEmpty?: boolean;\n isLoading: boolean;\n isNoResults?: boolean;\n isRowReorderingDisabled?: boolean;\n onReorderRows: UniversalProps[\"onReorderRows\"];\n pagination: { pageIndex: number; pageSize: number };\n rowReorderingUtilities: {\n dragHandleStyles: CSSObject;\n dragHandleText: {\n title: string;\n \"aria-label\": string;\n };\n draggableTableBodyRowClassName: ({\n currentRowId,\n draggingRowId,\n hoveredRowId,\n }: {\n currentRowId: string;\n draggingRowId?: string;\n hoveredRowId?: string;\n }) => string | undefined;\n handleDragHandleKeyDown: ({\n table,\n row,\n event,\n }: {\n table: MRT_TableInstance<MRT_RowData>;\n row: MRT_Row<MRT_RowData>;\n event: React.KeyboardEvent<HTMLButtonElement>;\n }) => void;\n handleDragHandleOnDragCapture: (\n table: MRT_TableInstance<MRT_RowData>,\n ) => void;\n handleDragHandleOnDragEnd: (table: MRT_TableInstance<MRT_RowData>) => void;\n resetDraggingAndHoveredRow: (table: MRT_TableInstance<MRT_RowData>) => void;\n updateRowOrder: ({\n rowId,\n newRowIndex,\n }: {\n rowId: string;\n newRowIndex: number;\n }) => void;\n };\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n cardLayoutOptions: CardLayoutProps;\n totalRows: UniversalProps[\"totalRows\"];\n};\n\nconst StackContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"currentLayout\" &&\n prop !== \"maxGridColumns\",\n})<{\n odysseyDesignTokens: DesignTokens;\n currentLayout: CardLayout;\n maxGridColumns: number;\n}>(({ odysseyDesignTokens, currentLayout, maxGridColumns }) => ({\n display: currentLayout === \"list\" ? \"flex\" : \"grid\",\n flexDirection: \"column\",\n columnGap: odysseyDesignTokens.Spacing5,\n\n ...(currentLayout === \"grid\" && {\n [`@media (max-width: 720px)`]: {\n gridTemplateColumns: \"repeat(1, 1fr)\",\n },\n [`@media (min-width: 720px) and (max-width: 960px)`]: {\n gridTemplateColumns: \"repeat(2, 1fr)\",\n },\n [`@media (min-width: 960px)`]: {\n gridTemplateColumns: `repeat(${maxGridColumns}, 1fr)`,\n },\n }),\n}));\n\nconst LoadingContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n paddingBlock: odysseyDesignTokens.Spacing5,\n}));\n\nconst CheckboxContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n marginBlockStart: `-${odysseyDesignTokens.Spacing1}`,\n}));\n\nconst CardLayoutContent = ({\n currentLayout,\n data,\n emptyState,\n hasRowReordering,\n hasRowSelection,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n onReorderRows,\n pagination,\n rowReorderingUtilities,\n rowSelection,\n setRowSelection,\n cardLayoutOptions,\n totalRows,\n}: CardLayoutContentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const handleRowSelectionChange = useCallback(\n (row: MRT_RowData) => {\n setRowSelection((rowSelection) =>\n Object.fromEntries(\n row.id in rowSelection\n ? Object.entries(rowSelection).filter(([key]) => key !== row.id)\n : Object.entries(rowSelection).concat([[row.id, true]]),\n ),\n );\n },\n [setRowSelection],\n );\n\n const { updateRowOrder } = rowReorderingUtilities;\n\n return (\n <StackContainer\n odysseyDesignTokens={odysseyDesignTokens}\n currentLayout={currentLayout}\n maxGridColumns={cardLayoutOptions.maxGridColumns ?? 3}\n >\n {isLoading ? (\n <LoadingContainer odysseyDesignTokens={odysseyDesignTokens}>\n <CircularProgress />\n </LoadingContainer>\n ) : (\n <>\n {!data || data.length === 0 || isEmpty || isNoResults ? (\n <Box>{emptyState}</Box>\n ) : (\n <>\n {data.map((row: MRT_RowData, index: number) => {\n const {\n overline,\n title,\n description,\n image,\n children,\n variant,\n } = cardLayoutOptions.itemProps(row);\n const currentIndex =\n index + (pagination.pageIndex - 1) * pagination.pageSize;\n\n return (\n <DataCard\n Accessory={\n hasRowSelection && (\n // Negative margin to counteract the checkbox's inbuilt spacing\n <CheckboxContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <MuiCheckbox\n checked={rowSelection[row.id] ?? false}\n onChange={() => handleRowSelectionChange(row)}\n />\n </CheckboxContainer>\n )\n }\n children={children}\n description={description}\n renderDetailPanel={cardLayoutOptions.renderDetailPanel}\n row={row}\n image={image}\n key={row.id}\n menuButtonChildren={\n (cardLayoutOptions.rowActionMenuItems ||\n hasRowReordering) && (\n <RowActions\n row={row}\n rowIndex={currentIndex}\n rowActionMenuItems={\n cardLayoutOptions.rowActionMenuItems\n }\n isRowReorderingDisabled={isRowReorderingDisabled}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows\n ? updateRowOrder\n : undefined\n }\n />\n )\n }\n overline={overline}\n title={title}\n variant={variant}\n />\n );\n })}\n </>\n )}\n </>\n )}\n </StackContainer>\n );\n};\n\nconst MemoizedCardLayoutContent = memo(CardLayoutContent);\nMemoizedCardLayoutContent.displayName = \"CardLayoutContent\";\n\nexport { MemoizedCardLayoutContent as CardLayoutContent };\n"],"mappings":"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"}
1
+ {"version":3,"file":"CardLayoutContent.js","names":["memo","useCallback","styled","Box","CircularProgress","useOdysseyDesignTokens","RowActions","DataCard","jsx","_jsx","Fragment","_Fragment","StackContainer","shouldForwardProp","prop","odysseyDesignTokens","currentLayout","maxGridColumns","display","flexDirection","columnGap","Spacing5","gridTemplateColumns","LoadingContainer","alignItems","justifyContent","width","paddingBlock","CheckboxContainer","marginBlockStart","Spacing1","CardLayoutContent","data","emptyState","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","setRowSelection","cardLayoutOptions","totalRows","handleRowSelectionChange","row","Object","fromEntries","id","entries","filter","key","concat","updateRowOrder","children","length","role","map","index","overline","title","description","image","variant","itemProps","currentIndex","pageIndex","pageSize","Accessory","_Checkbox","checked","onChange","renderDetailPanel","menuButtonChildren","rowActionMenuItems","rowIndex","undefined","MemoizedCardLayoutContent","displayName"],"sources":["../../../src/labs/DataView/CardLayoutContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Dispatch, ReactNode, SetStateAction, memo, useCallback } from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_TableInstance,\n} from \"material-react-table\";\n\nimport { Box } from \"../../Box\";\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { CircularProgress } from \"../../CircularProgress\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { RowActions } from \"./RowActions\";\nimport { DataCard } from \"./DataCard\";\nimport { CardLayout, CardLayoutProps, UniversalProps } from \"./componentTypes\";\n\nexport type CardLayoutContentProps<TData extends MRT_RowData> = {\n currentLayout: CardLayout;\n data: TData[];\n draggingRow?: MRT_Row<TData> | null;\n emptyState: ReactNode;\n getRowId: UniversalProps<TData>[\"getRowId\"];\n hasRowReordering: UniversalProps<TData>[\"hasRowReordering\"];\n hasRowSelection: UniversalProps<TData>[\"hasRowSelection\"];\n isEmpty?: boolean;\n isLoading: boolean;\n isNoResults?: boolean;\n isRowReorderingDisabled?: boolean;\n onReorderRows: UniversalProps<TData>[\"onReorderRows\"];\n pagination: { pageIndex: number; pageSize: number };\n rowReorderingUtilities: {\n dragHandleStyles: CSSObject;\n dragHandleText: {\n title: string;\n \"aria-label\": string;\n };\n draggableTableBodyRowClassName: ({\n currentRowId,\n draggingRowId,\n hoveredRowId,\n }: {\n currentRowId: string;\n draggingRowId?: string;\n hoveredRowId?: string;\n }) => string | undefined;\n handleDragHandleKeyDown: ({\n table,\n row,\n event,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n event: React.KeyboardEvent<HTMLButtonElement>;\n }) => void;\n handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;\n handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;\n resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;\n updateRowOrder: ({\n rowId,\n newRowIndex,\n }: {\n rowId: string;\n newRowIndex: number;\n }) => void;\n };\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n cardLayoutOptions: CardLayoutProps<TData>;\n totalRows: UniversalProps<TData>[\"totalRows\"];\n};\ntype CardLayoutContentComponent = (<TData extends MRT_RowData>(\n props: CardLayoutContentProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StackContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"currentLayout\" &&\n prop !== \"maxGridColumns\",\n})<{\n odysseyDesignTokens: DesignTokens;\n currentLayout: CardLayout;\n maxGridColumns: number;\n}>(({ odysseyDesignTokens, currentLayout, maxGridColumns }) => ({\n display: currentLayout === \"list\" ? \"flex\" : \"grid\",\n flexDirection: \"column\",\n columnGap: odysseyDesignTokens.Spacing5,\n\n ...(currentLayout === \"grid\" && {\n [`@media (max-width: 720px)`]: {\n gridTemplateColumns: \"repeat(1, 1fr)\",\n },\n [`@media (min-width: 720px) and (max-width: 960px)`]: {\n gridTemplateColumns: \"repeat(2, 1fr)\",\n },\n [`@media (min-width: 960px)`]: {\n gridTemplateColumns: `repeat(${maxGridColumns}, 1fr)`,\n },\n }),\n}));\n\nconst LoadingContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n paddingBlock: odysseyDesignTokens.Spacing5,\n}));\n\nconst CheckboxContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n marginBlockStart: `-${odysseyDesignTokens.Spacing1}`,\n}));\n\nconst CardLayoutContent = <TData extends MRT_RowData>({\n currentLayout,\n data,\n emptyState,\n hasRowReordering,\n hasRowSelection,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n onReorderRows,\n pagination,\n rowReorderingUtilities,\n rowSelection,\n setRowSelection,\n cardLayoutOptions,\n totalRows,\n}: CardLayoutContentProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const handleRowSelectionChange = useCallback(\n (row: MRT_RowData) => {\n setRowSelection((rowSelection) =>\n Object.fromEntries(\n row.id in rowSelection\n ? Object.entries(rowSelection).filter(([key]) => key !== row.id)\n : Object.entries(rowSelection).concat([[row.id, true]]),\n ),\n );\n },\n [setRowSelection],\n );\n\n const { updateRowOrder } = rowReorderingUtilities;\n\n return (\n <Box>\n {isLoading ? (\n <LoadingContainer odysseyDesignTokens={odysseyDesignTokens}>\n <CircularProgress />\n </LoadingContainer>\n ) : (\n <>\n {!data || data.length === 0 || isEmpty || isNoResults ? (\n <Box>{emptyState}</Box>\n ) : (\n <StackContainer\n odysseyDesignTokens={odysseyDesignTokens}\n currentLayout={currentLayout}\n maxGridColumns={cardLayoutOptions.maxGridColumns ?? 3}\n role=\"list\"\n >\n {data.map((row: TData, index: number) => {\n const {\n overline,\n title,\n description,\n image,\n children,\n variant,\n } = cardLayoutOptions.itemProps(row);\n const currentIndex =\n index + (pagination.pageIndex - 1) * pagination.pageSize;\n\n return (\n <DataCard\n Accessory={\n hasRowSelection && (\n // Negative margin to counteract the checkbox's inbuilt spacing\n <CheckboxContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <MuiCheckbox\n checked={rowSelection[row.id] ?? false}\n onChange={() => handleRowSelectionChange(row)}\n />\n </CheckboxContainer>\n )\n }\n children={children}\n description={description}\n renderDetailPanel={cardLayoutOptions.renderDetailPanel}\n row={row}\n image={image}\n key={row.id}\n menuButtonChildren={\n (cardLayoutOptions.rowActionMenuItems ||\n hasRowReordering) && (\n <RowActions\n row={row}\n rowIndex={currentIndex}\n rowActionMenuItems={\n cardLayoutOptions.rowActionMenuItems\n }\n isRowReorderingDisabled={isRowReorderingDisabled}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows\n ? updateRowOrder\n : undefined\n }\n />\n )\n }\n overline={overline}\n title={title}\n variant={variant}\n />\n );\n })}\n </StackContainer>\n )}\n </>\n )}\n </Box>\n );\n};\n\nconst MemoizedCardLayoutContent = memo(\n CardLayoutContent,\n) as CardLayoutContentComponent;\nMemoizedCardLayoutContent.displayName = \"CardLayoutContent\";\n\nexport { MemoizedCardLayoutContent as CardLayoutContent };\n"],"mappings":"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"}
@@ -19,10 +19,9 @@ import { memo, useMemo, useState } from "react";
19
19
  import styled from "@emotion/styled";
20
20
  import { useTranslation } from "react-i18next";
21
21
  import { Box } from "../../Box.js";
22
- import { ButtonContext } from "../../ButtonContext.js";
22
+ import { ButtonContext, MenuButton } from "../../Buttons/index.js";
23
23
  import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
24
24
  import { Heading5, Paragraph, Support } from "../../Typography.js";
25
- import { MenuButton } from "../../MenuButton.js";
26
25
  import { ChevronDownIcon, ChevronUpIcon, MoreIcon } from "../../icons.generated/index.js";
27
26
  import { jsx as _jsx } from "react/jsx-runtime";
28
27
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -63,7 +62,7 @@ const MenuButtonContainer = styled("div", {
63
62
  }) => ({
64
63
  position: "absolute",
65
64
  right: odysseyDesignTokens.Spacing3,
66
- top: odysseyDesignTokens.Spacing3,
65
+ top: variant === "compact" ? odysseyDesignTokens.Spacing4 : odysseyDesignTokens.Spacing3,
67
66
  height: variant === "compact" ? CARD_IMAGE_SIZE_COMPACT : "auto",
68
67
  display: "flex",
69
68
  alignItems: "center"
@@ -77,12 +76,14 @@ const CardInnerContainer = styled("div", {
77
76
  gap: odysseyDesignTokens.Spacing3
78
77
  }));
79
78
  const CardImageAndContentContainer = styled("div", {
80
- shouldForwardProp: prop => prop !== "variant"
79
+ shouldForwardProp: prop => prop !== "variant" && prop !== "centerContent"
81
80
  })(({
82
- variant
81
+ variant,
82
+ centerContent
83
83
  }) => ({
84
84
  display: "flex",
85
- flexDirection: variant === "tile" ? "column" : "row"
85
+ flexDirection: variant === "tile" ? "column" : "row",
86
+ alignItems: centerContent ? "center" : "flex-start"
86
87
  }));
87
88
  const CardContent = styled("div", {
88
89
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
@@ -90,8 +91,11 @@ const CardContent = styled("div", {
90
91
  odysseyDesignTokens,
91
92
  variant
92
93
  }) => ({
93
- "& > .MuiTypography-h5": {
94
+ "& > .MuiTypography-h5:not(:last-child)": {
94
95
  marginBlockEnd: `${variant === "compact" ? odysseyDesignTokens.Spacing1 : odysseyDesignTokens.Spacing3} !important`
96
+ },
97
+ "& > *:last-child": {
98
+ marginBlockEnd: 0
95
99
  }
96
100
  }));
97
101
  const CardChildrenContainer = styled("div", {
@@ -150,48 +154,56 @@ const DataCard = ({
150
154
  children: [AccessoryProp, renderDetailPanel && ExpansionToggle]
151
155
  });
152
156
  }, [AccessoryProp, ExpansionToggle, odysseyDesignTokens, renderDetailPanel, variant]);
153
- const cardContent = useMemo(() => _jsxs(CardInnerContainer, {
154
- odysseyDesignTokens: odysseyDesignTokens,
155
- children: [(AccessoryProp || renderDetailPanel) && _jsx(Box, {
156
- children: Accessory
157
- }), _jsxs(CardImageAndContentContainer, {
158
- variant: variant,
159
- children: [image && _jsx(ImageContainer, {
160
- odysseyDesignTokens: odysseyDesignTokens,
161
- hasMenuButtonChildren: Boolean(menuButtonChildren),
162
- variant: variant,
163
- children: image
164
- }), _jsxs(CardContent, {
165
- odysseyDesignTokens: odysseyDesignTokens,
157
+ const cardContent = useMemo(() => {
158
+ const countDefinedProps = props => {
159
+ return props.filter(prop => prop !== undefined).length;
160
+ };
161
+ const shouldCenterContent = variant === "compact" && (!renderDetailPanel || !isDetailPanelOpen) && countDefinedProps([title, description, overline, button, children]) <= 2;
162
+ return _jsxs(CardInnerContainer, {
163
+ odysseyDesignTokens: odysseyDesignTokens,
164
+ children: [(AccessoryProp || renderDetailPanel) && _jsx(Box, {
165
+ children: Accessory
166
+ }), _jsxs(CardImageAndContentContainer, {
166
167
  variant: variant,
167
- children: [overline && _jsx(Support, {
168
- component: "div",
169
- children: overline
170
- }), title && _jsx(Heading5, {
171
- component: "div",
172
- children: title
173
- }), description && _jsx(Paragraph, {
174
- color: "textSecondary",
175
- children: description
176
- }), button && _jsx(_CardActions, {
177
- children: _jsx(ButtonContext.Provider, {
178
- value: buttonProviderValue,
179
- children: button
180
- })
181
- }), children && _jsx(CardChildrenContainer, {
168
+ centerContent: shouldCenterContent,
169
+ children: [image && _jsx(ImageContainer, {
182
170
  odysseyDesignTokens: odysseyDesignTokens,
183
- children: children
184
- }), renderDetailPanel && isDetailPanelOpen && _jsx(CardChildrenContainer, {
171
+ hasMenuButtonChildren: Boolean(menuButtonChildren),
172
+ variant: variant,
173
+ children: image
174
+ }), _jsxs(CardContent, {
185
175
  odysseyDesignTokens: odysseyDesignTokens,
186
- children: renderDetailPanel({
187
- row
188
- })
176
+ variant: variant,
177
+ children: [overline && _jsx(Support, {
178
+ component: "div",
179
+ children: overline
180
+ }), title && _jsx(Heading5, {
181
+ component: "div",
182
+ children: title
183
+ }), description && _jsx(Paragraph, {
184
+ color: "textSecondary",
185
+ children: description
186
+ }), button && _jsx(_CardActions, {
187
+ children: _jsx(ButtonContext.Provider, {
188
+ value: buttonProviderValue,
189
+ children: button
190
+ })
191
+ }), children && _jsx(CardChildrenContainer, {
192
+ odysseyDesignTokens: odysseyDesignTokens,
193
+ children: children
194
+ }), renderDetailPanel && isDetailPanelOpen && _jsx(CardChildrenContainer, {
195
+ odysseyDesignTokens: odysseyDesignTokens,
196
+ children: renderDetailPanel({
197
+ row
198
+ })
199
+ })]
189
200
  })]
190
201
  })]
191
- })]
192
- }), [odysseyDesignTokens, AccessoryProp, renderDetailPanel, Accessory, variant, image, menuButtonChildren, overline, title, description, button, children, isDetailPanelOpen, row]);
202
+ });
203
+ }, [odysseyDesignTokens, AccessoryProp, renderDetailPanel, Accessory, variant, image, menuButtonChildren, overline, title, description, button, children, isDetailPanelOpen, row]);
193
204
  return _jsxs(_Card, {
194
205
  className: `${onClick ? "isClickable" : ""} ${Accessory ? "hasAccessory" : ""} ods-card-${variant}`,
206
+ role: "listitem",
195
207
  children: [onClick ? _jsx(_CardActionArea, {
196
208
  onClick: onClick,
197
209
  children: cardContent
@@ -1 +1 @@
1
- {"version":3,"file":"DataCard.js","names":["memo","useMemo","useState","styled","useTranslation","Box","ButtonContext","useOdysseyDesignTokens","Heading5","Paragraph","Support","MenuButton","ChevronDownIcon","ChevronUpIcon","MoreIcon","jsx","_jsx","jsxs","_jsxs","CARD_IMAGE_SIZE","CARD_IMAGE_SIZE_COMPACT","cardVariantValues","AccessoryContainer","shouldForwardProp","prop","odysseyDesignTokens","variant","display","flexDirection","alignItems","gap","Spacing2","height","ImageContainer","hasMenuButtonChildren","maxHeight","marginBlockEnd","Spacing5","paddingRight","MenuButtonContainer","position","right","Spacing3","top","CardInnerContainer","CardImageAndContentContainer","CardContent","Spacing1","CardChildrenContainer","marginBlockStart","AccessoryPlaceholder","_IconButton","visibility","buttonProviderValue","isFullWidth","DataCard","Accessory","AccessoryProp","button","children","description","image","menuButtonChildren","onClick","overline","renderDetailPanel","row","title","t","isDetailPanelOpen","setIsDetailPanelOpen","ExpansionToggle","_Tooltip","disabled","cardContent","Boolean","component","color","_CardActions","Provider","value","_Card","className","_CardActionArea","endIcon","ariaLabel","buttonVariant","menuAlignment","size","tooltipText","MemoizedDataCard","displayName"],"sources":["../../../src/labs/DataView/DataCard.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MouseEventHandler,\n ReactElement,\n memo,\n useMemo,\n ReactNode,\n useState,\n} from \"react\";\nimport {\n IconButton as MuiIconButton,\n Card as MuiCard,\n CardActions as MuiCardActions,\n CardActionArea as MuiCardActionArea,\n Tooltip as MuiTooltip,\n} from \"@mui/material\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box\";\nimport { Button } from \"../../Button\";\nimport { ButtonContext } from \"../../ButtonContext\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { Heading5, Paragraph, Support } from \"../../Typography\";\nimport { MenuButton, MenuButtonProps } from \"../../MenuButton\";\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n MoreIcon,\n} from \"../../icons.generated\";\nimport { CardLayoutProps } from \"./componentTypes\";\nimport { MRT_RowData } from \"material-react-table\";\n\nexport const CARD_IMAGE_SIZE = \"64px\";\nexport const CARD_IMAGE_SIZE_COMPACT = \"48px\";\n\nexport const cardVariantValues = [\"tile\", \"stack\", \"compact\"] as const;\n\nexport type DataCardProps = {\n children?: ReactNode;\n description?: string;\n image?: ReactElement;\n overline?: string;\n renderDetailPanel?: CardLayoutProps[\"renderDetailPanel\"];\n row: MRT_RowData;\n title?: string;\n variant?: (typeof cardVariantValues)[number];\n} & (\n | {\n Accessory?: never;\n button?: never;\n menuButtonChildren?: never;\n onClick: MouseEventHandler;\n }\n | {\n Accessory?: ReactNode;\n button?: ReactElement<typeof Button>;\n menuButtonChildren?: MenuButtonProps[\"children\"];\n onClick?: never;\n }\n);\n\nconst AccessoryContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n display: \"flex\",\n flexDirection: variant === \"compact\" ? \"row\" : \"column\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n}));\n\nconst ImageContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"hasMenuButtonChildren\" &&\n prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n hasMenuButtonChildren: boolean;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, hasMenuButtonChildren, variant }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n maxHeight: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n marginBlockEnd: variant === \"tile\" ? odysseyDesignTokens.Spacing5 : 0,\n paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0,\n}));\n\nconst MenuButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n position: \"absolute\",\n right: odysseyDesignTokens.Spacing3,\n top: odysseyDesignTokens.Spacing3,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n}));\n\nconst CardInnerContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n}));\n\nconst CardImageAndContentContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"variant\",\n})<{ variant: (typeof cardVariantValues)[number] }>(({ variant }) => ({\n display: \"flex\",\n flexDirection: variant === \"tile\" ? \"column\" : \"row\",\n}));\n\nconst CardContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n \"& > .MuiTypography-h5\": {\n marginBlockEnd: `${variant === \"compact\" ? odysseyDesignTokens.Spacing1 : odysseyDesignTokens.Spacing3} !important`,\n },\n}));\n\nconst CardChildrenContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n [\"&:not(:first-child)\"]: {\n marginBlockStart: odysseyDesignTokens.Spacing3,\n },\n}));\n\nconst AccessoryPlaceholder = styled(MuiIconButton)(() => ({\n visibility: \"hidden\",\n}));\nconst buttonProviderValue = { isFullWidth: true };\n\nconst DataCard = ({\n Accessory: AccessoryProp,\n button,\n children,\n description,\n image,\n menuButtonChildren,\n onClick,\n overline,\n renderDetailPanel,\n row,\n title,\n variant = \"tile\",\n}: DataCardProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [isDetailPanelOpen, setIsDetailPanelOpen] = useState<boolean>(false);\n\n const ExpansionToggle = useMemo(() => {\n return renderDetailPanel?.({ row }) ? (\n <MuiTooltip\n title={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n >\n <MuiIconButton\n children={isDetailPanelOpen ? <ChevronUpIcon /> : <ChevronDownIcon />}\n onClick={() => setIsDetailPanelOpen(!isDetailPanelOpen)}\n aria-label={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n />\n </MuiTooltip>\n ) : (\n <AccessoryPlaceholder disabled>\n <ChevronDownIcon />\n </AccessoryPlaceholder>\n );\n }, [isDetailPanelOpen, renderDetailPanel, row, t]);\n\n const Accessory = useMemo(() => {\n return (\n <AccessoryContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n {AccessoryProp}\n {renderDetailPanel && ExpansionToggle}\n </AccessoryContainer>\n );\n }, [\n AccessoryProp,\n ExpansionToggle,\n odysseyDesignTokens,\n renderDetailPanel,\n variant,\n ]);\n\n const cardContent = useMemo(\n () => (\n <CardInnerContainer odysseyDesignTokens={odysseyDesignTokens}>\n {(AccessoryProp || renderDetailPanel) && <Box>{Accessory}</Box>}\n <CardImageAndContentContainer variant={variant}>\n {image && (\n <ImageContainer\n odysseyDesignTokens={odysseyDesignTokens}\n hasMenuButtonChildren={Boolean(menuButtonChildren)}\n variant={variant}\n >\n {image}\n </ImageContainer>\n )}\n\n <CardContent\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\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\n {children && (\n <CardChildrenContainer odysseyDesignTokens={odysseyDesignTokens}>\n {children}\n </CardChildrenContainer>\n )}\n\n {renderDetailPanel && isDetailPanelOpen && (\n <CardChildrenContainer odysseyDesignTokens={odysseyDesignTokens}>\n {renderDetailPanel({ row })}\n </CardChildrenContainer>\n )}\n </CardContent>\n </CardImageAndContentContainer>\n </CardInnerContainer>\n ),\n [\n odysseyDesignTokens,\n AccessoryProp,\n renderDetailPanel,\n Accessory,\n variant,\n image,\n menuButtonChildren,\n overline,\n title,\n description,\n button,\n children,\n isDetailPanelOpen,\n row,\n ],\n );\n\n return (\n <MuiCard\n className={`${onClick ? \"isClickable\" : \"\"} ${Accessory ? \"hasAccessory\" : \"\"} ods-card-${variant}`}\n >\n {onClick ? (\n <MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>\n ) : (\n cardContent\n )}\n\n {menuButtonChildren && (\n <MenuButtonContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n menuAlignment=\"right\"\n size=\"small\"\n tooltipText={t(\"table.actions\")}\n >\n {menuButtonChildren}\n </MenuButton>\n </MenuButtonContainer>\n )}\n </MuiCard>\n );\n};\n\nconst MemoizedDataCard = memo(DataCard);\nMemoizedDataCard.displayName = \"DataCard\";\n\nexport { MemoizedDataCard as DataCard };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataCard.js","names":["memo","useMemo","useState","styled","useTranslation","Box","ButtonContext","MenuButton","useOdysseyDesignTokens","Heading5","Paragraph","Support","ChevronDownIcon","ChevronUpIcon","MoreIcon","jsx","_jsx","jsxs","_jsxs","CARD_IMAGE_SIZE","CARD_IMAGE_SIZE_COMPACT","cardVariantValues","AccessoryContainer","shouldForwardProp","prop","odysseyDesignTokens","variant","display","flexDirection","alignItems","gap","Spacing2","height","ImageContainer","hasMenuButtonChildren","maxHeight","marginBlockEnd","Spacing5","paddingRight","MenuButtonContainer","position","right","Spacing3","top","Spacing4","CardInnerContainer","CardImageAndContentContainer","centerContent","CardContent","Spacing1","CardChildrenContainer","marginBlockStart","AccessoryPlaceholder","_IconButton","visibility","buttonProviderValue","isFullWidth","DataCard","Accessory","AccessoryProp","button","children","description","image","menuButtonChildren","onClick","overline","renderDetailPanel","row","title","t","isDetailPanelOpen","setIsDetailPanelOpen","ExpansionToggle","_Tooltip","disabled","cardContent","countDefinedProps","props","filter","undefined","length","shouldCenterContent","Boolean","component","color","_CardActions","Provider","value","_Card","className","role","_CardActionArea","endIcon","ariaLabel","buttonVariant","menuAlignment","size","tooltipText","MemoizedDataCard","displayName"],"sources":["../../../src/labs/DataView/DataCard.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n MouseEventHandler,\n ReactElement,\n memo,\n useMemo,\n ReactNode,\n useState,\n} from \"react\";\nimport {\n IconButton as MuiIconButton,\n Card as MuiCard,\n CardActions as MuiCardActions,\n CardActionArea as MuiCardActionArea,\n Tooltip as MuiTooltip,\n} from \"@mui/material\";\nimport styled from \"@emotion/styled\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Box } from \"../../Box\";\nimport {\n Button,\n ButtonContext,\n MenuButton,\n MenuButtonProps,\n} from \"../../Buttons\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { Heading5, Paragraph, Support } from \"../../Typography\";\nimport {\n ChevronDownIcon,\n ChevronUpIcon,\n MoreIcon,\n} from \"../../icons.generated\";\nimport { CardLayoutProps } from \"./componentTypes\";\nimport { MRT_RowData } from \"material-react-table\";\n\nexport const CARD_IMAGE_SIZE = \"64px\";\nexport const CARD_IMAGE_SIZE_COMPACT = \"48px\";\n\nexport const cardVariantValues = [\"tile\", \"stack\", \"compact\"] as const;\n\nexport type DataCardProps<TData extends MRT_RowData> = {\n children?: ReactNode;\n description?: string;\n image?: ReactElement;\n overline?: string;\n renderDetailPanel?: CardLayoutProps<TData>[\"renderDetailPanel\"];\n row: TData;\n title?: string;\n variant?: (typeof cardVariantValues)[number];\n} & (\n | {\n Accessory?: never;\n button?: never;\n menuButtonChildren?: never;\n onClick: MouseEventHandler;\n }\n | {\n Accessory?: ReactNode;\n button?: ReactElement<typeof Button>;\n menuButtonChildren?: MenuButtonProps[\"children\"];\n onClick?: never;\n }\n);\n\ntype DataCardComponent = (<TData extends MRT_RowData>(\n props: DataCardProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst AccessoryContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n display: \"flex\",\n flexDirection: variant === \"compact\" ? \"row\" : \"column\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n}));\n\nconst ImageContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"hasMenuButtonChildren\" &&\n prop !== \"variant\",\n})<{\n odysseyDesignTokens: DesignTokens;\n hasMenuButtonChildren: boolean;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, hasMenuButtonChildren, variant }) => ({\n display: \"flex\",\n alignItems: \"flex-start\",\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n maxHeight: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : CARD_IMAGE_SIZE,\n marginBlockEnd: variant === \"tile\" ? odysseyDesignTokens.Spacing5 : 0,\n paddingRight: hasMenuButtonChildren ? odysseyDesignTokens.Spacing5 : 0,\n}));\n\nconst MenuButtonContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n position: \"absolute\",\n right: odysseyDesignTokens.Spacing3,\n top:\n variant === \"compact\"\n ? odysseyDesignTokens.Spacing4\n : odysseyDesignTokens.Spacing3,\n height: variant === \"compact\" ? CARD_IMAGE_SIZE_COMPACT : \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n}));\n\nconst CardInnerContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n}));\n\nconst CardImageAndContentContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"variant\" && prop !== \"centerContent\",\n})<{ variant: (typeof cardVariantValues)[number]; centerContent: boolean }>(\n ({ variant, centerContent }) => ({\n display: \"flex\",\n flexDirection: variant === \"tile\" ? \"column\" : \"row\",\n alignItems: centerContent ? \"center\" : \"flex-start\",\n }),\n);\n\nconst CardContent = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n odysseyDesignTokens: DesignTokens;\n variant: (typeof cardVariantValues)[number];\n}>(({ odysseyDesignTokens, variant }) => ({\n \"& > .MuiTypography-h5:not(:last-child)\": {\n marginBlockEnd: `${variant === \"compact\" ? odysseyDesignTokens.Spacing1 : odysseyDesignTokens.Spacing3} !important`,\n },\n \"& > *:last-child\": {\n marginBlockEnd: 0,\n },\n}));\n\nconst CardChildrenContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n [\"&:not(:first-child)\"]: {\n marginBlockStart: odysseyDesignTokens.Spacing3,\n },\n}));\n\nconst AccessoryPlaceholder = styled(MuiIconButton)(() => ({\n visibility: \"hidden\",\n}));\nconst buttonProviderValue = { isFullWidth: true };\n\nconst DataCard: DataCardComponent = <TData extends MRT_RowData>({\n Accessory: AccessoryProp,\n button,\n children,\n description,\n image,\n menuButtonChildren,\n onClick,\n overline,\n renderDetailPanel,\n row,\n title,\n variant = \"tile\",\n}: DataCardProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [isDetailPanelOpen, setIsDetailPanelOpen] = useState<boolean>(false);\n\n const ExpansionToggle = useMemo(() => {\n return renderDetailPanel?.({ row }) ? (\n <MuiTooltip\n title={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n >\n <MuiIconButton\n children={isDetailPanelOpen ? <ChevronUpIcon /> : <ChevronDownIcon />}\n onClick={() => setIsDetailPanelOpen(!isDetailPanelOpen)}\n aria-label={\n isDetailPanelOpen\n ? t(\"table.rowexpansion.collapse\")\n : t(\"table.rowexpansion.expand\")\n }\n />\n </MuiTooltip>\n ) : (\n <AccessoryPlaceholder disabled>\n <ChevronDownIcon />\n </AccessoryPlaceholder>\n );\n }, [isDetailPanelOpen, renderDetailPanel, row, t]);\n\n const Accessory = useMemo(() => {\n return (\n <AccessoryContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n {AccessoryProp}\n {renderDetailPanel && ExpansionToggle}\n </AccessoryContainer>\n );\n }, [\n AccessoryProp,\n ExpansionToggle,\n odysseyDesignTokens,\n renderDetailPanel,\n variant,\n ]);\n\n const cardContent = useMemo(() => {\n const countDefinedProps = (\n props: Array<string | ReactNode | undefined>,\n ) => {\n return props.filter((prop) => prop !== undefined).length;\n };\n\n const shouldCenterContent =\n variant === \"compact\" &&\n (!renderDetailPanel || !isDetailPanelOpen) &&\n countDefinedProps([title, description, overline, button, children]) <= 2;\n\n return (\n <CardInnerContainer odysseyDesignTokens={odysseyDesignTokens}>\n {(AccessoryProp || renderDetailPanel) && <Box>{Accessory}</Box>}\n <CardImageAndContentContainer\n variant={variant}\n centerContent={shouldCenterContent}\n >\n {image && (\n <ImageContainer\n odysseyDesignTokens={odysseyDesignTokens}\n hasMenuButtonChildren={Boolean(menuButtonChildren)}\n variant={variant}\n >\n {image}\n </ImageContainer>\n )}\n\n <CardContent\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\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\n {children && (\n <CardChildrenContainer odysseyDesignTokens={odysseyDesignTokens}>\n {children}\n </CardChildrenContainer>\n )}\n\n {renderDetailPanel && isDetailPanelOpen && (\n <CardChildrenContainer odysseyDesignTokens={odysseyDesignTokens}>\n {renderDetailPanel({ row })}\n </CardChildrenContainer>\n )}\n </CardContent>\n </CardImageAndContentContainer>\n </CardInnerContainer>\n );\n }, [\n odysseyDesignTokens,\n AccessoryProp,\n renderDetailPanel,\n Accessory,\n variant,\n image,\n menuButtonChildren,\n overline,\n title,\n description,\n button,\n children,\n isDetailPanelOpen,\n row,\n ]);\n\n return (\n <MuiCard\n className={`${onClick ? \"isClickable\" : \"\"} ${Accessory ? \"hasAccessory\" : \"\"} ods-card-${variant}`}\n role=\"listitem\"\n >\n {onClick ? (\n <MuiCardActionArea onClick={onClick}>{cardContent}</MuiCardActionArea>\n ) : (\n cardContent\n )}\n\n {menuButtonChildren && (\n <MenuButtonContainer\n odysseyDesignTokens={odysseyDesignTokens}\n variant={variant}\n >\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n menuAlignment=\"right\"\n size=\"small\"\n tooltipText={t(\"table.actions\")}\n >\n {menuButtonChildren}\n </MenuButton>\n </MenuButtonContainer>\n )}\n </MuiCard>\n );\n};\n\nconst MemoizedDataCard = memo(DataCard) as DataCardComponent;\nMemoizedDataCard.displayName = \"DataCard\";\n\nexport { MemoizedDataCard as DataCard };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","names":["memo","useMemo","DataView","jsx","_jsx","DataTable","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","filters","getData","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","initialDensity","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","isLoading","isEmpty","isNoResults","isPaginationMoreDisabled","isRowReorderingDisabled","maxResultsPerPage","maxPages","noResultsPlaceholder","onChangeRowSelection","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","tableLayoutOptions","availableLayouts","MemoizedDataTable","displayName"],"sources":["../../../src/labs/DataView/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\n\nimport { DataView } from \"./DataView\";\nimport { TableLayoutProps, UniversalProps } from \"./componentTypes\";\n\nexport type DataTableProps = UniversalProps & TableLayoutProps;\n\nconst DataTable = ({\n additionalActionButton,\n additionalActionMenuItems,\n bulkActionMenuItems,\n columns,\n currentPage,\n emptyPlaceholder,\n errorMessage,\n filters,\n getData,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n initialDensity,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n isLoading,\n isEmpty,\n isNoResults,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n maxResultsPerPage,\n maxPages,\n noResultsPlaceholder,\n onChangeRowSelection,\n paginationType,\n renderDetailPanel,\n resultsPerPage,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps) => {\n const tableLayoutOptions = useMemo(\n () => ({\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n }),\n [\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n ],\n );\n\n return (\n <DataView\n additionalActionButton={additionalActionButton}\n additionalActionMenuItems={additionalActionMenuItems}\n availableLayouts={[\"table\"]}\n bulkActionMenuItems={bulkActionMenuItems}\n currentPage={currentPage}\n emptyPlaceholder={emptyPlaceholder}\n errorMessage={errorMessage}\n filters={filters}\n getData={getData}\n hasFilters={hasFilters}\n hasPagination={hasPagination}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n hasSearch={hasSearch}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isPaginationMoreDisabled={isPaginationMoreDisabled}\n isRowReorderingDisabled={isRowReorderingDisabled}\n maxPages={maxPages}\n maxResultsPerPage={maxResultsPerPage}\n noResultsPlaceholder={noResultsPlaceholder}\n onChangeRowSelection={onChangeRowSelection}\n paginationType={paginationType}\n resultsPerPage={resultsPerPage}\n searchDelayTime={searchDelayTime}\n tableLayoutOptions={tableLayoutOptions}\n totalRows={totalRows}\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,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAE7BC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAKjB,MAAMC,SAAS,GAAGA,CAAC;EACjBC,sBAAsB;EACtBC,yBAAyB;EACzBC,mBAAmB;EACnBC,OAAO;EACPC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC,WAAW;EACXC,wBAAwB;EACxBC,uBAAuB;EACvBC,iBAAiB;EACjBC,QAAQ;EACRC,oBAAoB;EACpBC,oBAAoB;EACpBC,cAAc;EACdC,iBAAiB;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,kBAAkB;EAClBC,eAAe;EACfC;AACc,CAAC,KAAK;EACpB,MAAMC,kBAAkB,GAAGzC,OAAO,CAChC,OAAO;IACLQ,OAAO;IACPM,oBAAoB;IACpBC,iBAAiB;IACjBC,mBAAmB;IACnBQ,UAAU;IACVP,cAAc;IACdkB,iBAAiB;IACjBE,gBAAgB;IAChBC;EACF,CAAC,CAAC,EACF,CACE9B,OAAO,EACPM,oBAAoB,EACpBC,iBAAiB,EACjBC,mBAAmB,EACnBQ,UAAU,EACVP,cAAc,EACdkB,iBAAiB,EACjBE,gBAAgB,EAChBC,kBAAkB,CAEtB,CAAC;EAED,OACEnC,IAAA,CAACF,QAAQ;IACPI,sBAAsB,EAAEA,sBAAuB;IAC/CC,yBAAyB,EAAEA,yBAA0B;IACrDoC,gBAAgB,EAAE,CAAC,OAAO,CAAE;IAC5BnC,mBAAmB,EAAEA,mBAAoB;IACzCE,WAAW,EAAEA,WAAY;IACzBC,gBAAgB,EAAEA,gBAAiB;IACnCC,YAAY,EAAEA,YAAa;IAC3BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBK,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCC,eAAe,EAAEA,eAAgB;IACjCC,SAAS,EAAEA,SAAU;IACrBC,qBAAqB,EAAEA,qBAAsB;IAC7CG,OAAO,EAAEA,OAAQ;IACjBD,SAAS,EAAEA,SAAU;IACrBE,WAAW,EAAEA,WAAY;IACzBC,wBAAwB,EAAEA,wBAAyB;IACnDC,uBAAuB,EAAEA,uBAAwB;IACjDE,QAAQ,EAAEA,QAAS;IACnBD,iBAAiB,EAAEA,iBAAkB;IACrCE,oBAAoB,EAAEA,oBAAqB;IAC3CC,oBAAoB,EAAEA,oBAAqB;IAC3CC,cAAc,EAAEA,cAAe;IAC/BE,cAAc,EAAEA,cAAe;IAC/BG,eAAe,EAAEA,eAAgB;IACjCE,kBAAkB,EAAEA,kBAAmB;IACvCD,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAED,MAAMG,iBAAiB,GAAG5C,IAAI,CAACK,SAAS,CAAC;AACzCuC,iBAAiB,CAACC,WAAW,GAAG,WAAW;AAE3C,SAASD,iBAAiB,IAAIvC,SAAS"}
1
+ {"version":3,"file":"DataTable.js","names":["memo","useMemo","DataView","jsx","_jsx","DataTable","additionalActionButton","additionalActionMenuItems","bulkActionMenuItems","columns","currentPage","emptyPlaceholder","errorMessage","filters","getData","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","initialDensity","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSearchSubmitButton","hasSorting","isLoading","isEmpty","isNoResults","isPaginationMoreDisabled","isRowReorderingDisabled","maxResultsPerPage","maxPages","noResultsPlaceholder","onChangeRowSelection","paginationType","renderDetailPanel","resultsPerPage","rowActionButtons","rowActionMenuItems","searchDelayTime","totalRows","tableLayoutOptions","availableLayouts","MemoizedDataTable","displayName"],"sources":["../../../src/labs/DataView/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\n\nimport { DataView } from \"./DataView\";\nimport { TableLayoutProps, UniversalProps } from \"./componentTypes\";\nimport { MRT_RowData } from \"material-react-table\";\n\nexport type DataTableProps<TData extends MRT_RowData> = UniversalProps<TData> &\n TableLayoutProps<TData>;\ntype DataTableComponent = (<TData extends MRT_RowData>(\n props: DataTableProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst DataTable = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n bulkActionMenuItems,\n columns,\n currentPage,\n emptyPlaceholder,\n errorMessage,\n filters,\n getData,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n initialDensity,\n hasFilters,\n hasPagination,\n hasRowReordering,\n hasRowSelection,\n hasSearch,\n hasSearchSubmitButton,\n hasSorting,\n isLoading,\n isEmpty,\n isNoResults,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n maxResultsPerPage,\n maxPages,\n noResultsPlaceholder,\n onChangeRowSelection,\n paginationType,\n renderDetailPanel,\n resultsPerPage,\n rowActionButtons,\n rowActionMenuItems,\n searchDelayTime,\n totalRows,\n}: DataTableProps<TData>) => {\n const tableLayoutOptions = useMemo(\n () => ({\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n }),\n [\n columns,\n hasChangeableDensity,\n hasColumnResizing,\n hasColumnVisibility,\n hasSorting,\n initialDensity,\n renderDetailPanel,\n rowActionButtons,\n rowActionMenuItems,\n ],\n );\n\n return (\n <DataView\n additionalActionButton={additionalActionButton}\n additionalActionMenuItems={additionalActionMenuItems}\n availableLayouts={[\"table\"]}\n bulkActionMenuItems={bulkActionMenuItems}\n currentPage={currentPage}\n emptyPlaceholder={emptyPlaceholder}\n errorMessage={errorMessage}\n filters={filters}\n getData={getData}\n hasFilters={hasFilters}\n hasPagination={hasPagination}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n hasSearch={hasSearch}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isPaginationMoreDisabled={isPaginationMoreDisabled}\n isRowReorderingDisabled={isRowReorderingDisabled}\n maxPages={maxPages}\n maxResultsPerPage={maxResultsPerPage}\n noResultsPlaceholder={noResultsPlaceholder}\n onChangeRowSelection={onChangeRowSelection}\n paginationType={paginationType}\n resultsPerPage={resultsPerPage}\n searchDelayTime={searchDelayTime}\n tableLayoutOptions={tableLayoutOptions}\n totalRows={totalRows}\n />\n );\n};\n\nconst MemoizedDataTable = memo(DataTable) as DataTableComponent;\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAE7BC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAYjB,MAAMC,SAAS,GAAGA,CAA4B;EAC5CC,sBAAsB;EACtBC,yBAAyB;EACzBC,mBAAmB;EACnBC,OAAO;EACPC,WAAW;EACXC,gBAAgB;EAChBC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC,qBAAqB;EACrBC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC,WAAW;EACXC,wBAAwB;EACxBC,uBAAuB;EACvBC,iBAAiB;EACjBC,QAAQ;EACRC,oBAAoB;EACpBC,oBAAoB;EACpBC,cAAc;EACdC,iBAAiB;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,kBAAkB;EAClBC,eAAe;EACfC;AACqB,CAAC,KAAK;EAC3B,MAAMC,kBAAkB,GAAGzC,OAAO,CAChC,OAAO;IACLQ,OAAO;IACPM,oBAAoB;IACpBC,iBAAiB;IACjBC,mBAAmB;IACnBQ,UAAU;IACVP,cAAc;IACdkB,iBAAiB;IACjBE,gBAAgB;IAChBC;EACF,CAAC,CAAC,EACF,CACE9B,OAAO,EACPM,oBAAoB,EACpBC,iBAAiB,EACjBC,mBAAmB,EACnBQ,UAAU,EACVP,cAAc,EACdkB,iBAAiB,EACjBE,gBAAgB,EAChBC,kBAAkB,CAEtB,CAAC;EAED,OACEnC,IAAA,CAACF,QAAQ;IACPI,sBAAsB,EAAEA,sBAAuB;IAC/CC,yBAAyB,EAAEA,yBAA0B;IACrDoC,gBAAgB,EAAE,CAAC,OAAO,CAAE;IAC5BnC,mBAAmB,EAAEA,mBAAoB;IACzCE,WAAW,EAAEA,WAAY;IACzBC,gBAAgB,EAAEA,gBAAiB;IACnCC,YAAY,EAAEA,YAAa;IAC3BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBK,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCC,eAAe,EAAEA,eAAgB;IACjCC,SAAS,EAAEA,SAAU;IACrBC,qBAAqB,EAAEA,qBAAsB;IAC7CG,OAAO,EAAEA,OAAQ;IACjBD,SAAS,EAAEA,SAAU;IACrBE,WAAW,EAAEA,WAAY;IACzBC,wBAAwB,EAAEA,wBAAyB;IACnDC,uBAAuB,EAAEA,uBAAwB;IACjDE,QAAQ,EAAEA,QAAS;IACnBD,iBAAiB,EAAEA,iBAAkB;IACrCE,oBAAoB,EAAEA,oBAAqB;IAC3CC,oBAAoB,EAAEA,oBAAqB;IAC3CC,cAAc,EAAEA,cAAe;IAC/BE,cAAc,EAAEA,cAAe;IAC/BG,eAAe,EAAEA,eAAgB;IACjCE,kBAAkB,EAAEA,kBAAmB;IACvCD,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAED,MAAMG,iBAAiB,GAAG5C,IAAI,CAACK,SAAS,CAAuB;AAC/DuC,iBAAiB,CAACC,WAAW,GAAG,WAAW;AAE3C,SAASD,iBAAiB,IAAIvC,SAAS"}
@@ -20,7 +20,7 @@ import { DataFilters } from "../DataFilters.js";
20
20
  import { EmptyState } from "../../EmptyState.js";
21
21
  import { fetchData } from "./fetchData.js";
22
22
  import { LayoutSwitcher } from "./LayoutSwitcher.js";
23
- import { MenuButton } from "../../MenuButton.js";
23
+ import { MenuButton } from "../../Buttons/index.js";
24
24
  import { MoreIcon } from "../../icons.generated/index.js";
25
25
  import { TableSettings } from "./TableSettings.js";
26
26
  import { Pagination, usePagination } from "../../Pagination/index.js";
@@ -183,8 +183,8 @@ const DataView = ({
183
183
  });
184
184
  }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);
185
185
  useEffect(() => {
186
- setIsEmpty(pagination.pageIndex === currentPage && pagination.pageSize === resultsPerPage && search === "" && filters === initialFilters && data.length === 0);
187
- }, [currentPage, data, filters, initialFilters, pagination, resultsPerPage, search]);
186
+ setIsEmpty(pagination.pageIndex === currentPage && pagination.pageSize === resultsPerPage && search === "" && (!hasFilters || filters === initialFilters) && data.length === 0);
187
+ }, [currentPage, data, filters, hasFilters, initialFilters, pagination, resultsPerPage, search]);
188
188
  useEffect(() => {
189
189
  setIsLoading(prevValue => isLoadingProp ?? prevValue);
190
190
  }, [isLoadingProp]);