fastapi-rtk 2.7.1 → 2.8.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 (71) hide show
  1. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/MantineInputs/MantineFileInput.cjs +13 -4
  2. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/MantineInputs/MantineObjectInput.cjs +23 -12
  3. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/complex/MantineArrayControl/DeleteDialog.cjs +38 -7
  4. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/complex/MantineArrayControl/MantineArrayControl.cjs +16 -11
  5. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/complex/MantineTableControl/MantineTableControl.cjs +117 -23
  6. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/complex/MantineTableControl/TableToolbar.cjs +30 -4
  7. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/hooks/useContextProps.cjs +5 -7
  8. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/hooks/useNavigationComponent.cjs +48 -13
  9. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/hooks/useToolbarComponent.cjs +31 -11
  10. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/labels/MantineLabelRenderer.cjs +9 -1
  11. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/layouts/Array/ArrayToolbar.cjs +15 -4
  12. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/layouts/Array/ExpandPanelRenderer.cjs +83 -18
  13. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/layouts/Array/MantineArrayLayout.cjs +76 -43
  14. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/layouts/MantineHotizontalLayoutRenderer.cjs +2 -2
  15. package/dist/.bundled/jsonforms/cjs/packages/jsonforms/src/layouts/MantineVerticalLayoutRenderer.cjs +2 -2
  16. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/MantineInputs/MantineFileInput.mjs +16 -7
  17. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/MantineInputs/MantineObjectInput.mjs +23 -12
  18. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/complex/MantineArrayControl/DeleteDialog.mjs +40 -9
  19. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/complex/MantineArrayControl/MantineArrayControl.mjs +17 -12
  20. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/complex/MantineTableControl/MantineTableControl.mjs +118 -24
  21. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/complex/MantineTableControl/TableToolbar.mjs +31 -5
  22. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/hooks/useContextProps.mjs +5 -7
  23. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/hooks/useNavigationComponent.mjs +49 -14
  24. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/hooks/useToolbarComponent.mjs +32 -12
  25. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/labels/MantineLabelRenderer.mjs +9 -1
  26. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/layouts/Array/ArrayToolbar.mjs +16 -5
  27. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/layouts/Array/ExpandPanelRenderer.mjs +85 -20
  28. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/layouts/Array/MantineArrayLayout.mjs +79 -46
  29. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/layouts/MantineHotizontalLayoutRenderer.mjs +2 -2
  30. package/dist/.bundled/jsonforms/esm/packages/jsonforms/src/layouts/MantineVerticalLayoutRenderer.mjs +2 -2
  31. package/dist/jsonforms/cjs/MantineInputs/MantineFileInput.cjs +13 -4
  32. package/dist/jsonforms/cjs/MantineInputs/MantineObjectInput.cjs +23 -12
  33. package/dist/jsonforms/cjs/complex/MantineArrayControl/DeleteDialog.cjs +38 -7
  34. package/dist/jsonforms/cjs/complex/MantineArrayControl/MantineArrayControl.cjs +16 -11
  35. package/dist/jsonforms/cjs/complex/MantineTableControl/MantineTableControl.cjs +117 -23
  36. package/dist/jsonforms/cjs/complex/MantineTableControl/TableToolbar.cjs +30 -4
  37. package/dist/jsonforms/cjs/hooks/useContextProps.cjs +5 -7
  38. package/dist/jsonforms/cjs/hooks/useNavigationComponent.cjs +48 -13
  39. package/dist/jsonforms/cjs/hooks/useToolbarComponent.cjs +31 -11
  40. package/dist/jsonforms/cjs/labels/MantineLabelRenderer.cjs +9 -1
  41. package/dist/jsonforms/cjs/layouts/Array/ArrayToolbar.cjs +15 -4
  42. package/dist/jsonforms/cjs/layouts/Array/ExpandPanelRenderer.cjs +83 -18
  43. package/dist/jsonforms/cjs/layouts/Array/MantineArrayLayout.cjs +76 -43
  44. package/dist/jsonforms/cjs/layouts/MantineHotizontalLayoutRenderer.cjs +2 -2
  45. package/dist/jsonforms/cjs/layouts/MantineVerticalLayoutRenderer.cjs +2 -2
  46. package/dist/jsonforms/esm/MantineInputs/MantineFileInput.mjs +16 -7
  47. package/dist/jsonforms/esm/MantineInputs/MantineObjectInput.mjs +23 -12
  48. package/dist/jsonforms/esm/complex/MantineArrayControl/DeleteDialog.mjs +40 -9
  49. package/dist/jsonforms/esm/complex/MantineArrayControl/MantineArrayControl.mjs +17 -12
  50. package/dist/jsonforms/esm/complex/MantineTableControl/MantineTableControl.mjs +118 -24
  51. package/dist/jsonforms/esm/complex/MantineTableControl/TableToolbar.mjs +31 -5
  52. package/dist/jsonforms/esm/hooks/useContextProps.mjs +5 -7
  53. package/dist/jsonforms/esm/hooks/useNavigationComponent.mjs +49 -14
  54. package/dist/jsonforms/esm/hooks/useToolbarComponent.mjs +32 -12
  55. package/dist/jsonforms/esm/labels/MantineLabelRenderer.mjs +9 -1
  56. package/dist/jsonforms/esm/layouts/Array/ArrayToolbar.mjs +16 -5
  57. package/dist/jsonforms/esm/layouts/Array/ExpandPanelRenderer.mjs +85 -20
  58. package/dist/jsonforms/esm/layouts/Array/MantineArrayLayout.mjs +79 -46
  59. package/dist/jsonforms/esm/layouts/MantineHotizontalLayoutRenderer.mjs +2 -2
  60. package/dist/jsonforms/esm/layouts/MantineVerticalLayoutRenderer.mjs +2 -2
  61. package/dist/jsonforms/lib/MantineInputs/MantineObjectInput.d.ts +1 -1
  62. package/dist/jsonforms/lib/complex/MantineTableControl/MantineTableControl.customizer.test.d.ts +1 -0
  63. package/dist/jsonforms/lib/complex/MantineTableControl/types.d.ts +1 -0
  64. package/dist/jsonforms/lib/hooks/useContextProps.d.ts +3 -1
  65. package/dist/jsonforms/lib/hooks/useNavigationComponent.d.ts +1 -1
  66. package/dist/jsonforms/lib/layouts/Array/ExpandPanelRenderer.d.ts +1 -1
  67. package/dist/jsonforms/lib/layouts/Array/MantineArrayLayout.d.ts +1 -1
  68. package/dist/utils/cjs/deepMerge/deepMerge.cjs +1 -1
  69. package/dist/utils/esm/deepMerge/deepMerge.mjs +1 -1
  70. package/dist/utils/lib/deepMerge/deepMerge.d.ts +2 -0
  71. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { useArrayHeaderErrors } from "../../hooks/useArrayHeaderErrors.mjs";
