@bsol-oss/react-datatable5 12.0.0-beta.1 → 12.0.0-beta.10

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 (51) hide show
  1. package/dist/index.d.ts +54 -45
  2. package/dist/index.js +376 -309
  3. package/dist/index.mjs +373 -308
  4. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  5. package/dist/types/components/DataTable/DataTableServer.d.ts +1 -1
  6. package/dist/types/components/DataTable/DefaultTable.d.ts +5 -5
  7. package/dist/types/components/DataTable/components/TextCell.d.ts +10 -0
  8. package/dist/types/components/DataTable/context/DataTableContext.d.ts +2 -1
  9. package/dist/types/components/DataTable/controls/DensityFeature.d.ts +23 -0
  10. package/dist/types/components/DataTable/controls/DensityToggleButton.d.ts +6 -0
  11. package/dist/types/components/DataTable/controls/EditSortingButton.d.ts +7 -0
  12. package/dist/types/components/DataTable/controls/FilterDialog.d.ts +5 -0
  13. package/dist/types/components/DataTable/controls/PageSizeControl.d.ts +4 -0
  14. package/dist/types/components/DataTable/controls/Pagination.d.ts +1 -0
  15. package/dist/types/components/DataTable/controls/ReloadButton.d.ts +5 -0
  16. package/dist/types/components/DataTable/controls/ResetFilteringButton.d.ts +4 -0
  17. package/dist/types/components/DataTable/controls/ResetSelectionButton.d.ts +4 -0
  18. package/dist/types/components/DataTable/controls/ResetSortingButton.d.ts +4 -0
  19. package/dist/types/components/DataTable/controls/RowCountText.d.ts +1 -0
  20. package/dist/types/components/DataTable/controls/SelectAllRowsToggle.d.ts +8 -0
  21. package/dist/types/components/DataTable/controls/TableControls.d.ts +21 -0
  22. package/dist/types/components/DataTable/controls/TableFilterTags.d.ts +1 -0
  23. package/dist/types/components/DataTable/controls/TableFilters.d.ts +1 -0
  24. package/dist/types/components/DataTable/controls/TableSelector.d.ts +1 -0
  25. package/dist/types/components/DataTable/controls/TableSorter.d.ts +1 -0
  26. package/dist/types/components/DataTable/controls/TableViewer.d.ts +1 -0
  27. package/dist/types/components/DataTable/controls/ViewDialog.d.ts +5 -0
  28. package/dist/types/components/DataTable/display/CardHeader.d.ts +13 -0
  29. package/dist/types/components/DataTable/display/DataDisplay.d.ts +6 -0
  30. package/dist/types/components/DataTable/display/EmptyState.d.ts +5 -0
  31. package/dist/types/components/DataTable/display/ErrorAlert.d.ts +4 -0
  32. package/dist/types/components/DataTable/display/RecordDisplay.d.ts +9 -0
  33. package/dist/types/components/DataTable/display/Table.d.ts +10 -0
  34. package/dist/types/components/DataTable/display/TableBody.d.ts +21 -0
  35. package/dist/types/components/DataTable/display/TableCardContainer.d.ts +7 -0
  36. package/dist/types/components/DataTable/display/TableCards.d.ts +11 -0
  37. package/dist/types/components/DataTable/display/TableComponent.d.ts +6 -0
  38. package/dist/types/components/DataTable/display/TableDataDisplay.d.ts +4 -0
  39. package/dist/types/components/DataTable/display/TableFooter.d.ts +9 -0
  40. package/dist/types/components/DataTable/display/TableHeader.d.ts +13 -0
  41. package/dist/types/components/DataTable/display/TableLoadingComponent.d.ts +5 -0
  42. package/dist/types/components/DataTable/display/TextCell.d.ts +10 -0
  43. package/dist/types/components/DataTable/useDataTable.d.ts +1 -1
  44. package/dist/types/components/Form/SchemaFormContext.d.ts +13 -0
  45. package/dist/types/components/Form/components/core/DefaultForm.d.ts +7 -0
  46. package/dist/types/components/Form/components/core/FormBody.d.ts +1 -0
  47. package/dist/types/components/Form/components/core/FormRoot.d.ts +39 -0
  48. package/dist/types/components/Form/components/core/FormTitle.d.ts +1 -0
  49. package/dist/types/components/Form/components/core/SubmitButton.d.ts +1 -0
  50. package/dist/types/index.d.ts +37 -35
  51. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -4,12 +4,13 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var react = require('@chakra-ui/react');
5
5
  var ai = require('react-icons/ai');
6
6
  var React = require('react');
7
- var md = require('react-icons/md');
8
7
  var lu = require('react-icons/lu');
9
- var Dayzed = require('@bsol-oss/dayzed-react19');
8
+ var md = require('react-icons/md');
10
9
  var fa6 = require('react-icons/fa6');
11
10
  var bi = require('react-icons/bi');
12
11
  var cg = require('react-icons/cg');
12
+ var Dayzed = require('@bsol-oss/dayzed-react19');
13
+ var hi2 = require('react-icons/hi2');
13
14
  var io = require('react-icons/io');
14
15
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
15
16
  var bindEventListener = require('bind-event-listener');
@@ -17,7 +18,7 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
17
18
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
18
19
  var rafSchd = require('raf-schd');
19
20
  var invariant = require('tiny-invariant');
20
- var hi2 = require('react-icons/hi2');
21
+ var hi = require('react-icons/hi');
21
22
  var reactTable = require('@tanstack/react-table');
22
23
  var matchSorterUtils = require('@tanstack/match-sorter-utils');
23
24
  var bs = require('react-icons/bs');
@@ -25,7 +26,6 @@ var usehooks = require('@uidotdev/usehooks');
25
26
  var reactQuery = require('@tanstack/react-query');
26
27
  var io5 = require('react-icons/io5');
27
28
  var gr = require('react-icons/gr');
28
- var hi = require('react-icons/hi');
29
29
  var reactI18next = require('react-i18next');
30
30
  var axios = require('axios');
31
31
  var reactHookForm = require('react-hook-form');
@@ -98,6 +98,32 @@ react.Dialog.Description;
98
98
  const DialogTrigger = react.Dialog.Trigger;
99
99
  react.Dialog.ActionTrigger;
100
100
 
