@rws-aoa/react-library 4.0.0 → 5.0.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 (60) hide show
  1. package/dist/chunks/FieldError.DAUtZvvC.js +143 -0
  2. package/dist/chunks/FieldError.DAUtZvvC.js.map +1 -0
  3. package/dist/chunks/lodash.DOeeRDpT.js +3678 -0
  4. package/dist/chunks/lodash.DOeeRDpT.js.map +1 -0
  5. package/dist/components/atoms/_menu/menu-item/MenuItem.js +10 -10
  6. package/dist/components/atoms/_menu/menu-item/MenuItem.js.map +1 -1
  7. package/dist/components/atoms/_menu/user-menu/UserMenu.js +20 -20
  8. package/dist/components/atoms/_menu/user-menu/UserMenu.js.map +1 -1
  9. package/dist/components/atoms/button/Button.js +12 -12
  10. package/dist/components/atoms/button/Button.js.map +1 -1
  11. package/dist/components/atoms/icon-button/IconButton.js +4 -4
  12. package/dist/components/atoms/icon-button/IconButton.js.map +1 -1
  13. package/dist/components/atoms/input/Input.d.ts.map +1 -1
  14. package/dist/components/atoms/input/Input.js +4 -3
  15. package/dist/components/atoms/input/Input.js.map +1 -1
  16. package/dist/components/atoms/no-permission/NoPermission.js +9 -9
  17. package/dist/components/atoms/no-permission/NoPermission.js.map +1 -1
  18. package/dist/components/atoms/notification/Notification.js +10 -10
  19. package/dist/components/atoms/notification/Notification.js.map +1 -1
  20. package/dist/components/atoms/section-header/SectionHeader.js +12 -12
  21. package/dist/components/atoms/section-header/SectionHeader.js.map +1 -1
  22. package/dist/components/atoms/selection-buttons/checkbox/Checkbox.js +8 -8
  23. package/dist/components/atoms/selection-buttons/checkbox/Checkbox.js.map +1 -1
  24. package/dist/components/atoms/selection-buttons/radio-button/RadioButton.js +8 -8
  25. package/dist/components/atoms/selection-buttons/radio-button/RadioButton.js.map +1 -1
  26. package/dist/components/atoms/table/Table.d.ts.map +1 -1
  27. package/dist/components/atoms/table/Table.js +42 -44
  28. package/dist/components/atoms/table/Table.js.map +1 -1
  29. package/dist/components/atoms/table/_QuickSearchToolbar.d.ts.map +1 -1
  30. package/dist/components/atoms/table/_QuickSearchToolbar.js +1 -0
  31. package/dist/components/atoms/table/_QuickSearchToolbar.js.map +1 -1
  32. package/dist/components/molecules/field-error/FieldError.d.ts +22 -0
  33. package/dist/components/molecules/field-error/FieldError.d.ts.map +1 -0
  34. package/dist/components/molecules/field-error/FieldError.js +7 -0
  35. package/dist/components/molecules/field-error/FieldError.js.map +1 -0
  36. package/dist/components/molecules/form-error/FormError.d.ts +17 -4
  37. package/dist/components/molecules/form-error/FormError.d.ts.map +1 -1
  38. package/dist/components/molecules/form-error/FormError.js +4 -10
  39. package/dist/components/molecules/form-error/FormError.js.map +1 -1
  40. package/dist/components/molecules/form-modal/FormModal.d.ts +31 -34
  41. package/dist/components/molecules/form-modal/FormModal.d.ts.map +1 -1
  42. package/dist/components/molecules/form-modal/FormModal.js +7 -75
  43. package/dist/components/molecules/form-modal/FormModal.js.map +1 -1
  44. package/dist/components/molecules/modal/Modal.js +12 -12
  45. package/dist/components/molecules/modal/Modal.js.map +1 -1
  46. package/dist/components/molecules/navigation-bar/NavigationBar.js +21 -21
  47. package/dist/components/molecules/navigation-bar/NavigationBar.js.map +1 -1
  48. package/dist/components/molecules/upload-button/UploadButton.js +16 -16
  49. package/dist/components/molecules/upload-button/UploadButton.js.map +1 -1
  50. package/dist/contexts/TanstackFormContext.d.ts +29 -0
  51. package/dist/contexts/TanstackFormContext.d.ts.map +1 -0
  52. package/dist/contexts/TanstackFormContext.js +11 -0
  53. package/dist/contexts/TanstackFormContext.js.map +1 -0
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +40 -34
  57. package/dist/index.js.map +1 -1
  58. package/package.json +41 -32
  59. package/dist/chunks/index.DJYQ_-zP.js +0 -489
  60. package/dist/chunks/index.DJYQ_-zP.js.map +0 -1
