@m4l/base 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/@types/augmentations.d.ts +8 -0
  2. package/@types/augmentations.d.ts.map +1 -0
  3. package/components/Icon/Icon.d.ts +8 -0
  4. package/components/Icon/Icon.d.ts.map +1 -0
  5. package/components/Icon/Icon.js +102 -0
  6. package/components/Icon/Icon.styles.d.ts +3 -0
  7. package/components/Icon/Icon.styles.d.ts.map +1 -0
  8. package/components/Icon/Icon.styles.js +88 -0
  9. package/components/Icon/constants.d.ts +8 -0
  10. package/components/Icon/constants.d.ts.map +1 -0
  11. package/components/Icon/constants.js +12 -0
  12. package/components/Icon/index.d.ts +4 -0
  13. package/components/Icon/index.d.ts.map +1 -0
  14. package/components/Icon/slots/IconEnum.d.ts +7 -0
  15. package/components/Icon/slots/IconEnum.d.ts.map +1 -0
  16. package/components/Icon/slots/IconEnum.js +4 -0
  17. package/components/Icon/slots/IconSlots.d.ts +13 -0
  18. package/components/Icon/slots/IconSlots.d.ts.map +1 -0
  19. package/components/Icon/slots/IconSlots.js +29 -0
  20. package/components/Icon/slots/index.d.ts +3 -0
  21. package/components/Icon/slots/index.d.ts.map +1 -0
  22. package/components/Icon/types.d.ts +72 -0
  23. package/components/Icon/types.d.ts.map +1 -0
  24. package/components/index.d.ts +2 -0
  25. package/components/index.d.ts.map +1 -0
  26. package/extended/index.d.ts +2 -0
  27. package/extended/index.d.ts.map +1 -0
  28. package/extended/mui/Tooltip/Tooltip.d.ts +6 -0
  29. package/extended/mui/Tooltip/Tooltip.d.ts.map +1 -0
  30. package/extended/mui/Tooltip/Tooltip.js +33 -0
  31. package/extended/mui/Tooltip/Tooltip.styles.d.ts +3 -0
  32. package/extended/mui/Tooltip/Tooltip.styles.d.ts.map +1 -0
  33. package/extended/mui/Tooltip/Tooltip.styles.js +65 -0
  34. package/extended/mui/Tooltip/constants.d.ts +13 -0
  35. package/extended/mui/Tooltip/constants.d.ts.map +1 -0
  36. package/extended/mui/Tooltip/constants.js +8 -0
  37. package/extended/mui/Tooltip/index.d.ts +4 -0
  38. package/extended/mui/Tooltip/index.d.ts.map +1 -0
  39. package/extended/mui/Tooltip/slots/TooltipEnum.d.ts +9 -0
  40. package/extended/mui/Tooltip/slots/TooltipEnum.d.ts.map +1 -0
  41. package/extended/mui/Tooltip/slots/TooltipEnum.js +4 -0
  42. package/extended/mui/Tooltip/slots/TooltipSlots.d.ts +10 -0
  43. package/extended/mui/Tooltip/slots/TooltipSlots.d.ts.map +1 -0
  44. package/extended/mui/Tooltip/slots/TooltipSlots.js +22 -0
  45. package/extended/mui/Tooltip/slots/index.d.ts +3 -0
  46. package/extended/mui/Tooltip/slots/index.d.ts.map +1 -0
  47. package/extended/mui/Tooltip/types.d.ts +31 -0
  48. package/extended/mui/Tooltip/types.d.ts.map +1 -0
  49. package/extended/mui/Typography/Typography.d.ts +6 -0
  50. package/extended/mui/Typography/Typography.d.ts.map +1 -0
  51. package/extended/mui/Typography/Typography.js +57 -0
  52. package/extended/mui/Typography/constants.d.ts +17 -0
  53. package/extended/mui/Typography/constants.d.ts.map +1 -0
  54. package/extended/mui/Typography/constants.js +12 -0
  55. package/extended/mui/Typography/index.d.ts +4 -0
  56. package/extended/mui/Typography/index.d.ts.map +1 -0
  57. package/extended/mui/Typography/slots/typographyEnum.d.ts +8 -0
  58. package/extended/mui/Typography/slots/typographyEnum.d.ts.map +1 -0
  59. package/extended/mui/Typography/slots/typographyEnum.js +4 -0
  60. package/extended/mui/Typography/slots/typographySlots.d.ts +13 -0
  61. package/extended/mui/Typography/slots/typographySlots.d.ts.map +1 -0
  62. package/extended/mui/Typography/slots/typographySlots.js +18 -0
  63. package/extended/mui/Typography/types.d.ts +60 -0
  64. package/extended/mui/Typography/types.d.ts.map +1 -0
  65. package/extended/mui/Typography/typography.styles.d.ts +3 -0
  66. package/extended/mui/Typography/typography.styles.d.ts.map +1 -0
  67. package/extended/mui/Typography/typography.styles.js +46 -0
  68. package/extended/mui/index.d.ts +3 -0
  69. package/extended/mui/index.d.ts.map +1 -0
  70. package/index.d.ts +3 -0
  71. package/index.d.ts.map +1 -0
  72. package/index.js +22 -0
  73. package/package.json +39 -0
  74. package/utils/getComponentSlotRoot.d.ts +11 -0
  75. package/utils/getComponentSlotRoot.d.ts.map +1 -0
  76. package/utils/getComponentSlotRoot.js +9 -0
  77. package/utils/getNameDataTestId.d.ts +13 -0
  78. package/utils/getNameDataTestId.d.ts.map +1 -0
  79. package/utils/getNameDataTestId.js +8 -0
  80. package/utils/getSizeStyles/getSizeStyles.d.ts +15 -0
  81. package/utils/getSizeStyles/getSizeStyles.d.ts.map +1 -0
  82. package/utils/getSizeStyles/getSizeStyles.js +11 -0
  83. package/utils/getTypographyStyles.d.ts +6 -0
  84. package/utils/getTypographyStyles.d.ts.map +1 -0
  85. package/utils/getTypographyStyles.js +5 -0
  86. package/utils/types.d.ts +30 -0
  87. package/utils/types.d.ts.map +1 -0