101
+ const TableSorter = () => {
102
+ const { table } = useDataTableContext();
103
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: table.getHeaderGroups().map((headerGroup) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: headerGroup.headers.map((header) => {
104
+ const displayName = header.column.columnDef.meta === undefined
105
+ ? header.column.id
106
+ : header.column.columnDef.meta.displayName;
107
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: header.column.getCanSort() && (jsxRuntime.jsxs(react.Flex, { alignItems: "center", gap: "0.5rem", padding: "0.5rem", children: [jsxRuntime.jsx(react.Text, { children: displayName }), jsxRuntime.jsxs(react.Button, { variant: "ghost", onClick: () => {
108
+ header.column.toggleSorting();
109
+ }, children: [header.column.getIsSorted() === false && jsxRuntime.jsx(fa6.FaUpDown, {}), header.column.getIsSorted() === "asc" && jsxRuntime.jsx(bi.BiDownArrow, {}), header.column.getIsSorted() === "desc" && jsxRuntime.jsx(bi.BiUpArrow, {})] }), header.column.getIsSorted() && (jsxRuntime.jsx(react.Button, { onClick: () => {
110
+ header.column.clearSorting();
111
+ }, children: jsxRuntime.jsx(cg.CgClose, {}) }))] })) }));
112
+ }) }))) }));
113
+ };
114
+
115
+ const ResetSortingButton = ({ text = "Reset Sorting", }) => {
116
+ const { table } = useDataTableContext();
117
+ return (jsxRuntime.jsx(react.Button, { onClick: () => {
118
+ table.resetSorting();
119
+ }, children: text }));
120
+ };
121
+
122
+ const EditSortingButton = ({ text, icon = jsxRuntime.jsx(md.MdOutlineSort, {}), title = "Edit Sorting", }) => {
123
+ const sortingModal = react.useDisclosure();
124
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(DialogRoot, { size: ["full", "full", "md", "md"], children: [jsxRuntime.jsx(react.DialogBackdrop, {}), jsxRuntime.jsx(DialogTrigger, { children: jsxRuntime.jsxs(react.Button, { as: "div", variant: "ghost", onClick: sortingModal.onOpen, children: [icon, " ", text] }) }), jsxRuntime.jsxs(DialogContent, { children: [jsxRuntime.jsx(DialogCloseTrigger, {}), jsxRuntime.jsxs(DialogHeader, { children: [jsxRuntime.jsx(DialogTitle, {}), title] }), jsxRuntime.jsx(DialogBody, { children: jsxRuntime.jsxs(react.Flex, { flexFlow: "column", gap: "0.25rem", children: [jsxRuntime.jsx(TableSorter, {}), jsxRuntime.jsx(ResetSortingButton, {})] }) }), jsxRuntime.jsx(DialogFooter, {})] })] }) }));
125
+ };
126
+
101
127
  const Radio = React__namespace.forwardRef(function Radio(props, ref) {
102
128
  const { children, inputProps, rootRef, ...rest } = props;
103
129
  return (jsxRuntime.jsxs(react.RadioGroup.Item, { ref: rootRef, ...rest, children: [jsxRuntime.jsx(react.RadioGroup.ItemHiddenInput, { ref: ref, ...inputProps }), jsxRuntime.jsx(react.RadioGroup.ItemIndicator, {}), children && (jsxRuntime.jsx(react.RadioGroup.ItemText, { children: children }))] }));
@@ -380,87 +406,138 @@ const FilterDialog = ({ icon = jsxRuntime.jsx(md.MdFilterAlt, {}), }) => {
380
406
  return (jsxRuntime.jsxs(DialogRoot, { size: ["full", "full", "md", "md"], open: filterModal.open, children: [jsxRuntime.jsx(DialogTrigger, { asChild: true, children: jsxRuntime.jsxs(react.Button, { as: react.Box, variant: "ghost", onClick: filterModal.onOpen, children: [icon, " ", translate.t("filterDialog.buttonText")] }) }), jsxRuntime.jsxs(DialogContent, { children: [jsxRuntime.jsx(DialogHeader, { children: jsxRuntime.jsx(DialogTitle, { children: translate.t("filterDialog.title") }) }), jsxRuntime.jsx(DialogBody, { display: "flex", flexFlow: "column", children: jsxRuntime.jsx(TableFilter, {}) }), jsxRuntime.jsxs(DialogFooter, { children: [jsxRuntime.jsx(ResetFilteringButton, { text: translate.t("filterDialog.reset") }), jsxRuntime.jsx(react.Button, { onClick: filterModal.onClose, variant: "subtle", children: translate.t("filterDialog.close") })] }), jsxRuntime.jsx(DialogCloseTrigger, { onClick: filterModal.onClose })] })] }));
381
407
  };
382
408
 
383
- const ColumnOrderChanger = ({ columns }) => {
384
- const [order, setOrder] = React.useState([]);
385
- const [originalOrder, setOriginalOrder] = React.useState([]);
386
- const { table } = useDataTableContext();
387
- const handleChangeOrder = (startIndex, endIndex) => {
388
- const newOrder = Array.from(order);
389
- const [removed] = newOrder.splice(startIndex, 1);
390
- newOrder.splice(endIndex, 0, removed);
391
- setOrder(newOrder);
392
- };
393
- React.useEffect(() => {
394
- setOrder(columns);
395
- }, [columns]);
396
- React.useEffect(() => {
397
- if (originalOrder.length > 0) {
398
- return;
399
- }
400
- if (columns.length <= 0) {
401
- return;
402
- }
403
- setOriginalOrder(columns);
404
- }, [columns]);
405
- return (jsxRuntime.jsxs(react.Flex, { gap: 2, flexFlow: "column", children: [jsxRuntime.jsx(react.Flex, { gap: 2, flexFlow: "column", children: order.map((columnId, index) => (jsxRuntime.jsxs(react.Flex, { gap: 2, alignItems: "center", justifyContent: "space-between", children: [jsxRuntime.jsx(react.IconButton, { onClick: () => {
406
- const prevIndex = index - 1;
407
- if (prevIndex >= 0) {
408
- handleChangeOrder(index, prevIndex);
409
- }
410
- }, disabled: index === 0, "aria-label": "", children: jsxRuntime.jsx(md.MdArrowUpward, {}) }), table
411
- .getAllFlatColumns()
412
- .filter((column) => {
413
- return column.id === columnId;
414
- })
415
- .map((column) => {
416
- const displayName = column.columnDef.meta === undefined
417
- ? column.id
418
- : column.columnDef.meta.displayName;
419
- return jsxRuntime.jsx("span", { children: displayName }, column.id);
420
- }), jsxRuntime.jsx(react.IconButton, { onClick: () => {
421
- const nextIndex = index + 1;
422
- if (nextIndex < order.length) {
423
- handleChangeOrder(index, nextIndex);
424
- }
425
- }, disabled: index === order.length - 1, "aria-label": "", children: jsxRuntime.jsx(md.MdArrowDownward, {}) })] }, columnId))) }), jsxRuntime.jsxs(react.Flex, { gap: "0.25rem", children: [jsxRuntime.jsx(react.Button, { onClick: () => {
426
- table.setColumnOrder(order);
427
- }, children: "Apply" }), jsxRuntime.jsx(react.Button, { onClick: () => {
428
- table.setColumnOrder(originalOrder);
429
- }, children: "Reset" })] })] }));
430
- };
431
- const TableOrderer = () => {
409
+ const MenuContent = React__namespace.forwardRef(function MenuContent(props, ref) {
410
+ const { portalled = true, portalRef, ...rest } = props;
411
+ return (jsxRuntime.jsx(react.Portal, { disabled: !portalled, container: portalRef, children: jsxRuntime.jsx(react.Menu.Positioner, { children: jsxRuntime.jsx(react.Menu.Content, { ref: ref, ...rest }) }) }));
412
+ });
413
+ React__namespace.forwardRef(function MenuArrow(props, ref) {
414
+ return (jsxRuntime.jsx(react.Menu.Arrow, { ref: ref, ...props, children: jsxRuntime.jsx(react.Menu.ArrowTip, {}) }));
415
+ });
416
+ React__namespace.forwardRef(function MenuCheckboxItem(props, ref) {
417
+ return (jsxRuntime.jsxs(react.Menu.CheckboxItem, { ref: ref, ...props, children: [jsxRuntime.jsx(react.Menu.ItemIndicator, { hidden: false, children: jsxRuntime.jsx(lu.LuCheck, {}) }), props.children] }));
418
+ });
419
+ React__namespace.forwardRef(function MenuRadioItem(props, ref) {
420
+ const { children, ...rest } = props;
421
+ return (jsxRuntime.jsxs(react.Menu.RadioItem, { ps: "8", ref: ref, ...rest, children: [jsxRuntime.jsx(react.AbsoluteCenter, { axis: "horizontal", left: "4", asChild: true, children: jsxRuntime.jsx(react.Menu.ItemIndicator, { children: jsxRuntime.jsx(lu.LuCheck, {}) }) }), jsxRuntime.jsx(react.Menu.ItemText, { children: children })] }));
422
+ });
423
+ React__namespace.forwardRef(function MenuItemGroup(props, ref) {
424
+ const { title, children, ...rest } = props;
425
+ return (jsxRuntime.jsxs(react.Menu.ItemGroup, { ref: ref, ...rest, children: [title && (jsxRuntime.jsx(react.Menu.ItemGroupLabel, { userSelect: "none", children: title })), children] }));
426
+ });
427
+ React__namespace.forwardRef(function MenuTriggerItem(props, ref) {
428
+ const { startIcon, children, ...rest } = props;
429
+ return (jsxRuntime.jsxs(react.Menu.TriggerItem, { ref: ref, ...rest, children: [startIcon, children, jsxRuntime.jsx(lu.LuChevronRight, {})] }));
430
+ });
431
+ react.Menu.RadioItemGroup;
432
+ react.Menu.ContextTrigger;
433
+ const MenuRoot = react.Menu.Root;
434
+ react.Menu.Separator;
435
+ const MenuItem = react.Menu.Item;
436
+ react.Menu.ItemText;
437
+ react.Menu.ItemCommand;
438
+ const MenuTrigger = react.Menu.Trigger;
439
+
440
+ const PageSizeControl = ({ pageSizes = [10, 20, 30, 40, 50], }) => {
432
441
  const { table } = useDataTableContext();
433
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(ColumnOrderChanger, { columns: table.getState().columnOrder }) }));
442
+ return (jsxRuntime.jsxs(MenuRoot, { children: [jsxRuntime.jsx(MenuTrigger, { asChild: true, children: jsxRuntime.jsxs(react.Button, { variant: "ghost", gap: "0.5rem", children: [table.getState().pagination.pageSize, " ", jsxRuntime.jsx(bi.BiDownArrow, {})] }) }), jsxRuntime.jsx(MenuContent, { children: pageSizes.map((pageSize) => (jsxRuntime.jsx(MenuItem, { value: `chakra-table-pageSize-${pageSize}`, onClick: () => {
443
+ table.setPageSize(Number(pageSize));
444
+ }, children: pageSize }, `chakra-table-pageSize-${pageSize}`))) })] }));
434
445
  };
435
446
 