3
3
  import { useContextProps } from "../../hooks/useContextProps.mjs";
4
- import { createDefaultValue, computeLabel, Paths } from "@jsonforms/core";
5
- import { Stack, Accordion, Text } from "@mantine/core";
4
+ import { createDefaultValue, Paths, computeLabel } from "@jsonforms/core";
5
+ import { Accordion, Text, Stack } from "@mantine/core";
6
6
  import map from "../../_virtual/map.mjs";
7
7
  import merge from "../../_virtual/merge.mjs";
8
8
  import range from "../../_virtual/range.mjs";
@@ -33,50 +33,83 @@ const Component = (props) => {
33
33
  const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
34
34
  const doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
35
35
  const innerCreateDefaultValue = useCallback(() => createDefaultValue(props.schema, props.rootSchema), [props.schema]);
36
- const [Component2, _props] = useContextProps("Array.Accordion", `${path}.Accordion`, {}, props, {
37
- withAllProps: false
38
- });
39
36
  const headerErrors = useArrayHeaderErrors(path, schema);
40
- return /* @__PURE__ */ jsxs(Stack, { children: [
41
- /* @__PURE__ */ jsx(
42
- ArrayLayoutToolbar,
43
- {
44
- translations,
45
- label: computeLabel(label, required ?? false, appliedUiSchemaOptions.hideRequiredAsterisk),
46
- description,
47
- errors: headerErrors,
48
- path,
49
- enabled,
50
- addItem,
51
- createDefault: innerCreateDefaultValue,
52
- disableAdd: doDisableAdd
53
- }
54
- ),
55
- /* @__PURE__ */ jsx(Stack, { children: data > 0 ? Component2 === void 0 ? /* @__PURE__ */ jsx(Accordion, { variant: "separated", ..._props, children: map(range(data), (index) => {
56
- const childPath = Paths.compose(path, `${index}`);
57
- return /* @__PURE__ */ jsx(
58
- ExpandPanelRenderer,
59
- {
60
- enabled,
61
- path,
62
- childPath,
63
- index,
64
- rootSchema,
65
- schema,
66
- uischema,
67
- uischemas,
68
- renderers,
69
- cells,
70
- enableUp: index !== 0,
71
- enableDown: index !== data - 1,
72
- disableRemove: doDisableRemove,
73
- config,
74
- translations
75
- },
76
- index
77
- );
78
- }) }) : Component2 : /* @__PURE__ */ jsx(Text, { ta: "center", children: translations.noDataMessage }) })
79
- ] });
37
+ const [Component2, _props] = useContextProps(
38
+ "Array.Accordion",
39
+ `${path}.Accordion`,
40
+ {
41
+ variant: "separated",
42
+ children: map(range(data), (index) => {
43
+ const childPath = Paths.compose(path, `${index}`);
44
+ return /* @__PURE__ */ jsx(
45
+ ExpandPanelRenderer,
46
+ {
47
+ enabled,
48
+ path,
49
+ childPath,
50
+ index,
51
+ rootSchema,
52
+ schema,
53
+ uischema,
54
+ uischemas,
55
+ renderers,
56
+ cells,
57
+ enableUp: index !== 0,
58
+ enableDown: index !== data - 1,
59
+ disableRemove: doDisableRemove,
60
+ config,
61
+ translations
62
+ },
63
+ index
64
+ );
65
+ })
66
+ },
67
+ props,
68
+ { withAllProps: false }
69
+ );
70
+ const accordionEl = Component2 === void 0 ? /* @__PURE__ */ jsx(Accordion, { ..._props }) : Component2;
71
+ const [EmptyComponent, _emptyProps] = useContextProps(
72
+ "Array.Empty",
73
+ `${path}.Empty`,
74
+ { ta: "center", children: translations.noDataMessage },
75
+ props,
76
+ { withAllProps: false }
77
+ );
78
+ const emptyEl = EmptyComponent === void 0 ? /* @__PURE__ */ jsx(Text, { ..._emptyProps }) : EmptyComponent;
79
+ const [InnerStack, _innerStackProps] = useContextProps(
80
+ "Array.Items",
81
+ `${path}.Items`,
82
+ { children: data > 0 ? accordionEl : emptyEl },
83
+ props,
84
+ { withAllProps: false }
85
+ );
86
+ const itemsEl = InnerStack === void 0 ? /* @__PURE__ */ jsx(Stack, { ..._innerStackProps }) : InnerStack;
87
+ const [OuterStack, _outerStackProps] = useContextProps(
88
+ "Array.Stack",
89
+ `${path}.Stack`,
90
+ {
91
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
92
+ /* @__PURE__ */ jsx(
93
+ ArrayLayoutToolbar,
94
+ {
95
+ translations,
96
+ label: computeLabel(label, required ?? false, appliedUiSchemaOptions.hideRequiredAsterisk),
97
+ description,
98
+ errors: headerErrors,
99
+ path,
100
+ enabled,
101
+ addItem,
102
+ createDefault: innerCreateDefaultValue,
103
+ disableAdd: doDisableAdd
104
+ }
105
+ ),
106
+ itemsEl
107
+ ] })
108
+ },
109
+ props,
110
+ { withAllProps: false }
111
+ );
112
+ return OuterStack === void 0 ? /* @__PURE__ */ jsx(Stack, { ..._outerStackProps }) : OuterStack;
80
113
  };