@@ -0,0 +1,22 @@
1
+ import { Tooltip as p } from "@mui/material";
2
+ import { styled as t } from "@mui/material/styles";
3
+ import { tooltipStyles as r } from "../Tooltip.styles.js";
4
+ import { TOOLTIP_KEY_COMPONENT as l } from "../constants.js";
5
+ import { TooltipSlots as e } from "./TooltipEnum.js";
6
+ const a = t(p, {
7
+ name: l,
8
+ slot: e.root,
9
+ shouldForwardProp: (o) => o !== "ownerState"
10
+ })(r.root), S = t("div", {
11
+ name: l,
12
+ slot: e.text,
13
+ shouldForwardProp: (o) => o !== "ownerState"
14
+ })(r.text), T = t("div", {
15
+ name: l,
16
+ slot: e.tooltip
17
+ })(r.tooltip);
18
+ export {
19
+ a as RootStyled,
20
+ S as TextStyled,
21
+ T as TooltipStyled
22
+ };
@@ -0,0 +1,3 @@
1
+ export * from './TooltipEnum';
2
+ export * from './TooltipSlots';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/base/src/extended/mui/Tooltip/slots/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { ComponentNameToClassKey, SxProps, Theme, TooltipProps as MUITooltipProps } from '@mui/material';
2
+ import { OverridesStyleRules } from '@mui/material/styles/overrides';
3
+ import { Sizes } from '@m4l/styles';
4
+ import { M4LOverridesStyleRules } from '../../../@types/augmentations';
5
+ import { TOOLTIP_KEY_COMPONENT } from './constants';
6
+ import { TooltipSlots } from './slots/TooltipEnum';
7
+ /**
8
+ * Tooltip props built on top of MUI Tooltip.
9
+ */
10
+ export interface TooltipProps extends Omit<MUITooltipProps, 'sx'> {
11
+ sx?: SxProps<Theme> | Partial<OverridesStyleRules<string, ComponentNameToClassKey, Theme>>;
12
+ /** Supported component sizes. */
13
+ size?: Extract<Sizes, 'small' | 'medium'>;
14
+ /** Supported MUI placement. */
15
+ placement?: MUITooltipProps['placement'];
16
+ /** Popper offset relative to the anchor. */
17
+ offset?: [number, number];
18
+ }
19
+ /**
20
+ * Owner state used by the styled Tooltip slots.
21
+ */
22
+ export type TooltipOwnerState = Pick<TooltipProps, 'size'>;
23
+ /**
24
+ * Slot key union for the Tooltip component.
25
+ */
26
+ export type TooltipSlotsType = keyof typeof TooltipSlots;
27
+ /**
28
+ * Available style overrides for the Tooltip slots.
29
+ */
30
+ export type TooltipStyles = M4LOverridesStyleRules<TooltipSlotsType, typeof TOOLTIP_KEY_COMPONENT, Theme>;
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/base/src/extended/mui/Tooltip/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;IAC/D,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3F,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC1C,+BAA+B;IAC/B,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACzC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,qBAAqB,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TypographyProps } from './types';
2
+ /**
3
+ * Render the base M4L Typography primitive with optional skeleton state.
4
+ */
5
+ export declare const Typography: import('react').ForwardRefExoticComponent<Omit<TypographyProps, "ref"> & import('react').RefAttributes<HTMLSpanElement>>;
6
+ //# sourceMappingURL=Typography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Typography.d.ts","sourceRoot":"","sources":["../../../../../../../packages/base/src/extended/mui/Typography/Typography.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAwB,eAAe,EAAE,MAAM,SAAS,CAAC;AAMhE;;GAEG;AACH,eAAO,MAAM,UAAU,0HAmDrB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsx as s } from "@emotion/react/jsx-runtime";
2
+ import Y from "clsx";
3
+ import { forwardRef as k } from "react";
4
+ import { useModuleSkeleton as A } from "@m4l/core";
5
+ import { TYPOGRAPHY_CLASSES as m, TYPOGRAPHY_KEY_COMPONENT as _, TYPOGRAPHY_CLASS_NAME_SPECIFY as g } from "./constants.js";
6
+ import { TypographySlots as w } from "./slots/typographyEnum.js";
7
+ import { StyledMUITypography as N, StyledSkeleton as u } from "./slots/typographySlots.js";
8
+ import { getPropDataTestId as E } from "../../../utils/getNameDataTestId.js";
9
+ const F = k(function(l, i) {
10
+ const {
11
+ skeletonWidth: n = "100%",
12
+ skeletonRows: o = 1,
13
+ variant: t = "body",
14
+ color: p = "text.primary",
15
+ size: S = "medium",
16
+ className: d,
17
+ dataTestid: f,
18
+ children: y,
19
+ disabled: c,
20
+ ellipsis: h = !1,
21
+ fontFamily: T = "Inter",
22
+ ...P
23
+ } = l, e = A(), r = {
24
+ disabled: c,
25
+ color: p,
26
+ size: S,
27
+ skeletonRows: o,
28
+ variant: t,
29
+ skeleton: e,
30
+ ellipsis: h,
31
+ fontFamily: T
32
+ };
33
+ return /* @__PURE__ */ s(
34
+ N,
35
+ {
36
+ ref: i,
37
+ className: Y(d, g, m.root),
38
+ variant: t,
39
+ ownerState: { ...r },
40
+ ...E(_, w.root, f),
41
+ ...P,
42
+ children: e ? Array.from({ length: o }).map((R, a) => /* @__PURE__ */ s(
43
+ u,
44
+ {
45
+ width: a === o - 1 ? n : "100%",
46
+ variant: "text",
47
+ ownerState: { ...r },
48
+ className: m.skeleton
49
+ },
50
+ a
51
+ )) : y
52
+ }
53
+ );
54
+ });
55
+ export {
56
+ F as Typography
57
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CSS component key used to associate the component with MUI slot overrides.
3
+ */
4
+ export declare const TYPOGRAPHY_KEY_COMPONENT = "M4LTypography";
5
+ /**
6
+ * Extra CSS specificity class used to override MUI styles without `!important`.
7
+ */
8
+ export declare const TYPOGRAPHY_CLASS_NAME_SPECIFY = "M4lclassCssSpecificity";
9
+ /**
10
+ * CSS class inventory for the Typography component.
11
+ */
12
+ export declare const TYPOGRAPHY_CLASSES: Record<"root" | "skeleton", string>;
13
+ export declare const TYPOGRAPHY_FONTS: {
14
+ readonly Inter: "Inter";
15
+ readonly Jura: "Jura";
16
+ };
17
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../packages/base/src/extended/mui/Typography/constants.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,6BAA6B,2BAA2B,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,kBAAkB,qCAAiE,CAAC;AAEjG,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { getComponentClasses as o } from "../../../utils/getComponentSlotRoot.js";
2
+ import { TypographySlots as t } from "./slots/typographyEnum.js";
3
+ const s = "M4LTypography", Y = "M4lclassCssSpecificity", p = o(s, t), S = {
4
+ Inter: "Inter",
5
+ Jura: "Jura"
6
+ };
7
+ export {
8
+ p as TYPOGRAPHY_CLASSES,
9
+ Y as TYPOGRAPHY_CLASS_NAME_SPECIFY,
10
+ S as TYPOGRAPHY_FONTS,
11
+ s as TYPOGRAPHY_KEY_COMPONENT
12
+ };
@@ -0,0 +1,4 @@
1
+ export { Typography } from './Typography';
2
+ export { TYPOGRAPHY_CLASS_NAME_SPECIFY, TYPOGRAPHY_CLASSES, TYPOGRAPHY_FONTS, TYPOGRAPHY_KEY_COMPONENT, } from './constants';
3
+ export type { TypographyColors, TypographyFontsFamily, TypographyOwnerState, TypographyProps, TypographySlotsType, TypographyStyles, } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/base/src/extended/mui/Typography/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Typography slot names.
3
+ */
4
+ export declare enum TypographySlots {
5
+ root = "root",
6
+ skeleton = "skeleton"
7
+ }
8
+ //# sourceMappingURL=typographyEnum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typographyEnum.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/base/src/extended/mui/Typography/slots/typographyEnum.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,4 @@
1
+ var o = /* @__PURE__ */ ((e) => (e.root = "root", e.skeleton = "skeleton", e))(o || {});
2
+ export {
3
+ o as TypographySlots
4
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Styled MUI Typography root slot.
3
+ */
4
+ export declare const StyledMUITypography: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "paragraph" | "sx" | "classes" | "className" | "style" | "color" | "children" | "bottom" | "left" | "right" | "top" | "border" | "boxShadow" | "fontWeight" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "variant" | "align" | "gutterBottom" | "noWrap" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
5
+ ownerState?: (Partial<import('..').TypographyOwnerState> & Record<string, unknown>) | undefined;
6
+ }, {}, {}>;
7
+ /**
8
+ * Styled MUI Skeleton slot used while the module is in skeleton mode.
9
+ */
10
+ export declare const StyledSkeleton: import('@emotion/styled').StyledComponent<import('@mui/material').SkeletonOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "sx" | "classes" | "className" | "style" | "children" | "height" | "width" | "animation" | "variant"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & Record<string, unknown> & {
11
+ ownerState?: (Partial<import('..').TypographyOwnerState> & Record<string, unknown>) | undefined;
12
+ }, {}, {}>;
13
+ //# sourceMappingURL=typographySlots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typographySlots.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/base/src/extended/mui/Typography/slots/typographySlots.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,mBAAmB;;UAIP,CAAC;AAE1B;;GAEG;AACH,eAAO,MAAM,cAAc;;UAIE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Typography as l, Skeleton as m } from "@mui/material";
2
+ import { styled as t } from "@mui/material/styles";
3
+ import { TYPOGRAPHY_KEY_COMPONENT as r } from "../constants.js";
4
+ import { TypographySlots as e } from "./typographyEnum.js";
5
+ import { typographyStyles as p } from "../typography.styles.js";
6
+ const d = t(l, {
7
+ name: r,
8
+ slot: e.root,
9
+ shouldForwardProp: (o) => o !== "ownerState"
10
+ })(p.root), h = t(m, {
11
+ name: r,
12
+ slot: e.skeleton,
13
+ shouldForwardProp: (o) => o !== "ownerState"
14
+ })(p.skeleton);
15
+ export {
16
+ d as StyledMUITypography,
17
+ h as StyledSkeleton
18
+ };
@@ -0,0 +1,60 @@
1
+ import { TypographyProps as MUITypographyProps, Theme } from '@mui/material';
2
+ import { Sizes, TypographyVariants } from '@m4l/styles';
3
+ import { TypographySlots } from './slots/typographyEnum';
4
+ import { TYPOGRAPHY_KEY_COMPONENT } from './constants';
5
+ import { M4LOverridesStyleRules } from '../../../@types/augmentations';
6
+ import { DeepKeyOf } from '../../../utils/types';
7
+ /**
8
+ * Typography color options supported by the component.
9
+ */
10
+ export type TypographyColors = 'text.primary' | 'text.secondary' | 'text.disabled' | string;
11
+ export type TypographyFontsFamily = 'Inter' | 'Jura';
12
+ /**
13
+ * Typography props built on top of MUI Typography.
14
+ */
15
+ export interface TypographyProps extends Omit<MUITypographyProps, 'color' | 'variant' | 'children' | 'size'> {
16
+ /** Width of the skeleton placeholder. */
17
+ skeletonWidth?: string | number;
18
+ /** Number of text rows rendered while in skeleton mode. */
19
+ skeletonRows?: 1 | 2 | 3 | 4 | 5;
20
+ /** Color path used to paint the component. */
21
+ color?: DeepKeyOf<Theme['vars']['palette']> | string;
22
+ /** Supported component sizes. */
23
+ size?: Extract<Sizes, 'small' | 'medium'>;
24
+ /** Typography variants available in the design system. */
25
+ variant?: TypographyVariants;
26
+ /** Component content. */
27
+ children?: React.ReactNode;
28
+ /** Optional data-testid suffix. */
29
+ dataTestid?: string;
30
+ /** Associates the component with an input element. */
31
+ htmlFor?: string | undefined;
32
+ /** Disabled state forces the disabled text color. */
33
+ disabled?: boolean;
34
+ /** Truncate the text into a single ellipsis line. */
35
+ ellipsis?: boolean;
36
+ /** Font family override. */
37
+ fontFamily?: TypographyFontsFamily;
38
+ }
39
+ /**
40
+ * Owner state used by the styled slots.
41
+ */
42
+ export interface TypographyOwnerState {
43
+ disabled?: boolean;
44
+ color: TypographyProps['color'];
45
+ variant: TypographyProps['variant'];
46
+ size: TypographyProps['size'];
47
+ skeletonRows: TypographyProps['skeletonRows'];
48
+ skeleton: boolean;
49
+ ellipsis: TypographyProps['ellipsis'];
50
+ fontFamily: TypographyProps['fontFamily'];
51
+ }
52
+ /**
53
+ * Slot key union for the Typography component.
54
+ */
55
+ export type TypographySlotsType = keyof typeof TypographySlots;
56
+ /**
57
+ * Available style overrides for the Typography slots.
58
+ */
59
+ export type TypographyStyles = M4LOverridesStyleRules<TypographySlotsType, typeof TYPOGRAPHY_KEY_COMPONENT, Theme>;
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/base/src/extended/mui/Typography/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,MAAM,CAAC;AAE5F,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAC1G,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC;IACrD,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC1C,0DAA0D;IAC1D,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACtC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,wBAAwB,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TypographyStyles } from './types';
2
+ export declare const typographyStyles: TypographyStyles;
3
+ //# sourceMappingURL=typography.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography.styles.d.ts","sourceRoot":"","sources":["../../../../../../../packages/base/src/extended/mui/Typography/typography.styles.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAwB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAOtE,eAAO,MAAM,gBAAgB,EAAE,gBAyC9B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { getPropertyByString as s } from "@m4l/core";
2
+ import { getSizeStyles as o } from "../../../utils/getSizeStyles/getSizeStyles.js";
3
+ import { getTypographyStyles as e } from "../../../utils/getTypographyStyles.js";
4
+ const y = {
5
+ /**
6
+ * Root slot styles for the Typography primitive.
7
+ */
8
+ root: ({ ownerState: i, theme: l }) => ({
9
+ margin: 0,
10
+ cursor: "default",
11
+ ...i?.fontFamily && i.fontFamily !== "Inter" && {
12
+ fontFamily: i.fontFamily
13
+ },
14
+ "&.M4lclassCssSpecificity": {
15
+ ...i?.skeletonRows && i.skeletonRows > 1 && {
16
+ display: "flex",
17
+ flexDirection: "column"
18
+ },
19
+ ...i?.disabled || i?.color === "text.disabled" ? {
20
+ color: l.vars.palette.text.disabled
21
+ } : {
22
+ color: s(l.vars.palette, i?.color || "text.primary", "text.primary")
23
+ },
24
+ ...e(
25
+ l.generalSettings.isMobile,
26
+ i?.size || "medium",
27
+ i?.variant || "body"
28
+ ),
29
+ ...i?.ellipsis && {
30
+ overflow: "hidden",
31
+ textOverflow: "ellipsis",
32
+ whiteSpace: "nowrap"
33
+ }
34
+ },
35
+ variants: []
36
+ }),
37
+ /**
38
+ * Skeleton slot styles for the Typography primitive.
39
+ */
40
+ skeleton: ({ theme: i, ownerState: l }) => ({
41
+ ...o(i, l?.size || "medium", "base")
42
+ })
43
+ };
44
+ export {
45
+ y as typographyStyles
46
+ };
@@ -0,0 +1,3 @@
1
+ export * from './Tooltip';
2
+ export * from './Typography';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/base/src/extended/mui/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAE;AAC3B,cAAc,cAAc,CAAC"}
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './components';
2
+ export * from './extended';
3
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/base/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
package/index.js ADDED
@@ -0,0 +1,22 @@
1
+ import { BaseIcon as o, Icon as P } from "./components/Icon/Icon.js";
2
+ import { ICON_CLASSES as E, ICON_KEY_COMPONENT as S, ICON_PREFIX as r } from "./components/Icon/constants.js";
3
+ import { Tooltip as C } from "./extended/mui/Tooltip/Tooltip.js";
4
+ import { DEFAULT_TOOLTIP_OFFSET as A, TOOLTIP_CLASSES as I, TOOLTIP_KEY_COMPONENT as p } from "./extended/mui/Tooltip/constants.js";
5
+ import { Typography as e } from "./extended/mui/Typography/Typography.js";
6
+ import { TYPOGRAPHY_CLASSES as f, TYPOGRAPHY_CLASS_NAME_SPECIFY as m, TYPOGRAPHY_FONTS as x, TYPOGRAPHY_KEY_COMPONENT as F } from "./extended/mui/Typography/constants.js";
7
+ export {
8
+ o as BaseIcon,
9
+ A as DEFAULT_TOOLTIP_OFFSET,
10
+ E as ICON_CLASSES,
11
+ S as ICON_KEY_COMPONENT,
12
+ r as ICON_PREFIX,
13
+ P as Icon,
14
+ I as TOOLTIP_CLASSES,
15
+ p as TOOLTIP_KEY_COMPONENT,
16
+ f as TYPOGRAPHY_CLASSES,
17
+ m as TYPOGRAPHY_CLASS_NAME_SPECIFY,
18
+ x as TYPOGRAPHY_FONTS,
19
+ F as TYPOGRAPHY_KEY_COMPONENT,
20
+ C as Tooltip,
21
+ e as Typography
22
+ };
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@m4l/base",
3
+ "version": "1.0.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "type": "module",
8
+ "sideEffects": false,
9
+ "main": "./index.js",
10
+ "module": "./index.js",
11
+ "types": "./index.d.ts",
12
+ "files": [
13
+ "index.js",
14
+ "index.d.ts",
15
+ "*"
16
+ ],
17
+ "exports": {
18
+ "./package.json": "./package.json",
19
+ ".": {
20
+ "types": "./index.d.ts",
21
+ "import": "./index.js",
22
+ "default": "./index.js"
23
+ }
24
+ },
25
+ "peerDependencies": {
26
+ "@emotion/react": "11.14.0",
27
+ "@emotion/styled": "11.14.1",
28
+ "react": "^18.0.0 || ^19.0.0",
29
+ "react-dom": "^18.0.0 || ^19.0.0"
30
+ },
31
+ "dependencies": {
32
+ "@m4l/core": "^2.0.33",
33
+ "@m4l/styles": "^7.1.48",
34
+ "@emotion/react": "11.14.0",
35
+ "clsx": "^2.1.1",
36
+ "react": "^19.0.0",
37
+ "@mui/material": "5.16.7"
38
+ }
39
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Build the canonical root slot class name for a component.
3
+ */
4
+ export declare function getComponentSlotRoot(componentKey: string): string;
5
+ type ComponentSlots = Record<string, string> | readonly string[];
6
+ /**
7
+ * Build the class-name inventory for all component slots.
8
+ */
9
+ export declare const getComponentClasses: <T extends ComponentSlots>(componentName: string, slotList: T) => T extends readonly string[] ? Record<T[number], string> : Record<keyof T, string>;
10
+ export {};
11
+ //# sourceMappingURL=getComponentSlotRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getComponentSlotRoot.d.ts","sourceRoot":"","sources":["../../../../../packages/base/src/utils/getComponentSlotRoot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,cAAc,EAC1D,eAAe,MAAM,EACrB,UAAU,CAAC,KACV,CAAC,SAAS,SAAS,MAAM,EAAE,GAC1B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACzB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAQzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ const t = (n, r) => {
2
+ const s = Array.isArray(r) ? r : Object.keys(r);
3
+ return Object.fromEntries(
4
+ s.map((e) => [e, `${n}-${e}`])
5
+ );
6
+ };
7
+ export {
8
+ t as getComponentClasses
9
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Build the stable test id string for a component slot.
3
+ */
4
+ export declare const getNameDataTestId: (componentName: string, slotKey: string, instanceId?: string) => string;
5
+ /**
6
+ * Return a data-testid prop outside production builds.
7
+ */
8
+ export declare function getPropDataTestId(componentName: string, slotKey: string, instanceId?: string): {
9
+ 'data-testid': string;
10
+ } | {
11
+ 'data-testid'?: undefined;
12
+ };
13
+ //# sourceMappingURL=getNameDataTestId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNameDataTestId.d.ts","sourceRoot":"","sources":["../../../../../packages/base/src/utils/getNameDataTestId.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,MAAM,EACrB,SAAS,MAAM,EACf,aAAa,MAAM,WAOpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;EAM5F"}
@@ -0,0 +1,8 @@
1
+ const u = (r, t, e) => e ? `${r}-${t}-${e}` : `${r}-${t}`;
2
+ function $(r, t, e) {
3
+ return process.env.NODE_ENV !== "production" && r && t ? { "data-testid": u(r, t, e) } : {};
4
+ }
5
+ export {
6
+ u as getNameDataTestId,
7
+ $ as getPropDataTestId
8
+ };
@@ -0,0 +1,15 @@
1
+ import { Sizes, SizesComponentsTypes } from '@m4l/styles';
2
+ import { Theme } from '@mui/material';
3
+ /**
4
+ * Resolve height styles for a sized component variant.
5
+ */
6
+ export declare const getHeightSizeStyles: (isMobile: boolean, size: Extract<Sizes, "small" | "medium">, variantSize: SizesComponentsTypes, css?: Record<string, unknown> | ((heightSize: string | number) => Record<string, unknown>)) => {
7
+ height: string;
8
+ };
9
+ /**
10
+ * Resolve responsive size styles for a component variant.
11
+ */
12
+ export declare const getSizeStyles: (theme: Theme, size: Sizes, variantSize: SizesComponentsTypes, css?: Record<string, unknown> | ((sizeValue: string | number) => Record<string, unknown>), property?: "height" | "width") => {
13
+ [x: string]: unknown;
14
+ };
15
+ //# sourceMappingURL=getSizeStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSizeStyles.d.ts","sourceRoot":"","sources":["../../../../../../packages/base/src/utils/getSizeStyles/getSizeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,OAAO,EACjB,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,EACxC,aAAa,oBAAoB,EACjC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;CAU3F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,KAAK,EACZ,MAAM,KAAK,EACX,aAAa,oBAAoB,EACjC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzF,WAAU,QAAQ,GAAG,OAAkB;;CASxC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import "@m4l/styles";
2
+ const g = (t, i, s, e, n = "height") => {
3
+ const o = t.vars.size[t.generalSettings.isMobile ? "mobile" : "desktop"][i][s], r = typeof e == "function" ? e(o) : e;
4
+ return {
5
+ [n]: o,
6
+ ...r
7
+ };
8
+ };
9
+ export {
10
+ g as getSizeStyles
11
+ };
@@ -0,0 +1,6 @@
1
+ import { FontProperties, Sizes, TypographyVariants } from '@m4l/styles';
2
+ /**
3
+ * Resolve the design-system typography styles for a size and variant.
4
+ */
5
+ export declare const getTypographyStyles: (isMobile: boolean, size: Extract<Sizes, "small" | "medium">, variant: TypographyVariants) => FontProperties;
6
+ //# sourceMappingURL=getTypographyStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTypographyStyles.d.ts","sourceRoot":"","sources":["../../../../../packages/base/src/utils/getTypographyStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAqD,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE3H;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,OAAO,EACjB,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,EACxC,SAAS,kBAAkB,KAC1B,cAIF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { TYPOGRAPHY_SIZES_MOBILE as p, TYPOGRAPHY_SIZES_DESKTOP as S } from "@m4l/styles";
2
+ const P = (o, r, t) => (o ? p : S)[r][t];
3
+ export {
4
+ P as getTypographyStyles
5
+ };
@@ -0,0 +1,30 @@
1
+ export type VariantColor = 'warning' | 'delete' | 'info' | 'success';
2
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3
+ export type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
4
+ export type PartialExcept<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;
5
+ export type RequiredExcept<T, K extends keyof T> = Required<Omit<T, K>> & Partial<Pick<T, K>>;
6
+ export type PickRequired<T, K extends keyof T> = Required<Pick<T, K>>;
7
+ export type OmitExcept<T, K extends keyof T> = Pick<T, K> & Partial<Record<Exclude<keyof T, K>, never>>;
8
+ export type ContainerSize = {
9
+ containerWidth: number;
10
+ containerHeight: number;
11
+ };
12
+ export type Size = {
13
+ width: number;
14
+ height: number;
15
+ };
16
+ export type PositionXY = {
17
+ x: number;
18
+ y: number;
19
+ };
20
+ export type OptionalPosition = {
21
+ x?: number;
22
+ y?: number;
23
+ };
24
+ /**
25
+ * Build dot-path unions for nested object keys.
26
+ */
27
+ export type DeepKeyOf<TRow> = TRow extends object ? {
28
+ [Key in keyof TRow & string]: NonNullable<TRow[Key]> extends object ? Key | `${Key}.${DeepKeyOf<NonNullable<TRow[Key]>>}` : Key;
29
+ }[keyof TRow & string] : never;
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/base/src/utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AACrE,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClF,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACnF,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9F,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,IAAI,IAAI,IAAI,SAAS,MAAM,GAC7C;KACG,GAAG,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,GAC/D,GAAG,GAAG,GAAG,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GACnD,GAAG;CACR,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GACtB,KAAK,CAAC"}