@cratis/components 2.7.0 → 2.7.1

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 (35) hide show
  1. package/dist/cjs/CommandDialog/CommandStepper.js +23 -15
  2. package/dist/cjs/CommandDialog/CommandStepper.js.map +1 -1
  3. package/dist/cjs/CommandDialog/StepperCommandDialog.js +17 -8
  4. package/dist/cjs/CommandDialog/StepperCommandDialog.js.map +1 -1
  5. package/dist/cjs/CommandDialog/stepChildren.js +31 -0
  6. package/dist/cjs/CommandDialog/stepChildren.js.map +1 -0
  7. package/dist/cjs/DataPage/DataPage.js +54 -10
  8. package/dist/cjs/DataPage/DataPage.js.map +1 -1
  9. package/dist/cjs/DataPage/DataPageLayout.js +34 -0
  10. package/dist/cjs/DataPage/DataPageLayout.js.map +1 -0
  11. package/dist/cjs/tailwind-utilities.css +3 -0
  12. package/dist/esm/CommandDialog/CommandStepper.d.ts.map +1 -1
  13. package/dist/esm/CommandDialog/CommandStepper.js +23 -15
  14. package/dist/esm/CommandDialog/CommandStepper.js.map +1 -1
  15. package/dist/esm/CommandDialog/StepperCommandDialog.d.ts.map +1 -1
  16. package/dist/esm/CommandDialog/StepperCommandDialog.js +18 -9
  17. package/dist/esm/CommandDialog/StepperCommandDialog.js.map +1 -1
  18. package/dist/esm/CommandDialog/stepChildren.d.ts +3 -0
  19. package/dist/esm/CommandDialog/stepChildren.d.ts.map +1 -0
  20. package/dist/esm/CommandDialog/stepChildren.js +29 -0
  21. package/dist/esm/CommandDialog/stepChildren.js.map +1 -0
  22. package/dist/esm/DataPage/DataPage.d.ts +1 -0
  23. package/dist/esm/DataPage/DataPage.d.ts.map +1 -1
  24. package/dist/esm/DataPage/DataPage.js +54 -10
  25. package/dist/esm/DataPage/DataPage.js.map +1 -1
  26. package/dist/esm/DataPage/DataPageLayout.d.ts +6 -0
  27. package/dist/esm/DataPage/DataPageLayout.d.ts.map +1 -0
  28. package/dist/esm/DataPage/DataPageLayout.js +32 -0
  29. package/dist/esm/DataPage/DataPageLayout.js.map +1 -0
  30. package/dist/esm/tailwind-utilities.css +3 -0
  31. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  32. package/dist/esm/vite.config.d.ts.map +1 -1
  33. package/dist/esm/vite.config.js +1 -0
  34. package/dist/esm/vite.config.js.map +1 -1
  35. package/package.json +1 -1
@@ -2,10 +2,11 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useDialogContext, DialogResult } from '@cratis/arc.react/dialogs';
3
3
  import { Dialog } from 'primereact/dialog';
4
4
  import { Button } from 'primereact/button';
5
- import React, { useState } from 'react';
5
+ import { useState } from 'react';
6
6
  import { CommandForm, useCommandFormContext, useCommandInstance } from '@cratis/arc.react/commands';
7
7
  import { CommandStepperContent } from './CommandStepper.js';
8
8
  import { applyBeforeExecute } from './applyBeforeExecute.js';
9
+ import { getStepPanels } from './stepChildren.js';
9
10
 