@@ -0,0 +1,143 @@
1
+ import { jsx as r, jsxs as p } from "react/jsx-runtime";
2
+ import { createFormHookContexts as A, createFormHook as C } from "@tanstack/react-form";
3
+ import { AoaNotification as u } from "../components/atoms/notification/Notification.js";
4
+ import { Dialog as v, DialogTitle as B, DialogContent as w, DialogActions as S } from "@mui/material";
5
+ import { l as j } from "./lodash.DOeeRDpT.js";
6
+ import { AoaButton as l } from "../components/atoms/button/Button.js";
7
+ import { AoaModalCloseButton as T } from "../components/molecules/modal-close-button/ModalCloseButton.js";
8
+ function k({ "data-qa": e }) {
9
+ const n = f();
10
+ return /* @__PURE__ */ r(n.Subscribe, { selector: (t) => t.errors, children: (t) => {
11
+ if (t.length) {
12
+ const i = t.at(0);
13
+ if (typeof i == "string")
14
+ return /* @__PURE__ */ r(u, { "data-qa": e ?? "form-error", message: i, severity: "error" });
15
+ if (i && typeof i == "object") {
16
+ const a = ["error", "info", "success", "warning"].includes(i.level) ? i.level : "error";
17
+ return /* @__PURE__ */ r(u, { "data-qa": e ?? "form-error", message: i.message, severity: a });
18
+ }
19
+ }
20
+ return null;
21
+ } });
22
+ }
23
+ function E({
24
+ formModalQas: e,
25
+ formLabels: n,
26
+ formName: t,
27
+ DialogProps: i,
28
+ DialogTitleProps: a,
29
+ DialogContentProps: s,
30
+ AoaSubmitButtonProps: { disableWithFormState: h, ...b } = {},
31
+ modalQas: o,
32
+ open: y,
33
+ topic: g,
34
+ dialogContent: F,
35
+ closeAction: x
36
+ }) {
37
+ const m = f(), q = h ? /* @__PURE__ */ r(m.Subscribe, { selector: (c) => [c.isSubmitting, c.canSubmit], children: ([c, d]) => /* @__PURE__ */ r(
38
+ l,
39
+ {
40
+ ...b,
41
+ "aria-disabled": c || !d,
42
+ buttonType: "submit",
43
+ "data-qa": (e == null ? void 0 : e.submitButton) ?? "submit-form",
44
+ disabled: c || !d,
45
+ type: "primary",
46
+ children: n.submit
47
+ }
48
+ ) }) : /* @__PURE__ */ r(
49
+ l,
50
+ {
51
+ ...b,
52
+ buttonType: "submit",
53
+ "data-qa": (e == null ? void 0 : e.submitButton) ?? "submit-form",
54
+ type: "primary",
55
+ children: n.submit
56
+ }
57
+ );
58
+ return /* @__PURE__ */ p(v, { ...i, "data-qa": (o == null ? void 0 : o.modal) ?? "modal", open: !!y, children: [
59
+ /* @__PURE__ */ r(B, { ...a, "data-qa": (o == null ? void 0 : o.title) ?? "modal-title", maxWidth: "sm", sx: { m: 0, p: 2 }, children: g }),
60
+ /* @__PURE__ */ r(T, { closeAction: x }),
61
+ /* @__PURE__ */ p(
62
+ "form",
63
+ {
64
+ "data-qa": (e == null ? void 0 : e.form) ?? "form",
65
+ name: t,
66
+ onSubmit: async (c) => {
67
+ c.preventDefault(), c.stopPropagation(), await m.handleSubmit();
68
+ },
69
+ children: [
70
+ /* @__PURE__ */ r(
71
+ w,
72
+ {
73
+ ...s,
74
+ "data-qa": (o == null ? void 0 : o.content) ?? "modal-content",
75
+ sx: j.merge(
76
+ {
77
+ padding: "0 3rem 2rem"
78
+ },
79
+ s == null ? void 0 : s.sx
80
+ ),
81
+ children: F
82
+ }
83
+ ),
84
+ /* @__PURE__ */ p(S, { "data-qa": (e == null ? void 0 : e.dialogActions) ?? "dialog-actions", children: [
85
+ /* @__PURE__ */ r(
86
+ l,
87
+ {
88
+ "data-qa": (e == null ? void 0 : e.cancelButton) ?? "cancel-form",
89
+ onClick: () => {
90
+ m.reset(), x();
91
+ },
92
+ type: "secondary",
93
+ children: n.cancel
94
+ }
95
+ ),
96
+ q
97
+ ] })
98
+ ]
99
+ }
100
+ )
101
+ ] });
102
+ }
103
+ const {
104
+ fieldContext: H,
105
+ formContext: N,
106
+ useFieldContext: W,
107
+ useFormContext: f
108
+ } = A(), { useAppForm: R, withForm: U } = C({
109
+ fieldContext: H,
110
+ formContext: N,
111
+ fieldComponents: {
112
+ AoaFieldError: z
113
+ },
114
+ formComponents: {
115
+ AoaFormModal: E,
116
+ AoaFormError: k
117
+ }
118
+ });
119
+ function z({ "data-qa": e }) {
120
+ const n = W();
121
+ if (n.state.meta.isTouched && n.state.meta.errors.length) {
122
+ const t = n.state.meta.errors.at(0);
123
+ if (typeof t == "string")
124
+ return /* @__PURE__ */ r(u, { "data-qa": e ?? "field-error", message: t, severity: "error" });
125
+ if (t && typeof t == "object") {
126
+ const i = ["error", "info", "success", "warning"].includes(t.level) ? t.level : "error";
127
+ return /* @__PURE__ */ r(u, { "data-qa": e ?? "field-error", message: t.message, severity: i });
128
+ }
129
+ }
130
+ return null;
131
+ }
132
+ export {
133
+ z as A,
134
+ k as a,
135
+ E as b,
136
+ H as c,
137
+ N as d,
138
+ W as e,
139
+ f,
140
+ R as u,
141
+ U as w
142
+ };
143
+ //# sourceMappingURL=FieldError.DAUtZvvC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldError.DAUtZvvC.js","sources":["../../src/components/molecules/form-error/FormError.tsx","../../src/components/molecules/form-modal/FormModal.tsx","../../src/contexts/TanstackFormContext.ts","../../src/components/molecules/field-error/FieldError.tsx"],"sourcesContent":["import { useAoaFormContext } from '../../../contexts/TanstackFormContext';\nimport { AoaNotification, type Severity } from '../../atoms/notification/Notification';\n\nexport interface AoaFormErrorProps {\n readonly 'data-qa'?: string;\n}\n\n/**\n * Constructs a custom error message for a form **using pre-defined Rijks styling**\n *\n * This component is intended for internal use only and should always be used through `<form.AoaFormError />`\n *\n * @internal\n * @param param0 - Props to pass to the form error\n * @returns A custom error message for a form\n * @example\n * ```jsx\n * <form.AppForm>\n * <form.AoaFormError />\n * </form.AppForm>\n * ```\n */\nexport function AoaFormError({ 'data-qa': dataQa }: AoaFormErrorProps) {\n const form = useAoaFormContext();\n\n return (\n <form.Subscribe selector={(state) => state.errors}>\n {(errors) => {\n if (errors.length) {\n const error = errors.at(0);\n\n if (typeof error === 'string') {\n return <AoaNotification data-qa={dataQa ?? 'form-error'} message={error} severity='error' />;\n } else if (error && typeof error === 'object') {\n const parsedLevel = ['error', 'info', 'success', 'warning'].includes(error.level)\n ? (error.level as Severity)\n : 'error';\n return <AoaNotification data-qa={dataQa ?? 'form-error'} message={error.message} severity={parsedLevel} />;\n }\n }\n\n return null;\n }}\n </form.Subscribe>\n );\n}\n","import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material';\nimport { merge } from 'lodash';\nimport { useAoaFormContext } from '../../../contexts/TanstackFormContext';\nimport { AoaButton, type AoaButtonProps } from '../../atoms/button/Button';\nimport type { AoaModalProps } from '../modal/Modal';\nimport { AoaModalCloseButton, type AoaModalCloseButtonProps } from '../modal-close-button/ModalCloseButton';\n\nexport interface AoaFormModalQAs {\n /**\n * Data-qa tag applied to the \"cancel\" button\n */\n cancelButton?: string;\n /**\n * Data-qa tag applied to the `DialogActions` component\n */\n dialogActions?: string;\n /**\n * Data-qa tag applied to the HTML `form` element\n */\n form?: string;\n /**\n * Data-qa tag applied to the \"submit\" button\n */\n submitButton?: string;\n}\n\nexport interface AoaFormModalLabels {\n cancel: string;\n submit: string;\n}\n\nexport interface AoaFormModalProps extends Omit<AoaModalProps, 'dialogActions'>, AoaModalCloseButtonProps {\n /**\n * Additional properties to provide to the {@link AoaButton | submit button}\n */\n AoaSubmitButtonProps?: Omit<AoaButtonProps, 'buttonType' | 'data-qa' | 'disabled' | 'onClick' | 'type'> & {\n disableWithFormState?: boolean;\n };\n /**\n * Labels for the buttons in {@link DialogActions}\n */\n formLabels: AoaFormModalLabels;\n /**\n * data-qa tags for the components in the form section of the modal\n */\n formModalQas?: AoaFormModalQAs;\n /**\n * Optionally the `name` property for the HTML form element\n */\n formName?: string;\n}\n\n/**\n * Constructs a modal **for holding a Form** using pre-defined Rijks styling\n *\n * For a modal without a form see `AoaModal`\n *\n * This component is intended for internal use only and should always be used through `<form.AoaFormModal />`\n *\n * @internal\n * @param props - Props to pass to the modal - {@link ModalProps}\n * @example\n * ```jsx\n * <form.AppForm>\n * <form.AoaFormModal\n * open={true}\n * formLabels={{\n * submit: 'submit',\n * cancel: 'cancel'\n * }}\n * formModalQas={{\n * cancelButton: 'cancel-button',\n * dialogActions: 'dialog-actions,\n * form: 'form',\n * submitButton: 'confirm-button'\n * }}\n * closeAction={handleClose}\n * topic='topic'\n * modalQas={{\n * modal: 'modal',\n * content: 'modal-content',\n * title: 'modal-title'\n * }}\n * formName='form'\n * dialogContent={content}\n * />\n * </form.AppForm>\n * ```\n */\nexport function AoaFormModal({\n formModalQas,\n formLabels,\n formName,\n DialogProps,\n DialogTitleProps,\n DialogContentProps,\n AoaSubmitButtonProps: { disableWithFormState, ...AoaSubmitButtonProps } = {},\n modalQas,\n open,\n topic,\n dialogContent,\n closeAction\n}: Readonly<AoaFormModalProps>) {\n const form = useAoaFormContext();\n\n const SubmitButton = disableWithFormState ? (\n <form.Subscribe selector={(state) => [state.isSubmitting, state.canSubmit] as const}>\n {([isSubmitting, canSubmit]) => (\n <AoaButton\n {...AoaSubmitButtonProps}\n aria-disabled={isSubmitting || !canSubmit}\n buttonType='submit'\n data-qa={formModalQas?.submitButton ?? 'submit-form'}\n disabled={isSubmitting || !canSubmit}\n type='primary'\n >\n {formLabels.submit}\n </AoaButton>\n )}\n </form.Subscribe>\n ) : (\n <AoaButton\n {...AoaSubmitButtonProps}\n buttonType='submit'\n data-qa={formModalQas?.submitButton ?? 'submit-form'}\n type='primary'\n >\n {formLabels.submit}\n </AoaButton>\n );\n\n return (\n <Dialog {...DialogProps} data-qa={modalQas?.modal ?? 'modal'} open={Boolean(open)}>\n <DialogTitle {...DialogTitleProps} data-qa={modalQas?.title ?? 'modal-title'} maxWidth='sm' sx={{ m: 0, p: 2 }}>\n {topic}\n </DialogTitle>\n <AoaModalCloseButton closeAction={closeAction} />\n <form\n data-qa={formModalQas?.form ?? 'form'}\n name={formName}\n onSubmit={async (event) => {\n event.preventDefault();\n event.stopPropagation();\n await form.handleSubmit();\n }}\n >\n <DialogContent\n {...DialogContentProps}\n data-qa={modalQas?.content ?? 'modal-content'}\n sx={merge(\n {\n padding: '0 3rem 2rem'\n },\n DialogContentProps?.sx\n )}\n >\n {dialogContent}\n </DialogContent>\n <DialogActions data-qa={formModalQas?.dialogActions ?? 'dialog-actions'}>\n <AoaButton\n data-qa={formModalQas?.cancelButton ?? 'cancel-form'}\n onClick={() => {\n form.reset();\n closeAction();\n }}\n type='secondary'\n >\n {formLabels.cancel}\n </AoaButton>\n {SubmitButton}\n </DialogActions>\n </form>\n </Dialog>\n );\n}\n","import { createFormHook, createFormHookContexts } from '@tanstack/react-form';\nimport { AoaFieldError } from '../components/molecules/field-error/FieldError';\nimport { AoaFormError } from '../components/molecules/form-error/FormError';\nimport { AoaFormModal } from '../components/molecules/form-modal/FormModal';\n\nexport const {\n fieldContext: aoaFieldContext,\n formContext: aoaFormContext,\n useFieldContext: useAoaFieldContext,\n useFormContext: useAoaFormContext\n} = createFormHookContexts();\n\nexport const { useAppForm: useAoaAppForm, withForm: withAoaForm } = createFormHook({\n fieldContext: aoaFieldContext,\n formContext: aoaFormContext,\n fieldComponents: {\n AoaFieldError\n },\n formComponents: {\n AoaFormModal,\n AoaFormError\n }\n});\n","import { useAoaFieldContext } from '../../../contexts/TanstackFormContext';\nimport { AoaNotification, type Severity } from '../../atoms/notification/Notification';\n\nexport interface AoaFieldErrorProps {\n readonly 'data-qa'?: string;\n}\n\n/**\n * Constructs a custom error message for a field **using pre-defined Rijks styling**\n *\n * This component is intended for internal use only and should always be used through `<field.AoaFieldError />`\n *\n * @internal\n * @param param0 - Props to pass to the field error\n * @returns A custom error message for a field\n * @example\n * ```jsx\n * <form.AppField name='name'>\n * {(field) => {\n * return <field.AoaFieldError />;\n * }}\n * </form.AppField>\n * ```\n */\nexport function AoaFieldError<TData>({ 'data-qa': dataQa }: AoaFieldErrorProps) {\n const field = useAoaFieldContext<TData>();\n\n if (field.state.meta.isTouched && field.state.meta.errors.length) {\n const error = field.state.meta.errors.at(0);\n\n if (typeof error === 'string') {\n return <AoaNotification data-qa={dataQa ?? 'field-error'} message={error} severity='error' />;\n } else if (error && typeof error === 'object') {\n const parsedLevel = ['error', 'info', 'success', 'warning'].includes(error.level)\n ? (error.level as Severity)\n : 'error';\n return <AoaNotification data-qa={dataQa ?? 'field-error'} message={error.message} severity={parsedLevel} />;\n }\n }\n\n return null;\n}\n"],"names":["AoaFormError","dataQa","form","useAoaFormContext","jsx","state","errors","error","AoaNotification","parsedLevel","AoaFormModal","formModalQas","formLabels","formName","DialogProps","DialogTitleProps","DialogContentProps","disableWithFormState","AoaSubmitButtonProps","modalQas","open","topic","dialogContent","closeAction","SubmitButton","isSubmitting","canSubmit","AoaButton","jsxs","Dialog","DialogTitle","AoaModalCloseButton","event","DialogContent","merge","DialogActions","aoaFieldContext","aoaFormContext","useAoaFieldContext","createFormHookContexts","useAoaAppForm","withAoaForm","createFormHook","AoaFieldError","field"],"mappings":"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"}