@phpsoftbox/react-softbox 0.3.0 → 0.4.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 (41) hide show
  1. package/README.md +81 -1
  2. package/dist/components/Input/ErrorTooltip/ErrorTooltip.d.ts +12 -0
  3. package/dist/components/Input/ErrorTooltip/ErrorTooltip.js +25 -0
  4. package/dist/components/Input/ErrorTooltip/ErrorTooltip.js.map +1 -0
  5. package/dist/components/Input/ErrorTooltip/ErrorTooltip.module.css +31 -0
  6. package/dist/components/Input/Field.js +8 -1
  7. package/dist/components/Input/Field.js.map +1 -1
  8. package/dist/components/Input/FloatLabel/FloatLabel.module.css +5 -3
  9. package/dist/components/Input/FormField/FormField.d.ts +2 -0
  10. package/dist/components/Input/FormField/FormField.js +12 -1
  11. package/dist/components/Input/FormField/FormField.js.map +1 -1
  12. package/dist/components/Input/FormField/FormField.module.css +1 -0
  13. package/dist/components/Input/Input.d.ts +2 -0
  14. package/dist/components/Input/Input.js +2 -0
  15. package/dist/components/Input/Input.js.map +1 -1
  16. package/dist/components/Input/Input.module.css +8 -1
  17. package/dist/components/Input/Select/Select.d.ts +10 -5
  18. package/dist/components/Input/Select/Select.js +62 -16
  19. package/dist/components/Input/Select/Select.js.map +1 -1
  20. package/dist/components/Input/Select/Select.module.css +65 -23
  21. package/dist/components/Modal/Modal.d.ts +2 -1
  22. package/dist/components/Modal/Modal.js +18 -1
  23. package/dist/components/Modal/Modal.js.map +1 -1
  24. package/dist/components/Table/Table.d.ts +25 -0
  25. package/dist/components/Table/Table.js +132 -91
  26. package/dist/components/Table/Table.js.map +1 -1
  27. package/dist/components/Table/Table.module.css +33 -0
  28. package/dist/components/Tooltip/Tooltip.d.ts +33 -0
  29. package/dist/components/Tooltip/Tooltip.js +294 -0
  30. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  31. package/dist/components/Tooltip/Tooltip.module.css +124 -0
  32. package/dist/foundations/tokens.css +6 -0
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/docs/README.md +2 -0
  37. package/docs/forms.md +33 -0
  38. package/docs/overlays.md +2 -2
  39. package/docs/table.md +114 -0
  40. package/docs/tooltip.md +68 -0
  41. package/package.json +1 -1
package/README.md CHANGED
@@ -9,7 +9,39 @@ import '@phpsoftbox/react-softbox/foundations/index.css';
9
9
  ```
10
10
 
11
11
  ```ts
12
- import { Alert, Badge, Breadcrumbs, Button, Card, CollapseButton, Drawer, Dropdown, FloatLabel, FormField, Grid, Heading, Image, Input, Menu, Modal, Notifier, Pagination, Progress, Radio, Row, Select, Stack, Switch, Tabs, Text, Textarea } from '@phpsoftbox/react-softbox';
12
+ import {
13
+ Alert,
14
+ Badge,
15
+ Breadcrumbs,
16
+ Button,
17
+ Card,
18
+ Checkbox,
19
+ CollapseButton,
20
+ Drawer,
21
+ Dropdown,
22
+ FileUploader,
23
+ FloatLabel,
24
+ FormField,
25
+ Grid,
26
+ Heading,
27
+ Image,
28
+ Input,
29
+ Menu,
30
+ Modal,
31
+ Notifier,
32
+ Pagination,
33
+ Progress,
34
+ Radio,
35
+ Row,
36
+ Select,
37
+ Stack,
38
+ Switch,
39
+ Table,
40
+ Tabs,
41
+ Text,
42
+ Textarea,
43
+ Tooltip,
44
+ } from '@phpsoftbox/react-softbox';
13
45
  ```
14
46
 
15
47
  ## Тема
@@ -27,6 +59,8 @@ setThemeMode('dark');
27
59
  - `docs/layout.md`
28
60
  - `docs/navigation.md`
29
61
  - `docs/forms.md`
62
+ - `docs/table.md`
63
+ - `docs/tooltip.md`
30
64
  - `docs/overlays.md`
31
65
  - `docs/feedback.md`
32
66
  - `docs/card.md`
@@ -62,6 +96,7 @@ yarn build
62
96
  <Button variant="primary">Primary</Button>
63
97
  <Button variant="info" appearance="outline">Info</Button>
64
98
  <Button variant="danger" appearance="ghost">Danger</Button>
99
+ <Button variant="primary" size="sm">Small</Button>
65
100
  ```
66
101
 
67
102
  ### Input / FloatLabel
@@ -84,6 +119,7 @@ yarn build
84
119
  ```tsx
85
120
  <Textarea placeholder="Комментарий" />
86
121
  <Radio name="mode" label="Основной" />
122
+ <Checkbox label="Согласен с условиями" />
87
123
  ```
88
124
 
89
125
  ### Switch
@@ -99,6 +135,50 @@ yarn build
99
135
  <Select label="Сервисы" options={options} multiple searchable />