10
11
  const StepperCommandDialogWrapper = ({ title, visible = true, width = '600px', style, contentStyle, resizable = false, isValid, onClose, onConfirm, onCancel, onSuccess, onValidationFailure, onFailed, onBeforeExecute, okLabel = 'Submit', nextLabel = 'Next', previousLabel = 'Previous', orientation = 'horizontal', headerPosition, linear = true, onChangeStep, start, end, pt, ptOptions, unstyled, dialogClassName, dialogPt, dialogPtOptions, dialogUnstyled, children }) => {
11
12
  const { setCommandValues, setCommandResult, isValid: isCommandFormValid, getFieldError } = useCommandFormContext();
@@ -25,11 +26,19 @@ const StepperCommandDialogWrapper = ({ title, visible = true, width = '600px', s
25
26
  catch {
26
27
  contextCloseDialog = undefined;
27
28
  }
28
- const stepCount = React.Children.count(children);
29
- const isLastStep = activeStep === stepCount - 1;
30
- const isFirstStep = activeStep === 0;
29
+ // Only the steps that actually render count. That count is not fixed: a conditional step
30
+ // (`{condition && <StepperPanel/>}`) can disappear after the user has already advanced past
31
+ // it a late-resolving query or a `currentValues` overlay flipping the condition is enough.
32
+ // The step the wizard is on is therefore clamped into the set that still renders, and the
33
+ // last/first tests are inequalities, so an index left stranded above the end still resolves
34
+ // to the last surviving step instead of a step that is neither last nor navigable. Same
35
+ // shape as CommandStepperContent, which this dialog's body is.
36
+ const stepCount = getStepPanels(children).length;
37
+ const currentStep = Math.min(Math.max(activeStep, 0), Math.max(stepCount - 1, 0));
38
+ const isLastStep = currentStep >= stepCount - 1;
39
+ const isFirstStep = currentStep <= 0;
31
40
  const isDialogValid = isValid !== false && isCommandFormValid;
32
- const isCurrentStepInvalid = stepErrors[activeStep] ?? false;
41
+ const isCurrentStepInvalid = stepErrors[currentStep] ?? false;
33
42
  const handleClose = async (result) => {
34
43
  let shouldCloseThroughContext = true;
35
44
  if (result === DialogResult.Ok || result === DialogResult.Yes) {
@@ -83,11 +92,11 @@ const StepperCommandDialogWrapper = ({ title, visible = true, width = '600px', s
83
92
  await handleClose(DialogResult.Ok);
84
93
  };
85
94
  const headerElement = (jsx("div", { className: "inline-flex items-center justify-center gap-2", children: jsx("span", { className: "font-bold whitespace-nowrap", children: title }) }));
86
- const footer = (jsxs("div", { className: "flex items-center w-full gap-3", children: [!isFirstStep && (jsx(Button, { label: previousLabel, icon: "pi pi-arrow-left", onClick: () => setActiveStep(s => s - 1), disabled: isBusy, outlined: true })), jsx("div", { className: "flex-1" }), !isLastStep && (jsx(Button, { label: nextLabel, icon: "pi pi-arrow-right", iconPos: "right", onClick: () => {
87
- setVisitedSteps(prev => new Set(prev).add(activeStep));
88
- setActiveStep(s => s + 1);
95
+ const footer = (jsxs("div", { className: "flex items-center w-full gap-3", children: [!isFirstStep && (jsx(Button, { label: previousLabel, icon: "pi pi-arrow-left", onClick: () => setActiveStep(Math.max(0, currentStep - 1)), disabled: isBusy, outlined: true })), jsx("div", { className: "flex-1" }), !isLastStep && (jsx(Button, { label: nextLabel, icon: "pi pi-arrow-right", iconPos: "right", onClick: () => {
96
+ setVisitedSteps(prev => new Set(prev).add(currentStep));
97
+ setActiveStep(Math.min(stepCount - 1, currentStep + 1));
89
98
  }, disabled: isBusy || isCurrentStepInvalid })), isLastStep && isDialogValid && (jsx(Button, { label: okLabel, icon: "pi pi-check", onClick: handleSubmit, loading: isBusy, disabled: isBusy, autoFocus: true }))] }));
90
- return (jsx(Dialog, { header: headerElement, modal: true, footer: footer, onHide: () => handleClose(DialogResult.Cancelled), visible: visible, style: { width, ...style }, contentStyle: contentStyle, resizable: resizable, closable: true, className: dialogClassName, pt: dialogPt, ptOptions: dialogPtOptions, unstyled: dialogUnstyled, children: jsx(CommandStepperContent, { activeStep: activeStep, visitedSteps: visitedSteps, getFieldError: getFieldError, onActiveStepChange: setActiveStep, onVisitedStepsChange: setVisitedSteps, onStepErrorsChange: setStepErrors, showNavigation: false, showSubmit: false, linear: linear, orientation: orientation, headerPosition: headerPosition, onChangeStep: onChangeStep, start: start, end: end, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: children }) }));
99
+ return (jsx(Dialog, { header: headerElement, modal: true, footer: footer, onHide: () => handleClose(DialogResult.Cancelled), visible: visible, style: { width, ...style }, contentStyle: contentStyle, resizable: resizable, closable: true, className: dialogClassName, pt: dialogPt, ptOptions: dialogPtOptions, unstyled: dialogUnstyled, children: jsx(CommandStepperContent, { activeStep: currentStep, visitedSteps: visitedSteps, getFieldError: getFieldError, onActiveStepChange: setActiveStep, onVisitedStepsChange: setVisitedSteps, onStepErrorsChange: setStepErrors, showNavigation: false, showSubmit: false, linear: linear, orientation: orientation, headerPosition: headerPosition, onChangeStep: onChangeStep, start: start, end: end, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: children }) }));
91
100
  };
92
101
  /**
93
102
  * A multi-step wizard dialog backed by a single Cratis Arc command. Wraps
@@ -1 +1 @@
1
- {"version":3,"file":"StepperCommandDialog.js","sources":["../../../CommandDialog/StepperCommandDialog.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","PrimeDialog"],"mappings":"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"}
1
+ {"version":3,"file":"StepperCommandDialog.js","sources":["../../../CommandDialog/StepperCommandDialog.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","PrimeDialog"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare function getStepPanels(children: React.ReactNode): React.ReactElement[];
3
+ //# sourceMappingURL=stepChildren.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepChildren.d.ts","sourceRoot":"","sources":["../../../CommandDialog/stepChildren.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,wBAAgB,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAE7E"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ /**
6
+ * Gets the step panels a stepper will actually render, in render order.
7
+ *
8
+ * A conditional step is written as `{condition && <StepperPanel/>}` — which yields
9
+ * `false` when the condition does not hold — and explicit `null` / `undefined` children
10
+ * are just as common. `React.Children.count` counts those, so anything deriving a step
11
+ * count from it believes the wizard has more steps than it renders: navigation runs past
12
+ * the last real panel and the per-step validation gate reads off the end of its array.
13
+ *
14
+ * `React.Children.toArray` already drops `null`, `undefined` and booleans; filtering to
15
+ * valid elements additionally drops bare text children, which are not steps either.
16
+ *
17
+ * Fragments are deliberately **not** flattened — a `<>…</>` wrapping several panels stays
18
+ * one entry, which is the behavior the stepper has always had. Supporting fragments as a
19
+ * container for multiple steps is a separate, additive change.
20
+ *
21
+ * @param children - The stepper children to inspect.
22
+ * @returns The child elements that render as steps.
23
+ */
24
+ function getStepPanels(children) {
25
+ return React.Children.toArray(children).filter((child) => React.isValidElement(child));
26
+ }
27
+
28
+ export { getStepPanels };
29
+ //# sourceMappingURL=stepChildren.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepChildren.js","sources":["../../../CommandDialog/stepChildren.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;AAIA;;;;;;;;;;;;;;;;;;AAkBG;AACG,SAAU,aAAa,CAAC,QAAyB,EAAA;IACnD,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAkC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACvH;;;;"}
@@ -5,6 +5,7 @@ import { type MenubarProps } from 'primereact/menubar';
5
5
  import { IObservableQueryFor, IQueryFor } from '@cratis/arc/queries';
6
6
  import { DataTableFilterMeta, DataTableSelectionSingleChangeEvent, type DataTableProps as PrimeDataTableProps } from 'primereact/datatable';
7
7
  import { Constructor } from '@cratis/fundamentals';
8
+ import 'allotment/dist/style.css';
8
9
  export interface MenuItemProps extends PrimeMenuItem {
9
10
  disableOnUnselected?: boolean;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAY,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,KAAK,cAAc,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG5I,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQnD,MAAM,WAAW,aAAc,SAAQ,aAAa;IAMhD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAQD,eAAO,MAAM,QAAQ,GAAI,GAAG,aAAa,SAExC,CAAC;AAKF,MAAM,WAAW,cAAc;IAE3B,QAAQ,EAAE,SAAS,CAAC;CACvB;AAKD,MAAM,WAAW,WAAW;IAExB,QAAQ,EAAE,SAAS,CAAC;CACvB;AASD,eAAO,MAAM,SAAS,GAAI,cAAc,cAAc,sBAiCrD,CAAC;AAWF,eAAO,MAAM,OAAO,GAAI,cAAc,WAAW,sBAgChD,CAAC;AAQF,MAAM,WAAW,sBAAsB,CAAC,SAAS;IAE7C,IAAI,EAAE,SAAS,CAAC;IAOhB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAwBD,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU;IAIrI,KAAK,EAAE,MAAM,CAAC;IAKd,QAAQ,EAAE,SAAS,CAAC;IAKpB,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IAKzD,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAKnC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAK1E,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAKrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,SAAS,CAAC,IAAI,IAAI,CAAC;IAKnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAGjD,cAAc,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAG/D,aAAa,CAAC,EAAE,OAAO,CAAC;IAKxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAG/B,gBAAgB,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAG7C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAoFD,QAAA,MAAM,QAAQ;KAAI,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,SAAS,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;8BAvSpK,cAAc;4BA4ChB,WAAW;CAuRhD,CAAC;AAKF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"DataPage.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.tsx"],"names":[],"mappings":"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"}
@@ -6,16 +6,37 @@ import { QueryFor } from '@cratis/arc/queries';
6
6
  import { DataTableForObservableQuery } from '../DataTables/DataTableForObservableQuery.js';
7
7
  import { DataTableForQuery } from '../DataTables/DataTableForQuery.js';
8
8
  import { Allotment } from 'allotment';
9
+ import { DataPageLayout } from './DataPageLayout.js';
10
+ import 'allotment/dist/style.css';
9
11
 
10
12
  /**
11
13
  * Declarative menu item for use inside `<DataPage.MenuItems>`. Renders nothing
12
14
  * directly; the surrounding {@link MenuItems} component reads its props and
13
15
  * forwards them to the action `Menubar`.
14
16
  */
15
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
17
  const MenuItem = (_) => {
17
18
  return null;
18
19
  };
20
+ /**
21
+ * The action bar is an intrinsically sized item in the page's layout column —
22
+ * it takes the height its menubar needs and never gives any of it up, so the
23
+ * table region below it is the only part that has to adapt to the space left.
24
+ */
25
+ const actionsStyle = { flexShrink: 0 };
26
+ /**
27
+ * The table region takes every pixel the action bar leaves and no more.
28
+ * `minHeight: 0` is the load-bearing half: without it the region's automatic
29
+ * minimum keeps it at content height, the column grows past the page, and the
30
+ * table's paginator ends up below the clipped edge.
31
+ */
32
+ const tableRegionStyle = { flexGrow: 1, flexBasis: 0, minHeight: 0 };
33
+ /**
34
+ * The floor a `DataPage` falls back to when its ancestors give it no height at
35
+ * all. A page that renders as an empty sliver is indistinguishable from a
36
+ * broken one, so a contract-violating consumer gets a small but usable page
37
+ * instead of nothing.
38
+ */
39
+ const pageStyle = { minHeight: '20rem' };
19
40
  /**
20
41
  * Renders an action `Menubar` at the top of a {@link DataPage}, populated from
21
42
  * `<DataPage.MenuItem>` children. Each menu item's `disableOnUnselected` flag
@@ -41,7 +62,7 @@ const MenuItems = ({ children }) => {
41
62
  });
42
63
  return menuItems;
43
64
  }, [children, context.selectedItem]);
44
- return (jsx("div", { className: "px-4 py-2", children: jsx(Menubar, { "aria-label": "Actions", model: items, className: context.menubarClassName, pt: context.menubarPt, ptOptions: context.menubarPtOptions, unstyled: context.menubarUnstyled }) }));
65
+ return (jsx("div", { className: "cratis-data-page-actions px-4 py-2", style: actionsStyle, children: jsx(Menubar, { "aria-label": "Actions", model: items, className: context.menubarClassName, pt: context.menubarPt, ptOptions: context.menubarPtOptions, unstyled: context.menubarUnstyled }) }));
45
66
  };
46
67
  /**
47
68
  * Renders the data table at the body of a {@link DataPage}. Automatically
@@ -54,12 +75,10 @@ const MenuItems = ({ children }) => {
54
75
  */
55
76
  const Columns = ({ children }) => {
56
77
  const context = useDataPageContext();
57
- if (context.query.prototype instanceof QueryFor) {
58
- return (jsx(DataTableForQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, className: context.tableClassName, pt: context.tablePt, ptOptions: context.tablePtOptions, unstyled: context.tableUnstyled, children: children }));
59
- }
60
- else {
61
- return (jsx(DataTableForObservableQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, className: context.tableClassName, pt: context.tablePt, ptOptions: context.tablePtOptions, unstyled: context.tableUnstyled, children: children }));
62
- }
78
+ const isSnapshotQuery = context.query.prototype instanceof QueryFor;
79
+ return (jsx("div", { className: "cratis-data-page-table", style: tableRegionStyle, children: isSnapshotQuery
80
+ ? jsx(DataTableForQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, className: context.tableClassName, pt: context.tablePt, ptOptions: context.tablePtOptions, unstyled: context.tableUnstyled, children: children })
81
+ : jsx(DataTableForObservableQuery, { ...context, selection: context.selectedItem, onSelectionChange: context.onSelectionChanged, clientFiltering: context.clientFiltering, className: context.tableClassName, pt: context.tablePt, ptOptions: context.tablePtOptions, unstyled: context.tableUnstyled, children: children }) }));
63
82
  };
64
83
  const DataPageContext = React.createContext(null);
65
84
  function useDataPageContext() {
@@ -138,6 +157,29 @@ function useDataPageContext() {
138
157
  * </DataPage>
139
158
  * ```
140
159
  *
160
+ * ## Height — `DataPage` needs a bounded ancestor
161
+ *
162
+ * `DataPage` fills the height it is given and divides it between the action
163
+ * bar and the table region, so the table's paginator always sits at the
164
+ * bottom of the page rather than below its edge. It cannot invent that height:
165
+ * every element from the page root down sizes as a percentage of its parent,
166
+ * so **some ancestor has to have a definite height**.
167
+ *
168
+ * ```tsx
169
+ * // ✅ the router outlet, a sized container, or a flex child with min-height
170
+ * <div style={{ height: '100vh' }}>
171
+ * <DataPage … />
172
+ * </div>
173
+ *
174
+ * // ❌ nothing above resolves to a height — the table grows to its content
175
+ * <div>
176
+ * <DataPage … />
177
+ * </div>
178
+ * ```
179
+ *
180
+ * Without one, the page falls back to a small fixed height so it stays
181
+ * usable instead of collapsing to nothing.
182
+ *
141
183
  * ## Styling
142
184
  *
143
185
  * The inner DataTable and Menubar each have their own per-slot props:
@@ -160,8 +202,10 @@ const DataPage = (props) => {
160
202
  }
161
203
  };
162
204
  const context = { ...props, selectedItem, onSelectionChanged: selectionChanged };
163
- return (jsx(DataPageContext.Provider, { value: context, children: jsx(Page, { title: props.title, panel: true, children: jsxs(Allotment, { className: "h-full", proportionalLayout: false, children: [jsx(Allotment.Pane, { className: "flex-grow", children: props.children }), props.detailsComponent && selectedItem &&
164
- jsx(Allotment.Pane, { preferredSize: "450px", children: jsx(props.detailsComponent, { item: selectedItem, onRefresh: props.onRefresh }) })] }) }) }));
205
+ return (jsx(DataPageContext.Provider, { value: context, children: jsx(Page, { title: props.title, panel: true, style: pageStyle, children: props.detailsComponent
206
+ ? jsxs(Allotment, { className: "h-full", proportionalLayout: false, children: [jsx(Allotment.Pane, { children: jsx(DataPageLayout, { children: props.children }) }), selectedItem &&
207
+ jsx(Allotment.Pane, { preferredSize: "450px", children: jsx(props.detailsComponent, { item: selectedItem, onRefresh: props.onRefresh }) })] })
208
+ : jsx(DataPageLayout, { children: props.children }) }) }));
165
209
  };
166
210
  DataPage.MenuItems = MenuItems;
167
211
  DataPage.Columns = Columns;
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.js","sources":["../../../DataPage/DataPage.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"DataPage.js","sources":["../../../DataPage/DataPage.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ export interface DataPageLayoutProps {
3
+ children: ReactNode;
4
+ }
5
+ export declare const DataPageLayout: ({ children }: DataPageLayoutProps) => import("react").JSX.Element;
6
+ //# sourceMappingURL=DataPageLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataPageLayout.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPageLayout.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAKjD,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,EAAE,SAAS,CAAC;CACvB;AA6BD,eAAO,MAAM,cAAc,GAAI,cAAc,mBAAmB,gCAI/D,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * The layout root's own style. Declared inline rather than in a stylesheet on
5
+ * purpose: a consumer that never imports a stylesheet from this package still
6
+ * has to get a working page out of `DataPage`, and the height allocation is
7
+ * what the whole component depends on.
8
+ *
9
+ * `minHeight: 0` is what lets the column shrink inside the flex parent that
10
+ * `Page` renders — without it the default `min-height: auto` keeps the column
11
+ * at content height and everything below the available space is clipped.
12
+ */
13
+ const layoutStyle = {
14
+ display: 'flex',
15
+ flexDirection: 'column',
16
+ height: '100%',
17
+ minHeight: 0
18
+ };
19
+ /**
20
+ * The vertical layout inside a `DataPage`'s primary pane.
21
+ *
22
+ * It is a definite-height flex column, so the action bar can be an intrinsic
23
+ * item while the table region absorbs whatever height is left. That is what
24
+ * keeps the table's own paginator inside the page instead of pushing it past
25
+ * the bottom edge, where the surrounding `overflow: hidden` clips it away.
26
+ *
27
+ * @param props - {@link DataPageLayoutProps}.
28
+ */
29
+ const DataPageLayout = ({ children }) => (jsx("div", { className: 'cratis-data-page-layout', style: layoutStyle, children: children }));
30
+
31
+ export { DataPageLayout };
32
+ //# sourceMappingURL=DataPageLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataPageLayout.js","sources":["../../../DataPage/DataPageLayout.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;AAaA;;;;;;;;;AASG;AACH,MAAM,WAAW,GAAkB;AAC/B,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,aAAa,EAAE,QAAQ;AACvB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,SAAS,EAAE;CACd;AAED;;;;;;;;;AASG;AACI,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAuB,MAC5DA,aAAK,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,WAAW,EAAA,QAAA,EACtD,QAAQ,EAAA,CACP;;;;"}
@@ -406,6 +406,9 @@
406
406
  .flex-shrink-0 {
407
407
  flex-shrink: 0;
408
408
  }
409
+ .shrink {
410
+ flex-shrink: 1;
411
+ }
409
412
  .shrink-0 {
410
413
  flex-shrink: 0;
411
414
  }