436
- const EditOrderButton = ({ text, icon = jsxRuntime.jsx(md.MdOutlineMoveDown, {}), title = "Change Order", }) => {
437
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(DialogRoot, { size: "cover", children: [jsxRuntime.jsx(react.DialogBackdrop, {}), jsxRuntime.jsx(DialogTrigger, { asChild: true, children: jsxRuntime.jsxs(react.Button, { as: react.Box, variant: "ghost", children: [icon, " ", text] }) }), jsxRuntime.jsxs(DialogContent, { children: [jsxRuntime.jsx(DialogCloseTrigger, {}), jsxRuntime.jsxs(DialogHeader, { children: [jsxRuntime.jsx(DialogTitle, {}), title] }), jsxRuntime.jsx(DialogBody, { children: jsxRuntime.jsx(react.Flex, { flexFlow: "column", gap: "0.25rem", children: jsxRuntime.jsx(TableOrderer, {}) }) }), jsxRuntime.jsx(DialogFooter, {})] })] }) }));
447
+ const { withContext } = react.createRecipeContext({ key: "button" });
448
+ // Replace "a" with your framework's link component
449
+ const LinkButton = withContext("a");
450
+
451
+ const [RootPropsProvider, useRootProps] = react.createContext({
452
+ name: "RootPropsProvider",
453
+ });
454
+ const variantMap = {
455
+ outline: { default: "ghost", ellipsis: "plain", current: "outline" },
456
+ solid: { default: "outline", ellipsis: "outline", current: "solid" },
457
+ subtle: { default: "ghost", ellipsis: "plain", current: "subtle" },
458
+ };
459
+ const PaginationRoot = React__namespace.forwardRef(function PaginationRoot(props, ref) {
460
+ const { size = "sm", variant = "outline", getHref, ...rest } = props;
461
+ return (jsxRuntime.jsx(RootPropsProvider, { value: { size, variantMap: variantMap[variant], getHref }, children: jsxRuntime.jsx(react.Pagination.Root, { ref: ref, type: getHref ? "link" : "button", ...rest }) }));
462
+ });
463
+ const PaginationEllipsis = React__namespace.forwardRef(function PaginationEllipsis(props, ref) {
464
+ const { size, variantMap } = useRootProps();
465
+ return (jsxRuntime.jsx(react.Pagination.Ellipsis, { ref: ref, ...props, asChild: true, children: jsxRuntime.jsx(react.Button, { as: "span", variant: variantMap.ellipsis, size: size, children: jsxRuntime.jsx(hi2.HiMiniEllipsisHorizontal, {}) }) }));
466
+ });
467
+ const PaginationItem = React__namespace.forwardRef(function PaginationItem(props, ref) {
468
+ const { page } = react.usePaginationContext();
469
+ const { size, variantMap, getHref } = useRootProps();
470
+ const current = page === props.value;
471
+ const variant = current ? variantMap.current : variantMap.default;
472
+ if (getHref) {
473
+ return (jsxRuntime.jsx(LinkButton, { href: getHref(props.value), variant: variant, size: size, children: props.value }));
474
+ }
475
+ return (jsxRuntime.jsx(react.Pagination.Item, { ref: ref, ...props, asChild: true, children: jsxRuntime.jsx(react.Button, { variant: variant, size: size, children: props.value }) }));
476
+ });
477
+ const PaginationPrevTrigger = React__namespace.forwardRef(function PaginationPrevTrigger(props, ref) {
478
+ const { size, variantMap, getHref } = useRootProps();
479
+ const { previousPage } = react.usePaginationContext();
480
+ if (getHref) {
481
+ return (jsxRuntime.jsx(LinkButton, { href: previousPage != null ? getHref(previousPage) : undefined, variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronLeft, {}) }));
482
+ }
483
+ return (jsxRuntime.jsx(react.Pagination.PrevTrigger, { ref: ref, asChild: true, ...props, children: jsxRuntime.jsx(react.IconButton, { variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronLeft, {}) }) }));
484
+ });
485
+ const PaginationNextTrigger = React__namespace.forwardRef(function PaginationNextTrigger(props, ref) {
486
+ const { size, variantMap, getHref } = useRootProps();
487
+ const { nextPage } = react.usePaginationContext();
488
+ if (getHref) {
489
+ return (jsxRuntime.jsx(LinkButton, { href: nextPage != null ? getHref(nextPage) : undefined, variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronRight, {}) }));
490
+ }
491
+ return (jsxRuntime.jsx(react.Pagination.NextTrigger, { ref: ref, asChild: true, ...props, children: jsxRuntime.jsx(react.IconButton, { variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronRight, {}) }) }));
492
+ });
493
+ const PaginationItems = (props) => {
494
+ return (jsxRuntime.jsx(react.Pagination.Context, { children: ({ pages }) => pages.map((page, index) => {
495
+ return page.type === "ellipsis" ? (jsxRuntime.jsx(PaginationEllipsis, { index: index, ...props }, index)) : (jsxRuntime.jsx(PaginationItem, { type: "page", value: page.value, ...props }, index));
496
+ }) }));
438
497
  };
498
+ const PaginationPageText = React__namespace.forwardRef(function PaginationPageText(props, ref) {
499
+ const { format = "compact", ...rest } = props;
500
+ const { page, totalPages, pageRange, count } = react.usePaginationContext();
501
+ const content = React__namespace.useMemo(() => {
502
+ if (format === "short")
503
+ return `${page} / ${totalPages}`;
504
+ if (format === "compact")
505
+ return `${page} / ${totalPages}`;
506
+ return `${pageRange.start + 1} - ${Math.min(pageRange.end, count)} / ${count}`;
507
+ }, [format, page, totalPages, pageRange, count]);
508
+ return (jsxRuntime.jsx(react.Text, { fontWeight: "medium", ref: ref, ...rest, children: content }));
509
+ });
439
510
 
440
- const TableSorter = () => {
441
- const { table } = useDataTableContext();
442
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: table.getHeaderGroups().map((headerGroup) => (jsxRuntime.jsx(jsxRuntime.Fragment, { children: headerGroup.headers.map((header) => {
443
- const displayName = header.column.columnDef.meta === undefined
444
- ? header.column.id
445
- : header.column.columnDef.meta.displayName;
446
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: header.column.getCanSort() && (jsxRuntime.jsxs(react.Flex, { alignItems: "center", gap: "0.5rem", padding: "0.5rem", children: [jsxRuntime.jsx(react.Text, { children: displayName }), jsxRuntime.jsxs(react.Button, { variant: "ghost", onClick: () => {
447
- header.column.toggleSorting();
448
- }, children: [header.column.getIsSorted() === false && jsxRuntime.jsx(fa6.FaUpDown, {}), header.column.getIsSorted() === "asc" && jsxRuntime.jsx(bi.BiDownArrow, {}), header.column.getIsSorted() === "desc" && jsxRuntime.jsx(bi.BiUpArrow, {})] }), header.column.getIsSorted() && (jsxRuntime.jsx(react.Button, { onClick: () => {
449
- header.column.clearSorting();
450
- }, children: jsxRuntime.jsx(cg.CgClose, {}) }))] })) }));
451
- }) }))) }));
511
+ // TODO: not working in client side
512
+ const Pagination = () => {
513
+ const { table, type } = useDataTableContext();
514
+ const getCount = () => {
515
+ if (type === "client") {
516
+ return table.getFilteredRowModel().flatRows.length ?? 0;
517
+ }
518
+ return table.getRowCount();
519
+ };
520
+ return (jsxRuntime.jsx(PaginationRoot, { page: table.getState().pagination.pageIndex + 1, count: getCount(), pageSize: table.getState().pagination.pageSize, onPageChange: (e) => {
521
+ table.setPageIndex(e.page - 1);
522
+ }, children: jsxRuntime.jsxs(react.HStack, { children: [jsxRuntime.jsx(PaginationPrevTrigger, {}), jsxRuntime.jsx(PaginationItems, {}), jsxRuntime.jsx(PaginationNextTrigger, {})] }) }));
452
523
  };
453
524
 
454
- const ResetSortingButton = ({ text = "Reset Sorting", }) => {
525
+ const ResetSelectionButton = ({ text = "Reset Selection", }) => {
455
526
  const { table } = useDataTableContext();
456
527
  return (jsxRuntime.jsx(react.Button, { onClick: () => {
457
- table.resetSorting();
528
+ table.resetRowSelection();
458
529
  }, children: text }));
459
530
  };
460
531
 
461
- const EditSortingButton = ({ text, icon = jsxRuntime.jsx(md.MdOutlineSort, {}), title = "Edit Sorting", }) => {
462
- const sortingModal = react.useDisclosure();
463
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(DialogRoot, { size: ["full", "full", "md", "md"], children: [jsxRuntime.jsx(react.DialogBackdrop, {}), jsxRuntime.jsx(DialogTrigger, { children: jsxRuntime.jsxs(react.Button, { as: "div", variant: "ghost", onClick: sortingModal.onOpen, children: [icon, " ", text] }) }), jsxRuntime.jsxs(DialogContent, { children: [jsxRuntime.jsx(DialogCloseTrigger, {}), jsxRuntime.jsxs(DialogHeader, { children: [jsxRuntime.jsx(DialogTitle, {}), title] }), jsxRuntime.jsx(DialogBody, { children: jsxRuntime.jsxs(react.Flex, { flexFlow: "column", gap: "0.25rem", children: [jsxRuntime.jsx(TableSorter, {}), jsxRuntime.jsx(ResetSortingButton, {})] }) }), jsxRuntime.jsx(DialogFooter, {})] })] }) }));
532
+ const RowCountText = () => {
533
+ const { table, type } = useDataTableContext();
534
+ const getCount = () => {
535
+ if (type === "client") {
536
+ return table.getFilteredRowModel().flatRows.length ?? 0;
537
+ }
538
+ return table.getRowCount();
539
+ };
540
+ return jsxRuntime.jsx(react.Text, { children: getCount() });
464
541
  };
465
542
 
466
543
  // pulling this into a separate file so adapter(s) that don't
@@ -2380,13 +2457,16 @@ function ColumnCard({ columnId }) {
2380
2457
  onDrop: () => setDragging(false), // NEW
2381
2458
  });
2382
2459
  }, [columnId, table]);
2383
- return (jsxRuntime.jsxs(react.Grid, { ref: ref, templateColumns: "auto 1fr", gap: "0.5rem", alignItems: "center", style: dragging ? { opacity: 0.4 } : {}, children: [jsxRuntime.jsx(react.Flex, { alignItems: "center", padding: "0", cursor: 'grab', children: jsxRuntime.jsx(fa6.FaGripLinesVertical, { color: "gray.400" }) }), jsxRuntime.jsx(react.Flex, { justifyContent: "space-between", alignItems: "center", children: jsxRuntime.jsx(CheckboxCard, { variant: "surface", label: displayName, checked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler() }) })] }));
2460
+ return (jsxRuntime.jsxs(react.Grid, { ref: ref, templateColumns: "auto 1fr", gap: "0.5rem", alignItems: "center", style: dragging ? { opacity: 0.4 } : {}, children: [jsxRuntime.jsx(react.Flex, { alignItems: "center", padding: "0", cursor: "grab", children: jsxRuntime.jsx(fa6.FaGripLinesVertical, { color: "gray.400" }) }), jsxRuntime.jsx(react.Flex, { justifyContent: "space-between", alignItems: "center", children: jsxRuntime.jsx(CheckboxCard, { variant: "surface", label: displayName, checked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler() }) })] }));
2384
2461
  }