100
136
  ```
101
137
 
138
+ ### Table
139
+
140
+ ```tsx
141
+ const columns = [
142
+ { id: 'name', header: 'Название', accessor: 'name' },
143
+ { id: 'amount', header: 'Сумма', accessor: 'amount', align: 'right', sortable: true },
144
+ ];
145
+
146
+ <Table columns={columns} data={rows} />;
147
+ ```
148
+
149
+ ```tsx
150
+ <Table
151
+ columns={columns}
152
+ data={rows}
153
+ selection={{
154
+ selectedIds,
155
+ onToggle: (id) => setSelected((prev) => prev.includes(id) ? prev.filter((key) => key !== id) : [...prev, id]),
156
+ onToggleAll: (ids) => setSelected((prev) => ids.length > 0 && ids.every((id) => prev.includes(id)) ? [] : ids),
157
+ }}
158
+ renderBulkAction={(ids) => <span>Выбрано: {ids.length}</span>}
159
+ />;
160
+ ```
161
+
162
+ ### FileUploader
163
+
164
+ ```tsx
165
+ <FileUploader
166
+ allowedTypes={['.jpg', '.png', '.pdf']}
167
+ maxFileSizeKb={2048}
168
+ multiple
169
+ showPreview
170
+ onUpload={(files) => api.upload(files)}
171
+ />;
172
+ ```
173
+
174
+ ### Tooltip
175
+
176
+ ```tsx
177
+ <Tooltip content="Подсказка">
178
+ <Button>Наведи</Button>
179
+ </Tooltip>
180
+ ```
181
+
102
182
  ### Grid / Flex
103
183
 
104
184
  ```tsx
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { type TooltipPlacement, type TooltipVariant } from '../../Tooltip/Tooltip';
3
+ type Props = {
4
+ content: React.ReactNode;
5
+ placement?: TooltipPlacement;
6
+ variant?: TooltipVariant;
7
+ target?: 'icon' | 'input';
8
+ icon?: React.ReactNode;
9
+ className?: string;
10
+ };
11
+ export default function ErrorTooltip({ content, placement, variant, target, icon, className, }: Props): import("react/jsx-runtime").JSX.Element | null;
12
+ export {};
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import Tooltip from '../../Tooltip/Tooltip';
4
+ import { useFormFieldContext } from '../FormField/FormField';
5
+ import styles from './ErrorTooltip.module.css';
6
+ export default function ErrorTooltip({ content, placement = 'right', variant = 'danger', target = 'icon', icon = '!', className, }) {
7
+ const context = useFormFieldContext();
8
+ React.useEffect(() => {
9
+ if (target !== 'icon') {
10
+ return;
11
+ }
12
+ if (!context?.registerErrorTooltip) {
13
+ return;
14
+ }
15
+ return context.registerErrorTooltip();
16
+ }, [context, target]);
17
+ if (target === 'input') {
18
+ if (!context?.fieldId) {
19
+ return null;
20
+ }
21
+ return (_jsx(Tooltip, { content: content, placement: placement, variant: variant, anchorId: context.fieldId, openOnHover: true, openOnFocus: true }));
22
+ }
23
+ return (_jsx(Tooltip, { content: content, placement: placement, variant: variant, openOnHover: true, openOnFocus: true, children: _jsx("button", { type: "button", className: [styles.icon, styles.iconButton, className].filter(Boolean).join(' '), "aria-label": "\u041E\u0448\u0438\u0431\u043A\u0430", children: icon }) }));
24
+ }
25
+ //# sourceMappingURL=ErrorTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorTooltip.js","sourceRoot":"","sources":["../../../../src/components/Input/ErrorTooltip/ErrorTooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAuD,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAW/C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,QAAQ,EAClB,MAAM,GAAG,MAAM,EACf,IAAI,GAAG,GAAG,EACV,SAAS,GACH;IACN,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IAEtC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,OAAO,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACxC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,KAAC,OAAO,IACN,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,CAAC,OAAO,EACzB,WAAW,QACX,WAAW,SACX,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,OAAO,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,QAAC,WAAW,kBACxF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAa,sCAAQ,YACxH,IAAI,GACE,GACD,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ .icon {
2
+ position: absolute;
3
+ right: 12px;
4
+ top: 50%;
5
+ transform: translateY(-50%);
6
+ width: 18px;
7
+ height: 18px;
8
+ border-radius: 999px;
9
+ background: rgba(255, 107, 107, 0.16);
10
+ border: 1px solid rgba(255, 107, 107, 0.6);
11
+ color: #ff8f8f;
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ font-size: 12px;
16
+ font-weight: 700;
17
+ line-height: 1;
18
+ pointer-events: auto;
19
+ }
20
+
21
+ .iconButton {
22
+ border: none;
23
+ background: transparent;
24
+ padding: 0;
25
+ margin: 0;
26
+ cursor: pointer;
27
+ }
28
+
29
+ .content {
30
+ max-width: 240px;
31
+ }
@@ -8,7 +8,14 @@ const InputField = React.forwardRef(({ hasError, className, ...props }, ref) =>
8
8
  const generatedId = React.useId();
9
9
  const resolvedId = props.id ?? context?.fieldId ?? (props.name ? buildIdFromName(props.name) : generatedId);
10
10
  const autoComplete = props.autoComplete ?? 'off';
11
- const classes = [styles.input, hasError ? styles.error : null, className].filter(Boolean).join(' ');
11
+ const classes = [
12
+ styles.input,
13
+ hasError ? styles.error : null,
14
+ context?.hasErrorTooltip ? styles.withErrorTooltip : null,
15
+ className,
16
+ ]
17
+ .filter(Boolean)
18
+ .join(' ');
12
19
  if (process.env.NODE_ENV !== 'production') {
13
20
  if (!props.id && !props.name) {
14
21
  // eslint-disable-next-line no-console
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../src/components/Input/Field.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC;AAE1F,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAA0B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACtG,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,IAAI,OAAO,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5G,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,OAAO,gBAAO,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,KAAM,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,CAAC;AACxG,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../src/components/Input/Field.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC;AAE1F,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAA0B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACtG,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,IAAI,OAAO,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5G,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC;IACjD,MAAM,OAAO,GAAG;QACd,MAAM,CAAC,KAAK;QACZ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC9B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;QACzD,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,OAAO,gBAAO,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,KAAM,KAAK,EAAE,YAAY,EAAE,YAAY,GAAI,CAAC;AACxG,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,eAAe,UAAU,CAAC"}
@@ -8,7 +8,8 @@
8
8
  left: 16px;
9
9
  top: 16px;
10
10
  color: var(--color-muted-2);
11
- font-size: 13px;
11
+ font-size: var(--ui-control-font-size, var(--font-size-3));
12
+ line-height: 1.2;
12
13
  letter-spacing: 0.02em;
13
14
  transition: transform 0.2s ease, color 0.2s ease, opacity 0.2s ease;
14
15
  pointer-events: none;
@@ -50,6 +51,7 @@
50
51
 
51
52
  .wrapper > input,
52
53
  .wrapper > textarea {
53
- padding-top: 22px;
54
- padding-bottom: 12px;
54
+ min-height: var(--ui-control-height, 48px);
55
+ padding-top: calc(var(--ui-control-padding-y, 12px) + 6px);
56
+ padding-bottom: calc(var(--ui-control-padding-y, 12px) - 2px);
55
57
  }
@@ -23,6 +23,8 @@ type FormFieldContextValue = {
23
23
  fieldId?: string;
24
24
  fieldName?: string;
25
25
  registerField: (id: string, name?: string) => void;
26
+ registerErrorTooltip?: () => () => void;
27
+ hasErrorTooltip?: boolean;
26
28
  };
27
29
  export declare const useFormFieldContext: () => FormFieldContextValue | null;
28
30
  declare const FormField: FormFieldComponent;
@@ -16,12 +16,17 @@ const labelAlignMap = {
16
16
  function FormFieldRoot({ layout = 'column', gap = '8px', labelWidth, align = 'start', labelAlign = 'left', className, style, ...props }) {
17
17
  const [fieldId, setFieldId] = React.useState(undefined);
18
18
  const [fieldName, setFieldName] = React.useState(undefined);
19
+ const [errorTooltipCount, setErrorTooltipCount] = React.useState(0);
19
20
  const registerField = React.useCallback((id, name) => {
20
21
  setFieldId(id);
21
22
  if (name) {
22
23
  setFieldName(name);
23
24
  }
24
25
  }, []);
26
+ const registerErrorTooltip = React.useCallback(() => {
27
+ setErrorTooltipCount((prev) => prev + 1);
28
+ return () => setErrorTooltipCount((prev) => Math.max(prev - 1, 0));
29
+ }, []);
25
30
  const classes = [styles.field, layout === 'row' ? styles.fieldRow : null, className]
26
31
  .filter(Boolean)
27
32
  .join(' ');
@@ -32,7 +37,13 @@ function FormFieldRoot({ layout = 'column', gap = '8px', labelWidth, align = 'st
32
37
  ['--ui-field-align']: alignMap[align],
33
38
  ['--ui-label-align']: labelAlignMap[labelAlign],
34
39
  };
35
- return (_jsx(FormFieldContext.Provider, { value: { fieldId, fieldName, registerField }, children: _jsx("div", { className: classes, style: inlineStyle, ...props }) }));
40
+ return (_jsx(FormFieldContext.Provider, { value: {
41
+ fieldId,
42
+ fieldName,
43
+ registerField,
44
+ registerErrorTooltip,
45
+ hasErrorTooltip: errorTooltipCount > 0,
46
+ }, children: _jsx("div", { className: classes, style: inlineStyle, ...props }) }));
36
47
  }
37
48
  function FormFieldLabel({ className, ...props }) {
38
49
  const context = useFormFieldContext();
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.js","sourceRoot":"","sources":["../../../../src/components/Input/FormField/FormField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormField.js","sourceRoot":"","sources":["../../../../src/components/Input/FormField/FormField.tsx"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@
22
22
  .control {
23
23
  flex: 1;
24
24
  min-width: 0;
25
+ position: relative;
25
26
  }
26
27
 
27
28
  .error {
@@ -10,6 +10,7 @@ import DateRangePicker from './DateRangePicker';
10
10
  import Radio from './Radio/Radio';
11
11
  import Switch from './Switch/Switch';
12
12
  import Checkbox from './Checkbox/Checkbox';
13
+ import ErrorTooltip from './ErrorTooltip/ErrorTooltip';
13
14
  declare const Input: import("react").FC<import("react").HTMLAttributes<HTMLDivElement> & {
14
15
  layout?: "row" | "column";
15
16
  gap?: number | string;
@@ -44,6 +45,7 @@ declare const Input: import("react").FC<import("react").HTMLAttributes<HTMLDivEl
44
45
  Radio: typeof Radio;
45
46
  Switch: typeof Switch;
46
47
  Checkbox: typeof Checkbox;
48
+ ErrorTooltip: typeof ErrorTooltip;
47
49
  FormField: import("react").FC<import("react").HTMLAttributes<HTMLDivElement> & {
48
50
  layout?: "row" | "column";
49
51
  gap?: number | string;
@@ -12,6 +12,7 @@ import DateRangePicker from './DateRangePicker';
12
12
  import Radio from './Radio/Radio';
13
13
  import Switch from './Switch/Switch';
14
14
  import Checkbox from './Checkbox/Checkbox';
15
+ import ErrorTooltip from './ErrorTooltip/ErrorTooltip';
15
16
  const Input = Object.assign(FormField, {
16
17
  Label: FormField.Label,
17
18
  Control: FormField.Control,
@@ -30,6 +31,7 @@ const Input = Object.assign(FormField, {
30
31
  Radio,
31
32
  Switch,
32
33
  Checkbox,
34
+ ErrorTooltip,
33
35
  FormField,
34
36
  });
35
37
  export default Input;
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,SAAS,CAAC;AACjC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,eAAe,CAAC;AAClC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;IACrC,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,OAAO,EAAE,SAAS,CAAC,OAAO;IAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,QAAQ;IAClB,MAAM;IACN,UAAU;IACV,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,WAAW;IACX,MAAM,EAAE,WAAW;IACnB,UAAU;IACV,UAAU;IACV,SAAS,EAAE,eAAe;IAC1B,KAAK;IACL,MAAM;IACN,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,SAAS,CAAC;AACjC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,eAAe,CAAC;AAClC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;IACrC,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,OAAO,EAAE,SAAS,CAAC,OAAO;IAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,QAAQ;IAClB,MAAM;IACN,UAAU;IACV,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,WAAW;IACX,MAAM,EAAE,WAAW;IACnB,UAAU;IACV,UAAU;IACV,SAAS,EAAE,eAAe;IAC1B,KAAK;IACL,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,SAAS;CACV,CAAC,CAAC;AAEH,eAAe,KAAK,CAAC"}
@@ -1,13 +1,20 @@
1
1
  .input {
2
2
  width: 100%;
3
- padding: 16px 16px;
3
+ min-height: var(--ui-control-height, 48px);
4
+ padding: var(--ui-control-padding-y, 12px) var(--ui-control-padding-x, 16px);
4
5
  border-radius: var(--radius-sm);
5
6
  border: 1px solid rgba(30, 99, 233, 0.25);
6
7
  background: var(--surface-input);
7
8
  color: var(--color-text);
9
+ font-size: var(--ui-control-font-size, var(--font-size-4));
10
+ line-height: var(--ui-control-line-height, 1.2);
8
11
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
9
12
  }
10
13
 
14
+ .withErrorTooltip {
15
+ padding-right: calc(var(--ui-control-padding-x, 16px) + 26px);
16
+ }
17
+
11
18
  .input:focus {
12
19
  outline: none;
13
20
  border-color: rgba(20, 201, 214, 0.8);
@@ -1,5 +1,5 @@
1
1
  export type SelectOption = {
2
- value: string;
2
+ value: string | null;
3
3
  label: string;
4
4
  disabled?: boolean;
5
5
  };
@@ -15,11 +15,16 @@ type Props = {
15
15
  id?: string;
16
16
  name?: string;
17
17
  options?: SelectOption[];
18
- value?: string | string[];
19
- defaultValue?: string | string[];
18
+ value?: string | string[] | null;
19
+ defaultValue?: string | string[] | null;
20
20
  placeholder?: string;
21
21
  multiple?: boolean;
22
22
  searchable?: boolean;
23
+ clearable?: boolean;
24
+ clearLabel?: string;
25
+ allowEmptyValue?: boolean;
26
+ emptyOptionLabel?: string;
27
+ emptyOptionValue?: string | null;
23
28
  loadingText?: string;
24
29
  emptyText?: string;
25
30
  loadOptions?: (query: string) => Promise<SelectOption[]>;
@@ -29,9 +34,9 @@ type Props = {
29
34
  disabled?: boolean;
30
35
  floatLabel?: boolean;
31
36
  className?: string;
32
- onChange?: (value: string | string[], options: SelectOption[]) => void;
37
+ onChange?: (value: string | string[] | null, options: SelectOption[]) => void;
33
38
  };
34
- declare function Select({ label, id, name, options, value, defaultValue, placeholder, multiple, searchable, loadingText, emptyText, loadOptions, request, onAfterRequest, placement, disabled, floatLabel, className, onChange, }: Props): import("react/jsx-runtime").JSX.Element;
39
+ declare function Select({ label, id, name, options, value, defaultValue, placeholder, multiple, searchable, clearable, clearLabel, allowEmptyValue, emptyOptionLabel, emptyOptionValue, loadingText, emptyText, loadOptions, request, onAfterRequest, placement, disabled, floatLabel, className, onChange, }: Props): import("react/jsx-runtime").JSX.Element;
35
40
  declare namespace Select {
36
41
  var supportsFloatLabel: boolean;
37
42
  }
@@ -10,7 +10,7 @@ const defaultMapOptions = (data) => {
10
10
  }
11
11
  return [];
12
12
  };
13
- export default function Select({ label, id, name, options = [], value, defaultValue, placeholder = 'Выберите...', multiple = false, searchable = false, loadingText = 'Загрузка...', emptyText = 'Нет данных', loadOptions, request, onAfterRequest, placement = 'auto', disabled = false, floatLabel = false, className, onChange, }) {
13
+ export default function Select({ label, id, name, options = [], value, defaultValue, placeholder = 'Выберите...', multiple = false, searchable = false, clearable = false, clearLabel = 'Очистить', allowEmptyValue = false, emptyOptionLabel = 'Не выбрано', emptyOptionValue, loadingText = 'Загрузка...', emptyText = 'Нет данных', loadOptions, request, onAfterRequest, placement = 'auto', disabled = false, floatLabel = false, className, onChange, }) {
14
14
  const context = useFormFieldContext();
15
15
  const [open, setOpen] = React.useState(false);
16
16
  const [query, setQuery] = React.useState('');
@@ -33,12 +33,18 @@ export default function Select({ label, id, name, options = [], value, defaultVa
33
33
  const hasLabel = Boolean(label);
34
34
  const isControlled = value !== undefined;
35
35
  const [internalValue, setInternalValue] = React.useState(defaultValue ?? (multiple ? [] : ''));
36
+ const allowEmpty = allowEmptyValue && !multiple;
37
+ const resolvedEmptyValue = emptyOptionValue ?? null;
38
+ const emptyOption = React.useMemo(() => (allowEmpty ? { value: resolvedEmptyValue, label: emptyOptionLabel, disabled: false } : null), [allowEmpty, emptyOptionLabel, resolvedEmptyValue]);
36
39
  const selectedValues = React.useMemo(() => {
37
40
  const raw = isControlled ? value : internalValue;
38
41
  if (multiple) {
39
42
  return Array.isArray(raw) ? raw : raw ? [raw] : [];
40
43
  }
41
- return Array.isArray(raw) ? raw[0] ?? '' : raw ?? '';
44
+ if (Array.isArray(raw)) {
45
+ return raw[0] ?? '';
46
+ }
47
+ return raw === undefined ? '' : raw;
42
48
  }, [value, internalValue, isControlled, multiple]);
43
49
  React.useEffect(() => {
44
50
  if (!isRemote) {
@@ -115,25 +121,39 @@ export default function Select({ label, id, name, options = [], value, defaultVa
115
121
  inputRef.current?.focus();
116
122
  }
117
123
  }, [open, searchable]);
124
+ const allOptions = React.useMemo(() => (emptyOption ? [emptyOption, ...items] : items), [emptyOption, items]);
118
125
  const optionMap = React.useMemo(() => {
119
- return new Map(items.map((item) => [item.value, item]));
120
- }, [items]);
126
+ return new Map(allOptions.map((item) => [item.value, item]));
127
+ }, [allOptions]);
121
128
  const selectedList = React.useMemo(() => {
122
- const values = multiple ? selectedValues : selectedValues ? [selectedValues] : [];
123
- return values.map((val) => optionMap.get(val) ?? { value: val, label: val });
124
- }, [selectedValues, optionMap, multiple]);
125
- const hasValue = multiple ? selectedValues.length > 0 : Boolean(selectedValues);
129
+ if (multiple) {
130
+ const values = selectedValues;
131
+ return values.map((val) => optionMap.get(val) ?? { value: val, label: val });
132
+ }
133
+ const single = selectedValues;
134
+ if (single === '' || (single === null && !allowEmpty)) {
135
+ return [];
136
+ }
137
+ const fallbackLabel = single === null ? emptyOptionLabel : String(single);
138
+ return [optionMap.get(single) ?? { value: single, label: fallbackLabel }];
139
+ }, [selectedValues, optionMap, multiple, allowEmpty, emptyOptionLabel]);
140
+ const hasValue = multiple
141
+ ? selectedValues.length > 0
142
+ : selectedValues !== '' && selectedValues !== undefined && (selectedValues !== null || allowEmpty);
143
+ const isEmptySelection = !multiple && allowEmpty && selectedValues === resolvedEmptyValue;
126
144
  const floatActive = floatLabel && (open || hasValue);
127
145
  const displayedOptions = React.useMemo(() => {
128
146
  if (isRemote) {
129
- return items;
147
+ const filtered = items;
148
+ return emptyOption ? [emptyOption, ...filtered] : filtered;
130
149
  }
131
150
  if (!query) {
132
- return items;
151
+ return emptyOption ? [emptyOption, ...items] : items;
133
152
  }
134
153
  const lowered = query.toLowerCase();
135
- return items.filter((item) => item.label.toLowerCase().includes(lowered));
136
- }, [items, query, isRemote]);
154
+ const filtered = items.filter((item) => item.label.toLowerCase().includes(lowered));
155
+ return emptyOption ? [emptyOption, ...filtered] : filtered;
156
+ }, [items, query, isRemote, emptyOption]);
137
157
  const updateValue = (next, nextOptions) => {
138
158
  if (!isControlled) {
139
159
  setInternalValue(next);
@@ -145,6 +165,9 @@ export default function Select({ label, id, name, options = [], value, defaultVa
145
165
  return;
146
166
  }
147
167
  if (multiple) {
168
+ if (option.value === null) {
169
+ return;
170
+ }
148
171
  const list = selectedValues;
149
172
  const exists = list.includes(option.value);
150
173
  const nextValues = exists ? list.filter((val) => val !== option.value) : [...list, option.value];
@@ -162,6 +185,9 @@ export default function Select({ label, id, name, options = [], value, defaultVa
162
185
  if (!multiple) {
163
186
  return;
164
187
  }
188
+ if (valueToRemove === null) {
189
+ return;
190
+ }
165
191
  const list = selectedValues;
166
192
  const nextValues = list.filter((val) => val !== valueToRemove);
167
193
  const nextOptions = selectedList.filter((item) => item.value !== valueToRemove);
@@ -172,7 +198,15 @@ export default function Select({ label, id, name, options = [], value, defaultVa
172
198
  setOpen(false);
173
199
  }
174
200
  };
175
- return (_jsxs("div", { className: [styles.wrapper, className].filter(Boolean).join(' '), "data-open": open, "data-has-value": hasValue, "data-has-query": query.length > 0, "data-has-label": hasLabel, "data-float-label": floatLabel ? 'true' : undefined, "data-float-active": floatActive ? 'true' : undefined, ref: containerRef, onKeyDown: handleKeyDown, children: [label ? (_jsx("span", { id: labelId, className: styles.label, children: label })) : null, _jsxs("button", { type: "button", className: styles.control, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": listId, "aria-labelledby": label ? labelId : undefined, id: controlId, onClick: () => !disabled && setOpen((prev) => !prev), disabled: disabled, ref: controlRef, children: [_jsx("div", { className: styles.value, children: hasValue ? (multiple ? (selectedList.map((item) => (_jsxs("span", { className: styles.tag, children: [item.label, _jsx("span", { role: "button", tabIndex: 0, className: styles.remove, onClick: (event) => {
201
+ const showClear = clearable && searchable && !disabled && hasValue && !isEmptySelection;
202
+ const handleClear = (event) => {
203
+ event.stopPropagation();
204
+ const nextValue = multiple ? [] : allowEmpty ? resolvedEmptyValue : '';
205
+ const nextOptions = multiple ? [] : allowEmpty && emptyOption ? [emptyOption] : [];
206
+ updateValue(nextValue, nextOptions);
207
+ setQuery('');
208
+ };
209
+ return (_jsxs("div", { className: [styles.wrapper, className].filter(Boolean).join(' '), "data-open": open, "data-has-value": hasValue, "data-has-query": query.length > 0, "data-has-label": hasLabel, "data-float-label": floatLabel ? 'true' : undefined, "data-float-active": floatActive ? 'true' : undefined, "data-has-clear": showClear ? 'true' : undefined, ref: containerRef, onKeyDown: handleKeyDown, children: [label ? (_jsx("span", { id: labelId, className: styles.label, children: label })) : null, _jsxs("button", { type: "button", className: styles.control, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": listId, "aria-labelledby": label ? labelId : undefined, id: controlId, onClick: () => !disabled && setOpen((prev) => !prev), disabled: disabled, ref: controlRef, children: [_jsx("div", { className: styles.value, children: hasValue ? (multiple ? (selectedList.map((item) => (_jsxs("span", { className: styles.tag, children: [item.label, _jsx("span", { role: "button", tabIndex: 0, className: styles.remove, onClick: (event) => {
176
210
  event.stopPropagation();
177
211
  handleRemove(item.value);
178
212
  }, onKeyDown: (event) => {
@@ -181,10 +215,15 @@ export default function Select({ label, id, name, options = [], value, defaultVa
181
215
  event.stopPropagation();
182
216
  handleRemove(item.value);
183
217
  }
184
- }, "aria-label": `Удалить ${item.label}`, children: "\u00D7" })] }, item.value)))) : (_jsx("span", { children: selectedList[0]?.label }))) : (_jsx("span", { className: styles.placeholder, children: placeholder })) }), _jsx("span", { className: styles.chevron, "aria-hidden": "true" })] }), open ? (_jsxs("div", { className: styles.dropdown, ref: dropdownRef, style: dropdownStyle, children: [searchable ? (_jsx("input", { ref: inputRef, className: styles.search, placeholder: "\u041F\u043E\u0438\u0441\u043A...", value: query, onChange: (event) => setQuery(event.target.value) })) : null, _jsxs("div", { className: styles.list, role: "listbox", id: listId, children: [loading ? _jsx("div", { className: styles.status, children: loadingText }) : null, !loading && displayedOptions.length === 0 ? (_jsx("div", { className: styles.status, children: emptyText })) : null, !loading
218
+ }, "aria-label": `Удалить ${item.label}`, children: "\u00D7" })] }, item.value)))) : (_jsx("span", { children: selectedList[0]?.label }))) : (_jsx("span", { className: styles.placeholder, children: placeholder })) }), _jsxs("span", { className: styles.controls, children: [showClear ? (_jsx("span", { role: "button", tabIndex: 0, className: styles.clearButton, "aria-label": clearLabel, onMouseDown: (event) => event.preventDefault(), onClick: handleClear, onKeyDown: (event) => {
219
+ if (event.key === 'Enter' || event.key === ' ') {
220
+ event.preventDefault();
221
+ handleClear(event);
222
+ }
223
+ }, children: "\u00D7" })) : null, _jsx("span", { className: styles.chevron, "aria-hidden": "true" })] })] }), open ? (_jsxs("div", { className: styles.dropdown, ref: dropdownRef, style: dropdownStyle, children: [searchable ? (_jsx("input", { ref: inputRef, className: styles.search, placeholder: "\u041F\u043E\u0438\u0441\u043A...", value: query, onChange: (event) => setQuery(event.target.value) })) : null, _jsxs("div", { className: styles.list, role: "listbox", id: listId, children: [loading ? _jsx("div", { className: styles.status, children: loadingText }) : null, !loading && (allowEmpty ? displayedOptions.length <= 1 : displayedOptions.length === 0) ? (_jsx("div", { className: styles.status, children: emptyText })) : null, !loading
185
224
  ? displayedOptions.map((option) => {
186
225
  const selected = multiple
187
- ? selectedValues.includes(option.value)
226
+ ? option.value !== null && selectedValues.includes(option.value)
188
227
  : selectedValues === option.value;
189
228
  return (_jsxs("button", { type: "button", className: [
190
229
  styles.option,
@@ -192,7 +231,14 @@ export default function Select({ label, id, name, options = [], value, defaultVa
192
231
  option.disabled ? styles.optionDisabled : null,
193
232
  ]
194
233
  .filter(Boolean)
195
- .join(' '), role: "option", "aria-selected": selected, onClick: () => handleSelect(option), disabled: option.disabled, children: [_jsx("span", { children: option.label }), selected ? _jsx("span", { className: styles.check, children: "\u2713" }) : null] }, option.value));
234
+ .join(' '), role: "option", "aria-selected": selected, onMouseDown: (event) => {
235
+ event.preventDefault();
236
+ handleSelect(option);
237
+ }, onClick: (event) => {
238
+ if (event.detail === 0) {
239
+ handleSelect(option);
240
+ }
241
+ }, disabled: option.disabled, children: [_jsx("span", { children: option.label }), selected ? _jsx("span", { className: styles.check, children: "\u2713" }) : null] }, option.value ?? '__empty'));
196
242
  })
197
243
  : null] })] })) : null] }));
198
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/components/Input/Select/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../src/components/Input/Select/Select.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AA2C7D,MAAM,iBAAiB,GAAG,CAAC,IAAa,EAAkB,EAAE;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAsB,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,KAAK,EACL,EAAE,EACF,IAAI,EACJ,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,YAAY,EACZ,WAAW,GAAG,aAAa,EAC3B,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,UAAU,EACvB,eAAe,GAAG,KAAK,EACvB,gBAAgB,GAAG,YAAY,EAC/B,gBAAgB,EAChB,WAAW,GAAG,aAAa,EAC3B,SAAS,GAAG,YAAY,EACxB,WAAW,EACX,OAAO,EACP,cAAc,EACd,SAAS,GAAG,MAAM,EAClB,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,SAAS,EACT,QAAQ,GACF;IACN,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAiB,OAAO,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAoB,IAAI,CAAC,CAAC;IACzD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE;QAC3E,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,MAAM;QACb,SAAS;QACT,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,EAAE,IAAI,OAAO,EAAE,OAAO,IAAI,WAAW,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC;IACzC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtD,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrC,CAAC;IACF,MAAM,UAAU,GAAG,eAAe,IAAI,CAAC,QAAQ,CAAC;IAChD,MAAM,kBAAkB,GAAG,gBAAgB,IAAI,IAAI,CAAC;IACpD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACnG,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CACnD,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEnD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,CAAC;QAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC;gBACH,IAAI,IAAI,GAAmB,EAAE,CAAC;gBAC9B,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,OAAO,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;wBAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;wBAC/B,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE;wBACvC,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC;oBACvD,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACf,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,MAAM,EAAE,CAAC;oBACX,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACb,cAAc,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,MAAM,EAAE,CAAC;oBACX,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;YACf,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAElD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;YACvB,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,cAA0B,CAAC;YAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,MAAM,GAAG,cAA+B,CAAC;QAC/C,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAExE,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAE,cAA2B,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,cAAc,KAAK,EAAE,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC;IACrG,MAAM,gBAAgB,GAAG,CAAC,QAAQ,IAAI,UAAU,IAAI,cAAc,KAAK,kBAAkB,CAAC;IAC1F,MAAM,WAAW,GAAG,UAAU,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC;IAErD,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACpF,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7D,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,CAAC,IAA8B,EAAE,WAA2B,EAAE,EAAE;QAClF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAE,EAAE;QAC5C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,cAA0B,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACjG,MAAM,WAAW,GAAG,MAAM;gBACxB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;gBAC5D,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC;YAC9B,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,aAA4B,EAAE,EAAE;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,cAA0B,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;QAChF,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAA0B,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,SAAS,IAAI,UAAU,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC,gBAAgB,CAAC;IAExF,MAAM,WAAW,GAAG,CAAC,KAA6C,EAAE,EAAE;QACpE,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,CACL,eACE,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eACrD,IAAI,oBACC,QAAQ,oBACR,KAAK,CAAC,MAAM,GAAG,CAAC,oBAChB,QAAQ,sBACN,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,uBAC9B,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,oBACnC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,aAAa,aAEvB,KAAK,CAAC,CAAC,CAAC,CACP,eAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,YACvC,KAAK,GACD,CACR,CAAC,CAAC,CAAC,IAAI,EACR,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,OAAO,mBACX,SAAS,mBACR,IAAI,mBACJ,MAAM,qBACJ,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC5C,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EACpD,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,UAAU,aAEf,cAAK,SAAS,EAAE,MAAM,CAAC,KAAK,YACzB,QAAQ,CAAC,CAAC,CAAC,CACV,QAAQ,CAAC,CAAC,CAAC,CACT,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,gBAAuB,SAAS,EAAE,MAAM,CAAC,GAAG,aACzC,IAAI,CAAC,KAAK,EACX,eACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wCACjB,KAAK,CAAC,eAAe,EAAE,CAAC;wCACxB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oCAC3B,CAAC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;wCACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;4CAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;4CACvB,KAAK,CAAC,eAAe,EAAE,CAAC;4CACxB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCAC3B,CAAC;oCACH,CAAC,gBACW,WAAW,IAAI,CAAC,KAAK,EAAE,uBAG9B,KApBE,IAAI,CAAC,KAAK,CAqBd,CACR,CAAC,CACH,CAAC,CAAC,CAAC,CACF,yBAAO,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,GAAQ,CACtC,CACF,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAE,MAAM,CAAC,WAAW,YAAG,WAAW,GAAQ,CAC1D,GACG,EACN,gBAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,aAC7B,SAAS,CAAC,CAAC,CAAC,CACX,eACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,MAAM,CAAC,WAAW,gBACjB,UAAU,EACtB,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAC9C,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oCACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;wCAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;wCACvB,WAAW,CAAC,KAAK,CAAC,CAAC;oCACrB,CAAC;gCACH,CAAC,uBAGI,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAE,MAAM,CAAC,OAAO,iBAAc,MAAM,GAAG,IACjD,IACA,EAER,IAAI,CAAC,CAAC,CAAC,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,aACpE,UAAU,CAAC,CAAC,CAAC,CACZ,gBACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,WAAW,EAAC,mCAAU,EACtB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACjD,CACH,CAAC,CAAC,CAAC,IAAI,EACR,eAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,EAAC,EAAE,EAAE,MAAM,aACnD,OAAO,CAAC,CAAC,CAAC,cAAK,SAAS,EAAE,MAAM,CAAC,MAAM,YAAG,WAAW,GAAO,CAAC,CAAC,CAAC,IAAI,EACnE,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CACzF,cAAK,SAAS,EAAE,MAAM,CAAC,MAAM,YAAG,SAAS,GAAO,CACjD,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,OAAO;gCACP,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oCAC9B,MAAM,QAAQ,GAAG,QAAQ;wCACvB,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAK,cAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;wCAC9E,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC,KAAK,CAAC;oCAEpC,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE;4CACT,MAAM,CAAC,MAAM;4CACb,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;4CACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;yCAC/C;6CACE,MAAM,CAAC,OAAO,CAAC;6CACf,IAAI,CAAC,GAAG,CAAC,EACZ,IAAI,EAAC,QAAQ,mBACE,QAAQ,EACvB,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;4CACrB,KAAK,CAAC,cAAc,EAAE,CAAC;4CACvB,YAAY,CAAC,MAAM,CAAC,CAAC;wCACvB,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4CACjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gDACvB,YAAY,CAAC,MAAM,CAAC,CAAC;4CACvB,CAAC;wCACH,CAAC,EACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,aAEzB,yBAAO,MAAM,CAAC,KAAK,GAAQ,EAC1B,QAAQ,CAAC,CAAC,CAAC,eAAM,SAAS,EAAE,MAAM,CAAC,KAAK,uBAAU,CAAC,CAAC,CAAC,IAAI,KAvBrD,MAAM,CAAC,KAAK,IAAI,SAAS,CAwBvB,CACV,CAAC;gCACJ,CAAC,CAAC;gCACJ,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC"}