@max-ts/kit 0.28.0 → 1.1.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 (83) hide show
  1. package/lib/components/Button/Button.d.ts +1 -1
  2. package/lib/components/Button/Button.d.ts.map +1 -1
  3. package/lib/components/Combobox/Combobox.d.ts +22 -0
  4. package/lib/components/Combobox/Combobox.d.ts.map +1 -0
  5. package/lib/components/Combobox/index.d.ts +3 -0
  6. package/lib/components/Combobox/index.d.ts.map +1 -0
  7. package/lib/components/Combobox/styles.css.d.ts +22 -0
  8. package/lib/components/Combobox/styles.css.d.ts.map +1 -0
  9. package/lib/components/Combobox/types.d.ts +26 -0
  10. package/lib/components/Combobox/types.d.ts.map +1 -0
  11. package/lib/components/Input/styles.css.d.ts +0 -2
  12. package/lib/components/Input/styles.css.d.ts.map +1 -1
  13. package/lib/components/InputGroup/InputGroup.d.ts +11 -0
  14. package/lib/components/InputGroup/InputGroup.d.ts.map +1 -0
  15. package/lib/components/InputGroup/index.d.ts +3 -0
  16. package/lib/components/InputGroup/index.d.ts.map +1 -0
  17. package/lib/components/InputGroup/styles.css.d.ts +10 -0
  18. package/lib/components/InputGroup/styles.css.d.ts.map +1 -0
  19. package/lib/components/InputGroup/types.d.ts +16 -0
  20. package/lib/components/InputGroup/types.d.ts.map +1 -0
  21. package/lib/components/PageLayout/Header/Header.d.ts +7 -33
  22. package/lib/components/PageLayout/Header/Header.d.ts.map +1 -1
  23. package/lib/components/PageLayout/Header/styles.css.d.ts +3 -8
  24. package/lib/components/PageLayout/Header/styles.css.d.ts.map +1 -1
  25. package/lib/components/PageLayout/PageLayout.d.ts +1 -1
  26. package/lib/components/Textarea/Textarea.d.ts +5 -0
  27. package/lib/components/Textarea/Textarea.d.ts.map +1 -0
  28. package/lib/components/Textarea/index.d.ts +2 -0
  29. package/lib/components/Textarea/index.d.ts.map +1 -0
  30. package/lib/components/Textarea/styles.css.d.ts +2 -0
  31. package/lib/components/Textarea/styles.css.d.ts.map +1 -0
  32. package/lib/components/index.d.ts +3 -0
  33. package/lib/components/index.d.ts.map +1 -1
  34. package/lib/index.d.ts +0 -1
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.mjs +338 -152
  37. package/lib/stories/Button.stories.d.ts +1 -1
  38. package/lib/stories/Combobox.stories.d.ts +8 -0
  39. package/lib/stories/Combobox.stories.d.ts.map +1 -0
  40. package/lib/stories/DashboardLayout.stories.d.ts.map +1 -1
  41. package/lib/stories/InputGroup.stories.d.ts +8 -0
  42. package/lib/stories/InputGroup.stories.d.ts.map +1 -0
  43. package/lib/stories/MaskField.stories.d.ts +0 -1
  44. package/lib/stories/MaskField.stories.d.ts.map +1 -1
  45. package/lib/stories/Sidebar/Sidebar.stories.d.ts.map +1 -1
  46. package/lib/stories/Textarea.stories.d.ts +8 -0
  47. package/lib/stories/Textarea.stories.d.ts.map +1 -0
  48. package/lib/styles.css +515 -81
  49. package/package.json +15 -12
  50. package/lib/form/Form/Form.d.ts +0 -46
  51. package/lib/form/Form/Form.d.ts.map +0 -1
  52. package/lib/form/Form/index.d.ts +0 -2
  53. package/lib/form/Form/index.d.ts.map +0 -1
  54. package/lib/form/FormMaskField/FormMaskField.d.ts +0 -5
  55. package/lib/form/FormMaskField/FormMaskField.d.ts.map +0 -1
  56. package/lib/form/FormMaskField/index.d.ts +0 -3
  57. package/lib/form/FormMaskField/index.d.ts.map +0 -1
  58. package/lib/form/FormMaskField/types.d.ts +0 -5
  59. package/lib/form/FormMaskField/types.d.ts.map +0 -1
  60. package/lib/form/FormSubmitButton/FormSubmitButton.d.ts +0 -7
  61. package/lib/form/FormSubmitButton/FormSubmitButton.d.ts.map +0 -1
  62. package/lib/form/FormSubmitButton/index.d.ts +0 -2
  63. package/lib/form/FormSubmitButton/index.d.ts.map +0 -1
  64. package/lib/form/FormTextField/FormTextField.d.ts +0 -8
  65. package/lib/form/FormTextField/FormTextField.d.ts.map +0 -1
  66. package/lib/form/FormTextField/index.d.ts +0 -3
  67. package/lib/form/FormTextField/index.d.ts.map +0 -1
  68. package/lib/form/FormTextField/types.d.ts +0 -5
  69. package/lib/form/FormTextField/types.d.ts.map +0 -1
  70. package/lib/form/external.d.ts +0 -2
  71. package/lib/form/external.d.ts.map +0 -1
  72. package/lib/form/hooks/index.d.ts +0 -3
  73. package/lib/form/hooks/index.d.ts.map +0 -1
  74. package/lib/form/hooks/useForm/index.d.ts +0 -2
  75. package/lib/form/hooks/useForm/index.d.ts.map +0 -1
  76. package/lib/form/hooks/useForm/useForm.d.ts +0 -5
  77. package/lib/form/hooks/useForm/useForm.d.ts.map +0 -1
  78. package/lib/form/hooks/useFormContext/index.d.ts +0 -2
  79. package/lib/form/hooks/useFormContext/index.d.ts.map +0 -1
  80. package/lib/form/index.d.ts +0 -8
  81. package/lib/form/index.d.ts.map +0 -1
  82. package/lib/form/types.d.ts +0 -8
  83. package/lib/form/types.d.ts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@max-ts/kit",