2385
2462
  function CardContainer({ location, children }) {
2386
2463
  const ref = React.useRef(null);
2387
2464
  const [isDraggedOver, setIsDraggedOver] = React.useState(false);
2388
2465
  React.useEffect(() => {
2389
2466
  const el = ref.current;
2467
+ if (el === null) {
2468
+ return;
2469
+ }
2390
2470
  invariant(el);
2391
2471
  return dropTargetForElements({
2392
2472
  element: el,
@@ -2461,146 +2541,34 @@ const ViewDialog = ({ icon = jsxRuntime.jsx(io.IoMdEye, {}) }) => {
2461
2541
  return (jsxRuntime.jsxs(DialogRoot, { children: [jsxRuntime.jsx(react.DialogBackdrop, {}), jsxRuntime.jsx(DialogTrigger, { asChild: true, children: jsxRuntime.jsxs(react.Button, { as: react.Box, variant: "ghost", onClick: viewModel.onOpen, children: [icon, " ", translate.t("viewDialog.buttonText")] }) }), jsxRuntime.jsxs(DialogContent, { children: [jsxRuntime.jsx(DialogCloseTrigger, {}), jsxRuntime.jsx(DialogHeader, { children: jsxRuntime.jsx(DialogTitle, { children: translate.t("viewDialog.title") }) }), jsxRuntime.jsx(DialogBody, { children: jsxRuntime.jsx(TableViewer, {}) }), jsxRuntime.jsx(DialogFooter, {})] })] }));
2462
2542
  };
2463
2543
 
2464
- const MenuContent = React__namespace.forwardRef(function MenuContent(props, ref) {
2465
- const { portalled = true, portalRef, ...rest } = props;
2466
- return (jsxRuntime.jsx(react.Portal, { disabled: !portalled, container: portalRef, children: jsxRuntime.jsx(react.Menu.Positioner, { children: jsxRuntime.jsx(react.Menu.Content, { ref: ref, ...rest }) }) }));
2467
- });
2468
- React__namespace.forwardRef(function MenuArrow(props, ref) {
2469
- return (jsxRuntime.jsx(react.Menu.Arrow, { ref: ref, ...props, children: jsxRuntime.jsx(react.Menu.ArrowTip, {}) }));
2470
- });
2471
- React__namespace.forwardRef(function MenuCheckboxItem(props, ref) {
2472
- return (jsxRuntime.jsxs(react.Menu.CheckboxItem, { ref: ref, ...props, children: [jsxRuntime.jsx(react.Menu.ItemIndicator, { hidden: false, children: jsxRuntime.jsx(lu.LuCheck, {}) }), props.children] }));
2473
- });
2474
- React__namespace.forwardRef(function MenuRadioItem(props, ref) {
2475
- const { children, ...rest } = props;
2476
- return (jsxRuntime.jsxs(react.Menu.RadioItem, { ps: "8", ref: ref, ...rest, children: [jsxRuntime.jsx(react.AbsoluteCenter, { axis: "horizontal", left: "4", asChild: true, children: jsxRuntime.jsx(react.Menu.ItemIndicator, { children: jsxRuntime.jsx(lu.LuCheck, {}) }) }), jsxRuntime.jsx(react.Menu.ItemText, { children: children })] }));
2477
- });
2478
- React__namespace.forwardRef(function MenuItemGroup(props, ref) {
2479
- const { title, children, ...rest } = props;
2480
- return (jsxRuntime.jsxs(react.Menu.ItemGroup, { ref: ref, ...rest, children: [title && (jsxRuntime.jsx(react.Menu.ItemGroupLabel, { userSelect: "none", children: title })), children] }));
2481
- });
2482
- React__namespace.forwardRef(function MenuTriggerItem(props, ref) {
2483
- const { startIcon, children, ...rest } = props;
2484
- return (jsxRuntime.jsxs(react.Menu.TriggerItem, { ref: ref, ...rest, children: [startIcon, children, jsxRuntime.jsx(lu.LuChevronRight, {})] }));
2485
- });
2486
- react.Menu.RadioItemGroup;
2487
- react.Menu.ContextTrigger;
2488
- const MenuRoot = react.Menu.Root;
2489
- react.Menu.Separator;
2490
- const MenuItem = react.Menu.Item;
2491
- react.Menu.ItemText;
2492
- react.Menu.ItemCommand;
2493
- const MenuTrigger = react.Menu.Trigger;
2494
-
2495
- const PageSizeControl = ({ pageSizes = [10, 20, 30, 40, 50], }) => {
2496
- const { table } = useDataTableContext();
2497
- return (jsxRuntime.jsxs(MenuRoot, { children: [jsxRuntime.jsx(MenuTrigger, { asChild: true, children: jsxRuntime.jsxs(react.Button, { variant: "ghost", gap: "0.5rem", children: [table.getState().pagination.pageSize, " ", jsxRuntime.jsx(bi.BiDownArrow, {})] }) }), jsxRuntime.jsx(MenuContent, { children: pageSizes.map((pageSize) => (jsxRuntime.jsx(MenuItem, { value: `chakra-table-pageSize-${pageSize}`, onClick: () => {
2498
- table.setPageSize(Number(pageSize));
2499
- }, children: pageSize }, `chakra-table-pageSize-${pageSize}`))) })] }));
2500
- };
2501
-
2502
- const ResetSelectionButton = ({ text = "Reset Selection", }) => {
2503
- const { table } = useDataTableContext();
2504
- return (jsxRuntime.jsx(react.Button, { onClick: () => {
2505
- table.resetRowSelection();
2506
- }, children: text }));
2507
- };
2508
-
2509
- const RowCountText = () => {
2510
- const { table, type } = useDataTableContext();
2511
- const getCount = () => {
2512
- if (type === "client") {
2513
- return table.getFilteredRowModel().flatRows.length ?? 0;
2514
- }
2515
- return table.getRowCount();
2516
- };
2517
- return jsxRuntime.jsx(react.Text, { children: getCount() });
2544
+ const CardHeader = ({ row, imageColumnId = undefined, titleColumnId = undefined, tagColumnId = undefined, tagIcon = undefined, showTag = true, imageProps = {}, }) => {
2545
+ if (!!row.original === false) {
2546
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {});
2547
+ }
2548
+ const isShowFirstColumn = !!titleColumnId || showTag;
2549
+ return (jsxRuntime.jsxs(react.Grid, { templateRows: "auto auto", gap: "1rem", children: [!!imageColumnId && (jsxRuntime.jsx(react.Image, { width: "100%", src: row.original[imageColumnId], ...imageProps })), isShowFirstColumn && (jsxRuntime.jsxs(react.Flex, { gap: "0.5rem", flexFlow: "wrap", children: [!!titleColumnId && (jsxRuntime.jsx(react.Text, { fontWeight: "bold", fontSize: "large", children: row.original[titleColumnId] })), showTag && (jsxRuntime.jsx(Tag, { fontSize: "large", startElement: tagIcon && tagIcon({}), children: row.original[tagColumnId] }))] }))] }));
2518
2550
  };
2519
2551
 
2520
- const { withContext } = react.createRecipeContext({ key: "button" });
2521
- // Replace "a" with your framework's link component
2522
- const LinkButton = withContext("a");
2523
-
2524
- const [RootPropsProvider, useRootProps] = react.createContext({
2525
- name: "RootPropsProvider",
2526
- });
2527
- const variantMap = {
2528
- outline: { default: "ghost", ellipsis: "plain", current: "outline" },
2529
- solid: { default: "outline", ellipsis: "outline", current: "solid" },
2530
- subtle: { default: "ghost", ellipsis: "plain", current: "subtle" },
2531
- };
2532
- const PaginationRoot = React__namespace.forwardRef(function PaginationRoot(props, ref) {
2533
- const { size = "sm", variant = "outline", getHref, ...rest } = props;
2534
- return (jsxRuntime.jsx(RootPropsProvider, { value: { size, variantMap: variantMap[variant], getHref }, children: jsxRuntime.jsx(react.Pagination.Root, { ref: ref, type: getHref ? "link" : "button", ...rest }) }));
2535
- });
2536
- const PaginationEllipsis = React__namespace.forwardRef(function PaginationEllipsis(props, ref) {
2537
- const { size, variantMap } = useRootProps();
2538
- return (jsxRuntime.jsx(react.Pagination.Ellipsis, { ref: ref, ...props, asChild: true, children: jsxRuntime.jsx(react.Button, { as: "span", variant: variantMap.ellipsis, size: size, children: jsxRuntime.jsx(hi2.HiMiniEllipsisHorizontal, {}) }) }));
2539
- });
2540
- const PaginationItem = React__namespace.forwardRef(function PaginationItem(props, ref) {
2541
- const { page } = react.usePaginationContext();
2542
- const { size, variantMap, getHref } = useRootProps();
2543
- const current = page === props.value;
2544
- const variant = current ? variantMap.current : variantMap.default;
2545
- if (getHref) {
2546
- return (jsxRuntime.jsx(LinkButton, { href: getHref(props.value), variant: variant, size: size, children: props.value }));
2547
- }
2548
- return (jsxRuntime.jsx(react.Pagination.Item, { ref: ref, ...props, asChild: true, children: jsxRuntime.jsx(react.Button, { variant: variant, size: size, children: props.value }) }));
2549
- });
2550
- const PaginationPrevTrigger = React__namespace.forwardRef(function PaginationPrevTrigger(props, ref) {
2551
- const { size, variantMap, getHref } = useRootProps();
2552
- const { previousPage } = react.usePaginationContext();
2553
- if (getHref) {
2554
- return (jsxRuntime.jsx(LinkButton, { href: previousPage != null ? getHref(previousPage) : undefined, variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronLeft, {}) }));
2555
- }
2556
- return (jsxRuntime.jsx(react.Pagination.PrevTrigger, { ref: ref, asChild: true, ...props, children: jsxRuntime.jsx(react.IconButton, { variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronLeft, {}) }) }));
2557
- });
2558
- const PaginationNextTrigger = React__namespace.forwardRef(function PaginationNextTrigger(props, ref) {
2559
- const { size, variantMap, getHref } = useRootProps();
2560
- const { nextPage } = react.usePaginationContext();
2561
- if (getHref) {
2562
- return (jsxRuntime.jsx(LinkButton, { href: nextPage != null ? getHref(nextPage) : undefined, variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronRight, {}) }));
2563
- }
2564
- return (jsxRuntime.jsx(react.Pagination.NextTrigger, { ref: ref, asChild: true, ...props, children: jsxRuntime.jsx(react.IconButton, { variant: variantMap.default, size: size, children: jsxRuntime.jsx(hi2.HiChevronRight, {}) }) }));
2552
+ const DataTableServerContext = React.createContext({
2553
+ url: "",
2565
2554
  });
2566
- const PaginationItems = (props) => {
2567
- return (jsxRuntime.jsx(react.Pagination.Context, { children: ({ pages }) => pages.map((page, index) => {
2568
- return page.type === "ellipsis" ? (jsxRuntime.jsx(PaginationEllipsis, { index: index, ...props }, index)) : (jsxRuntime.jsx(PaginationItem, { type: "page", value: page.value, ...props }, index));
2569
- }) }));
2555
+
2556
+ const useDataTableServerContext = () => {
2557
+ const context = React.useContext(DataTableServerContext);
2558
+ const { query } = context;
2559
+ const isEmpty = (query.data?.count ?? 0) <= 0;
2560
+ return { ...context, isEmpty };
2570
2561
  };
2571
- const PaginationPageText = React__namespace.forwardRef(function PaginationPageText(props, ref) {
2572
- const { format = "compact", ...rest } = props;
2573
- const { page, totalPages, pageRange, count } = react.usePaginationContext();
2574
- const content = React__namespace.useMemo(() => {
2575
- if (format === "short")
2576
- return `${page} / ${totalPages}`;
2577
- if (format === "compact")
2578
- return `${page} / ${totalPages}`;
2579
- return `${pageRange.start + 1} - ${Math.min(pageRange.end, count)} / ${count}`;
2580
- }, [format, page, totalPages, pageRange, count]);
2581
- return (jsxRuntime.jsx(react.Text, { fontWeight: "medium", ref: ref, ...rest, children: content }));
2582
- });
2583
2562
 
2584
- // TODO: not working in client side
2585
- const Pagination = () => {
2586
- const { table, type } = useDataTableContext();
2587
- const getCount = () => {
2588
- if (type === "client") {
2589
- return table.getFilteredRowModel().flatRows.length ?? 0;
2590
- }
2591
- return table.getRowCount();
2592
- };
2593
- return (jsxRuntime.jsx(PaginationRoot, { page: table.getState().pagination.pageIndex + 1, count: getCount(), pageSize: table.getState().pagination.pageSize, onPageChange: (e) => {
2594
- table.setPageIndex(e.page - 1);
2595
- }, children: jsxRuntime.jsxs(react.HStack, { children: [jsxRuntime.jsx(PaginationPrevTrigger, {}), jsxRuntime.jsx(PaginationItems, {}), jsxRuntime.jsx(PaginationNextTrigger, {})] }) }));
2563
+ const EmptyState$1 = ({ title = "No records", description = "Add a new events to get started or refine your search", }) => {
2564
+ const { isEmpty } = useDataTableServerContext();
2565
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: isEmpty && (jsxRuntime.jsx(react.EmptyState.Root, { children: jsxRuntime.jsxs(react.EmptyState.Content, { children: [jsxRuntime.jsx(react.EmptyState.Indicator, { children: jsxRuntime.jsx(hi.HiColorSwatch, {}) }), jsxRuntime.jsxs(react.VStack, { textAlign: "center", children: [jsxRuntime.jsx(react.EmptyState.Title, { children: title }), jsxRuntime.jsx(react.EmptyState.Description, { children: description })] })] }) })) }));
2596
2566
  };
2597
2567
 
2598
- const CardHeader = ({ row, imageColumnId = undefined, titleColumnId = undefined, tagColumnId = undefined, tagIcon = undefined, showTag = true, imageProps = {}, }) => {
2599
- if (!!row.original === false) {
2600
- return jsxRuntime.jsx(jsxRuntime.Fragment, {});
2601
- }
2602
- const isShowFirstColumn = !!titleColumnId || showTag;
2603
- return (jsxRuntime.jsxs(react.Grid, { templateRows: "auto auto", gap: "1rem", children: [!!imageColumnId && (jsxRuntime.jsx(react.Image, { width: "100%", src: row.original[imageColumnId], ...imageProps })), isShowFirstColumn && (jsxRuntime.jsxs(react.Flex, { gap: "0.5rem", flexFlow: "wrap", children: [!!titleColumnId && (jsxRuntime.jsx(react.Text, { fontWeight: "bold", fontSize: "large", children: row.original[titleColumnId] })), showTag && (jsxRuntime.jsx(Tag, { fontSize: "large", startElement: tagIcon && tagIcon({}), children: row.original[tagColumnId] }))] }))] }));
2568
+ const ErrorAlert = ({ showMessage = true }) => {
2569
+ const { query } = useDataTableServerContext();
2570
+ const { isError, error } = query;
2571
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: isError && (jsxRuntime.jsxs(react.Alert.Root, { status: "error", children: [jsxRuntime.jsx(react.Alert.Indicator, {}), jsxRuntime.jsxs(react.Alert.Content, { children: [jsxRuntime.jsx(react.Alert.Title, { children: error.name }), showMessage && (jsxRuntime.jsx(react.Alert.Description, { children: error.message }))] })] })) }));
2604
2572
  };
2605
2573
 
2606
2574
  const snakeToLabel = (str) => {
@@ -2846,13 +2814,25 @@ function DataTable({ columns, data, enableRowSelection = true, enableMultiRowSel
2846
2814
  setGlobalFilter,
2847
2815
  type: "client",
2848
2816
  translate,
2817
+ columns,
2818
+ sorting,
2819
+ setSorting,
2820
+ columnFilters,
2821
+ setColumnFilters,
2822
+ pagination,
2823
+ setPagination,
2824
+ rowSelection,
2825
+ setRowSelection,
2826
+ columnOrder,
2827
+ setColumnOrder,
2828
+ density,
2829
+ setDensity,
2830
+ columnVisibility,
2831
+ setColumnVisibility,
2832
+ data,
2849
2833
  }, children: children }));
