@m4l/components 9.61.0-beta-hotfix-semantic-width-dynamicform.0 → 9.61.0-beta-feature-778-m4l-components-alert.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 (61) hide show
  1. package/@types/types.d.ts +8 -0
  2. package/components/Alert/Alert.d.ts +6 -0
  3. package/components/Alert/Alert.d.ts.map +1 -0
  4. package/components/Alert/Alert.js +138 -0
  5. package/components/Alert/Alert.styles.d.ts +3 -0
  6. package/components/Alert/Alert.styles.d.ts.map +1 -0
  7. package/components/Alert/Alert.styles.js +143 -0
  8. package/components/Alert/constants.d.ts +6 -0
  9. package/components/Alert/constants.d.ts.map +1 -0
  10. package/components/Alert/constants.js +14 -0
  11. package/components/Alert/index.d.ts +3 -0
  12. package/components/Alert/index.d.ts.map +1 -0
  13. package/components/Alert/slots/AlertEnum.d.ts +10 -0
  14. package/components/Alert/slots/AlertEnum.d.ts.map +1 -0
  15. package/components/Alert/slots/AlertEnum.js +4 -0
  16. package/components/Alert/slots/AlertSlots.d.ts +22 -0
  17. package/components/Alert/slots/AlertSlots.d.ts.map +1 -0
  18. package/components/Alert/slots/AlertSlots.js +38 -0
  19. package/components/Alert/slots/index.d.ts +3 -0
  20. package/components/Alert/slots/index.d.ts.map +1 -0
  21. package/components/Alert/types.d.ts +40 -0
  22. package/components/Alert/types.d.ts.map +1 -0
  23. package/components/CheckableList/slots/styled.d.ts +3 -3
  24. package/components/DynamicForm/DynamicForm.styles.d.ts.map +1 -1
  25. package/components/DynamicForm/DynamicForm.styles.js +72 -165
  26. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/numberInputStrategy/numberInputStrategy.d.ts.map +1 -1
  27. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/numberInputStrategy/numberInputStrategy.js +11 -21
  28. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/textFieldStrategy/textFieldStrategy.js +38 -38
  29. package/components/DynamicForm/helpers/resolveFieldComponent/types.d.ts +1 -1
  30. package/components/DynamicForm/helpers/resolveFieldContractAliases/resolveFieldContractAliases.d.ts +5 -1
  31. package/components/DynamicForm/helpers/resolveFieldContractAliases/resolveFieldContractAliases.d.ts.map +1 -1
  32. package/components/DynamicForm/subcomponents/DynamicFormContent/DynamicFormContent.d.ts.map +1 -1
  33. package/components/DynamicForm/subcomponents/DynamicFormContent/DynamicFormContent.js +120 -132
  34. package/components/DynamicForm/types.d.ts +14 -13
  35. package/components/DynamicForm/types.d.ts.map +1 -1
  36. package/components/Label/Label.d.ts.map +1 -1
  37. package/components/Label/Label.js +26 -40
  38. package/components/Label/Label.styles.d.ts.map +1 -1
  39. package/components/Label/Label.styles.js +53 -59
  40. package/components/Label/types.d.ts +0 -2
  41. package/components/Label/types.d.ts.map +1 -1
  42. package/components/PropertyValue/PropertyValue.d.ts.map +1 -1
  43. package/components/PropertyValue/PropertyValue.js +57 -82
  44. package/components/PropertyValue/PropertyValue.styles.d.ts.map +1 -1
  45. package/components/PropertyValue/PropertyValue.styles.js +100 -100
  46. package/components/PropertyValue/constants.d.ts +0 -1
  47. package/components/PropertyValue/constants.d.ts.map +1 -1
  48. package/components/PropertyValue/constants.js +4 -10
  49. package/components/PropertyValue/types.d.ts +1 -5
  50. package/components/PropertyValue/types.d.ts.map +1 -1
  51. package/components/hook-form/RHFCheckbox/slots/RHFCheckBoxSlots.d.ts +1 -1
  52. package/components/index.d.ts +1 -0
  53. package/components/index.d.ts.map +1 -1
  54. package/index.js +820 -818
  55. package/package.json +6 -6
  56. package/components/DynamicForm/helpers/resolveAdaptiveFieldLayout/resolveAdaptiveFieldLayout.d.ts +0 -49
  57. package/components/DynamicForm/helpers/resolveAdaptiveFieldLayout/resolveAdaptiveFieldLayout.d.ts.map +0 -1
  58. package/components/DynamicForm/helpers/resolveAdaptiveFieldLayout/resolveAdaptiveFieldLayout.js +0 -174
  59. package/components/PropertyValue/semanticWidth.d.ts +0 -7
  60. package/components/PropertyValue/semanticWidth.d.ts.map +0 -1
  61. package/components/PropertyValue/semanticWidth.js +0 -31