3
- "version": "0.28.0",
3
+ "version": "1.1.0",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./lib/index.mjs",
6
6
  "types": "./lib/index.d.ts",
@@ -21,31 +21,34 @@
21
21
  "embla-carousel-react": "^8.6.0",
22
22
  "input-otp": "^1.4.2",
23
23
  "lucide-react": "^1.17.0",
24
- "react": "19.2.7",
25
24
  "react-day-picker": "^10.0.1",
26
- "react-dom": "19.2.7",
27
- "react-hook-form": "^7.77.0",
28
25
  "react-virtuoso": "^4.18.7",
29
26
  "sonner": "^2.0.7"
30
27
  },
28
+ "peerDependencies": {
29
+ "react": "^19.0.0",
30
+ "react-dom": "^19.0.0"
31
+ },
31
32
  "devDependencies": {
32
33
  "@biomejs/biome": "^2.4.16",
33
34
  "@changesets/cli": "^2.31.0",
34
35
  "@chromatic-com/storybook": "^5.2.1",
35
36
  "@fontsource-variable/roboto": "^5.2.10",
36
- "@rsbuild/core": "^2.0.11",
37
+ "@rsbuild/core": "^2.0.12",
37
38
  "@rsbuild/plugin-react": "^2.0.1",
38
- "@rslib/core": "^0.22.0",
39
- "@storybook/addon-docs": "10.4.2",
40
- "@storybook/addon-onboarding": "10.4.2",
41
- "@storybook/react": "10.4.2",
42
- "@types/node": "^25.9.2",
39
+ "@rslib/core": "^0.22.1",
40
+ "@storybook/addon-docs": "10.4.4",
41
+ "@storybook/addon-onboarding": "10.4.4",
42
+ "@storybook/react": "10.4.4",
43
+ "@types/node": "^25.9.3",
43
44
  "@types/react": "^19.2.17",
44
45
  "@types/react-dom": "^19.2.3",
45
46
  "@vanilla-extract/css": "^1.20.1",
46
47
  "@vanilla-extract/webpack-plugin": "^2.3.27",
47
- "rsbuild-plugin-dts": "^0.22.0",
48
- "storybook": "10.4.2",
48
+ "rsbuild-plugin-dts": "^0.22.1",
49
+ "react": "19.2.7",
50
+ "react-dom": "19.2.7",
51
+ "storybook": "10.4.4",
49
52
  "storybook-addon-rslib": "^3.3.4",
50
53
  "storybook-react-rsbuild": "^3.3.4",
51
54
  "typescript": "^6.0.3"
@@ -1,46 +0,0 @@
1
- import type { FormHTMLAttributes, ReactNode } from 'react';
2
- import type { UseFormReturn } from '../hooks';
3
- export type FormProps<FormValues extends object> = FormHTMLAttributes<HTMLFormElement> & {
4
- /**
5
- * @description Значение, которое возвращвет useForm. Необходимо для передачи в FormContext
6
- * @example
7
- * ```tsx
8
- * import { Form, useForm } from 'form';
9
- *
10
- * function App() {
11
- * const form = useForm();
12
- * const onSubmit = data => console.log(data);
13
- *
14
- * return (
15
- * <Form onSubmit={handleSubmit(onSubmit)} form={form}>
16
- * <input defaultValue="test" {...form.register("example")} />
17
- * <input type="submit" />
18
- * </form>
19
- * );
20
- * }
21
- * ```
22
- */
23
- form: UseFormReturn<FormValues>;
24
- children?: ReactNode;
25
- };
26
- /**
27
- * @description Компонент, инкапсулирующий FormProvider
28
- * @example
29
- * ```tsx
30
- * import { Form, useForm } from 'form';
31
- *
32
- * function App() {
33
- * const form = useForm();
34
- * const onSubmit = data => console.log(data);
35
- *
36
- * return (
37
- * <Form onSubmit={handleSubmit(onSubmit)} form={form}>
38
- * <input defaultValue="test" {...form.register("example")} />
39
- * <input type="submit" />
40
- * </form>
41
- * );
42
- * }
43
- * ```
44
- */
45
- export declare const Form: <FormValues extends object>({ form, children, ...props }: FormProps<FormValues>) => import("react").JSX.Element;
46
- //# sourceMappingURL=Form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../src/form/Form/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,SAAS,CAAC,UAAU,SAAS,MAAM,IAC9C,kBAAkB,CAAC,eAAe,CAAC,GAAG;IACrC;;;;;;;;;;;;;;;;;;OAkBG;IAEH,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,UAAU,SAAS,MAAM,EAAE,8BAI7C,SAAS,CAAC,UAAU,CAAC,gCASvB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './Form';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/Form/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1,5 +0,0 @@
1
- import { type MaskFieldProps } from '../../components';
2
- import type { WithFormFieldProps } from '../types';
3
- export type FormMaskFieldProps<FieldValues extends object> = WithFormFieldProps<MaskFieldProps, FieldValues>;
4
- export declare function FormMaskField<T extends object>({ name, control, ...props }: FormMaskFieldProps<T>): import("react").JSX.Element;
5
- //# sourceMappingURL=FormMaskField.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormMaskField.d.ts","sourceRoot":"","sources":["../../../src/form/FormMaskField/FormMaskField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,MAAM,kBAAkB,CAAC,WAAW,SAAS,MAAM,IAAI,kBAAkB,CAC9E,cAAc,EACd,WAAW,CACX,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,EAC/C,IAAI,EACJ,OAAO,EACP,GAAG,KAAK,EACR,EAAE,kBAAkB,CAAC,CAAC,CAAC,+BAevB"}
@@ -1,3 +0,0 @@
1
- export * from './FormMaskField';
2
- export * from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/FormMaskField/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @description Тип значения, которое сетится в state формы
3
- */
4
- export type FormMaskFieldValue = string;
5
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/form/FormMaskField/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type ButtonProps } from '../../components';
2
- export type FormSubmitButtonProps = Omit<ButtonProps, 'type'>;
3
- /**
4
- * @description Используется для форм, отображает состояние загрузки, когда форма isSubmitting
5
- */
6
- export declare const FormSubmitButton: ({ children, isLoading, ...props }: FormSubmitButtonProps) => import("react").JSX.Element;
7
- //# sourceMappingURL=FormSubmitButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormSubmitButton.d.ts","sourceRoot":"","sources":["../../../src/form/FormSubmitButton/FormSubmitButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG5D,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,mCAI9B,qBAAqB,gCAYvB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './FormSubmitButton';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/FormSubmitButton/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { type TextFieldProps } from '../../components';
2
- import type { WithFormFieldProps } from '../types';
3
- export type FormTextFieldProps<FieldValues extends object> = WithFormFieldProps<TextFieldProps, FieldValues> & {
4
- trimmed?: boolean;
5
- gridArea?: string;
6
- };
7
- export declare function FormTextField<T extends object>({ name, control, gridArea, ...props }: FormTextFieldProps<T>): import("react").JSX.Element;
8
- //# sourceMappingURL=FormTextField.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormTextField.d.ts","sourceRoot":"","sources":["../../../src/form/FormTextField/FormTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,MAAM,kBAAkB,CAAC,WAAW,SAAS,MAAM,IAAI,kBAAkB,CAC9E,cAAc,EACd,WAAW,CACX,GAAG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,EAC/C,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,kBAAkB,CAAC,CAAC,CAAC,+BAiBvB"}
@@ -1,3 +0,0 @@
1
- export * from './FormTextField';
2
- export * from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/FormTextField/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @description Тип значения, которое сетится в state формы
3
- */
4
- export type FormTextFieldValue = string;
5
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/form/FormTextField/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC"}
@@ -1,2 +0,0 @@
1
- export { Controller as FormController, FormProvider, useController as useFormController, useFieldArray as useFormFieldArray, useWatch as useFormWatch, } from 'react-hook-form';
2
- //# sourceMappingURL=external.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/form/external.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,IAAI,cAAc,EAC5B,YAAY,EACZ,aAAa,IAAI,iBAAiB,EAClC,aAAa,IAAI,iBAAiB,EAClC,QAAQ,IAAI,YAAY,GACxB,MAAM,iBAAiB,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './useForm';
2
- export * from './useFormContext';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/form/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAE1B,cAAc,kBAAkB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './useForm';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/hooks/useForm/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -1,5 +0,0 @@
1
- import { type UseFormProps, type UseFormReturn } from 'react-hook-form';
2
- import type { FieldValues } from '../../types';
3
- export declare const useForm: <TFieldValues extends FieldValues = FieldValues, TContext = unknown>({ mode, ...params }?: UseFormProps<TFieldValues, TContext>) => UseFormReturn<TFieldValues, TContext>;
4
- export type { UseFormProps, UseFormReturn };
5
- //# sourceMappingURL=useForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../src/form/hooks/useForm/useForm.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAElB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,OAAO,GACnB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,QAAQ,GAAG,OAAO,EACjB,sBAGC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAM,KAAG,aAAa,CAC3D,YAAY,EACZ,QAAQ,CAC0B,CAAC;AAEpC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export { useFormContext } from 'react-hook-form';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/hooks/useFormContext/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,8 +0,0 @@
1
- export * from './external';
2
- export * from './Form';
3
- export * from './FormMaskField';
4
- export * from './FormSubmitButton';
5
- export * from './FormTextField';
6
- export { type UseFormProps, type UseFormReturn, useForm, useFormContext, } from './hooks';
7
- export * from './types';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,OAAO,EACP,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,cAAc,SAAS,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { UseControllerProps } from 'react-hook-form';
2
- /**
3
- * @description Добавляет к переданным пропсам типы для react-hook-form. Позволяет переиспользовать логику типизации для филдов формы.
4
- * @example WithFormFieldProps<TextFieldProps, FieldValues>;
5
- */
6
- export type WithFormFieldProps<Props extends object, FieldValues extends object> = Omit<Props, 'name' | 'error'> & Omit<UseControllerProps<FieldValues>, 'rules'>;
7
- export type { ControllerProps as FormControllerProps, Field as FormField, FieldArray as FormFieldArray, FieldArrayPath as FormFieldArrayPath, FieldArrayWithId as FormFieldArrayWithId, FieldError as FormFieldError, FieldErrors as FormFieldErrors, FieldPath as FormFieldPath, FieldValues as FormFieldValues, FieldValues, Path as FormPath, RegisterOptions as FormRegisterOptions, Resolver as FormResolver, SubmitHandler, UseControllerProps as UseFormControllerProps, UseFormGetValues, UseWatchProps as UseFormWatchProps, } from 'react-hook-form';
8
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/form/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAC7B,KAAK,SAAS,MAAM,EACpB,WAAW,SAAS,MAAM,IACvB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAChC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AAEhD,YAAY,EACX,eAAe,IAAI,mBAAmB,EACtC,KAAK,IAAI,SAAS,EAClB,UAAU,IAAI,cAAc,EAC5B,cAAc,IAAI,kBAAkB,EACpC,gBAAgB,IAAI,oBAAoB,EACxC,UAAU,IAAI,cAAc,EAC5B,WAAW,IAAI,eAAe,EAC9B,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,EAC9B,WAAW,EACX,IAAI,IAAI,QAAQ,EAChB,eAAe,IAAI,mBAAmB,EACtC,QAAQ,IAAI,YAAY,EACxB,aAAa,EACb,kBAAkB,IAAI,sBAAsB,EAC5C,gBAAgB,EAChB,aAAa,IAAI,iBAAiB,GAClC,MAAM,iBAAiB,CAAC"}