2850
2834
  }
2851
2835
 
2852
- const DataTableServerContext = React.createContext({
2853
- url: "",
2854
- });
2855
-
2856
2836
  /**
2857
2837
  * DataTableServer will create a context to hold all values to
2858
2838
  * help the render of the DataTable in serverside
@@ -2918,6 +2898,22 @@ function DataTableServer({ columns, enableRowSelection = true, enableMultiRowSel
2918
2898
  setGlobalFilter,
2919
2899
  type: "server",
2920
2900
  translate,
2901
+ columns,
2902
+ sorting,
2903
+ setSorting,
2904
+ columnFilters,
2905
+ setColumnFilters,
2906
+ pagination,
2907
+ setPagination,
2908
+ rowSelection,
2909
+ setRowSelection,
2910
+ columnOrder,
2911
+ setColumnOrder,
2912
+ density,
2913
+ setDensity,
2914
+ columnVisibility,
2915
+ setColumnVisibility,
2916
+ data: query.data?.data ?? [],
2921
2917
  }, children: jsxRuntime.jsx(DataTableServerContext.Provider, { value: { url, query }, children: children }) }));
2922
2918
  }
2923
2919
 
@@ -2927,6 +2923,7 @@ const Checkbox = React__namespace.forwardRef(function Checkbox(props, ref) {
2927
2923
  });
2928
2924
 
2929
2925
  const TableBody = ({ pinnedBgColor = { light: "gray.50", dark: "gray.700" }, showSelector = false, alwaysShowSelector = true, canResize = true, }) => {
2926
+ "use no memo";
2930
2927
  const { table } = useDataTableContext();
2931
2928
  const SELECTION_BOX_WIDTH = 20;
2932
2929
  const [hoveredRow, setHoveredRow] = React.useState(-1);
@@ -3036,13 +3033,6 @@ const GlobalFilter = () => {
3036
3033
  } }) }) }));
3037
3034
  };
3038
3035
 
3039
- const useDataTableServerContext = () => {
3040
- const context = React.useContext(DataTableServerContext);
3041
- const { query } = context;
3042
- const isEmpty = (query.data?.count ?? 0) <= 0;
3043
- return { ...context, isEmpty };
3044
- };
3045
-
3046
3036
  const ReloadButton = ({ text = "Reload", variant = "icon", }) => {
3047
3037
  const { url } = useDataTableServerContext();
3048
3038
  const queryClient = reactQuery.useQueryClient();
@@ -3256,12 +3246,12 @@ const TableHeader = ({ canResize = true, pinnedBgColor = { light: "gray.50", dar
3256
3246
  })] }, `chakra-table-headergroup-${headerGroup.id}`))) }));
3257
3247
  };
3258
3248
 
3259
- const EmptyState$1 = React__namespace.forwardRef(function EmptyState(props, ref) {
3249
+ const EmptyState = React__namespace.forwardRef(function EmptyState(props, ref) {
3260
3250
  const { title, description, icon, children, ...rest } = props;
3261
3251
  return (jsxRuntime.jsx(react.EmptyState.Root, { ref: ref, ...rest, children: jsxRuntime.jsxs(react.EmptyState.Content, { children: [icon && (jsxRuntime.jsx(react.EmptyState.Indicator, { children: icon })), description ? (jsxRuntime.jsxs(react.VStack, { textAlign: "center", children: [jsxRuntime.jsx(react.EmptyState.Title, { children: title }), jsxRuntime.jsx(react.EmptyState.Description, { children: description })] })) : (jsxRuntime.jsx(react.EmptyState.Title, { children: title })), children] }) }));
3262
3252
  });
3263
3253
 
3264
- const EmptyResult = (jsxRuntime.jsx(EmptyState$1, { icon: jsxRuntime.jsx(hi.HiColorSwatch, {}), title: "No results found", description: "Try adjusting your search", children: jsxRuntime.jsxs(react.List.Root, { variant: "marker", children: [jsxRuntime.jsx(react.List.Item, { children: "Try removing filters" }), jsxRuntime.jsx(react.List.Item, { children: "Try different keywords" })] }) }));
3254
+ const EmptyResult = (jsxRuntime.jsx(EmptyState, { icon: jsxRuntime.jsx(hi.HiColorSwatch, {}), title: "No results found", description: "Try adjusting your search", children: jsxRuntime.jsxs(react.List.Root, { variant: "marker", children: [jsxRuntime.jsx(react.List.Item, { children: "Try removing filters" }), jsxRuntime.jsx(react.List.Item, { children: "Try different keywords" })] }) }));
3265
3255
  const Table = ({ children, emptyComponent = EmptyResult, canResize = true, ...props }) => {
3266
3256
  const { table } = useDataTableContext();
3267
3257
  if (table.getRowModel().rows.length <= 0) {
@@ -3530,16 +3520,75 @@ const getColumns = ({ schema, include = [], ignore = [], width = [], meta = {},
3530
3520
  return columns;
3531
3521
  };
3532
3522
 
3533
- const EmptyState = ({ title = "No records", description = "Add a new events to get started or refine your search", }) => {
3534
- const { isEmpty } = useDataTableServerContext();
3535
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: isEmpty && (jsxRuntime.jsx(react.EmptyState.Root, { children: jsxRuntime.jsxs(react.EmptyState.Content, { children: [jsxRuntime.jsx(react.EmptyState.Indicator, { children: jsxRuntime.jsx(hi.HiColorSwatch, {}) }), jsxRuntime.jsxs(react.VStack, { textAlign: "center", children: [jsxRuntime.jsx(react.EmptyState.Title, { children: title }), jsxRuntime.jsx(react.EmptyState.Description, { children: description })] })] }) })) }));
3523
+ const TableDataDisplay = ({ colorPalette }) => {
3524
+ const { table, columns, translate, data } = useDataTableContext();
3525
+ const columnDef = table._getColumnDefs();
3526
+ console.log(columnDef, "glp");
3527
+ console.log(columnDef, columns, table.getState().columnOrder, data, "glp");
3528
+ const columnsMap = Object.fromEntries(columns.map((def) => {
3529
+ const { accessorKey, id } = def;
3530
+ if (accessorKey) {
3531
+ return [accessorKey, def];
3532
+ }
3533
+ return [id, def];
3534
+ }));
3535
+ const columnHeaders = Object.keys(columnsMap);
3536
+ const totalWidths = columns
3537
+ .map(({ size }) => {
3538
+ if (!!size === false) {
3539
+ return 0;
3540
+ }
3541
+ if (typeof size === "number") {
3542
+ return size;
3543
+ }
3544
+ return 0;
3545
+ })
3546
+ .reduce((previous, current) => previous + current, 0);
3547
+ const columnWidths = columns
3548
+ .map(({ size }) => {
3549
+ if (!!size === false) {
3550
+ return "1fr";
3551
+ }
3552
+ return `minmax(${size}px, ${(size / totalWidths) * 100}%)`;
3553
+ })
3554
+ .join(" ");
3555
+ console.log({ columnWidths }, "hadfg");
3556
+ const cellProps = {
3557
+ flex: "1 0 0%",
3558
+ overflow: "auto",
3559
+ paddingX: "2",
3560
+ py: "1",
3561
+ borderBottomColor: { base: "colorPalette.200", _dark: "colorPalette.800" },
3562
+ borderBottomWidth: "1px",
3563
+ ...{ colorPalette },
3564
+ };
3565
+ return (jsxRuntime.jsxs(react.Grid, { templateColumns: `${columnWidths}`, overflow: "auto", borderWidth: "1px", borderColor: { base: "colorPalette.200", _dark: "colorPalette.800" }, colorPalette, children: [jsxRuntime.jsx(react.Grid, { templateColumns: `${columnWidths}`, column: `1/span ${columns.length}`, bg: { base: "colorPalette.200", _dark: "colorPalette.800" }, colorPalette, children: columnHeaders.map((header) => {
3566
+ return (jsxRuntime.jsx(react.Box, { flex: "1 0 0%", paddingX: "2", py: "1", overflow: "auto", textOverflow: "ellipsis", children: translate.t(`column_header.${header}`) }));
3567
+ }) }), data.map((record) => {
3568
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: columnHeaders.map((header) => {
3569
+ if (!!record === false) {
3570
+ return (jsxRuntime.jsx(react.Box, { ...cellProps, children: translate.t(`column_cell.placeholder`) }));
3571
+ }
3572
+ if (!!record[header] === false) {
3573
+ return (jsxRuntime.jsx(react.Box, { ...cellProps, children: translate.t(`column_cell.placeholder`) }));
3574
+ }
3575
+ if (typeof record[header] === "object") {
3576
+ return (jsxRuntime.jsx(react.Box, { ...cellProps, children: jsxRuntime.jsx(RecordDisplay, { object: record[header] }) }));
3577
+ }
3578
+ return jsxRuntime.jsx(react.Box, { ...cellProps, children: record[header] ?? "" });
3579
+ }) }));
3580
+ })] }));
3536
3581
  };
3537
3582
 
3538
- const ErrorAlert = ({ showMessage = true }) => {
3539
- const { query } = useDataTableServerContext();
3540
- const { isError, error } = query;
3541
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: isError && (jsxRuntime.jsxs(react.Alert.Root, { status: "error", children: [jsxRuntime.jsx(react.Alert.Indicator, {}), jsxRuntime.jsxs(react.Alert.Content, { children: [jsxRuntime.jsx(react.Alert.Title, { children: error.name }), showMessage && (jsxRuntime.jsx(react.Alert.Description, { children: error.message }))] })] })) }));
3542
- };
3583
+ const AccordionItemTrigger = React__namespace.forwardRef(function AccordionItemTrigger(props, ref) {
3584
+ const { children, indicatorPlacement = "end", ...rest } = props;
3585
+ return (jsxRuntime.jsxs(react.Accordion.ItemTrigger, { ...rest, ref: ref, children: [indicatorPlacement === "start" && (jsxRuntime.jsx(react.Accordion.ItemIndicator, { rotate: { base: "-90deg", _open: "0deg" }, children: jsxRuntime.jsx(lu.LuChevronDown, {}) })), jsxRuntime.jsx(react.HStack, { gap: "4", flex: "1", textAlign: "start", width: "full", children: children }), indicatorPlacement === "end" && (jsxRuntime.jsx(react.Accordion.ItemIndicator, { children: jsxRuntime.jsx(lu.LuChevronDown, {}) }))] }));
3586
+ });
3587
+ const AccordionItemContent = React__namespace.forwardRef(function AccordionItemContent(props, ref) {
3588
+ return (jsxRuntime.jsx(react.Accordion.ItemContent, { children: jsxRuntime.jsx(react.Accordion.ItemBody, { ...props, ref: ref }) }));
3589
+ });
3590
+ const AccordionRoot = react.Accordion.Root;
3591
+ const AccordionItem = react.Accordion.Item;
3543
3592
 
3544
3593
  //@ts-expect-error TODO: find appropriate type
3545
3594
  const SchemaFormContext = React.createContext({
@@ -3562,15 +3611,56 @@ const clearEmptyString = (object) => {
3562
3611
  return Object.fromEntries(Object.entries(object).filter(([, value]) => value !== ""));
3563
3612
  };
3564
3613
 
3565
- const AccordionItemTrigger = React__namespace.forwardRef(function AccordionItemTrigger(props, ref) {
3566
- const { children, indicatorPlacement = "end", ...rest } = props;
3567
- return (jsxRuntime.jsxs(react.Accordion.ItemTrigger, { ...rest, ref: ref, children: [indicatorPlacement === "start" && (jsxRuntime.jsx(react.Accordion.ItemIndicator, { rotate: { base: "-90deg", _open: "0deg" }, children: jsxRuntime.jsx(lu.LuChevronDown, {}) })), jsxRuntime.jsx(react.HStack, { gap: "4", flex: "1", textAlign: "start", width: "full", children: children }), indicatorPlacement === "end" && (jsxRuntime.jsx(react.Accordion.ItemIndicator, { children: jsxRuntime.jsx(lu.LuChevronDown, {}) }))] }));
3568
- });
3569
- const AccordionItemContent = React__namespace.forwardRef(function AccordionItemContent(props, ref) {
3570
- return (jsxRuntime.jsx(react.Accordion.ItemContent, { children: jsxRuntime.jsx(react.Accordion.ItemBody, { ...props, ref: ref }) }));
3571
- });
3572
- const AccordionRoot = react.Accordion.Root;
3573
- const AccordionItem = react.Accordion.Item;
3614
+ const idPickerSanityCheck = (column, foreign_key) => {
3615
+ if (!!foreign_key == false) {
3616
+ throw new Error(`The key foreign_key does not exist in properties of column ${column} when using id-picker.`);
3617
+ }
3618
+ const { table, column: foreignKeyColumn, display_column } = foreign_key;
3619
+ if (!!table == false) {
3620
+ throw new Error(`The key table does not exist in properties of column ${table} when using id-picker.`);
3621
+ }
3622
+ if (!!display_column == false) {
3623
+ throw new Error(`The key display_column does not exist in properties of column ${column} when using id-picker.`);
3624
+ }
3625
+ if (!!foreignKeyColumn == false) {
3626
+ throw new Error(`The key column does not exist in properties of column ${column} when using id-picker.`);
3627
+ }
3628
+ };
3629
+ const FormRoot = ({ schema, idMap, setIdMap, form, serverUrl, translate, children, order = [], ignore = [], include = [], onSubmit = undefined, rowNumber = undefined, requestOptions = {}, getUpdatedData = () => { }, }) => {
3630
+ const [isSuccess, setIsSuccess] = React.useState(false);
3631
+ const [isError, setIsError] = React.useState(false);
3632
+ const [isSubmiting, setIsSubmiting] = React.useState(false);
3633
+ const [isConfirming, setIsConfirming] = React.useState(false);
3634
+ const [validatedData, setValidatedData] = React.useState();
3635
+ const [error, setError] = React.useState();
3636
+ return (jsxRuntime.jsx(SchemaFormContext.Provider, { value: {
3637
+ schema,
3638
+ serverUrl,
3639
+ order,
3640
+ ignore,
3641
+ include,
3642
+ // @ts-expect-error TODO: find appropriate types
3643
+ onSubmit,
3644
+ rowNumber,
3645
+ idMap,
3646
+ setIdMap,
3647
+ translate,
3648
+ requestOptions,
3649
+ isSuccess,
3650
+ setIsSuccess,
3651
+ isError,
3652
+ setIsError,
3653
+ isSubmiting,
3654
+ setIsSubmiting,
3655
+ isConfirming,
3656
+ setIsConfirming,
3657
+ validatedData,
3658
+ setValidatedData,
3659
+ error,
3660
+ setError,
3661
+ getUpdatedData,
3662
+ }, children: jsxRuntime.jsx(reactHookForm.FormProvider, { ...form, children: children }) }));
3663
+ };
3574
3664
 
3575
3665
  function removeIndex(str) {
3576
3666
  return str.replace(/\.\d+\./g, '.');
@@ -3721,10 +3811,11 @@ const DatePicker = ({ column, schema, prefix }) => {
3721
3811
  const colLabel = `${prefix}${column}`;
3722
3812
  const [open, setOpen] = React.useState(false);
3723
3813
  const selectedDate = watch(colLabel);
3814
+ const formatedDate = dayjs(selectedDate).format("YYYY-MM-DD");
3724
3815
  return (jsxRuntime.jsxs(Field, { label: `${translate.t(removeIndex(`${colLabel}.fieldLabel`))}`, required: isRequired, alignItems: "stretch", gridColumn,
3725
3816
  gridRow, children: [jsxRuntime.jsxs(PopoverRoot, { open: open, onOpenChange: (e) => setOpen(e.open), closeOnInteractOutside: true, children: [jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: jsxRuntime.jsx(Button, { size: "sm", variant: "outline", onClick: () => {
3726
3817
  setOpen(true);
3727
- }, children: selectedDate !== undefined ? selectedDate : "" }) }), jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs(PopoverBody, { children: [jsxRuntime.jsx(PopoverTitle, {}), jsxRuntime.jsx(DatePicker$1
3818
+ }, children: selectedDate !== undefined ? `${formatedDate}` : "" }) }), jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs(PopoverBody, { children: [jsxRuntime.jsx(PopoverTitle, {}), jsxRuntime.jsx(DatePicker$1
3728
3819
  // @ts-expect-error TODO: find appropriate types
3729
3820
  , {
3730
3821
  // @ts-expect-error TODO: find appropriate types
@@ -4274,7 +4365,6 @@ const IdPicker = ({ column, schema, prefix, isMultiple = false, }) => {
4274
4365
  });
4275
4366
  return data;
4276
4367
  },
4277
- staleTime: 300000,
4278
4368
  });
4279
4369
  const onSearchChange = async (event) => {
4280
4370
  setSearchText(event.target.value);
@@ -4928,30 +5018,23 @@ const ColumnViewer = ({ column, properties, prefix, }) => {
4928
5018
  return jsxRuntime.jsx(SchemaViewer, { schema: colSchema, prefix, column });
4929
5019
  };
4930
5020
 
4931
- const idPickerSanityCheck = (column, foreign_key) => {
4932
- if (!!foreign_key == false) {
4933
- throw new Error(`The key foreign_key does not exist in properties of column ${column} when using id-picker.`);
4934
- }
4935
- const { table, column: foreignKeyColumn, display_column } = foreign_key;
4936
- if (!!table == false) {
4937
- throw new Error(`The key table does not exist in properties of column ${table} when using id-picker.`);
4938
- }
4939
- if (!!display_column == false) {
4940
- throw new Error(`The key display_column does not exist in properties of column ${column} when using id-picker.`);
4941
- }
4942
- if (!!foreignKeyColumn == false) {
4943
- throw new Error(`The key column does not exist in properties of column ${column} when using id-picker.`);
4944
- }
5021
+ const SubmitButton = () => {
5022
+ const { translate, setValidatedData, setIsError, setIsConfirming } = useSchemaContext();
5023
+ const methods = reactHookForm.useFormContext();
5024
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5025
+ const onValid = (data) => {
5026
+ setValidatedData(data);
5027
+ setIsError(false);
5028
+ setIsConfirming(true);
5029
+ };
5030
+ return (jsxRuntime.jsx(react.Button, { onClick: () => {
5031
+ methods.handleSubmit(onValid)();
5032
+ }, formNoValidate: true, children: translate.t("submit") }));
4945
5033
  };
4946
- const FormInternal = () => {
4947
- const { schema, requestUrl, order, ignore, include, onSubmit, rowNumber, translate, requestOptions, } = useSchemaContext();
5034
+
5035
+ const FormBody = () => {
5036
+ const { schema, requestUrl, order, ignore, include, onSubmit, rowNumber, translate, requestOptions, isSuccess, setIsSuccess, isError, setIsError, isSubmiting, setIsSubmiting, isConfirming, setIsConfirming, validatedData, setValidatedData, error, setError, getUpdatedData, } = useSchemaContext();
4948
5037
  const methods = reactHookForm.useFormContext();
4949
- const [isSuccess, setIsSuccess] = React.useState(false);
4950
- const [isError, setIsError] = React.useState(false);
4951
- const [isSubmiting, setIsSubmiting] = React.useState(false);
4952
- const [isConfirming, setIsConfirming] = React.useState(false);
4953
- const [validatedData, setValidatedData] = React.useState();
4954
- const [error, setError] = React.useState();
4955
5038
  const { properties } = schema;
4956
5039
  const onBeforeSubmit = () => {
4957
5040
  setIsSubmiting(true);
@@ -4959,8 +5042,9 @@ const FormInternal = () => {
4959
5042
  const onAfterSubmit = () => {
4960
5043
  setIsSubmiting(false);
4961
5044
  };
4962
- const onSubmitError = () => {
5045
+ const onSubmitError = (error) => {
4963
5046
  setIsError(true);
5047
+ setError(error);
4964
5048
  };
4965
5049
  const onSubmitSuccess = () => {
4966
5050
  setIsSuccess(true);
@@ -4972,9 +5056,7 @@ const FormInternal = () => {
4972
5056
  onSubmitSuccess();
4973
5057
  }
4974
5058
  catch (error) {
4975
- setIsError(true);
4976
- setError(error);
4977
- onSubmitError();
5059
+ onSubmitError(error);
4978
5060
  }
4979
5061
  finally {
4980
5062
  onAfterSubmit();
@@ -4997,12 +5079,6 @@ const FormInternal = () => {
4997
5079
  }
4998
5080
  await defaultOnSubmit(onSubmit(data));
4999
5081
  };
5000
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5001
- const onValid = (data) => {
5002
- setValidatedData(data);
5003
- setIsError(false);
5004
- setIsConfirming(true);
5005
- };
5006
5082
  const renderColumns = ({ order, keys, ignore, include, }) => {
5007
5083
  const included = include.length > 0 ? include : keys;
5008
5084
  const not_exist = included.filter((columnA) => !order.some((columnB) => columnA === columnB));
@@ -5017,58 +5093,47 @@ const FormInternal = () => {
5017
5093
  include,
5018
5094
  });
5019
5095
  if (isSuccess) {
5020
- return (jsxRuntime.jsxs(react.Grid, { gap: 2, children: [jsxRuntime.jsx(react.Heading, { children: translate.t("title") }), jsxRuntime.jsxs(react.Alert.Root, { status: "success", children: [jsxRuntime.jsx(react.Alert.Indicator, {}), jsxRuntime.jsx(react.Alert.Title, { children: translate.t("submitSuccess") })] }), jsxRuntime.jsx(react.Flex, { justifyContent: "end", children: jsxRuntime.jsx(Button, { onClick: () => {
5096
+ return (jsxRuntime.jsxs(react.Flex, { flexFlow: "column", gap: "2", children: [jsxRuntime.jsxs(react.Alert.Root, { status: "success", children: [jsxRuntime.jsx(react.Alert.Indicator, {}), jsxRuntime.jsx(react.Alert.Title, { children: translate.t("submitSuccess") })] }), jsxRuntime.jsx(react.Flex, { justifyContent: "end", children: jsxRuntime.jsx(react.Button, { onClick: async () => {
5021
5097
  setIsError(false);
5022
5098
  setIsSubmiting(false);
5023
5099
  setIsSuccess(false);
5024
5100
  setIsConfirming(false);
5025
5101
  setValidatedData(undefined);
5026
- methods.reset();
5102
+ const data = await getUpdatedData();
5103
+ methods.reset(data);
5027
5104
  }, formNoValidate: true, children: translate.t("submitAgain") }) })] }));
5028
5105
  }
5029
5106
  if (isConfirming) {
5030
- return (jsxRuntime.jsxs(react.Grid, { gap: 2, children: [jsxRuntime.jsxs(react.Heading, { children: [" ", translate.t("title")] }), jsxRuntime.jsx(react.Grid, { gap: 4, gridTemplateColumns: "repeat(12, 1fr)", gridTemplateRows: `repeat(${rowNumber ?? "auto-fit"}, auto)`, children: ordered.map((column) => {
5107
+ return (jsxRuntime.jsxs(react.Flex, { flexFlow: "column", gap: "2", children: [jsxRuntime.jsx(react.Grid, { gap: 4, gridTemplateColumns: "repeat(12, 1fr)", gridTemplateRows: `repeat(${rowNumber ?? "auto-fit"}, auto)`, children: ordered.map((column) => {
5031
5108
  return (jsxRuntime.jsx(ColumnViewer
5032
5109
  // @ts-expect-error find suitable types
5033
5110
  , {
5034
5111
  // @ts-expect-error find suitable types
5035
5112
  properties: properties, prefix: ``, column }, `form-viewer-${column}`));
5036
- }) }), jsxRuntime.jsxs(react.Flex, { justifyContent: "end", gap: "2", children: [jsxRuntime.jsx(Button, { onClick: () => {
5113
+ }) }), jsxRuntime.jsxs(react.Flex, { justifyContent: "end", gap: "2", children: [jsxRuntime.jsx(react.Button, { onClick: () => {
5037
5114
  setIsConfirming(false);
5038
- }, variant: "subtle", children: translate.t("cancel") }), jsxRuntime.jsx(Button, { onClick: () => {
5115
+ }, variant: "subtle", children: translate.t("cancel") }), jsxRuntime.jsx(react.Button, { onClick: () => {
5039
5116
  onFormSubmit(validatedData);
5040
- }, children: translate.t("confirm") })] }), isSubmiting && (jsxRuntime.jsx(react.Box, { pos: "absolute", inset: "0", bg: "bg/80", children: jsxRuntime.jsx(react.Center, { h: "full", children: jsxRuntime.jsx(react.Spinner, { color: "teal.500" }) }) })), isError && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(react.Alert.Root, { status: "error", children: jsxRuntime.jsx(react.Alert.Title, { children: jsxRuntime.jsx(AccordionRoot, { collapsible: true, defaultValue: ["b"], children: jsxRuntime.jsxs(AccordionItem, { value: "b", children: [jsxRuntime.jsxs(AccordionItemTrigger, { children: [jsxRuntime.jsx(react.Alert.Indicator, {}), `${error}`] }), jsxRuntime.jsx(AccordionItemContent, { children: `${JSON.stringify(error)}` })] }) }) }) }) }))] }));
5117
+ }, children: translate.t("confirm") })] }), isSubmiting && (jsxRuntime.jsx(react.Box, { pos: "absolute", inset: "0", bg: "bg/80", children: jsxRuntime.jsx(react.Center, { h: "full", children: jsxRuntime.jsx(react.Spinner, { color: "teal.500" }) }) })), isError && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(react.Alert.Root, { status: "error", children: jsxRuntime.jsx(react.Alert.Title, { children: jsxRuntime.jsx(AccordionRoot, { collapsible: true, defaultValue: [], children: jsxRuntime.jsxs(AccordionItem, { value: "b", children: [jsxRuntime.jsxs(AccordionItemTrigger, { children: [jsxRuntime.jsx(react.Alert.Indicator, {}), `${error}`] }), jsxRuntime.jsx(AccordionItemContent, { children: `${JSON.stringify(error)}` })] }) }) }) }) }))] }));
5041
5118
  }
5042
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(react.Grid, { gap: "2", children: [jsxRuntime.jsxs(react.Heading, { children: [" ", translate.t("title")] }), jsxRuntime.jsx(react.Grid, { gap: "4", gridTemplateColumns: "repeat(12, 1fr)", gridTemplateRows: `repeat(${rowNumber ?? "auto-fit"}, auto)`, children: ordered.map((column) => {
5043
- return (jsxRuntime.jsx(ColumnRenderer
5119
+ return (jsxRuntime.jsxs(react.Flex, { flexFlow: "column", gap: "2", children: [jsxRuntime.jsx(react.Grid, { gap: "4", gridTemplateColumns: "repeat(12, 1fr)", gridTemplateRows: `repeat(${rowNumber ?? "auto-fit"}, auto)`, children: ordered.map((column) => {
5120
+ return (jsxRuntime.jsx(ColumnRenderer
5121
+ // @ts-expect-error find suitable types
5122
+ , {
5044
5123
  // @ts-expect-error find suitable types
5045
- , {
5046
- // @ts-expect-error find suitable types
5047
- properties: properties, prefix: ``, column }, `form-input-${column}`));
5048
- }) }), jsxRuntime.jsxs(react.Flex, { justifyContent: "end", gap: "2", children: [jsxRuntime.jsx(Button, { onClick: () => {
5049
- methods.reset();
5050
- }, variant: "subtle", children: translate.t("reset") }), jsxRuntime.jsx(Button, { onClick: () => {
5051
- methods.handleSubmit(onValid)();
5052
- }, formNoValidate: true, children: translate.t("submit") })] })] }) }));
5124
+ properties: properties, prefix: ``, column }, `form-input-${column}`));
5125
+ }) }), jsxRuntime.jsxs(react.Flex, { justifyContent: "end", gap: "2", children: [jsxRuntime.jsx(react.Button, { onClick: () => {
5126
+ methods.reset();
5127
+ }, variant: "subtle", children: translate.t("reset") }), jsxRuntime.jsx(SubmitButton, {})] })] }));
5053
5128
  };
5054
- const Form = ({ schema, idMap, setIdMap, form, serverUrl, translate, order = [], ignore = [], include = [], onSubmit = undefined, rowNumber = undefined, requestOptions = {}, }) => {
5055
- // const { properties } = schema;
5056
- // idListSanityCheck("order", order, properties as object);
5057
- // idListSanityCheck("ignore", ignore, properties as object);
5058
- return (jsxRuntime.jsx(SchemaFormContext.Provider, { value: {
5059
- schema,
5060
- serverUrl,
5061
- order,
5062
- ignore,
5063
- include,
5064
- // @ts-expect-error TODO: find appropriate types
5065
- onSubmit,
5066
- rowNumber,
5067
- idMap,
5068
- setIdMap,
5069
- translate,
5070
- requestOptions,
5071
- }, children: jsxRuntime.jsx(reactHookForm.FormProvider, { ...form, children: jsxRuntime.jsx(FormInternal, {}) }) }));
5129
+
5130
+ const FormTitle = () => {
5131
+ const { translate } = useSchemaContext();
5132
+ return jsxRuntime.jsx(react.Heading, { children: translate.t("title") });
5133
+ };
5134
+
5135
+ const DefaultForm = ({ formConfig, showTitle = true, }) => {
5136
+ return (jsxRuntime.jsx(FormRoot, { ...formConfig, children: jsxRuntime.jsxs(react.Grid, { gap: "2", children: [showTitle && jsxRuntime.jsx(FormTitle, {}), jsxRuntime.jsx(FormBody, {})] }) }));
5072
5137
  };
5073
5138
 
5074
5139
  const useForm = ({ preLoadedValues, keyPrefix }) => {
@@ -5106,15 +5171,17 @@ exports.DataDisplay = DataDisplay;
5106
5171
  exports.DataTable = DataTable;
5107
5172
  exports.DataTableServer = DataTableServer;
5108
5173
  exports.DefaultCardTitle = DefaultCardTitle;
5174
+ exports.DefaultForm = DefaultForm;
5109
5175
  exports.DefaultTable = DefaultTable;
5110
5176
  exports.DensityToggleButton = DensityToggleButton;
5111
- exports.EditOrderButton = EditOrderButton;
5112
5177
  exports.EditSortingButton = EditSortingButton;
5113
- exports.EmptyState = EmptyState;
5178
+ exports.EmptyState = EmptyState$1;
5114
5179
  exports.ErrorAlert = ErrorAlert;
5115
5180
  exports.FilterDialog = FilterDialog;
5116
5181
  exports.FilterOptions = FilterOptions;
5117
- exports.Form = Form;
5182
+ exports.FormBody = FormBody;
5183
+ exports.FormRoot = FormRoot;
5184
+ exports.FormTitle = FormTitle;
5118
5185
  exports.GlobalFilter = GlobalFilter;
5119
5186
  exports.PageSizeControl = PageSizeControl;
5120
5187
  exports.Pagination = Pagination;
@@ -5130,12 +5197,12 @@ exports.TableCardContainer = TableCardContainer;
5130
5197
  exports.TableCards = TableCards;
5131
5198
  exports.TableComponent = TableComponent;
5132
5199
  exports.TableControls = TableControls;
5200
+ exports.TableDataDisplay = TableDataDisplay;
5133
5201
  exports.TableFilter = TableFilter;
5134
5202
  exports.TableFilterTags = TableFilterTags;
5135
5203
  exports.TableFooter = TableFooter;
5136
5204
  exports.TableHeader = TableHeader;
5137
5205
  exports.TableLoadingComponent = TableLoadingComponent;
5138
- exports.TableOrderer = TableOrderer;
5139
5206
  exports.TableSelector = TableSelector;
5140
5207
  exports.TableSorter = TableSorter;
5141
5208
  exports.TableViewer = TableViewer;