@rws-aoa/react-library 5.1.2 → 6.0.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.
- package/dist/_constants.js.map +1 -1
- package/dist/chunks/FieldError.B8t3zEhf.js +143 -0
- package/dist/chunks/{FieldError.DAUtZvvC.js.map → FieldError.B8t3zEhf.js.map} +1 -1
- package/dist/chunks/{lodash.DOeeRDpT.js → lodash.CA_K01A9.js} +722 -717
- package/dist/chunks/{lodash.DOeeRDpT.js.map → lodash.CA_K01A9.js.map} +1 -1
- package/dist/components/atoms/_menu/menu-item/MenuItem.js +40 -41
- package/dist/components/atoms/_menu/menu-item/MenuItem.js.map +1 -1
- package/dist/components/atoms/_menu/user-menu/UserMenu.js +1 -1
- package/dist/components/atoms/_menu/user-menu/UserMenu.js.map +1 -1
- package/dist/components/atoms/button/Button.js +1 -1
- package/dist/components/atoms/button/Button.js.map +1 -1
- package/dist/components/atoms/icon-button/IconButton.d.ts +1 -2
- package/dist/components/atoms/icon-button/IconButton.d.ts.map +1 -1
- package/dist/components/atoms/icon-button/IconButton.js +11 -10
- package/dist/components/atoms/icon-button/IconButton.js.map +1 -1
- package/dist/components/atoms/input/Input.d.ts +5 -0
- package/dist/components/atoms/input/Input.d.ts.map +1 -1
- package/dist/components/atoms/input/Input.js +57 -60
- package/dist/components/atoms/input/Input.js.map +1 -1
- package/dist/components/atoms/logo/Logo.js.map +1 -1
- package/dist/components/atoms/no-permission/NoPermission.js +13 -13
- package/dist/components/atoms/no-permission/NoPermission.js.map +1 -1
- package/dist/components/atoms/notification/Notification.js +1 -1
- package/dist/components/atoms/notification/Notification.js.map +1 -1
- package/dist/components/atoms/notification/_icons/Error.js.map +1 -1
- package/dist/components/atoms/notification/_icons/Info.js.map +1 -1
- package/dist/components/atoms/notification/_icons/Success.js.map +1 -1
- package/dist/components/atoms/notification/_icons/Warning.js.map +1 -1
- package/dist/components/atoms/section-header/SectionHeader.js +1 -1
- package/dist/components/atoms/section-header/SectionHeader.js.map +1 -1
- package/dist/components/atoms/selection-buttons/checkbox/Checkbox.js +1 -1
- package/dist/components/atoms/selection-buttons/checkbox/Checkbox.js.map +1 -1
- package/dist/components/atoms/selection-buttons/radio-button/RadioButton.js +1 -1
- package/dist/components/atoms/selection-buttons/radio-button/RadioButton.js.map +1 -1
- package/dist/components/atoms/selection-buttons/switch-button/SwitchButton.js.map +1 -1
- package/dist/components/atoms/table/Table.d.ts +17 -26
- package/dist/components/atoms/table/Table.d.ts.map +1 -1
- package/dist/components/atoms/table/Table.js +120 -90
- package/dist/components/atoms/table/Table.js.map +1 -1
- package/dist/components/atoms/table/_QuickSearchToolbar.d.ts +2 -2
- package/dist/components/atoms/table/_QuickSearchToolbar.d.ts.map +1 -1
- package/dist/components/atoms/table/_QuickSearchToolbar.js +3663 -97
- package/dist/components/atoms/table/_QuickSearchToolbar.js.map +1 -1
- package/dist/components/atoms/tooltip/Tooltip.js +1 -1
- package/dist/components/atoms/tooltip/Tooltip.js.map +1 -1
- package/dist/components/atoms/zero-width-space/ZeroWidthSpace.js.map +1 -1
- package/dist/components/molecules/field-error/FieldError.js +1 -1
- package/dist/components/molecules/file-dropzone/FileDropzone.js +34 -37
- package/dist/components/molecules/file-dropzone/FileDropzone.js.map +1 -1
- package/dist/components/molecules/file-table/FileTable.js +15 -15
- package/dist/components/molecules/file-table/FileTable.js.map +1 -1
- package/dist/components/molecules/form-error/FormError.js +1 -1
- package/dist/components/molecules/form-modal/FormModal.js +2 -2
- package/dist/components/molecules/modal/Modal.js +39 -39
- package/dist/components/molecules/modal/Modal.js.map +1 -1
- package/dist/components/molecules/modal-close-button/ModalCloseButton.js.map +1 -1
- package/dist/components/molecules/navigation-bar/NavigationBar.js +1 -1
- package/dist/components/molecules/navigation-bar/NavigationBar.js.map +1 -1
- package/dist/components/molecules/upload-button/UploadButton.js +17 -17
- package/dist/components/molecules/upload-button/UploadButton.js.map +1 -1
- package/dist/components/organisms/content-page/ContentPage.js.map +1 -1
- package/dist/contexts/TanstackFormContext.d.ts +1 -1
- package/dist/contexts/TanstackFormContext.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +46 -55
- package/dist/chunks/FieldError.DAUtZvvC.js +0 -143
|
@@ -1,34 +1,33 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import { Home as
|
|
4
|
-
import { MenuItem as
|
|
5
|
-
import { Link as
|
|
6
|
-
import { l as
|
|
7
|
-
import { FontNormalSxProps as
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function y(o) {
|
|
1
|
+
import { jsxs as i, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { memo as k, useState as d, createElement as y } from "react";
|
|
3
|
+
import { Home as C, KeyboardArrowDown as P } from "@mui/icons-material";
|
|
4
|
+
import { MenuItem as g, Link as j, menuItemClasses as m, Typography as w, svgIconClasses as s, Popper as I } from "@mui/material";
|
|
5
|
+
import { Link as c } from "@tanstack/react-router";
|
|
6
|
+
import { l as x } from "../../../../chunks/lodash.CA_K01A9.js";
|
|
7
|
+
import { FontNormalSxProps as u } from "../../../../_constants.js";
|
|
8
|
+
const A = k((e) => {
|
|
9
|
+
const [b, a] = d(null), [t, n] = d(!1);
|
|
10
|
+
function h(o) {
|
|
12
11
|
n(!0), a(o.currentTarget);
|
|
13
12
|
}
|
|
14
13
|
function l() {
|
|
15
14
|
n(!1), a(null);
|
|
16
15
|
}
|
|
17
|
-
function
|
|
16
|
+
function p() {
|
|
18
17
|
return e.page.externalPath ? { href: e.page.to } : { to: e.page.to };
|
|
19
18
|
}
|
|
20
|
-
return /* @__PURE__ */
|
|
21
|
-
|
|
19
|
+
return /* @__PURE__ */ y(
|
|
20
|
+
g,
|
|
22
21
|
{
|
|
23
|
-
...
|
|
24
|
-
"aria-controls":
|
|
25
|
-
"aria-expanded":
|
|
26
|
-
"aria-haspopup":
|
|
22
|
+
...p(),
|
|
23
|
+
"aria-controls": e.page.subItems?.length && t ? "submenu" : void 0,
|
|
24
|
+
"aria-expanded": e.page.subItems?.length && t ? "true" : void 0,
|
|
25
|
+
"aria-haspopup": e.page.subItems?.length ? "true" : "false",
|
|
27
26
|
"aria-label": e.page.label,
|
|
28
|
-
component: e.page.to && !e.page.externalPath ?
|
|
27
|
+
component: e.page.to && !e.page.externalPath ? c : j,
|
|
29
28
|
key: e.index,
|
|
30
29
|
onClick: () => e.setSelectedPage(e.index),
|
|
31
|
-
onMouseEnter: (o) =>
|
|
30
|
+
onMouseEnter: (o) => h(o),
|
|
32
31
|
onMouseLeave: () => l(),
|
|
33
32
|
role: "menuitem",
|
|
34
33
|
selected: e.selectedPage === e.index,
|
|
@@ -42,7 +41,7 @@ const F = w((e) => {
|
|
|
42
41
|
textDecoration: "underline"
|
|
43
42
|
}
|
|
44
43
|
},
|
|
45
|
-
[`&.${
|
|
44
|
+
[`&.${m.selected}`]: {
|
|
46
45
|
backgroundColor: "var(--color-rijks-yellow-light)",
|
|
47
46
|
borderBottomColor: "var(--color-rijks-skyblue)",
|
|
48
47
|
":hover": {
|
|
@@ -52,33 +51,33 @@ const F = w((e) => {
|
|
|
52
51
|
},
|
|
53
52
|
title: e.page.label
|
|
54
53
|
},
|
|
55
|
-
/* @__PURE__ */
|
|
56
|
-
|
|
54
|
+
/* @__PURE__ */ i(
|
|
55
|
+
w,
|
|
57
56
|
{
|
|
58
57
|
"aria-hidden": !0,
|
|
59
58
|
component: "span",
|
|
60
|
-
sx:
|
|
59
|
+
sx: x.merge(
|
|
61
60
|
{
|
|
62
61
|
display: "flex",
|
|
63
62
|
alignItems: "center",
|
|
64
|
-
[`&.${
|
|
63
|
+
[`&.${s.root}`]: {
|
|
65
64
|
marginRight: "5px"
|
|
66
65
|
}
|
|
67
66
|
},
|
|
68
|
-
|
|
67
|
+
u
|
|
69
68
|
),
|
|
70
69
|
variant: "body1",
|
|
71
70
|
children: [
|
|
72
|
-
e.index === 0 && /* @__PURE__ */ r(
|
|
71
|
+
e.index === 0 && /* @__PURE__ */ r(C, {}),
|
|
73
72
|
e.page.label,
|
|
74
|
-
|
|
73
|
+
e.page.subItems?.length ? /* @__PURE__ */ r(P, {}) : null
|
|
75
74
|
]
|
|
76
75
|
}
|
|
77
76
|
),
|
|
78
77
|
e.page.subItems && /* @__PURE__ */ r(
|
|
79
|
-
|
|
78
|
+
I,
|
|
80
79
|
{
|
|
81
|
-
anchorEl:
|
|
80
|
+
anchorEl: b,
|
|
82
81
|
id: "submenu",
|
|
83
82
|
open: t,
|
|
84
83
|
placement: "bottom-start",
|
|
@@ -97,22 +96,22 @@ const F = w((e) => {
|
|
|
97
96
|
rgb(0 0 0 / 5%) 0 4px 6px -2px
|
|
98
97
|
`
|
|
99
98
|
},
|
|
100
|
-
children:
|
|
101
|
-
|
|
99
|
+
children: e.page.subItems?.map((o, v) => /* @__PURE__ */ i(
|
|
100
|
+
g,
|
|
102
101
|
{
|
|
103
102
|
"aria-label": o.label,
|
|
104
|
-
component:
|
|
103
|
+
component: c,
|
|
105
104
|
disableRipple: !0,
|
|
106
105
|
divider: o.divider ?? !1,
|
|
107
|
-
onClick: (
|
|
108
|
-
|
|
106
|
+
onClick: (f) => {
|
|
107
|
+
f.stopPropagation(), e.setSelectedPage(e.index), l();
|
|
109
108
|
},
|
|
110
|
-
sx:
|
|
109
|
+
sx: x.merge(
|
|
111
110
|
{
|
|
112
111
|
":active": {
|
|
113
112
|
backgroundColor: "var(--color-bg-light)"
|
|
114
113
|
},
|
|
115
|
-
[`&.${
|
|
114
|
+
[`&.${m.divider}`]: {
|
|
116
115
|
borderBottom: "transparent",
|
|
117
116
|
position: "relative",
|
|
118
117
|
marginBottom: "16px",
|
|
@@ -125,13 +124,13 @@ const F = w((e) => {
|
|
|
125
124
|
borderBottom: "1px solid rgba(0, 0, 0, 0.12)"
|
|
126
125
|
}
|
|
127
126
|
},
|
|
128
|
-
[`&.${
|
|
127
|
+
[`&.${s.root}`]: {
|
|
129
128
|
fontSize: "var(--font-size-text)",
|
|
130
129
|
color: "var(--color-rijks-grey-7)",
|
|
131
130
|
marginRight: "12px"
|
|
132
131
|
}
|
|
133
132
|
},
|
|
134
|
-
|
|
133
|
+
u
|
|
135
134
|
),
|
|
136
135
|
to: o.to,
|
|
137
136
|
children: [
|
|
@@ -139,13 +138,13 @@ const F = w((e) => {
|
|
|
139
138
|
o.label
|
|
140
139
|
]
|
|
141
140
|
},
|
|
142
|
-
|
|
141
|
+
v
|
|
143
142
|
))
|
|
144
143
|
}
|
|
145
144
|
)
|
|
146
145
|
);
|
|
147
146
|
});
|
|
148
147
|
export {
|
|
149
|
-
|
|
148
|
+
A as AoaMenuItem
|
|
150
149
|
};
|
|
151
150
|
//# sourceMappingURL=MenuItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","sources":["../../../../../src/components/atoms/_menu/menu-item/MenuItem.tsx"],"sourcesContent":["import { Home as HomeIcon, KeyboardArrowDown as KeyboardArrowDownIcon } from '@mui/icons-material';\nimport {\n Link as MUILink,\n MenuItem as MUIMenuItem,\n menuItemClasses,\n svgIconClasses,\n Popper,\n Typography\n} from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { memo, useState, type Dispatch, type MouseEvent, type ReactNode, type SetStateAction } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ninterface SubMenu {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * Optional icon to be displayed in front of the label\n */\n icon?: JSX.Element;\n /**\n * The label of the menu item\n */\n label: string;\n /**\n * The path that the menu item links to on click\n */\n to: string;\n}\n\ntype Menu =\n /**\n * The path that the menu item links to on click and the subitems shown on hover\n */\n | { subItems: SubMenu[]; to: string }\n /**\n * Subitems are required when there is no path that the menu item links to on click\n */\n | { subItems: SubMenu[]; to?: never }\n /**\n * The path that the menu item links to on click is required when there are no subitems on hover\n */\n | { subItems?: never; to: string };\n\nexport type AoaPage = Menu & {\n /**\n * Optional boolean to indicate if it's an external \"to\" path\n */\n externalPath?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface MenuItemProps {\n /**\n * Index of the current menu item. Home === 0\n */\n readonly index: number;\n /**\n * The Page object for this menu item\n */\n readonly page: AoaPage;\n /**\n * The currently active menu item\n */\n readonly selectedPage: number;\n /**\n * The function to update the active menu item\n */\n readonly setSelectedPage: Dispatch<SetStateAction<number>>;\n}\n\n/**\n * Constructs a menu item using pre-defined Rijks styling\n *\n * @param props - Props to pass to the menu item\n * @example\n * ```jsx\n * <AoaMenuItem\n * index={index}\n * page={{\n * label: \"Products\",\n * to: \"/products\",\n * subItems: [\n * {\n * label: \"Books\",\n * to: \"/books\",\n * icon: <BookIcon />,\n * }\n * ]\n * }}\n * selectedPage={selectedPage}\n * setSelectedPage={setSelectedPage}\n * />\n * ```\n */\nexport const AoaMenuItem = memo((props: MenuItemProps): ReactNode => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n function linkProps() {\n if (props.page.externalPath) {\n return { href: props.page.to };\n } else {\n return { to: props.page.to };\n }\n }\n\n return (\n <MUIMenuItem\n {...linkProps()}\n aria-controls={props.page.subItems?.length && open ? 'submenu' : undefined}\n aria-expanded={props.page.subItems?.length && open ? 'true' : undefined}\n aria-haspopup={props.page.subItems?.length ? 'true' : 'false'}\n aria-label={props.page.label}\n component={props.page.to && !props.page.externalPath ? Link : MUILink}\n key={props.index}\n onClick={() => props.setSelectedPage(props.index)}\n onMouseEnter={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n role='menuitem'\n selected={props.selectedPage === props.index}\n sx={{\n height: '100%',\n borderBottom: '3px solid transparent',\n padding: '6px 20px 3px',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)',\n ...(props.page.to && {\n textDecoration: 'underline'\n })\n },\n\n [`&.${menuItemClasses.selected}`]: {\n backgroundColor: 'var(--color-rijks-yellow-light)',\n borderBottomColor: 'var(--color-rijks-skyblue)',\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)'\n }\n }\n }}\n title={props.page.label}\n >\n <Typography\n aria-hidden\n component='span'\n sx={merge(\n {\n display: 'flex',\n alignItems: 'center',\n\n [`&.${svgIconClasses.root}`]: {\n marginRight: '5px'\n }\n },\n FontNormalSxProps\n )}\n variant='body1'\n >\n {props.index === 0 && <HomeIcon />}\n {props.page.label}\n {props.page.subItems?.length ? <KeyboardArrowDownIcon /> : null}\n </Typography>\n {props.page.subItems && (\n <Popper\n anchorEl={anchorEl}\n id='submenu'\n open={open}\n placement='bottom-start'\n role='menu'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '180px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.page.subItems?.map((subItem, index) => (\n <MUIMenuItem\n aria-label={subItem.label}\n component={Link}\n disableRipple\n divider={subItem.divider ?? false}\n key={index}\n onClick={(event) => {\n event.stopPropagation();\n props.setSelectedPage(props.index);\n handleMenuClose();\n }}\n sx={merge(\n {\n ':active': {\n backgroundColor: 'var(--color-bg-light)'\n },\n\n [`&.${menuItemClasses.divider}`]: {\n borderBottom: 'transparent',\n position: 'relative',\n marginBottom: '16px',\n\n '::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: '-8px',\n left: '0',\n width: '100%',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n },\n\n [`&.${svgIconClasses.root}`]: {\n fontSize: 'var(--font-size-text)',\n color: 'var(--color-rijks-grey-7)',\n marginRight: '12px'\n }\n },\n FontNormalSxProps\n )}\n to={subItem.to}\n >\n {subItem.icon}\n {subItem.label}\n </MUIMenuItem>\n ))}\n </Popper>\n )}\n </MUIMenuItem>\n );\n});\n"],"names":["AoaMenuItem","memo","props","anchorEl","setAnchorEl","useState","open","setOpen","handleMenuOpen","event","handleMenuClose","linkProps","createElement","MUIMenuItem","_a","_b","_c","Link","MUILink","menuItemClasses","jsxs","Typography","merge","svgIconClasses","FontNormalSxProps","jsx","HomeIcon","_d","KeyboardArrowDownIcon","Popper","subItem","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuItem.js","sources":["../../../../../src/components/atoms/_menu/menu-item/MenuItem.tsx"],"sourcesContent":["import { Home as HomeIcon, KeyboardArrowDown as KeyboardArrowDownIcon } from '@mui/icons-material';\nimport {\n Link as MUILink,\n MenuItem as MUIMenuItem,\n menuItemClasses,\n svgIconClasses,\n Popper,\n Typography\n} from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { memo, useState, type Dispatch, type MouseEvent, type ReactNode, type SetStateAction } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ninterface SubMenu {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * Optional icon to be displayed in front of the label\n */\n icon?: JSX.Element;\n /**\n * The label of the menu item\n */\n label: string;\n /**\n * The path that the menu item links to on click\n */\n to: string;\n}\n\ntype Menu =\n /**\n * The path that the menu item links to on click and the subitems shown on hover\n */\n | { subItems: SubMenu[]; to: string }\n /**\n * Subitems are required when there is no path that the menu item links to on click\n */\n | { subItems: SubMenu[]; to?: never }\n /**\n * The path that the menu item links to on click is required when there are no subitems on hover\n */\n | { subItems?: never; to: string };\n\nexport type AoaPage = Menu & {\n /**\n * Optional boolean to indicate if it's an external \"to\" path\n */\n externalPath?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface MenuItemProps {\n /**\n * Index of the current menu item. Home === 0\n */\n readonly index: number;\n /**\n * The Page object for this menu item\n */\n readonly page: AoaPage;\n /**\n * The currently active menu item\n */\n readonly selectedPage: number;\n /**\n * The function to update the active menu item\n */\n readonly setSelectedPage: Dispatch<SetStateAction<number>>;\n}\n\n/**\n * Constructs a menu item using pre-defined Rijks styling\n *\n * @param props - Props to pass to the menu item\n * @example\n * ```jsx\n * <AoaMenuItem\n * index={index}\n * page={{\n * label: \"Products\",\n * to: \"/products\",\n * subItems: [\n * {\n * label: \"Books\",\n * to: \"/books\",\n * icon: <BookIcon />,\n * }\n * ]\n * }}\n * selectedPage={selectedPage}\n * setSelectedPage={setSelectedPage}\n * />\n * ```\n */\nexport const AoaMenuItem = memo((props: MenuItemProps): ReactNode => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n function linkProps() {\n if (props.page.externalPath) {\n return { href: props.page.to };\n } else {\n return { to: props.page.to };\n }\n }\n\n return (\n <MUIMenuItem\n {...linkProps()}\n aria-controls={props.page.subItems?.length && open ? 'submenu' : undefined}\n aria-expanded={props.page.subItems?.length && open ? 'true' : undefined}\n aria-haspopup={props.page.subItems?.length ? 'true' : 'false'}\n aria-label={props.page.label}\n component={props.page.to && !props.page.externalPath ? Link : MUILink}\n key={props.index}\n onClick={() => props.setSelectedPage(props.index)}\n onMouseEnter={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n role='menuitem'\n selected={props.selectedPage === props.index}\n sx={{\n height: '100%',\n borderBottom: '3px solid transparent',\n padding: '6px 20px 3px',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)',\n ...(props.page.to && {\n textDecoration: 'underline'\n })\n },\n\n [`&.${menuItemClasses.selected}`]: {\n backgroundColor: 'var(--color-rijks-yellow-light)',\n borderBottomColor: 'var(--color-rijks-skyblue)',\n ':hover': {\n backgroundColor: 'var(--color-rijks-yellow-hover)'\n }\n }\n }}\n title={props.page.label}\n >\n <Typography\n aria-hidden\n component='span'\n sx={merge(\n {\n display: 'flex',\n alignItems: 'center',\n\n [`&.${svgIconClasses.root}`]: {\n marginRight: '5px'\n }\n },\n FontNormalSxProps\n )}\n variant='body1'\n >\n {props.index === 0 && <HomeIcon />}\n {props.page.label}\n {props.page.subItems?.length ? <KeyboardArrowDownIcon /> : null}\n </Typography>\n {props.page.subItems && (\n <Popper\n anchorEl={anchorEl}\n id='submenu'\n open={open}\n placement='bottom-start'\n role='menu'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '180px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.page.subItems?.map((subItem, index) => (\n <MUIMenuItem\n aria-label={subItem.label}\n component={Link}\n disableRipple\n divider={subItem.divider ?? false}\n key={index}\n onClick={(event) => {\n event.stopPropagation();\n props.setSelectedPage(props.index);\n handleMenuClose();\n }}\n sx={merge(\n {\n ':active': {\n backgroundColor: 'var(--color-bg-light)'\n },\n\n [`&.${menuItemClasses.divider}`]: {\n borderBottom: 'transparent',\n position: 'relative',\n marginBottom: '16px',\n\n '::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: '-8px',\n left: '0',\n width: '100%',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n },\n\n [`&.${svgIconClasses.root}`]: {\n fontSize: 'var(--font-size-text)',\n color: 'var(--color-rijks-grey-7)',\n marginRight: '12px'\n }\n },\n FontNormalSxProps\n )}\n to={subItem.to}\n >\n {subItem.icon}\n {subItem.label}\n </MUIMenuItem>\n ))}\n </Popper>\n )}\n </MUIMenuItem>\n );\n});\n"],"names":["AoaMenuItem","memo","props","anchorEl","setAnchorEl","useState","open","setOpen","handleMenuOpen","event","handleMenuClose","linkProps","createElement","MUIMenuItem","Link","MUILink","menuItemClasses","jsxs","Typography","merge","svgIconClasses","FontNormalSxProps","jsx","HomeIcon","KeyboardArrowDownIcon","Popper","subItem","index"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { Box as h, Typography as f, MenuItem as l, Avatar as g, Popper as b, Link as v } from "@mui/material";
|
|
3
3
|
import { Link as k } from "@tanstack/react-router";
|
|
4
|
-
import { l as C } from "../../../../chunks/lodash.
|
|
4
|
+
import { l as C } from "../../../../chunks/lodash.CA_K01A9.js";
|
|
5
5
|
import { memo as M, useState as p } from "react";
|
|
6
6
|
import { FontNormalSxProps as s } from "../../../../_constants.js";
|
|
7
7
|
const S = M((r) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMenu.js","sources":["../../../../../src/components/atoms/_menu/user-menu/UserMenu.tsx"],"sourcesContent":["import { Avatar, Box, Link as MUILink, MenuItem as MUIMenuItem, Popper, Typography } from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { memo, useState, type MouseEvent, type ReactNode } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ntype Action =\n /**\n * The path that the menu item links to on click\n */\n | { onClick?: never; to: string }\n /**\n * The onClick function for situations where you don't want to navigate to another page (e.g. logout)\n */\n | { onClick(): void; to?: never };\n\nexport type AoaSetting = Action & {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface UserMenuProps {\n /**\n * A list of the user menu items\n */\n readonly settings: AoaSetting[];\n /**\n * Username to be displayed on the left of the settings menu icon\n */\n readonly username?: string;\n}\n\n/**\n * Constructs a user menu using pre-defined Rijks styling\n *\n * @param props - Props to pass to the user menu\n * @example\n * ```jsx\n * <AoaUserMenu\n * settings={[\n * { label: \"Logout\", onClick: () => console.log(\"Logout\") }\n * ]}\n * />\n * ```\n */\n\nexport const AoaUserMenu = memo((props: UserMenuProps): ReactNode => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLLIElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n return (\n <Box alignItems='center' display='flex' role='menu' sx={{ flexGrow: 0, minWidth: 'fit-content' }}>\n {props.username && (\n <Typography component='span' sx={merge({ marginRight: '16px' }, FontNormalSxProps)}>\n {props.username}\n </Typography>\n )}\n <MUIMenuItem\n aria-controls={open ? 'usermenu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n aria-label='User menu'\n onMouseEnter={(event) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n sx={{\n padding: 0,\n\n ':hover': {\n backgroundColor: 'transparent'\n }\n }}\n >\n <Avatar />\n <Popper\n anchorEl={anchorEl}\n id='usermenu'\n open={open}\n placement='bottom-end'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '120px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.settings.map((setting, index) => (\n <MUIMenuItem\n component={setting.to ? Link : MUILink}\n disableRipple\n divider={setting.divider ?? false}\n key={index}\n onClick={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => {\n event.stopPropagation();\n if (setting.onClick) {\n setting.onClick();\n }\n\n setOpen(false);\n }}\n sx={{ ...FontNormalSxProps }}\n to={setting.to}\n >\n {setting.label}\n </MUIMenuItem>\n ))}\n </Popper>\n </MUIMenuItem>\n </Box>\n );\n});\n"],"names":["AoaUserMenu","memo","props","anchorEl","setAnchorEl","useState","open","setOpen","handleMenuOpen","event","handleMenuClose","jsxs","Box","jsx","Typography","merge","FontNormalSxProps","MUIMenuItem","Avatar","Popper","setting","index","Link","MUILink"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"UserMenu.js","sources":["../../../../../src/components/atoms/_menu/user-menu/UserMenu.tsx"],"sourcesContent":["import { Avatar, Box, Link as MUILink, MenuItem as MUIMenuItem, Popper, Typography } from '@mui/material';\nimport { Link } from '@tanstack/react-router';\nimport { merge } from 'lodash';\nimport { memo, useState, type MouseEvent, type ReactNode } from 'react';\nimport { FontNormalSxProps } from '../../../../_constants';\n\ntype Action =\n /**\n * The path that the menu item links to on click\n */\n | { onClick?: never; to: string }\n /**\n * The onClick function for situations where you don't want to navigate to another page (e.g. logout)\n */\n | { onClick(): void; to?: never };\n\nexport type AoaSetting = Action & {\n /**\n * Optional divider to be shown below menu item\n */\n divider?: boolean;\n /**\n * The label of the menu item\n */\n label: string;\n};\n\ninterface UserMenuProps {\n /**\n * A list of the user menu items\n */\n readonly settings: AoaSetting[];\n /**\n * Username to be displayed on the left of the settings menu icon\n */\n readonly username?: string;\n}\n\n/**\n * Constructs a user menu using pre-defined Rijks styling\n *\n * @param props - Props to pass to the user menu\n * @example\n * ```jsx\n * <AoaUserMenu\n * settings={[\n * { label: \"Logout\", onClick: () => console.log(\"Logout\") }\n * ]}\n * />\n * ```\n */\n\nexport const AoaUserMenu = memo((props: UserMenuProps): ReactNode => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [open, setOpen] = useState(false);\n\n function handleMenuOpen(event: MouseEvent<HTMLLIElement, globalThis.MouseEvent>) {\n setOpen(true);\n setAnchorEl(event.currentTarget);\n }\n\n function handleMenuClose() {\n setOpen(false);\n setAnchorEl(null);\n }\n\n return (\n <Box alignItems='center' display='flex' role='menu' sx={{ flexGrow: 0, minWidth: 'fit-content' }}>\n {props.username && (\n <Typography component='span' sx={merge({ marginRight: '16px' }, FontNormalSxProps)}>\n {props.username}\n </Typography>\n )}\n <MUIMenuItem\n aria-controls={open ? 'usermenu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n aria-label='User menu'\n onMouseEnter={(event) => handleMenuOpen(event)}\n onMouseLeave={() => handleMenuClose()}\n sx={{\n padding: 0,\n\n ':hover': {\n backgroundColor: 'transparent'\n }\n }}\n >\n <Avatar />\n <Popper\n anchorEl={anchorEl}\n id='usermenu'\n open={open}\n placement='bottom-end'\n sx={{\n backgroundColor: 'var(--color-bg-light)',\n padding: '4px 0',\n borderRadius: '6px',\n marginTop: '8px',\n minWidth: '120px',\n color: 'var(--color-text)',\n boxShadow: `\n rgb(255 255 255) 0 0 0 0,\n rgb(0 0 0 / 5%) 0 0 0 1px,\n rgb(0 0 0 / 10%) 0 10px 15px -3px,\n rgb(0 0 0 / 5%) 0 4px 6px -2px\n `\n }}\n >\n {props.settings.map((setting, index) => (\n <MUIMenuItem\n component={setting.to ? Link : MUILink}\n disableRipple\n divider={setting.divider ?? false}\n key={index}\n onClick={(event: MouseEvent<HTMLAnchorElement, globalThis.MouseEvent>) => {\n event.stopPropagation();\n if (setting.onClick) {\n setting.onClick();\n }\n\n setOpen(false);\n }}\n sx={{ ...FontNormalSxProps }}\n to={setting.to}\n >\n {setting.label}\n </MUIMenuItem>\n ))}\n </Popper>\n </MUIMenuItem>\n </Box>\n );\n});\n"],"names":["AoaUserMenu","memo","props","anchorEl","setAnchorEl","useState","open","setOpen","handleMenuOpen","event","handleMenuClose","jsxs","Box","jsx","Typography","merge","FontNormalSxProps","MUIMenuItem","Avatar","Popper","setting","index","Link","MUILink"],"mappings":";;;;;;AAoDO,MAAMA,IAAcC,EAAK,CAACC,MAAoC;AACnE,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAA6B,IAAI,GAC3D,CAACC,GAAMC,CAAO,IAAIF,EAAS,EAAK;AAEtC,WAASG,EAAeC,GAAyD;AAC/E,IAAAF,EAAQ,EAAI,GACZH,EAAYK,EAAM,aAAa;AAAA,EAAA;AAGjC,WAASC,IAAkB;AACzB,IAAAH,EAAQ,EAAK,GACbH,EAAY,IAAI;AAAA,EAAA;AAGlB,SACE,gBAAAO,EAACC,GAAA,EAAI,YAAW,UAAS,SAAQ,QAAO,MAAK,QAAO,IAAI,EAAE,UAAU,GAAG,UAAU,iBAC9E,UAAA;AAAA,IAAAV,EAAM,YACL,gBAAAW,EAACC,GAAA,EAAW,WAAU,QAAO,IAAIC,EAAAA,MAAM,EAAE,aAAa,OAAA,GAAUC,CAAiB,GAC9E,YAAM,UACT;AAAA,IAEF,gBAAAL;AAAA,MAACM;AAAAA,MAAA;AAAA,QACC,iBAAeX,IAAO,aAAa;AAAA,QACnC,iBAAeA,IAAO,SAAS;AAAA,QAC/B,iBAAc;AAAA,QACd,cAAW;AAAA,QACX,cAAc,CAACG,MAAUD,EAAeC,CAAK;AAAA,QAC7C,cAAc,MAAMC,EAAA;AAAA,QACpB,IAAI;AAAA,UACF,SAAS;AAAA,UAET,UAAU;AAAA,YACR,iBAAiB;AAAA,UAAA;AAAA,QACnB;AAAA,QAGF,UAAA;AAAA,UAAA,gBAAAG,EAACK,GAAA,EAAO;AAAA,UACR,gBAAAL;AAAA,YAACM;AAAA,YAAA;AAAA,cACC,UAAAhB;AAAA,cACA,IAAG;AAAA,cACH,MAAAG;AAAA,cACA,WAAU;AAAA,cACV,IAAI;AAAA,gBACF,iBAAiB;AAAA,gBACjB,SAAS;AAAA,gBACT,cAAc;AAAA,gBACd,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,OAAO;AAAA,gBACP,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA;AAAA,cAQZ,UAAAJ,EAAM,SAAS,IAAI,CAACkB,GAASC,MAC5B,gBAAAR;AAAA,gBAACI;AAAAA,gBAAA;AAAA,kBACC,WAAWG,EAAQ,KAAKE,IAAOC;AAAAA,kBAC/B,eAAa;AAAA,kBACb,SAASH,EAAQ,WAAW;AAAA,kBAE5B,SAAS,CAACX,MAAgE;AACxE,oBAAAA,EAAM,gBAAA,GACFW,EAAQ,WACVA,EAAQ,QAAA,GAGVb,EAAQ,EAAK;AAAA,kBAAA;AAAA,kBAEf,IAAI,EAAE,GAAGS,EAAA;AAAA,kBACT,IAAII,EAAQ;AAAA,kBAEX,UAAAA,EAAQ;AAAA,gBAAA;AAAA,gBAZJC;AAAA,cAAA,CAcR;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ,CAAC;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as a } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronRight as d } from "@mui/icons-material";
|
|
3
3
|
import { Button as v, buttonClasses as r } from "@mui/material";
|
|
4
|
-
import { l as s } from "../../../chunks/lodash.
|
|
4
|
+
import { l as s } from "../../../chunks/lodash.CA_K01A9.js";
|
|
5
5
|
import { memo as b } from "react";
|
|
6
6
|
import { FontNormalSxProps as x } from "../../../_constants.js";
|
|
7
7
|
const C = b(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../src/components/atoms/button/Button.tsx"],"sourcesContent":["import { ChevronRight } from '@mui/icons-material';\nimport {\n Button as MUIButton,\n buttonClasses,\n type ButtonTypeMap,\n type ButtonProps as MUIButtonProps\n} from '@mui/material';\nimport { merge } from 'lodash';\nimport { memo, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { FontNormalSxProps } from '../../../_constants';\n\ninterface CommonProps {\n /**\n * Data-qa tag for E2E test purposes\n */\n 'data-qa'?: string;\n /**\n * Defines the colour and style of the button\n */\n type: 'primary' | 'secondary' | 'text';\n}\n\nexport type AoaButtonProps = Omit<MUIButtonProps<ButtonTypeMap['defaultComponent'], CommonProps>, 'variant'> & {\n readonly buttonType?: ButtonHTMLAttributes<HTMLButtonElement>['type'];\n};\n\n/**\n * Constructs a button using pre-defined Rijks styling\n *\n * @param props - Props to pass to the button\n * @example\n * ```jsx\n * <AoaButton onClick={() => console.log()} type='primary'>button</AoaButton>\n * ```\n */\n\nexport const AoaButton = memo(\n ({ type, startIcon, 'data-qa': dataQa, children, buttonType, ...props }: AoaButtonProps): ReactNode => {\n let variant: 'contained' | 'outlined' | 'text' = 'contained';\n\n if (type === 'text') {\n variant = 'text';\n }\n\n if (type === 'secondary') {\n variant = 'outlined';\n }\n\n return (\n <MUIButton\n {...props}\n data-qa={dataQa}\n disableElevation\n endIcon={type === 'text' && <ChevronRight />}\n startIcon={type !== 'text' && startIcon}\n sx={merge(\n {\n // Styles that apply to all button types and colors\n appearance: 'none',\n border: '1px solid',\n borderRadius: 0,\n boxSizing: 'border-box',\n color: 'var(--color-text-light)',\n cursor: 'pointer',\n display: 'inline-flex',\n lineHeight: 'var(--font-lineheight-text)',\n minHeight: 20,\n padding: '12px 16px',\n position: 'relative',\n textDecoration: 'none',\n textShadow: 'none',\n textTransform: 'none',\n verticalAlign: 'middle',\n\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: '3px',\n boxShadow: 'none'\n },\n\n // Styles that apply to contained (type === primary)\n [`&.${buttonClasses.contained}`]: {\n [`&.${buttonClasses.colorPrimary}`]: {\n backgroundColor: 'var(--color-primary)',\n borderColor: 'var(--color-primary)',\n\n ':hover, :active, :focus': {\n backgroundColor: 'var(--color-primary-hover)'\n }\n },\n\n [`&.${buttonClasses.colorError}`]: {\n backgroundColor: 'var(--color-error)',\n borderColor: 'var(--color-error)',\n\n ':hover, :active, :focus': {\n backgroundColor: 'var(--color-error-hover)'\n }\n },\n\n [`&.${buttonClasses.disabled}`]: {\n backgroundColor: 'var(--color-disabled)',\n borderColor: 'var(--color-disabled)',\n color: 'var(--color-text-disabled)'\n },\n\n ':hover, :active, :focus': {\n color: 'var(--color-text-light)'\n }\n },\n\n // Styles that apply to outlined (type === secondary)\n [`&.${buttonClasses.outlined}`]: {\n background: 'none',\n border: '1px solid var(--color-primary)',\n boxSizing: 'border-box',\n\n [`&.${buttonClasses.colorPrimary}`]: {\n color: 'var(--color-primary)',\n borderColor: 'var(--color-primary)',\n\n ':hover, :active, :focus': {\n borderColor: 'var(--color-primary-hover)',\n color: 'var(--color-primary-hover)'\n }\n },\n\n [`&.${buttonClasses.colorError}`]: {\n color: 'var(--color-error)',\n borderColor: 'var(--color-error)',\n\n ':hover, :active, :focus': {\n borderColor: 'var(--color-error-hover)',\n color: 'var(--color-error-hover)'\n }\n },\n\n ':disabled': {\n backgroundColor: 'transparent',\n borderColor: 'var(--color-text-disabled)',\n color: 'var(--color-text-disabled)'\n }\n },\n\n // Styles that apply to text (type === text)\n [`&.${buttonClasses.text}`]: {\n background: 'none',\n borderColor: 'transparent',\n display: 'inline-block',\n textTransform: 'uppercase',\n fontWeight: 'bold',\n fontSize: '1.075rem',\n verticalAlign: 'middle',\n\n [`&.${buttonClasses.colorPrimary}`]: {\n color: 'var(--color-primary)',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-skyblue-light)'\n }\n },\n\n [`&.${buttonClasses.colorError}`]: {\n color: 'var(--color-error)',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-red-1-light)'\n }\n },\n\n [`&.${buttonClasses.endIcon}`]: {\n width: '1rem',\n height: '1rem',\n verticalAlign: 'text-top'\n },\n\n ':disabled': {\n backgroundColor: 'transparent',\n color: 'var(--color-text-disabled)',\n\n [`&.${buttonClasses.endIcon}`]: {\n fill: 'var(--color-text-disabled)'\n }\n }\n }\n },\n props.sx,\n FontNormalSxProps\n )}\n type={buttonType}\n variant={variant}\n >\n {children}\n </MUIButton>\n );\n }\n);\n"],"names":["AoaButton","memo","type","startIcon","dataQa","children","buttonType","props","variant","jsx","MUIButton","ChevronRight","merge","buttonClasses","FontNormalSxProps"],"mappings":";;;;;;AAoCO,MAAMA,IAAYC;AAAA,EACvB,CAAC,EAAE,MAAAC,GAAM,WAAAC,GAAW,WAAWC,GAAQ,UAAAC,GAAU,YAAAC,GAAY,GAAGC,QAAuC;AACrG,QAAIC,IAA6C;AAEjD,WAAIN,MAAS,
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../src/components/atoms/button/Button.tsx"],"sourcesContent":["import { ChevronRight } from '@mui/icons-material';\nimport {\n Button as MUIButton,\n buttonClasses,\n type ButtonTypeMap,\n type ButtonProps as MUIButtonProps\n} from '@mui/material';\nimport { merge } from 'lodash';\nimport { memo, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { FontNormalSxProps } from '../../../_constants';\n\ninterface CommonProps {\n /**\n * Data-qa tag for E2E test purposes\n */\n 'data-qa'?: string;\n /**\n * Defines the colour and style of the button\n */\n type: 'primary' | 'secondary' | 'text';\n}\n\nexport type AoaButtonProps = Omit<MUIButtonProps<ButtonTypeMap['defaultComponent'], CommonProps>, 'variant'> & {\n readonly buttonType?: ButtonHTMLAttributes<HTMLButtonElement>['type'];\n};\n\n/**\n * Constructs a button using pre-defined Rijks styling\n *\n * @param props - Props to pass to the button\n * @example\n * ```jsx\n * <AoaButton onClick={() => console.log()} type='primary'>button</AoaButton>\n * ```\n */\n\nexport const AoaButton = memo(\n ({ type, startIcon, 'data-qa': dataQa, children, buttonType, ...props }: AoaButtonProps): ReactNode => {\n let variant: 'contained' | 'outlined' | 'text' = 'contained';\n\n if (type === 'text') {\n variant = 'text';\n }\n\n if (type === 'secondary') {\n variant = 'outlined';\n }\n\n return (\n <MUIButton\n {...props}\n data-qa={dataQa}\n disableElevation\n endIcon={type === 'text' && <ChevronRight />}\n startIcon={type !== 'text' && startIcon}\n sx={merge(\n {\n // Styles that apply to all button types and colors\n appearance: 'none',\n border: '1px solid',\n borderRadius: 0,\n boxSizing: 'border-box',\n color: 'var(--color-text-light)',\n cursor: 'pointer',\n display: 'inline-flex',\n lineHeight: 'var(--font-lineheight-text)',\n minHeight: 20,\n padding: '12px 16px',\n position: 'relative',\n textDecoration: 'none',\n textShadow: 'none',\n textTransform: 'none',\n verticalAlign: 'middle',\n\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: '3px',\n boxShadow: 'none'\n },\n\n // Styles that apply to contained (type === primary)\n [`&.${buttonClasses.contained}`]: {\n [`&.${buttonClasses.colorPrimary}`]: {\n backgroundColor: 'var(--color-primary)',\n borderColor: 'var(--color-primary)',\n\n ':hover, :active, :focus': {\n backgroundColor: 'var(--color-primary-hover)'\n }\n },\n\n [`&.${buttonClasses.colorError}`]: {\n backgroundColor: 'var(--color-error)',\n borderColor: 'var(--color-error)',\n\n ':hover, :active, :focus': {\n backgroundColor: 'var(--color-error-hover)'\n }\n },\n\n [`&.${buttonClasses.disabled}`]: {\n backgroundColor: 'var(--color-disabled)',\n borderColor: 'var(--color-disabled)',\n color: 'var(--color-text-disabled)'\n },\n\n ':hover, :active, :focus': {\n color: 'var(--color-text-light)'\n }\n },\n\n // Styles that apply to outlined (type === secondary)\n [`&.${buttonClasses.outlined}`]: {\n background: 'none',\n border: '1px solid var(--color-primary)',\n boxSizing: 'border-box',\n\n [`&.${buttonClasses.colorPrimary}`]: {\n color: 'var(--color-primary)',\n borderColor: 'var(--color-primary)',\n\n ':hover, :active, :focus': {\n borderColor: 'var(--color-primary-hover)',\n color: 'var(--color-primary-hover)'\n }\n },\n\n [`&.${buttonClasses.colorError}`]: {\n color: 'var(--color-error)',\n borderColor: 'var(--color-error)',\n\n ':hover, :active, :focus': {\n borderColor: 'var(--color-error-hover)',\n color: 'var(--color-error-hover)'\n }\n },\n\n ':disabled': {\n backgroundColor: 'transparent',\n borderColor: 'var(--color-text-disabled)',\n color: 'var(--color-text-disabled)'\n }\n },\n\n // Styles that apply to text (type === text)\n [`&.${buttonClasses.text}`]: {\n background: 'none',\n borderColor: 'transparent',\n display: 'inline-block',\n textTransform: 'uppercase',\n fontWeight: 'bold',\n fontSize: '1.075rem',\n verticalAlign: 'middle',\n\n [`&.${buttonClasses.colorPrimary}`]: {\n color: 'var(--color-primary)',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-skyblue-light)'\n }\n },\n\n [`&.${buttonClasses.colorError}`]: {\n color: 'var(--color-error)',\n\n ':hover': {\n backgroundColor: 'var(--color-rijks-red-1-light)'\n }\n },\n\n [`&.${buttonClasses.endIcon}`]: {\n width: '1rem',\n height: '1rem',\n verticalAlign: 'text-top'\n },\n\n ':disabled': {\n backgroundColor: 'transparent',\n color: 'var(--color-text-disabled)',\n\n [`&.${buttonClasses.endIcon}`]: {\n fill: 'var(--color-text-disabled)'\n }\n }\n }\n },\n props.sx,\n FontNormalSxProps\n )}\n type={buttonType}\n variant={variant}\n >\n {children}\n </MUIButton>\n );\n }\n);\n"],"names":["AoaButton","memo","type","startIcon","dataQa","children","buttonType","props","variant","jsx","MUIButton","ChevronRight","merge","buttonClasses","FontNormalSxProps"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SxProps } from '@mui/material';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
3
2
|
export interface AoaIconButtonProps {
|
|
4
3
|
/**
|
|
5
4
|
* Data-qa tag for E2E test purposes
|
|
@@ -39,5 +38,5 @@ export interface AoaIconButtonProps {
|
|
|
39
38
|
* <AoaIconButton onClick={() => console.log()} label='Order a burger' icon={<Fastfood />} />
|
|
40
39
|
* ```
|
|
41
40
|
*/
|
|
42
|
-
export declare const AoaIconButton: import('react').
|
|
41
|
+
export declare const AoaIconButton: import('react').ForwardRefExoticComponent<AoaIconButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
43
42
|
//# sourceMappingURL=IconButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/icon-button/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/icon-button/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAK1E,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,kHAsDxB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { IconButton as
|
|
3
|
-
import { l } from "../../../chunks/lodash.
|
|
4
|
-
import {
|
|
5
|
-
import { AoaTooltip as
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
2
|
+
import { IconButton as l } from "@mui/material";
|
|
3
|
+
import { l as t } from "../../../chunks/lodash.CA_K01A9.js";
|
|
4
|
+
import { forwardRef as i } from "react";
|
|
5
|
+
import { AoaTooltip as d } from "../tooltip/Tooltip.js";
|
|
6
|
+
const f = i(function(o, e) {
|
|
7
|
+
const a = /* @__PURE__ */ r(
|
|
8
|
+
l,
|
|
9
9
|
{
|
|
10
10
|
"aria-label": o.label,
|
|
11
11
|
"data-qa": o["data-qa"],
|
|
@@ -14,8 +14,9 @@ const m = t((o) => {
|
|
|
14
14
|
disableTouchRipple: !0,
|
|
15
15
|
disabled: o.disabled,
|
|
16
16
|
onClick: o.onClick,
|
|
17
|
+
ref: e,
|
|
17
18
|
role: "button",
|
|
18
|
-
sx:
|
|
19
|
+
sx: t.merge(
|
|
19
20
|
{
|
|
20
21
|
color: "var(--color-primary)",
|
|
21
22
|
border: "1px solid var(--color-primary)",
|
|
@@ -44,9 +45,9 @@ const m = t((o) => {
|
|
|
44
45
|
children: o.icon
|
|
45
46
|
}
|
|
46
47
|
);
|
|
47
|
-
return /* @__PURE__ */ r(
|
|
48
|
+
return /* @__PURE__ */ r(d, { title: o.label, children: o.disabled ? /* @__PURE__ */ r("span", { "aria-label": o.label, "data-testid": "disabled-span-wrapper", role: "tooltip", children: a }) : a });
|
|
48
49
|
});
|
|
49
50
|
export {
|
|
50
|
-
|
|
51
|
+
f as AoaIconButton
|
|
51
52
|
};
|
|
52
53
|
//# sourceMappingURL=IconButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.js","sources":["../../../../src/components/atoms/icon-button/IconButton.tsx"],"sourcesContent":["import { IconButton as MUIIconButton, type SxProps } from '@mui/material';\nimport { merge } from 'lodash';\nimport {
|
|
1
|
+
{"version":3,"file":"IconButton.js","sources":["../../../../src/components/atoms/icon-button/IconButton.tsx"],"sourcesContent":["import { IconButton as MUIIconButton, type SxProps } from '@mui/material';\nimport { merge } from 'lodash';\nimport { forwardRef } from 'react';\nimport { AoaTooltip } from '../tooltip/Tooltip';\n\nexport interface AoaIconButtonProps {\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Whether this button should be disabled\n */\n readonly disabled?: boolean;\n /**\n * The icon to be displayed as a button\n */\n readonly icon: JSX.Element;\n /**\n * Whether this button is being used inline\n */\n readonly inline?: boolean;\n /**\n * The label that is shown on hover\n */\n readonly label: string;\n /**\n * The action that should be triggered when clicking the button\n */\n onClick(this: void, ..._args: any[]): void;\n /**\n * Material UI's property to apply styling\n */\n readonly sx?: SxProps;\n}\n\n/**\n * Constructs an icon button using pre-defined Rijks styling\n *\n * @param props - Props to pass to the icon button\n * @example\n * ```jsx\n * <AoaIconButton onClick={() => console.log()} label='Order a burger' icon={<Fastfood />} />\n * ```\n */\nexport const AoaIconButton = forwardRef<HTMLButtonElement, AoaIconButtonProps>(function IconButton(props, ref) {\n const Button = (\n <MUIIconButton\n aria-label={props.label}\n data-qa={props['data-qa']}\n disableFocusRipple\n disableRipple\n disableTouchRipple\n disabled={props.disabled}\n onClick={props.onClick}\n ref={ref}\n role='button'\n sx={merge(\n {\n color: 'var(--color-primary)',\n border: '1px solid var(--color-primary)',\n borderRadius: 0,\n ':hover, :active, :focus': {\n color: 'var(--color-primary-hover)',\n borderColor: 'var(--color-primary-hover)'\n },\n ':disabled': {\n backgroundColor: 'transparent',\n borderColor: 'var(--color-text-disabled)',\n color: 'var(--color-text-disabled)'\n },\n ':focus': {\n outline: '2px dashed var(--color-text)',\n outlineOffset: 3,\n boxShadow: 'none'\n },\n ...(props.inline && {\n border: 'none',\n padding: 0\n })\n },\n props.sx\n )}\n >\n {props.icon}\n </MUIIconButton>\n );\n\n return (\n <AoaTooltip title={props.label}>\n {props.disabled ? (\n <span aria-label={props.label} data-testid='disabled-span-wrapper' role='tooltip'>\n {Button}\n </span>\n ) : (\n Button\n )}\n </AoaTooltip>\n );\n});\n"],"names":["AoaIconButton","forwardRef","props","ref","Button","jsx","MUIIconButton","merge","AoaTooltip"],"mappings":";;;;;AA6CO,MAAMA,IAAgBC,EAAkD,SAAoBC,GAAOC,GAAK;AAC7G,QAAMC,IACJ,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,cAAYJ,EAAM;AAAA,MAClB,WAASA,EAAM,SAAS;AAAA,MACxB,oBAAkB;AAAA,MAClB,eAAa;AAAA,MACb,oBAAkB;AAAA,MAClB,UAAUA,EAAM;AAAA,MAChB,SAASA,EAAM;AAAA,MACf,KAAAC;AAAA,MACA,MAAK;AAAA,MACL,IAAII,EAAAA;AAAAA,QACF;AAAA,UACE,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,2BAA2B;AAAA,YACzB,OAAO;AAAA,YACP,aAAa;AAAA,UAAA;AAAA,UAEf,aAAa;AAAA,YACX,iBAAiB;AAAA,YACjB,aAAa;AAAA,YACb,OAAO;AAAA,UAAA;AAAA,UAET,UAAU;AAAA,YACR,SAAS;AAAA,YACT,eAAe;AAAA,YACf,WAAW;AAAA,UAAA;AAAA,UAEb,GAAIL,EAAM,UAAU;AAAA,YAClB,QAAQ;AAAA,YACR,SAAS;AAAA,UAAA;AAAA,QACX;AAAA,QAEFA,EAAM;AAAA,MAAA;AAAA,MAGP,UAAAA,EAAM;AAAA,IAAA;AAAA,EAAA;AAIX,2BACGM,GAAA,EAAW,OAAON,EAAM,OACtB,UAAAA,EAAM,WACL,gBAAAG,EAAC,QAAA,EAAK,cAAYH,EAAM,OAAO,eAAY,yBAAwB,MAAK,WACrE,UAAAE,GACH,IAEAA,EAAA,CAEJ;AAEJ,CAAC;"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { TextFieldProps } from '@mui/material';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
+
declare module '@mui/material' {
|
|
4
|
+
interface BaseTextFieldProps {
|
|
5
|
+
'data-qa'?: string;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
3
8
|
export interface AoaInputProps extends Omit<TextFieldProps, 'variant'> {
|
|
4
9
|
/**
|
|
5
10
|
* Data-qa tag for E2E test purposes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG7C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,+DAAiC,aAAa,KAAG,SAAS,CAmE7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CACF;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,+DAAiC,aAAa,KAAG,SAAS,CAmE7E,CAAC"}
|
|
@@ -1,69 +1,66 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { TextField as
|
|
3
|
-
import { l as
|
|
4
|
-
import { memo as
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { TextField as i, inputLabelClasses as s, formHelperTextClasses as o, inputBaseClasses as e } from "@mui/material";
|
|
3
|
+
import { l as n } from "../../../chunks/lodash.CA_K01A9.js";
|
|
4
|
+
import { memo as d } from "react";
|
|
5
5
|
import { FontNormalSxProps as t } from "../../../_constants.js";
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
slotProps
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
[`&.${e.multiline}`]: {
|
|
23
|
-
padding: 0
|
|
24
|
-
},
|
|
25
|
-
[`:not(.${o.error})::after`]: {
|
|
26
|
-
borderColor: "var(--color-rijks-skyblue)"
|
|
27
|
-
},
|
|
28
|
-
[`.${e.input}`]: {
|
|
29
|
-
padding: "17px 12px 16px",
|
|
30
|
-
":disabled": {
|
|
31
|
-
backgroundColor: "var(--color-disabled)",
|
|
32
|
-
borderColor: "var(--color-disabled)"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
6
|
+
const f = d(({ optional: l, ...r }) => /* @__PURE__ */ a(
|
|
7
|
+
i,
|
|
8
|
+
{
|
|
9
|
+
...r,
|
|
10
|
+
required: !l,
|
|
11
|
+
slotProps: {
|
|
12
|
+
inputLabel: { shrink: !1, ...r.slotProps?.inputLabel },
|
|
13
|
+
...r.slotProps
|
|
14
|
+
},
|
|
15
|
+
sx: n.merge(
|
|
16
|
+
{
|
|
17
|
+
[`.${e.root}`]: {
|
|
18
|
+
...t,
|
|
19
|
+
marginTop: "35px",
|
|
20
|
+
[`&.${e.multiline}`]: {
|
|
21
|
+
padding: 0
|
|
35
22
|
},
|
|
36
|
-
[
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
[`:not(.${o.error})::after`]: {
|
|
24
|
+
borderColor: "var(--color-rijks-skyblue)"
|
|
25
|
+
},
|
|
26
|
+
[`.${e.input}`]: {
|
|
27
|
+
padding: "17px 12px 16px",
|
|
40
28
|
":disabled": {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
[`:focus:not(.${o.error})`]: {
|
|
44
|
-
color: "var(--color-rijks-skyblue)"
|
|
45
|
-
},
|
|
46
|
-
[`:not(.${o.required})::after`]: {
|
|
47
|
-
content: '"(optioneel)"',
|
|
48
|
-
marginLeft: "5px",
|
|
49
|
-
fontSize: "calc(var(--font-size-text) * 0.75)"
|
|
50
|
-
},
|
|
51
|
-
[`&.${o.error}`]: {
|
|
52
|
-
...t,
|
|
53
|
-
fontWeight: "bold"
|
|
54
|
-
},
|
|
55
|
-
[`&.${o.disabled}`]: {
|
|
56
|
-
color: "var(--color-text-disabled)"
|
|
29
|
+
backgroundColor: "var(--color-disabled)",
|
|
30
|
+
borderColor: "var(--color-disabled)"
|
|
57
31
|
}
|
|
58
32
|
}
|
|
59
33
|
},
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
34
|
+
[`.${s.root}`]: {
|
|
35
|
+
...t,
|
|
36
|
+
marginLeft: "-14px",
|
|
37
|
+
marginTop: "-10px",
|
|
38
|
+
":disabled": {
|
|
39
|
+
color: "var(--color-text-disabled)"
|
|
40
|
+
},
|
|
41
|
+
[`:focus:not(.${o.error})`]: {
|
|
42
|
+
color: "var(--color-rijks-skyblue)"
|
|
43
|
+
},
|
|
44
|
+
[`:not(.${o.required})::after`]: {
|
|
45
|
+
content: '"(optioneel)"',
|
|
46
|
+
marginLeft: "5px",
|
|
47
|
+
fontSize: "calc(var(--font-size-text) * 0.75)"
|
|
48
|
+
},
|
|
49
|
+
[`&.${o.error}`]: {
|
|
50
|
+
...t,
|
|
51
|
+
fontWeight: "bold"
|
|
52
|
+
},
|
|
53
|
+
[`&.${o.disabled}`]: {
|
|
54
|
+
color: "var(--color-text-disabled)"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
r.sx
|
|
59
|
+
),
|
|
60
|
+
variant: "outlined"
|
|
61
|
+
}
|
|
62
|
+
));
|
|
66
63
|
export {
|
|
67
|
-
|
|
64
|
+
f as AoaInput
|
|
68
65
|
};
|
|
69
66
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/atoms/input/Input.tsx"],"sourcesContent":["import {\n TextField,\n type TextFieldProps,\n inputBaseClasses,\n inputLabelClasses,\n formHelperTextClasses\n} from '@mui/material';\nimport { merge } from 'lodash';\nimport { memo, type ReactNode } from 'react';\nimport { FontNormalSxProps } from '../../../_constants';\n\nexport interface AoaInputProps extends Omit<TextFieldProps, 'variant'> {\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Whether this input field is optional\n */\n readonly optional?: boolean;\n}\n\n/**\n * Constructs an input field using pre-defined Rijks styling\n *\n * @param props - Props to pass to the input field\n * @example\n * ```jsx\n * <AoaInput label=\"User name\" value={value} onChange={() => handleOnChange} />\n * ```\n */\nexport const AoaInput = memo(({ optional, ...props }: AoaInputProps): ReactNode => {\n return (\n <TextField\n {...props}\n required={!optional}\n slotProps={{\n inputLabel: { shrink: false, ...props.slotProps?.inputLabel },\n ...props.slotProps\n }}\n sx={merge(\n {\n [`.${inputBaseClasses.root}`]: {\n ...FontNormalSxProps,\n marginTop: '35px',\n\n [`&.${inputBaseClasses.multiline}`]: {\n padding: 0\n },\n\n [`:not(.${formHelperTextClasses.error})::after`]: {\n borderColor: 'var(--color-rijks-skyblue)'\n },\n\n [`.${inputBaseClasses.input}`]: {\n padding: '17px 12px 16px',\n\n ':disabled': {\n backgroundColor: 'var(--color-disabled)',\n borderColor: 'var(--color-disabled)'\n }\n }\n },\n\n [`.${inputLabelClasses.root}`]: {\n ...FontNormalSxProps,\n marginLeft: '-14px',\n marginTop: '-10px',\n\n ':disabled': {\n color: 'var(--color-text-disabled)'\n },\n\n [`:focus:not(.${formHelperTextClasses.error})`]: {\n color: 'var(--color-rijks-skyblue)'\n },\n\n [`:not(.${formHelperTextClasses.required})::after`]: {\n content: '\"(optioneel)\"',\n marginLeft: '5px',\n fontSize: 'calc(var(--font-size-text) * 0.75)'\n },\n\n [`&.${formHelperTextClasses.error}`]: {\n ...FontNormalSxProps,\n fontWeight: 'bold'\n },\n\n [`&.${formHelperTextClasses.disabled}`]: {\n color: 'var(--color-text-disabled)'\n }\n }\n },\n props.sx\n )}\n variant='outlined'\n />\n );\n});\n"],"names":["AoaInput","memo","optional","props","jsx","TextField","
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/atoms/input/Input.tsx"],"sourcesContent":["import {\n TextField,\n type TextFieldProps,\n inputBaseClasses,\n inputLabelClasses,\n formHelperTextClasses\n} from '@mui/material';\nimport { merge } from 'lodash';\nimport { memo, type ReactNode } from 'react';\nimport { FontNormalSxProps } from '../../../_constants';\n\ndeclare module '@mui/material' {\n export interface BaseTextFieldProps {\n 'data-qa'?: string;\n }\n}\n\nexport interface AoaInputProps extends Omit<TextFieldProps, 'variant'> {\n /**\n * Data-qa tag for E2E test purposes\n */\n readonly 'data-qa'?: string;\n /**\n * Whether this input field is optional\n */\n readonly optional?: boolean;\n}\n\n/**\n * Constructs an input field using pre-defined Rijks styling\n *\n * @param props - Props to pass to the input field\n * @example\n * ```jsx\n * <AoaInput label=\"User name\" value={value} onChange={() => handleOnChange} />\n * ```\n */\nexport const AoaInput = memo(({ optional, ...props }: AoaInputProps): ReactNode => {\n return (\n <TextField\n {...props}\n required={!optional}\n slotProps={{\n inputLabel: { shrink: false, ...props.slotProps?.inputLabel },\n ...props.slotProps\n }}\n sx={merge(\n {\n [`.${inputBaseClasses.root}`]: {\n ...FontNormalSxProps,\n marginTop: '35px',\n\n [`&.${inputBaseClasses.multiline}`]: {\n padding: 0\n },\n\n [`:not(.${formHelperTextClasses.error})::after`]: {\n borderColor: 'var(--color-rijks-skyblue)'\n },\n\n [`.${inputBaseClasses.input}`]: {\n padding: '17px 12px 16px',\n\n ':disabled': {\n backgroundColor: 'var(--color-disabled)',\n borderColor: 'var(--color-disabled)'\n }\n }\n },\n\n [`.${inputLabelClasses.root}`]: {\n ...FontNormalSxProps,\n marginLeft: '-14px',\n marginTop: '-10px',\n\n ':disabled': {\n color: 'var(--color-text-disabled)'\n },\n\n [`:focus:not(.${formHelperTextClasses.error})`]: {\n color: 'var(--color-rijks-skyblue)'\n },\n\n [`:not(.${formHelperTextClasses.required})::after`]: {\n content: '\"(optioneel)\"',\n marginLeft: '5px',\n fontSize: 'calc(var(--font-size-text) * 0.75)'\n },\n\n [`&.${formHelperTextClasses.error}`]: {\n ...FontNormalSxProps,\n fontWeight: 'bold'\n },\n\n [`&.${formHelperTextClasses.disabled}`]: {\n color: 'var(--color-text-disabled)'\n }\n }\n },\n props.sx\n )}\n variant='outlined'\n />\n );\n});\n"],"names":["AoaInput","memo","optional","props","jsx","TextField","merge","inputBaseClasses","FontNormalSxProps","formHelperTextClasses","inputLabelClasses"],"mappings":";;;;;AAqCO,MAAMA,IAAWC,EAAK,CAAC,EAAE,UAAAC,GAAU,GAAGC,QAEzC,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACE,GAAGF;AAAA,IACJ,UAAU,CAACD;AAAA,IACX,WAAW;AAAA,MACT,YAAY,EAAE,QAAQ,IAAO,GAAGC,EAAM,WAAW,WAAA;AAAA,MACjD,GAAGA,EAAM;AAAA,IAAA;AAAA,IAEX,IAAIG,EAAAA;AAAAA,MACF;AAAA,QACE,CAAC,IAAIC,EAAiB,IAAI,EAAE,GAAG;AAAA,UAC7B,GAAGC;AAAA,UACH,WAAW;AAAA,UAEX,CAAC,KAAKD,EAAiB,SAAS,EAAE,GAAG;AAAA,YACnC,SAAS;AAAA,UAAA;AAAA,UAGX,CAAC,SAASE,EAAsB,KAAK,UAAU,GAAG;AAAA,YAChD,aAAa;AAAA,UAAA;AAAA,UAGf,CAAC,IAAIF,EAAiB,KAAK,EAAE,GAAG;AAAA,YAC9B,SAAS;AAAA,YAET,aAAa;AAAA,cACX,iBAAiB;AAAA,cACjB,aAAa;AAAA,YAAA;AAAA,UACf;AAAA,QACF;AAAA,QAGF,CAAC,IAAIG,EAAkB,IAAI,EAAE,GAAG;AAAA,UAC9B,GAAGF;AAAA,UACH,YAAY;AAAA,UACZ,WAAW;AAAA,UAEX,aAAa;AAAA,YACX,OAAO;AAAA,UAAA;AAAA,UAGT,CAAC,eAAeC,EAAsB,KAAK,GAAG,GAAG;AAAA,YAC/C,OAAO;AAAA,UAAA;AAAA,UAGT,CAAC,SAASA,EAAsB,QAAQ,UAAU,GAAG;AAAA,YACnD,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,UAAA;AAAA,UAGZ,CAAC,KAAKA,EAAsB,KAAK,EAAE,GAAG;AAAA,YACpC,GAAGD;AAAA,YACH,YAAY;AAAA,UAAA;AAAA,UAGd,CAAC,KAAKC,EAAsB,QAAQ,EAAE,GAAG;AAAA,YACvC,OAAO;AAAA,UAAA;AAAA,QACT;AAAA,MACF;AAAA,MAEFN,EAAM;AAAA,IAAA;AAAA,IAER,SAAQ;AAAA,EAAA;AAAA,CAGb;"}
|