package/@types/types.d.ts CHANGED
@@ -112,6 +112,7 @@ import {
112
112
  AutocompleteOwnerState,
113
113
  AutocompleteSlotsType,
114
114
  } from '../components/extended/mui/Autocomplete/types';
115
+ import type { AlertOwnerState, AlertSlotsType } from '../components/Alert/types';
115
116
  import { ChipOwnerState, ChipSlotsType } from '../components/Chip/types';
116
117
  import {
117
118
  CircularProgressOwnerState,
@@ -430,6 +431,7 @@ declare module '@mui/material/styles' {
430
431
  M4LImage: ImageSlotsType;
431
432
  M4LSideBar: SideBarSlotsType;
432
433
  M4LAutocomplete: AutocompleteSlotsType;
434
+ M4LAlert: AlertSlotsType;
433
435
  M4LChip: ChipSlotsType;
434
436
  M4LCircularProgress: CircularProgressSlotsType;
435
437
  M4LPaperForm: PaperFormSlotsType;
@@ -543,6 +545,7 @@ declare module '@mui/material/styles' {
543
545
  M4LPopover: Partial<PopoverOwnerState>;
544
546
  M4LImage: Partial<ImageOwnerState>;
545
547
  M4LAutocomplete: Partial<AutocompleteOwnerState>;
548
+ M4LAlert: Partial<AlertOwnerState>;
546
549
  M4LChip: Partial<ChipOwnerState>;
547
550
  M4LCircularProgress: Partial<CircularProgressOwnerState>;
548
551
  M4LSideBar: Partial<SideBarOwnerState>;
@@ -748,6 +751,11 @@ declare module '@mui/material/styles' {
748
751
  styleOverrides?: ComponentsOverrides<Theme>['M4LIconButton'];
749
752
  variants?: ComponentsVariants['M4LIconButton'];
750
753
  };
754
+ M4LAlert?: {
755
+ defaultProps?: ComponentsPropsList['M4LAlert'];
756
+ styleOverrides?: ComponentsOverrides<Theme>['M4LAlert'];
757
+ variants?: ComponentsVariants['M4LAlert'];
758
+ };
751
759
  M4LBadge?: {
752
760
  defaultProps?: ComponentsPropsList['M4LBadge'];
753
761
  styleOverrides?: ComponentsOverrides<Theme>['M4LBadge'];
@@ -0,0 +1,6 @@
1
+ import { AlertProps } from './types';
2
+ /**
3
+ * Alert renders an inline feedback message with semantic color, optional icon, close action, and description slot.
4
+ */
5
+ export declare const Alert: import('react').ForwardRefExoticComponent<AlertProps & import('react').RefAttributes<HTMLDivElement>>;
6
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/components/Alert/Alert.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAmB,UAAU,EAAc,MAAM,SAAS,CAAC;AA8CvE;;GAEG;AACH,eAAO,MAAM,KAAK,uGA+FhB,CAAC"}
@@ -0,0 +1,138 @@
1
+ import { jsx as e, jsxs as A } from "@emotion/react/jsx-runtime";
2
+ import { Typography as w } from "@m4l/base";
3
+ import { useModuleSkeleton as x } from "@m4l/core";
4
+ import { ActionsCloseSmOutlined as T, NotificationWarningFill as v, NotificationInformationCircleFill as p, NotificationCheckCircleFill as D } from "@m4l/icons";
5
+ import E from "clsx";
6
+ import { forwardRef as F, useMemo as R } from "react";
7
+ import { useComponentSize as j } from "../../hooks/useComponentSize/index.js";
8
+ import { getPropDataTestId as l } from "../../test/getNameDataTestId.js";
9
+ import { ALERT_KEY_COMPONENT as n, ALERT_CLASSES as M } from "./constants.js";
10
+ import { AlertSkeletonStyled as O, AlertRootStyled as _, AlertHeaderStyled as B, AlertStatusIconStyled as P, AlertLabelStyled as W, AlertCloseButtonStyled as H, AlertDescriptionStyled as K } from "./slots/AlertSlots.js";
11
+ import { AlertSlots as i } from "./slots/AlertEnum.js";
12
+ function Y(t) {
13
+ return {
14
+ default: /* @__PURE__ */ e(p, {}),
15
+ info: /* @__PURE__ */ e(p, {}),
16
+ success: /* @__PURE__ */ e(D, {}),
17
+ error: /* @__PURE__ */ e(p, {}),
18
+ warning: /* @__PURE__ */ e(v, {})
19
+ }[t];
20
+ }
21
+ function $(t) {
22
+ return {
23
+ default: "Close default alert",
24
+ info: "Close info alert",
25
+ success: "Close success alert",
26
+ error: "Close error alert",
27
+ warning: "Close warning alert"
28
+ }[t];
29
+ }
30
+ function q(t, s) {
31
+ return typeof t == "string" ? /* @__PURE__ */ e(
32
+ w,
33
+ {
34
+ component: "p",
35
+ variant: "body",
36
+ size: s,
37
+ fontFamily: "Inter",
38
+ children: t
39
+ }
40
+ ) : t;
41
+ }
42
+ const G = F(function(s, S) {
43
+ const {
44
+ state: a = "default",
45
+ label: C = "text",
46
+ description: c,
47
+ showIcon: m = !0,
48
+ icon: y,
49
+ onClose: h,
50
+ size: I = "medium",
51
+ skeletonWidth: b = "100%",
52
+ className: g,
53
+ dataTestId: o,
54
+ ...L
55
+ } = s, z = x(), { currentSize: u } = j(I), d = u === "small" || u === "medium" ? u : "medium", f = c != null && c !== !1, r = R(() => ({
56
+ state: a,
57
+ showIcon: m,
58
+ hasDescription: f,
59
+ size: d
60
+ }), [d, f, m, a]), N = y ?? Y(a), k = $(a);
61
+ return z ? /* @__PURE__ */ e(
62
+ O,
63
+ {
64
+ width: b,
65
+ variant: "rectangular",
66
+ ownerState: r,
67
+ ...l(n, i.skeleton, o)
68
+ }
69
+ ) : /* @__PURE__ */ A(
70
+ _,
71
+ {
72
+ ref: S,
73
+ role: "alert",
74
+ className: E(M.root, g),
75
+ ownerState: r,
76
+ ...l(n, i.root, o),
77
+ ...L,
78
+ children: [
79
+ /* @__PURE__ */ A(
80
+ B,
81
+ {
82
+ ownerState: r,
83
+ ...l(n, i.header, o),
84
+ children: [
85
+ m ? /* @__PURE__ */ e(
86
+ P,
87
+ {
88
+ src: N,
89
+ size: "small",
90
+ color: "text.primary",
91
+ ariaLabel: `${a} alert`,
92
+ ownerState: r,
93
+ ...l(n, i.statusIcon, o)
94
+ }
95
+ ) : null,
96
+ /* @__PURE__ */ e(
97
+ W,
98
+ {
99
+ component: "span",
100
+ variant: "bodyStandard",
101
+ size: d,
102
+ ownerState: r,
103
+ ...l(n, i.label, o),
104
+ children: C
105
+ }
106
+ ),
107
+ /* @__PURE__ */ e(
108
+ H,
109
+ {
110
+ "aria-label": k,
111
+ src: /* @__PURE__ */ e(T, {}),
112
+ size: "small",
113
+ variant: "text",
114
+ color: "default",
115
+ onClick: h,
116
+ ownerState: r,
117
+ dataTestId: l(n, i.closeButton, o)["data-testid"]
118
+ }
119
+ )
120
+ ]
121
+ }
122
+ ),
123
+ f ? /* @__PURE__ */ e(
124
+ K,
125
+ {
126
+ ownerState: r,
127
+ ...l(n, i.description, o),
128
+ children: q(c, d)
129
+ }
130
+ ) : null
131
+ ]
132
+ }
133
+ );
134
+ });
135
+ G.displayName = "Alert";
136
+ export {
137
+ G as Alert
138
+ };
@@ -0,0 +1,3 @@
1
+ import { AlertStyles } from './types';
2
+ export declare const alertStyles: AlertStyles;
3
+ //# sourceMappingURL=Alert.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.styles.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/components/Alert/Alert.styles.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,SAAS,CAAC;AAqB5D,eAAO,MAAM,WAAW,EAAE,WA8HzB,CAAC"}
@@ -0,0 +1,143 @@
1
+ import { getIconPaintStyles as e } from "@m4l/base";
2
+ import { getSizeStyles as t } from "../../utils/getSizeStyles/getSizeStyles.js";
3
+ import { SKELETON_CLASS_NAME_SPECIFY as n } from "../extended/mui/Skeleton/constants.js";
4
+ import { ALERT_STATE_CHIP_COLOR as p } from "./constants.js";
5
+ function s(a, i) {
6
+ const r = i?.state ?? "default", o = p[r];
7
+ return a.vars.palette.chips[o].contained;
8
+ }
9
+ function d(a, i) {
10
+ return {
11
+ ...e(a),
12
+ "& .MuiSvgIcon-root path:nth-of-type(2)": {
13
+ fill: `${i} !important`,
14
+ stroke: "none"
15
+ }
16
+ };
17
+ }
18
+ const u = {
19
+ /** Root alert surface styles. */
20
+ root: ({ theme: a, ownerState: i }) => {
21
+ const r = s(a, i);
22
+ return {
23
+ display: "flex",
24
+ flexDirection: "column",
25
+ width: "100%",
26
+ minWidth: 0,
27
+ boxSizing: "border-box",
28
+ padding: a.vars.size.baseSpacings.sp1,
29
+ gap: i?.hasDescription ? a.vars.size.baseSpacings.sp1 : 0,
30
+ borderRadius: a.vars.size.borderRadius.r2,
31
+ backgroundColor: r.backgroundColor
32
+ };
33
+ },
34
+ /** Header row styles for the alert label and actions. */
35
+ header: ({ theme: a, ownerState: i }) => ({
36
+ display: "flex",
37
+ alignItems: "center",
38
+ flexWrap: "nowrap",
39
+ width: "100%",
40
+ minWidth: 0,
41
+ boxSizing: "border-box",
42
+ overflow: "hidden",
43
+ paddingLeft: a.vars.size.baseSpacings["sp0-5"],
44
+ paddingRight: a.vars.size.baseSpacings["sp0-5"],
45
+ gap: a.vars.size.baseSpacings["sp0-5"],
46
+ ...t(
47
+ a,
48
+ i?.size ?? "medium",
49
+ "base",
50
+ (r) => ({
51
+ minHeight: r,
52
+ height: "auto"
53
+ })
54
+ )
55
+ }),
56
+ /** Status icon styles for the current alert state. */
57
+ statusIcon: ({ theme: a, ownerState: i }) => {
58
+ const r = s(a, i);
59
+ return {
60
+ flex: "0 0 auto",
61
+ borderRadius: a.vars.size.borderRadius.r1,
62
+ ...d(r.color, a.vars.palette.background.default)
63
+ };
64
+ },
65
+ /** Alert label typography styles. */
66
+ label: ({ theme: a, ownerState: i }) => {
67
+ const r = s(a, i);
68
+ return {
69
+ "&.MuiTypography-root": {
70
+ flex: "1 1 auto",
71
+ minWidth: 0,
72
+ paddingTop: "1px",
73
+ paddingBottom: "1px",
74
+ paddingLeft: a.vars.size.baseSpacings.sp1,
75
+ paddingRight: a.vars.size.baseSpacings.sp1,
76
+ color: r.color,
77
+ fontSize: "11px",
78
+ fontWeight: a.typography.fontWeightMedium,
79
+ lineHeight: a.vars.size.baseSpacings.sp4,
80
+ overflow: "hidden",
81
+ textOverflow: "ellipsis",
82
+ whiteSpace: "nowrap",
83
+ wordBreak: "normal"
84
+ }
85
+ };
86
+ },
87
+ /** Close action button styles. */
88
+ closeButton: ({ theme: a }) => ({
89
+ "&&&": {
90
+ flex: "0 0 auto",
91
+ borderRadius: a.vars.size.borderRadius["r1-5"],
92
+ width: a.vars.size.baseSpacings.sp4,
93
+ height: a.vars.size.baseSpacings.sp4,
94
+ minWidth: a.vars.size.baseSpacings.sp4,
95
+ padding: 0,
96
+ marginLeft: "auto",
97
+ ...e(a.vars.palette.text.secondary),
98
+ "&:hover, &:focus-visible, &:active": {
99
+ backgroundColor: "transparent",
100
+ ...e(a.vars.palette.text.secondary)
101
+ }
102
+ }
103
+ }),
104
+ /** Neutral description slot styles. */
105
+ description: ({ theme: a }) => ({
106
+ width: "100%",
107
+ minWidth: 0,
108
+ boxSizing: "border-box",
109
+ paddingLeft: a.vars.size.baseSpacings["sp0-5"],
110
+ paddingRight: a.vars.size.baseSpacings["sp0-5"],
111
+ maxHeight: a.vars.size.baseSpacings.sp12,
112
+ overflowX: "hidden",
113
+ overflowY: "auto",
114
+ overflowWrap: "anywhere",
115
+ whiteSpace: "normal",
116
+ wordBreak: "break-word",
117
+ "& .MuiTypography-root": {
118
+ margin: 0,
119
+ overflowWrap: "anywhere",
120
+ whiteSpace: "normal",
121
+ wordBreak: "break-word"
122
+ }
123
+ }),
124
+ /** Loading skeleton styles. */
125
+ skeleton: ({ theme: a }) => {
126
+ const i = a.vars.size.baseSpacings.sp4;
127
+ return {
128
+ width: "100%",
129
+ height: i,
130
+ minHeight: i,
131
+ maxHeight: i,
132
+ borderRadius: a.vars.size.borderRadius.r2,
133
+ [`&.${n}`]: {
134
+ height: i,
135
+ minHeight: i,
136
+ maxHeight: i
137
+ }
138
+ };
139
+ }
140
+ };
141
+ export {
142
+ u as alertStyles
143
+ };
@@ -0,0 +1,6 @@
1
+ import { ChipColorOptions } from '@m4l/styles';
2
+ import { AlertState } from './types';
3
+ export declare const ALERT_KEY_COMPONENT = "M4LAlert";
4
+ export declare const ALERT_CLASSES: Record<"root" | "skeleton" | "header" | "label" | "description" | "statusIcon" | "closeButton", string>;
5
+ export declare const ALERT_STATE_CHIP_COLOR: Record<AlertState, ChipColorOptions>;
6
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/components/Alert/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,eAAO,MAAM,aAAa,yGAAuD,CAAC;AAElF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAMvE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { getComponentClasses as r } from "../../utils/getComponentSlotRoot.js";
2
+ import { AlertSlots as o } from "./slots/AlertEnum.js";
3
+ const e = "M4LAlert", s = r(e, o), i = {
4
+ default: "default",
5
+ info: "info",
6
+ success: "persianGreen",
7
+ error: "error",
8
+ warning: "warning"
9
+ };
10
+ export {
11
+ s as ALERT_CLASSES,
12
+ e as ALERT_KEY_COMPONENT,
13
+ i as ALERT_STATE_CHIP_COLOR
14
+ };
@@ -0,0 +1,3 @@
1
+ export { Alert } from './Alert';
2
+ export type { AlertOwnerState, AlertProps, AlertSlotsType, AlertState, AlertStyles, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/components/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare enum AlertSlots {
2
+ root = "root",
3
+ header = "header",
4
+ statusIcon = "statusIcon",
5
+ label = "label",
6
+ closeButton = "closeButton",
7
+ description = "description",
8
+ skeleton = "skeleton"
9
+ }
10
+ //# sourceMappingURL=AlertEnum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertEnum.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/components/Alert/slots/AlertEnum.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,4 @@
1
+ var n = /* @__PURE__ */ ((e) => (e.root = "root", e.header = "header", e.statusIcon = "statusIcon", e.label = "label", e.closeButton = "closeButton", e.description = "description", e.skeleton = "skeleton", e))(n || {});
2
+ export {
3
+ n as AlertSlots
4
+ };
@@ -0,0 +1,22 @@
1
+ export declare const AlertRootStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
2
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
3
+ }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
4
+ export declare const AlertHeaderStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
5
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
6
+ }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
7
+ export declare const AlertStatusIconStyled: import('@emotion/styled').StyledComponent<Pick<import('@m4l/base').IconProps, "src" | "icon" | keyof import('@m4l/base').IconBaseProps> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
8
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
9
+ }, {}, {}>;
10
+ export declare const AlertLabelStyled: import('@emotion/styled').StyledComponent<Pick<Omit<import('@m4l/base').TypographyProps, "ref"> & import('react').RefAttributes<HTMLSpanElement>, "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxShadow" | "boxSizing" | "color" | "columnGap" | "content" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "translate" | "visibility" | "whiteSpace" | "width" | "zIndex" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "classes" | "children" | "className" | "sx" | "p" | "slot" | "style" | "title" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "component" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "size" | "variant" | "dataTestid" | "paragraph" | "disabled" | "skeletonWidth" | "ellipsis" | "align" | "gutterBottom" | "noWrap" | "variantMapping" | "skeletonRows" | "htmlFor" | keyof import('react').RefAttributes<HTMLSpanElement>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
11
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
12
+ }, {}, {}>;
13
+ export declare const AlertCloseButtonStyled: import('@emotion/styled').StyledComponent<Pick<Omit<import('../..').IconButtonProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>, "color" | "content" | "translate" | "action" | "classes" | "children" | "className" | "sx" | "form" | "slot" | "style" | "title" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "component" | "name" | "size" | "instaceDataTestId" | "type" | "variant" | "src" | "tooltip" | "value" | "icon" | "selected" | "dataTestId" | "placement" | "rotationAngle" | "instanceDataTestId" | "disabled" | "ariaLabel" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "badgeProps" | keyof import('react').RefAttributes<HTMLButtonElement>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
14
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
15
+ }, {}, {}>;
16
+ export declare const AlertDescriptionStyled: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
17
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
18
+ }, Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('react').ClassAttributes<HTMLDivElement> | keyof import('react').HTMLAttributes<HTMLDivElement>>, {}>;
19
+ export declare const AlertSkeletonStyled: import('@emotion/styled').StyledComponent<Pick<import('../../extended/mui/Skeleton/types').SkeletonProps, keyof import('../../extended/mui/Skeleton/types').SkeletonProps> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
20
+ ownerState?: (Partial<import('..').AlertOwnerState> & Record<string, unknown>) | undefined;
21
+ }, {}, {}>;
22
+ //# sourceMappingURL=AlertSlots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertSlots.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/components/Alert/slots/AlertSlots.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe;;6NAGP,CAAC;AAEtB,eAAO,MAAM,iBAAiB;;6NAGP,CAAC;AAExB,eAAO,MAAM,qBAAqB;;UAGP,CAAC;AAE5B,eAAO,MAAM,gBAAgB;;UAGP,CAAC;AAEvB,eAAO,MAAM,sBAAsB;;UAGP,CAAC;AAE7B,eAAO,MAAM,sBAAsB;;6NAGP,CAAC;AAE7B,eAAO,MAAM,mBAAmB;;UAGP,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Icon as r, Typography as n } from "@m4l/base";
2
+ import { styled as t } from "@mui/material/styles";
3
+ import { alertStyles as o } from "../Alert.styles.js";
4
+ import { ALERT_KEY_COMPONENT as e } from "../constants.js";
5
+ import { AlertSlots as l } from "./AlertEnum.js";
6
+ import { Skeleton as s } from "../../extended/mui/Skeleton/Skeleton.js";
7
+ import { IconButton as m } from "../../extended/mui/IconButton/IconButton.js";
8
+ const A = t("div", {
9
+ name: e,
10
+ slot: l.root
11
+ })(o?.root), f = t("div", {
12
+ name: e,
13
+ slot: l.header
14
+ })(o?.header), u = t(r, {
15
+ name: e,
16
+ slot: l.statusIcon
17
+ })(o?.statusIcon), I = t(n, {
18
+ name: e,
19
+ slot: l.label
20
+ })(o?.label), k = t(m, {
21
+ name: e,
22
+ slot: l.closeButton
23
+ })(o?.closeButton), B = t("div", {
24
+ name: e,
25
+ slot: l.description
26
+ })(o?.description), b = t(s, {
27
+ name: e,
28
+ slot: l.skeleton
29
+ })(o?.skeleton);
30
+ export {
31
+ k as AlertCloseButtonStyled,
32
+ B as AlertDescriptionStyled,
33
+ f as AlertHeaderStyled,
34
+ I as AlertLabelStyled,
35
+ A as AlertRootStyled,
36
+ b as AlertSkeletonStyled,
37
+ u as AlertStatusIconStyled
38
+ };
@@ -0,0 +1,3 @@
1
+ export * from './AlertEnum';
2
+ export * from './AlertSlots';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/components/src/components/Alert/slots/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { IconProps } from '@m4l/base';
2
+ import { Sizes } from '@m4l/styles';
3
+ import { HTMLAttributes, MouseEventHandler, ReactNode } from 'react';
4
+ import { Theme } from '@mui/material/styles';
5
+ import { M4LOverridesStyleRules } from '../../@types/augmentations';
6
+ import { AlertSlots } from './slots/AlertEnum';
7
+ import { ALERT_KEY_COMPONENT } from './constants';
8
+ export type AlertState = 'default' | 'info' | 'success' | 'error' | 'warning';
9
+ export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'color' | 'content'> {
10
+ /** Semantic state that controls the background and foreground colors. */
11
+ state?: AlertState;
12
+ /** Main label shown in the alert header. */
13
+ label?: ReactNode;
14
+ /** Optional description slot rendered below the header. */
15
+ description?: ReactNode;
16
+ /** Whether the state icon is rendered. */
17
+ showIcon?: boolean;
18
+ /** Optional state icon override. */
19
+ icon?: IconProps['src'];
20
+ /** Handler called when the close button is pressed. */
21
+ onClose?: MouseEventHandler<HTMLButtonElement>;
22
+ /** Alert density. Defaults to `medium`, matching the Figma master size. */
23
+ size?: Extract<Sizes, 'small' | 'medium'>;
24
+ /** Optional skeleton width while the module skeleton state is active. */
25
+ skeletonWidth?: string | number;
26
+ /** Optional suffix for generated data-testid attributes. */
27
+ dataTestId?: string;
28
+ }
29
+ export interface AlertOwnerState extends Required<Pick<AlertProps, 'showIcon'>> {
30
+ /** Resolved semantic state used by styles and default icons. */
31
+ state: AlertState;
32
+ /** Resolved size used by density tokens. */
33
+ size: Extract<Sizes, 'small' | 'medium'>;
34
+ /** Whether the description slot container is visible. */
35
+ hasDescription: boolean;
36
+ [key: string]: unknown;
37
+ }
38
+ export type AlertSlotsType = keyof typeof AlertSlots;
39
+ export type AlertStyles = M4LOverridesStyleRules<AlertSlotsType, typeof ALERT_KEY_COMPONENT, Theme>;
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/components/src/components/Alert/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACxG,yEAAyE;IACzE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,uDAAuD;IACvD,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC/C,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC1C,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAgB,SAAQ,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7E,gEAAgE;IAChE,KAAK,EAAE,UAAU,CAAC;IAClB,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IACzC,yDAAyD;IACzD,cAAc,EAAE,OAAO,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG,sBAAsB,CAAC,cAAc,EAAE,OAAO,mBAAmB,EAAE,KAAK,CAAC,CAAC"}