81
114
  const MantineArrayLayout = memo(Component);
82
115
  export {
@@ -11,12 +11,12 @@ const Component = (props) => {
11
11
  const [Component2, _props] = useContextProps(
12
12
  "HorizontalLayout",
13
13
  `${path}.HorizontalLayout`,
14
- ((_a = uischema.options) == null ? void 0 : _a.props) ?? {},
14
+ { ...childProps, renderers, cells, ...((_a = uischema.options) == null ? void 0 : _a.props) ?? {} },
15
15
  props,
16
16
  { withAllProps: false }
17
17
  );
18
18
  if (Component2 === void 0) {
19
- return /* @__PURE__ */ jsx(MantineLayoutRenderer, { ...childProps, ..._props, renderers, cells });
19
+ return /* @__PURE__ */ jsx(MantineLayoutRenderer, { ...childProps, ..._props });
20
20
  }
21
21
  return Component2;
22
22
  };
@@ -11,12 +11,12 @@ const Component = (props) => {
11
11
  const [Component2, _props] = useContextProps(
12
12
  "VerticalLayout",
13
13
  `${path}.VerticalLayout`,
14
- ((_a = uischema.options) == null ? void 0 : _a.props) ?? {},
14
+ { ...childProps, renderers, cells, ...((_a = uischema.options) == null ? void 0 : _a.props) ?? {} },
15
15
  props,
16
16
  { withAllProps: false }
17
17
  );
18
18
  if (Component2 === void 0) {
19
- return /* @__PURE__ */ jsx(MantineLayoutRenderer, { ...childProps, ..._props, renderers, cells });
19
+ return /* @__PURE__ */ jsx(MantineLayoutRenderer, { ...childProps, ..._props });
20
20
  }
21
21
  return Component2;
22
22
  };
@@ -1,2 +1,2 @@
1
1
  import { MantineObjectInputProps } from './types';
2
- export declare function MantineObjectInput(props: MantineObjectInputProps): import("react/jsx-runtime").JSX.Element | null;
2
+ export declare function MantineObjectInput(props: MantineObjectInputProps): string | number | bigint | boolean | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null;
@@ -12,6 +12,7 @@ export type MantineTableControlProps = ArrayLayoutProps & {
12
12
  export interface EmptyTableProps {
13
13
  numColumns: number;
14
14
  translations: ArrayTranslations;
15
+ path: string;
15
16
  }
16
17
  export interface NonEmptyCellProps {
17
18
  schema: JsonSchema;
@@ -5,7 +5,9 @@ import { ReactNode } from 'react';
5
5
  * `name` selects the component's general properties, `path` selects the path-specific ones,
6
6
  * `componentProps` and `jsonFormsProps` are the component / JSON forms properties, and the options
7
7
  * toggle whether to include `all` properties and `componentProps`. Returns the optional custom
8
- * component and the props merged from `componentProps` and `MantineThemeProvider`.
8
+ * component and the props merged from `componentProps` and `MantineThemeProvider`. A `component`
9
+ * customizer supplied as a function receives the fully-merged props (the same object spread onto
10
+ * the default element) as its `componentProps`, so it can re-render everything the default renders.
9
11
  */
10
12
  export declare function useContextProps<TJsonForms>(name: string, path: string, componentProps: Record<string, any>, // #MUSTRECORD open-shape prop bag callers supply with arbitrary keys (`{ value, children }`, `{ legend, ...rest }`); typed-intersection signature breaks the spread call sites
11
13
  jsonFormsProps: TJsonForms, { withAllProps, withComponentProps }?: {
@@ -1,2 +1,2 @@
1
1
  import { UseNavigationComponentProps } from './types';
2
- export declare const useNavigationComponent: (props: UseNavigationComponentProps) => import("react/jsx-runtime").JSX.Element | undefined;
2
+ export declare const useNavigationComponent: (props: UseNavigationComponentProps) => string | number | bigint | boolean | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
@@ -1,4 +1,4 @@
1
1
  import { ComponentType, default as React } from 'react';
2
2
  import { ExpandPanelRendererProps } from './types';
3
- export declare const MemoComponent: React.MemoExoticComponent<(props: ExpandPanelRendererProps) => import("react/jsx-runtime").JSX.Element>;
3
+ export declare const MemoComponent: React.MemoExoticComponent<(props: ExpandPanelRendererProps) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null>;
4
4
  export declare const ExpandPanelRenderer: ComponentType<any>;
@@ -1,2 +1,2 @@
1
1
  import { MantineArrayLayoutProps } from './types';
2
- export declare const MantineArrayLayout: import('react').MemoExoticComponent<(props: MantineArrayLayoutProps) => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const MantineArrayLayout: import('react').MemoExoticComponent<(props: MantineArrayLayoutProps) => string | number | bigint | boolean | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null>;
@@ -19,7 +19,7 @@ function deepMerge(...objects) {
19
19
  } else {
20
20
  result[key] = deepMerge(prior, value);
21
21
  }
22
- } else {
22
+ } else if (value !== void 0) {
23
23
  result[key] = value;
24
24
  }
25
25
  });
@@ -17,7 +17,7 @@ function deepMerge(...objects) {
17
17
  } else {
18
18
  result[key] = deepMerge(prior, value);
19
19
  }
20
- } else {
20
+ } else if (value !== void 0) {
21
21
  result[key] = value;
22
22
  }
23
23
  });
@@ -5,6 +5,8 @@ import { DeepMerged } from './types';
5
5
  * @param objects - The objects to be merged.
6
6
  * @returns The merged result object.
7
7
  *
8
+ * A source value of `undefined` is skipped and never overrides an existing value; pass `null` to explicitly clear a key.
9
+ *
8
10
  * @example
9
11
  * const obj1 = { a: 1, b: { c: 2 } };
10
12
  * const obj2 = { b: { d: 3 }, e: 4 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fastapi-rtk",
3
- "version": "2.7.1",
3
+ "version": "2.8.0",
4
4
  "private": false,
5
5
  "description": "A React component library for FastAPI in combination with FastAPI React Toolkit backend, built with Mantine, JsonForms, and Zustand.",
6
6
  "license": "MIT",