@capyx/components-library 0.0.19 → 0.0.21
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/addons/AutocompleteInput.js +1 -0
- package/dist/addons/CharacterCountInput.d.ts +0 -2
- package/dist/addons/CharacterCountInput.d.ts.map +1 -1
- package/dist/addons/CharacterCountInput.js +1 -10
- package/dist/addons/index.d.ts.map +1 -1
- package/dist/components/RichTextInput.d.ts +1 -1
- package/dist/components/RichTextInput.d.ts.map +1 -1
- package/dist/components/TagsInput.d.ts +24 -11
- package/dist/components/TagsInput.d.ts.map +1 -1
- package/dist/components/TagsInput.js +17 -15
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -121,6 +121,7 @@ export const AutocompleteInput = ({ suggestions: allSuggestions, children, highl
|
|
|
121
121
|
childProps?.onBlur?.();
|
|
122
122
|
},
|
|
123
123
|
});
|
|
124
|
+
// biome-ignore lint/a11y/noStaticElementInteractions: Keyboard events are handled on the container div for accessibility
|
|
124
125
|
return (_jsxs("div", { ref: containerRef, style: { position: 'relative' }, onKeyDown: handleKeyDown, children: [enhancedChild, showSuggestions && filteredSuggestions.length > 0 && (_jsx(ListGroup, { ref: listRef, role: "listbox", className: listClassName, style: {
|
|
125
126
|
position: 'absolute',
|
|
126
127
|
top: '100%',
|
|
@@ -3,8 +3,6 @@ import { type FC, type PropsWithChildren, type ReactNode } from 'react';
|
|
|
3
3
|
* Props for the CharacterCountInput component
|
|
4
4
|
*/
|
|
5
5
|
export type CharacterCountInputProps = PropsWithChildren<{
|
|
6
|
-
/** Array of valid HTML element types to monitor (e.g., ["text", "email", "textarea"]) */
|
|
7
|
-
validHTMLElements?: string[];
|
|
8
6
|
/** CSS class for the container wrapper */
|
|
9
7
|
containerClassName?: string;
|
|
10
8
|
/** CSS class for the character counter element */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CharacterCountInput.d.ts","sourceRoot":"","sources":["../../lib/addons/CharacterCountInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EAAE,EACP,KAAK,iBAAiB,EAEtB,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CharacterCountInput.d.ts","sourceRoot":"","sources":["../../lib/addons/CharacterCountInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EAAE,EACP,KAAK,iBAAiB,EAEtB,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;AAGf;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACxD,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IAC5D,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA8G5D,CAAC"}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState, } from 'react';
|
|
3
3
|
import { Form } from 'react-bootstrap';
|
|
4
|
-
const _DEFAULT_VALID_HTML_ELEMENTS = [
|
|
5
|
-
'text',
|
|
6
|
-
'email',
|
|
7
|
-
'password',
|
|
8
|
-
'search',
|
|
9
|
-
'tel',
|
|
10
|
-
'url',
|
|
11
|
-
'textarea',
|
|
12
|
-
];
|
|
13
4
|
/**
|
|
14
5
|
* A wrapper component that adds a character counter to text inputs and textareas.
|
|
15
6
|
* Automatically detects the maxLength property from the child input and displays
|
|
@@ -55,7 +46,7 @@ const _DEFAULT_VALID_HTML_ELEMENTS = [
|
|
|
55
46
|
* <TextInput name="title" maxLength={50} />
|
|
56
47
|
* </CharacterCountInput>
|
|
57
48
|
*/
|
|
58
|
-
export const CharacterCountInput = ({
|
|
49
|
+
export const CharacterCountInput = ({ children, containerClassName = 'text-end', counterClassName = '', normalClassName = 'text-muted', warningClassName = 'text-warning', dangerClassName = 'text-danger', warningThreshold = 10, formatCounter, showCounter = true, showWhenEmpty = false, }) => {
|
|
59
50
|
const containerRef = useRef(null);
|
|
60
51
|
const [characterCount, setCharacterCount] = useState(0);
|
|
61
52
|
const [maxLength, setMaxLength] = useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/addons/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/addons/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { type CSSProperties, type FC } from 'react';
|
|
|
2
2
|
import 'react-quill-new/dist/quill.snow.css';
|
|
3
3
|
import './RichTextInput.css';
|
|
4
4
|
declare const formats: readonly ["header", "bold", "color", "italic", "link", "strike", "script", "underline", "list", "code", "blockquote", "code-block"];
|
|
5
|
-
type FormatType = typeof formats[number];
|
|
5
|
+
export type FormatType = typeof formats[number];
|
|
6
6
|
/**
|
|
7
7
|
* Props for the RichTextInput component
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextInput.d.ts","sourceRoot":"","sources":["../../lib/components/RichTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,EAAE,EAAwC,MAAM,OAAO,CAAC;AAG1F,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qBAAqB,CAAC;AAE7B,QAAA,MAAM,OAAO,qIAAsI,CAAC;AACpJ,
|
|
1
|
+
{"version":3,"file":"RichTextInput.d.ts","sourceRoot":"","sources":["../../lib/components/RichTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,EAAE,EAAwC,MAAM,OAAO,CAAC;AAG1F,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qBAAqB,CAAC;AAE7B,QAAA,MAAM,OAAO,qIAAsI,CAAC;AACpJ,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAkFhD,CAAC"}
|
|
@@ -2,17 +2,29 @@ import { type FC } from 'react';
|
|
|
2
2
|
/**
|
|
3
3
|
* Props for the TagsInput component
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* ChipStyle: Supported style keys for customizing a chip.
|
|
7
|
+
*/
|
|
8
|
+
export type ChipStyle = {
|
|
9
|
+
backgroundColor?: string;
|
|
10
|
+
borderColor?: string;
|
|
11
|
+
color?: string;
|
|
12
|
+
hoverBackgroundColor?: string;
|
|
13
|
+
hoverBorderColor?: string;
|
|
14
|
+
hoverColor?: string;
|
|
15
|
+
deleteIconColor?: string;
|
|
16
|
+
deleteIconHoverColor?: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Function signature for per-chip style customization.
|
|
20
|
+
* Receives the chip value and its index, returns a ChipStyle object.
|
|
21
|
+
*/
|
|
22
|
+
export type ChipStyleFn = (chipValue: string, index: number) => ChipStyle;
|
|
5
23
|
export type TagsInputProps = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
hoverBackgroundColor?: string;
|
|
11
|
-
hoverBorderColor?: string;
|
|
12
|
-
hoverColor?: string;
|
|
13
|
-
deleteIconColor?: string;
|
|
14
|
-
deleteIconHoverColor?: string;
|
|
15
|
-
};
|
|
24
|
+
/**
|
|
25
|
+
* Customizes the style of chips. Pass a style object for global styles, or a function (chipValue, index) => styleObject for per-chip customization.
|
|
26
|
+
*/
|
|
27
|
+
chipStyle?: ChipStyle | ChipStyleFn;
|
|
16
28
|
inputStyle?: {
|
|
17
29
|
borderColor?: string;
|
|
18
30
|
errorBorderColor?: string;
|
|
@@ -55,7 +67,7 @@ export type TagsInputProps = {
|
|
|
55
67
|
*
|
|
56
68
|
* ## Customization
|
|
57
69
|
*
|
|
58
|
-
* - `chipStyle`: Minimal style customization for all chips. Only the following keys are supported:
|
|
70
|
+
* - `chipStyle`: Minimal style customization for all chips, or per-chip if a function is provided. Only the following keys are supported:
|
|
59
71
|
* - backgroundColor
|
|
60
72
|
* - borderColor
|
|
61
73
|
* - color
|
|
@@ -64,6 +76,7 @@ export type TagsInputProps = {
|
|
|
64
76
|
* - hoverColor
|
|
65
77
|
* - deleteIconColor
|
|
66
78
|
* - deleteIconHoverColor
|
|
79
|
+
* You can provide either a style object (applied to all chips) or a function (chipValue, index) => styleObject for per-chip customization.
|
|
67
80
|
* - `inputStyle`: Minimal style customization for the input border. Only the following keys are supported:
|
|
68
81
|
* - borderColor
|
|
69
82
|
* - errorBorderColor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../lib/components/TagsInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAGnD;;GAEG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../lib/components/TagsInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAGnD;;GAEG;AACH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACpC,UAAU,CAAC,EAAE;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA8QxC,CAAC"}
|
|
@@ -20,7 +20,7 @@ import { Controller, useFormContext } from 'react-hook-form';
|
|
|
20
20
|
*
|
|
21
21
|
* ## Customization
|
|
22
22
|
*
|
|
23
|
-
* - `chipStyle`: Minimal style customization for all chips. Only the following keys are supported:
|
|
23
|
+
* - `chipStyle`: Minimal style customization for all chips, or per-chip if a function is provided. Only the following keys are supported:
|
|
24
24
|
* - backgroundColor
|
|
25
25
|
* - borderColor
|
|
26
26
|
* - color
|
|
@@ -29,6 +29,7 @@ import { Controller, useFormContext } from 'react-hook-form';
|
|
|
29
29
|
* - hoverColor
|
|
30
30
|
* - deleteIconColor
|
|
31
31
|
* - deleteIconHoverColor
|
|
32
|
+
* You can provide either a style object (applied to all chips) or a function (chipValue, index) => styleObject for per-chip customization.
|
|
32
33
|
* - `inputStyle`: Minimal style customization for the input border. Only the following keys are supported:
|
|
33
34
|
* - borderColor
|
|
34
35
|
* - errorBorderColor
|
|
@@ -120,30 +121,31 @@ export const TagsInput = ({ name, value: valueProp = [], onChange, placeholder =
|
|
|
120
121
|
return cleaned;
|
|
121
122
|
};
|
|
122
123
|
const renderChips = (tagValue, getTagProps) => tagValue.map((option, index) => {
|
|
124
|
+
const resolvedChipStyle = typeof chipStyle === 'function' ? chipStyle(option, index) : chipStyle || {};
|
|
123
125
|
const baseChipSx = {
|
|
124
126
|
backgroundColor: '#212529',
|
|
125
127
|
color: '#ffffff',
|
|
126
128
|
border: '1px solid transparent',
|
|
127
|
-
...(
|
|
128
|
-
backgroundColor:
|
|
129
|
+
...(resolvedChipStyle.backgroundColor && {
|
|
130
|
+
backgroundColor: resolvedChipStyle.backgroundColor,
|
|
129
131
|
}),
|
|
130
|
-
...(
|
|
131
|
-
borderColor:
|
|
132
|
-
border: `1px solid ${
|
|
132
|
+
...(resolvedChipStyle.borderColor && {
|
|
133
|
+
borderColor: resolvedChipStyle.borderColor,
|
|
134
|
+
border: `1px solid ${resolvedChipStyle.borderColor}`,
|
|
133
135
|
}),
|
|
134
|
-
...(
|
|
136
|
+
...(resolvedChipStyle.color && { color: resolvedChipStyle.color }),
|
|
135
137
|
'&:hover': {
|
|
136
|
-
...(
|
|
137
|
-
backgroundColor:
|
|
138
|
+
...(resolvedChipStyle.hoverBackgroundColor && {
|
|
139
|
+
backgroundColor: resolvedChipStyle.hoverBackgroundColor,
|
|
138
140
|
}),
|
|
139
|
-
...(
|
|
140
|
-
borderColor:
|
|
141
|
-
border: `1px solid ${
|
|
141
|
+
...(resolvedChipStyle.hoverBorderColor && {
|
|
142
|
+
borderColor: resolvedChipStyle.hoverBorderColor,
|
|
143
|
+
border: `1px solid ${resolvedChipStyle.hoverBorderColor}`,
|
|
142
144
|
}),
|
|
143
|
-
...(
|
|
145
|
+
...(resolvedChipStyle.hoverColor && { color: resolvedChipStyle.hoverColor }),
|
|
144
146
|
},
|
|
145
147
|
'& .MuiChip-deleteIcon': {
|
|
146
|
-
color:
|
|
148
|
+
color: resolvedChipStyle.deleteIconColor || 'rgba(255, 255, 255, 0.7)',
|
|
147
149
|
userSelect: 'none',
|
|
148
150
|
WebkitUserSelect: 'none',
|
|
149
151
|
MozUserSelect: 'none',
|
|
@@ -159,7 +161,7 @@ export const TagsInput = ({ name, value: valueProp = [], onChange, placeholder =
|
|
|
159
161
|
pointerEvents: 'none',
|
|
160
162
|
},
|
|
161
163
|
'&:hover': {
|
|
162
|
-
color:
|
|
164
|
+
color: resolvedChipStyle.deleteIconHoverColor || '#dc3545',
|
|
163
165
|
},
|
|
164
166
|
},
|
|
165
167
|
};
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
export type { CheckInputProps } from './CheckInput';
|
|
1
2
|
export { CheckInput } from './CheckInput';
|
|
3
|
+
export type { DateInputProps } from './DateInput';
|
|
2
4
|
export { DateInput } from './DateInput';
|
|
5
|
+
export type { FileInputProps } from './FileInput';
|
|
3
6
|
export { FileInput } from './FileInput';
|
|
7
|
+
export type { FormatType, RichTextInputProps } from './RichTextInput';
|
|
4
8
|
export { RichTextInput } from './RichTextInput';
|
|
9
|
+
export type { SelectInputProps } from './SelectInput';
|
|
5
10
|
export { SelectInput } from './SelectInput';
|
|
11
|
+
export type { SwitchInputProps } from './SwitchInput';
|
|
6
12
|
export { SwitchInput } from './SwitchInput';
|
|
13
|
+
export type { ChipStyle, TagsInputProps } from './TagsInput';
|
|
7
14
|
export { TagsInput } from './TagsInput';
|
|
15
|
+
export type { TextAreaInputProps } from './TextAreaInput';
|
|
8
16
|
export { TextAreaInput } from './TextAreaInput';
|
|
17
|
+
export type { TextInputProps } from './TextInput';
|
|
9
18
|
export { TextInput } from './TextInput';
|
|
10
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/components/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|