@fragments-sdk/ui 0.16.1 → 0.17.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 (132) hide show
  1. package/dist/assets/ui.css +1880 -1602
  2. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  3. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  4. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  5. package/dist/components/Alert/Alert.module.scss.js +12 -12
  6. package/dist/components/Alert/index.cjs +2 -1
  7. package/dist/components/Alert/index.d.ts.map +1 -1
  8. package/dist/components/Alert/index.js +2 -1
  9. package/dist/components/Avatar/index.cjs +12 -4
  10. package/dist/components/Avatar/index.d.ts.map +1 -1
  11. package/dist/components/Avatar/index.js +12 -4
  12. package/dist/components/Badge/Badge.module.scss.cjs +13 -13
  13. package/dist/components/Badge/Badge.module.scss.js +13 -13
  14. package/dist/components/Button/Button.module.scss.cjs +11 -11
  15. package/dist/components/Button/Button.module.scss.js +11 -11
  16. package/dist/components/Button/index.cjs +51 -4
  17. package/dist/components/Button/index.d.ts.map +1 -1
  18. package/dist/components/Button/index.js +51 -4
  19. package/dist/components/Card/Card.module.scss.cjs +14 -14
  20. package/dist/components/Card/Card.module.scss.js +14 -14
  21. package/dist/components/Card/index.cjs +35 -2
  22. package/dist/components/Card/index.d.ts.map +1 -1
  23. package/dist/components/Card/index.js +35 -2
  24. package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
  25. package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
  26. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  27. package/dist/components/Chip/Chip.module.scss.js +15 -15
  28. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +21 -21
  29. package/dist/components/CodeBlock/CodeBlock.module.scss.js +21 -21
  30. package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
  31. package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
  32. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  33. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  34. package/dist/components/Combobox/Combobox.module.scss.cjs +24 -24
  35. package/dist/components/Combobox/Combobox.module.scss.js +24 -24
  36. package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
  37. package/dist/components/DataTable/DataTable.module.scss.js +26 -26
  38. package/dist/components/DatePicker/DatePicker.module.scss.cjs +31 -31
  39. package/dist/components/DatePicker/DatePicker.module.scss.js +31 -31
  40. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  41. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  42. package/dist/components/Drawer/Drawer.module.scss.cjs +26 -26
  43. package/dist/components/Drawer/Drawer.module.scss.js +26 -26
  44. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  45. package/dist/components/Editor/Editor.module.scss.js +17 -17
  46. package/dist/components/Fieldset/Fieldset.module.scss.cjs +6 -3
  47. package/dist/components/Fieldset/Fieldset.module.scss.js +6 -3
  48. package/dist/components/Fieldset/index.cjs +7 -1
  49. package/dist/components/Fieldset/index.d.ts +6 -1
  50. package/dist/components/Fieldset/index.d.ts.map +1 -1
  51. package/dist/components/Fieldset/index.js +7 -1
  52. package/dist/components/Header/Header.module.scss.cjs +21 -21
  53. package/dist/components/Header/Header.module.scss.js +21 -21
  54. package/dist/components/Input/Input.module.scss.cjs +27 -15
  55. package/dist/components/Input/Input.module.scss.js +27 -15
  56. package/dist/components/Input/index.cjs +20 -7
  57. package/dist/components/Input/index.d.ts +8 -2
  58. package/dist/components/Input/index.d.ts.map +1 -1
  59. package/dist/components/Input/index.js +20 -7
  60. package/dist/components/Link/Link.module.scss.cjs +10 -10
  61. package/dist/components/Link/Link.module.scss.js +10 -10
  62. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  63. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  64. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  65. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  66. package/dist/components/Pagination/Pagination.module.scss.cjs +7 -7
  67. package/dist/components/Pagination/Pagination.module.scss.js +7 -7
  68. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  69. package/dist/components/Popover/Popover.module.scss.js +10 -10
  70. package/dist/components/Prompt/Prompt.module.scss.cjs +14 -14
  71. package/dist/components/Prompt/Prompt.module.scss.js +14 -14
  72. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +16 -16
  73. package/dist/components/RadioGroup/RadioGroup.module.scss.js +16 -16
  74. package/dist/components/Select/Select.module.scss.cjs +17 -17
  75. package/dist/components/Select/Select.module.scss.js +17 -17
  76. package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
  77. package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
  78. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  79. package/dist/components/Slider/Slider.module.scss.js +12 -12
  80. package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
  81. package/dist/components/Tabs/Tabs.module.scss.js +9 -9
  82. package/dist/components/Textarea/Textarea.module.scss.cjs +34 -19
  83. package/dist/components/Textarea/Textarea.module.scss.js +34 -19
  84. package/dist/components/Textarea/index.cjs +36 -6
  85. package/dist/components/Textarea/index.d.ts +6 -2
  86. package/dist/components/Textarea/index.d.ts.map +1 -1
  87. package/dist/components/Textarea/index.js +36 -6
  88. package/dist/components/Theme/ThemeToggle.module.scss.cjs +6 -6
  89. package/dist/components/Theme/ThemeToggle.module.scss.js +6 -6
  90. package/dist/components/Toast/Toast.module.scss.cjs +22 -22
  91. package/dist/components/Toast/Toast.module.scss.js +22 -22
  92. package/dist/components/Toggle/Toggle.module.scss.cjs +13 -13
  93. package/dist/components/Toggle/Toggle.module.scss.js +13 -13
  94. package/dist/components/Toggle/index.cjs +7 -3
  95. package/dist/components/Toggle/index.d.ts.map +1 -1
  96. package/dist/components/Toggle/index.js +7 -3
  97. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
  98. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.d.ts.map +1 -1
  101. package/fragments.json +1 -1
  102. package/package.json +1 -1
  103. package/src/components/Alert/Alert.module.scss +8 -8
  104. package/src/components/Alert/index.tsx +2 -1
  105. package/src/components/Avatar/index.tsx +6 -2
  106. package/src/components/Badge/Badge.module.scss +17 -11
  107. package/src/components/Button/Button.module.scss +6 -5
  108. package/src/components/Button/index.tsx +60 -4
  109. package/src/components/Card/index.tsx +48 -3
  110. package/src/components/Checkbox/Checkbox.module.scss +16 -9
  111. package/src/components/ColorPicker/ColorPicker.module.scss +5 -13
  112. package/src/components/Combobox/Combobox.module.scss +30 -25
  113. package/src/components/DatePicker/DatePicker.module.scss +18 -28
  114. package/src/components/Editor/Editor.module.scss +23 -15
  115. package/src/components/Fieldset/Fieldset.module.scss +12 -6
  116. package/src/components/Fieldset/index.tsx +11 -1
  117. package/src/components/Input/Input.module.scss +97 -26
  118. package/src/components/Input/index.tsx +31 -12
  119. package/src/components/Listbox/Listbox.module.scss +9 -2
  120. package/src/components/RadioGroup/RadioGroup.module.scss +8 -6
  121. package/src/components/Select/Select.module.scss +10 -24
  122. package/src/components/Slider/Slider.module.scss +12 -22
  123. package/src/components/Textarea/Textarea.module.scss +49 -18
  124. package/src/components/Textarea/index.tsx +43 -12
  125. package/src/components/Toast/Toast.module.scss +48 -8
  126. package/src/components/Toggle/Toggle.module.scss +21 -35
  127. package/src/components/Toggle/index.tsx +11 -3
  128. package/src/components/ToggleGroup/ToggleGroup.module.scss +23 -19
  129. package/src/index.ts +1 -0
  130. package/src/styles/globals.scss +4 -1
  131. package/src/tokens/_mixins.scss +57 -4
  132. package/src/tokens/_variables.scss +20 -1
@@ -1,19 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const wrapper = "_wrapper_efebc_1";
4
- const label = "_label_efebc_6";
5
- const required = "_required_efebc_14";
6
- const helper = "_helper_efebc_19";
7
- const helperError = "_helperError_efebc_26";
8
- const errorMessage = "_errorMessage_efebc_30";
9
- const textarea = "_textarea_efebc_36";
10
- const sm = "_sm_efebc_80";
11
- const lg = "_lg_efebc_85";
12
- const resizeNone = "_resize-none_efebc_90";
13
- const resizeVertical = "_resize-vertical_efebc_94";
14
- const resizeHorizontal = "_resize-horizontal_efebc_98";
15
- const resizeBoth = "_resize-both_efebc_102";
16
- const error = "_error_efebc_30";
3
+ const wrapper = "_wrapper_1xzw4_1";
4
+ const label = "_label_1xzw4_6";
5
+ const required = "_required_1xzw4_14";
6
+ const helper = "_helper_1xzw4_19";
7
+ const helperError = "_helperError_1xzw4_26";
8
+ const errorMessage = "_errorMessage_1xzw4_30";
9
+ const textarea = "_textarea_1xzw4_36";
10
+ const sm = "_sm_1xzw4_83";
11
+ const lg = "_lg_1xzw4_88";
12
+ const resizeNone = "_resize-none_1xzw4_93";
13
+ const resizeVertical = "_resize-vertical_1xzw4_97";
14
+ const resizeHorizontal = "_resize-horizontal_1xzw4_101";
15
+ const resizeBoth = "_resize-both_1xzw4_105";
16
+ const error = "_error_1xzw4_30";
17
+ const success = "_success_1xzw4_120";
18
+ const helperSuccess = "_helperSuccess_1xzw4_134";
19
+ const footer = "_footer_1xzw4_138";
20
+ const charCount = "_charCount_1xzw4_149";
21
+ const charCountOver = "_charCountOver_1xzw4_159";
17
22
  const styles = {
18
23
  wrapper,
19
24
  label,
@@ -24,21 +29,30 @@ const styles = {
24
29
  textarea,
25
30
  sm,
26
31
  lg,
27
- "resize-none": "_resize-none_efebc_90",
32
+ "resize-none": "_resize-none_1xzw4_93",
28
33
  resizeNone,
29
- "resize-vertical": "_resize-vertical_efebc_94",
34
+ "resize-vertical": "_resize-vertical_1xzw4_97",
30
35
  resizeVertical,
31
- "resize-horizontal": "_resize-horizontal_efebc_98",
36
+ "resize-horizontal": "_resize-horizontal_1xzw4_101",
32
37
  resizeHorizontal,
33
- "resize-both": "_resize-both_efebc_102",
38
+ "resize-both": "_resize-both_1xzw4_105",
34
39
  resizeBoth,
35
- error
40
+ error,
41
+ success,
42
+ helperSuccess,
43
+ footer,
44
+ charCount,
45
+ charCountOver
36
46
  };
47
+ exports.charCount = charCount;
48
+ exports.charCountOver = charCountOver;
37
49
  exports.default = styles;
38
50
  exports.error = error;
39
51
  exports.errorMessage = errorMessage;
52
+ exports.footer = footer;
40
53
  exports.helper = helper;
41
54
  exports.helperError = helperError;
55
+ exports.helperSuccess = helperSuccess;
42
56
  exports.label = label;
43
57
  exports.lg = lg;
44
58
  exports.required = required;
@@ -47,5 +61,6 @@ exports.resizeHorizontal = resizeHorizontal;
47
61
  exports.resizeNone = resizeNone;
48
62
  exports.resizeVertical = resizeVertical;
49
63
  exports.sm = sm;
64
+ exports.success = success;
50
65
  exports.textarea = textarea;
51
66
  exports.wrapper = wrapper;
@@ -1,17 +1,22 @@
1
- const wrapper = "_wrapper_efebc_1";
2
- const label = "_label_efebc_6";
3
- const required = "_required_efebc_14";
4
- const helper = "_helper_efebc_19";
5
- const helperError = "_helperError_efebc_26";
6
- const errorMessage = "_errorMessage_efebc_30";
7
- const textarea = "_textarea_efebc_36";
8
- const sm = "_sm_efebc_80";
9
- const lg = "_lg_efebc_85";
10
- const resizeNone = "_resize-none_efebc_90";
11
- const resizeVertical = "_resize-vertical_efebc_94";
12
- const resizeHorizontal = "_resize-horizontal_efebc_98";
13
- const resizeBoth = "_resize-both_efebc_102";
14
- const error = "_error_efebc_30";
1
+ const wrapper = "_wrapper_1xzw4_1";
2
+ const label = "_label_1xzw4_6";
3
+ const required = "_required_1xzw4_14";
4
+ const helper = "_helper_1xzw4_19";
5
+ const helperError = "_helperError_1xzw4_26";
6
+ const errorMessage = "_errorMessage_1xzw4_30";
7
+ const textarea = "_textarea_1xzw4_36";
8
+ const sm = "_sm_1xzw4_83";
9
+ const lg = "_lg_1xzw4_88";
10
+ const resizeNone = "_resize-none_1xzw4_93";
11
+ const resizeVertical = "_resize-vertical_1xzw4_97";
12
+ const resizeHorizontal = "_resize-horizontal_1xzw4_101";
13
+ const resizeBoth = "_resize-both_1xzw4_105";
14
+ const error = "_error_1xzw4_30";
15
+ const success = "_success_1xzw4_120";
16
+ const helperSuccess = "_helperSuccess_1xzw4_134";
17
+ const footer = "_footer_1xzw4_138";
18
+ const charCount = "_charCount_1xzw4_149";
19
+ const charCountOver = "_charCountOver_1xzw4_159";
15
20
  const styles = {
16
21
  wrapper,
17
22
  label,
@@ -22,22 +27,31 @@ const styles = {
22
27
  textarea,
23
28
  sm,
24
29
  lg,
25
- "resize-none": "_resize-none_efebc_90",
30
+ "resize-none": "_resize-none_1xzw4_93",
26
31
  resizeNone,
27
- "resize-vertical": "_resize-vertical_efebc_94",
32
+ "resize-vertical": "_resize-vertical_1xzw4_97",
28
33
  resizeVertical,
29
- "resize-horizontal": "_resize-horizontal_efebc_98",
34
+ "resize-horizontal": "_resize-horizontal_1xzw4_101",
30
35
  resizeHorizontal,
31
- "resize-both": "_resize-both_efebc_102",
36
+ "resize-both": "_resize-both_1xzw4_105",
32
37
  resizeBoth,
33
- error
38
+ error,
39
+ success,
40
+ helperSuccess,
41
+ footer,
42
+ charCount,
43
+ charCountOver
34
44
  };
35
45
  export {
46
+ charCount,
47
+ charCountOver,
36
48
  styles as default,
37
49
  error,
38
50
  errorMessage,
51
+ footer,
39
52
  helper,
40
53
  helperError,
54
+ helperSuccess,
41
55
  label,
42
56
  lg,
43
57
  required,
@@ -46,6 +60,7 @@ export {
46
60
  resizeNone,
47
61
  resizeVertical,
48
62
  sm,
63
+ success,
49
64
  textarea,
50
65
  wrapper
51
66
  };
@@ -33,6 +33,8 @@ const TextareaRoot = React__namespace.forwardRef(
33
33
  size = "md",
34
34
  disabled = false,
35
35
  error = false,
36
+ success = false,
37
+ showCharCount = false,
36
38
  label,
37
39
  helperText,
38
40
  onChange,
@@ -58,13 +60,21 @@ const TextareaRoot = React__namespace.forwardRef(
58
60
  const textareaId = id || generatedId;
59
61
  const labelId = label ? `${textareaId}-label` : void 0;
60
62
  const helperId = `${textareaId}-helper`;
63
+ const [charCount, setCharCount] = React__namespace.useState(
64
+ () => (value ?? defaultValue ?? "").length
65
+ );
61
66
  const textareaClasses = [
62
67
  Textarea_module.default.textarea,
63
68
  Textarea_module.default[size],
64
69
  error && Textarea_module.default.error,
70
+ success && Textarea_module.default.success,
65
71
  Textarea_module.default[`resize-${resize}`]
66
72
  ].filter(Boolean).join(" ");
67
- const helperClasses = [Textarea_module.default.helper, error && Textarea_module.default.helperError].filter(Boolean).join(" ");
73
+ const helperClasses = [
74
+ Textarea_module.default.helper,
75
+ error && Textarea_module.default.helperError,
76
+ success && Textarea_module.default.helperSuccess
77
+ ].filter(Boolean).join(" ");
68
78
  const textareaInlineStyle = {};
69
79
  if (minRows) {
70
80
  textareaInlineStyle.minHeight = `calc(${minRows} * 1.5em + 1.5rem)`;
@@ -76,6 +86,7 @@ const TextareaRoot = React__namespace.forwardRef(
76
86
  "div",
77
87
  {
78
88
  ...rootProps,
89
+ "data-success": success || void 0,
79
90
  className: [Textarea_module.default.wrapper, rootProps == null ? void 0 : rootProps.className, className].filter(Boolean).join(" "),
80
91
  style: { ...(rootProps == null ? void 0 : rootProps.style) ?? {}, ...wrapperStyle ?? {} },
81
92
  children: [
@@ -105,16 +116,35 @@ const TextareaRoot = React__namespace.forwardRef(
105
116
  helperText ? helperId : void 0
106
117
  ),
107
118
  onChange: (e) => {
108
- onChange == null ? void 0 : onChange(e.target.value);
109
- onValueChange == null ? void 0 : onValueChange(e.target.value);
119
+ const val = e.target.value;
120
+ setCharCount(val.length);
121
+ onChange == null ? void 0 : onChange(val);
122
+ onValueChange == null ? void 0 : onValueChange(val);
110
123
  },
111
- onBlur: () => onBlur == null ? void 0 : onBlur(),
112
- onFocus: () => onFocus == null ? void 0 : onFocus(),
124
+ onBlur: (e) => onBlur == null ? void 0 : onBlur(e),
125
+ onFocus: (e) => onFocus == null ? void 0 : onFocus(e),
113
126
  className: textareaClasses,
114
127
  style: Object.keys(textareaInlineStyle).length > 0 ? textareaInlineStyle : void 0
115
128
  }
116
129
  ),
117
- helperText && /* @__PURE__ */ jsxRuntime.jsx("span", { id: helperId, className: helperClasses, children: helperText })
130
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Textarea_module.default.footer, children: [
131
+ helperText && /* @__PURE__ */ jsxRuntime.jsx("span", { id: helperId, className: helperClasses, children: helperText }),
132
+ showCharCount && maxLength != null && /* @__PURE__ */ jsxRuntime.jsxs(
133
+ "span",
134
+ {
135
+ className: [
136
+ Textarea_module.default.charCount,
137
+ charCount > maxLength && Textarea_module.default.charCountOver
138
+ ].filter(Boolean).join(" "),
139
+ "aria-live": "polite",
140
+ children: [
141
+ charCount,
142
+ "/",
143
+ maxLength
144
+ ]
145
+ }
146
+ )
147
+ ] })
118
148
  ]
119
149
  }
120
150
  );
@@ -21,6 +21,10 @@ export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTex
21
21
  disabled?: boolean;
22
22
  /** Error state */
23
23
  error?: boolean;
24
+ /** Success state */
25
+ success?: boolean;
26
+ /** Show character count when maxLength is set */
27
+ showCharCount?: boolean;
24
28
  /** Label text above the textarea */
25
29
  label?: string;
26
30
  /** Helper text below the textarea */
@@ -30,9 +34,9 @@ export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTex
30
34
  /** Alias for onChange (value-first callback) */
31
35
  onValueChange?: (value: string) => void;
32
36
  /** Called when textarea loses focus */
33
- onBlur?: () => void;
37
+ onBlur?: React.FocusEventHandler<HTMLTextAreaElement>;
34
38
  /** Called when textarea receives focus */
35
- onFocus?: () => void;
39
+ onFocus?: React.FocusEventHandler<HTMLTextAreaElement>;
36
40
  /** Form field name */
37
41
  name?: string;
38
42
  /** Maximum character length */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EACjD,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CACnE;IACC,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IACrD;uBACmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gDAAgD;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAmHD,eAAO,MAAM,QAAQ;;CAEnB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EACjD,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CACnE;IACC,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;IACrD;uBACmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gDAAgD;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,uCAAuC;IACvC,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACtD,0CAA0C;IAC1C,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACvD,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACjD,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AA8ID,eAAO,MAAM,QAAQ;;CAEnB,CAAC"}
@@ -14,6 +14,8 @@ const TextareaRoot = React.forwardRef(
14
14
  size = "md",
15
15
  disabled = false,
16
16
  error = false,
17
+ success = false,
18
+ showCharCount = false,
17
19
  label,
18
20
  helperText,
19
21
  onChange,
@@ -39,13 +41,21 @@ const TextareaRoot = React.forwardRef(
39
41
  const textareaId = id || generatedId;
40
42
  const labelId = label ? `${textareaId}-label` : void 0;
41
43
  const helperId = `${textareaId}-helper`;
44
+ const [charCount, setCharCount] = React.useState(
45
+ () => (value ?? defaultValue ?? "").length
46
+ );
42
47
  const textareaClasses = [
43
48
  styles.textarea,
44
49
  styles[size],
45
50
  error && styles.error,
51
+ success && styles.success,
46
52
  styles[`resize-${resize}`]
47
53
  ].filter(Boolean).join(" ");
48
- const helperClasses = [styles.helper, error && styles.helperError].filter(Boolean).join(" ");
54
+ const helperClasses = [
55
+ styles.helper,
56
+ error && styles.helperError,
57
+ success && styles.helperSuccess
58
+ ].filter(Boolean).join(" ");
49
59
  const textareaInlineStyle = {};
50
60
  if (minRows) {
51
61
  textareaInlineStyle.minHeight = `calc(${minRows} * 1.5em + 1.5rem)`;
@@ -57,6 +67,7 @@ const TextareaRoot = React.forwardRef(
57
67
  "div",
58
68
  {
59
69
  ...rootProps,
70
+ "data-success": success || void 0,
60
71
  className: [styles.wrapper, rootProps == null ? void 0 : rootProps.className, className].filter(Boolean).join(" "),
61
72
  style: { ...(rootProps == null ? void 0 : rootProps.style) ?? {}, ...wrapperStyle ?? {} },
62
73
  children: [
@@ -86,16 +97,35 @@ const TextareaRoot = React.forwardRef(
86
97
  helperText ? helperId : void 0
87
98
  ),
88
99
  onChange: (e) => {
89
- onChange == null ? void 0 : onChange(e.target.value);
90
- onValueChange == null ? void 0 : onValueChange(e.target.value);
100
+ const val = e.target.value;
101
+ setCharCount(val.length);
102
+ onChange == null ? void 0 : onChange(val);
103
+ onValueChange == null ? void 0 : onValueChange(val);
91
104
  },
92
- onBlur: () => onBlur == null ? void 0 : onBlur(),
93
- onFocus: () => onFocus == null ? void 0 : onFocus(),
105
+ onBlur: (e) => onBlur == null ? void 0 : onBlur(e),
106
+ onFocus: (e) => onFocus == null ? void 0 : onFocus(e),
94
107
  className: textareaClasses,
95
108
  style: Object.keys(textareaInlineStyle).length > 0 ? textareaInlineStyle : void 0
96
109
  }
97
110
  ),
98
- helperText && /* @__PURE__ */ jsx("span", { id: helperId, className: helperClasses, children: helperText })
111
+ /* @__PURE__ */ jsxs("div", { className: styles.footer, children: [
112
+ helperText && /* @__PURE__ */ jsx("span", { id: helperId, className: helperClasses, children: helperText }),
113
+ showCharCount && maxLength != null && /* @__PURE__ */ jsxs(
114
+ "span",
115
+ {
116
+ className: [
117
+ styles.charCount,
118
+ charCount > maxLength && styles.charCountOver
119
+ ].filter(Boolean).join(" "),
120
+ "aria-live": "polite",
121
+ children: [
122
+ charCount,
123
+ "/",
124
+ maxLength
125
+ ]
126
+ }
127
+ )
128
+ ] })
99
129
  ]
100
130
  }
101
131
  );
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const toggleGroup = "_toggleGroup_bv2fv_1";
4
- const toggleButton = "_toggleButton_bv2fv_9";
5
- const toggleButtonActive = "_toggleButtonActive_bv2fv_43";
6
- const sizeSm = "_sizeSm_bv2fv_60";
7
- const sizeMd = "_sizeMd_bv2fv_69";
8
- const sizeLg = "_sizeLg_bv2fv_78";
3
+ const toggleGroup = "_toggleGroup_1kmiy_1";
4
+ const toggleButton = "_toggleButton_1kmiy_9";
5
+ const toggleButtonActive = "_toggleButtonActive_1kmiy_43";
6
+ const sizeSm = "_sizeSm_1kmiy_60";
7
+ const sizeMd = "_sizeMd_1kmiy_69";
8
+ const sizeLg = "_sizeLg_1kmiy_78";
9
9
  const styles = {
10
10
  toggleGroup,
11
11
  toggleButton,
@@ -1,9 +1,9 @@
1
- const toggleGroup = "_toggleGroup_bv2fv_1";
2
- const toggleButton = "_toggleButton_bv2fv_9";
3
- const toggleButtonActive = "_toggleButtonActive_bv2fv_43";
4
- const sizeSm = "_sizeSm_bv2fv_60";
5
- const sizeMd = "_sizeMd_bv2fv_69";
6
- const sizeLg = "_sizeLg_bv2fv_78";
1
+ const toggleGroup = "_toggleGroup_1kmiy_1";
2
+ const toggleButton = "_toggleButton_1kmiy_9";
3
+ const toggleButtonActive = "_toggleButtonActive_1kmiy_43";
4
+ const sizeSm = "_sizeSm_1kmiy_60";
5
+ const sizeMd = "_sizeMd_1kmiy_69";
6
+ const sizeLg = "_sizeLg_1kmiy_78";
7
7
  const styles = {
8
8
  toggleGroup,
9
9
  toggleButton,
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const container = "_container_19oju_1";
4
- const topleft = "_topleft_19oju_15";
5
- const topcenter = "_topcenter_19oju_20";
6
- const topright = "_topright_19oju_26";
7
- const bottomleft = "_bottomleft_19oju_31";
8
- const bottomcenter = "_bottomcenter_19oju_37";
9
- const bottomright = "_bottomright_19oju_44";
10
- const toast = "_toast_19oju_50";
11
- const toastEnter = "_toastEnter_19oju_1";
12
- const icon = "_icon_19oju_73";
13
- const success = "_success_19oju_77";
14
- const error = "_error_19oju_84";
15
- const warning = "_warning_19oju_91";
16
- const info = "_info_19oju_98";
17
- const content = "_content_19oju_116";
18
- const title = "_title_19oju_121";
19
- const description = "_description_19oju_128";
20
- const action = "_action_19oju_135";
21
- const close = "_close_19oju_160";
3
+ const container = "_container_18ve0_1";
4
+ const topleft = "_topleft_18ve0_15";
5
+ const topcenter = "_topcenter_18ve0_20";
6
+ const topright = "_topright_18ve0_26";
7
+ const bottomleft = "_bottomleft_18ve0_31";
8
+ const bottomcenter = "_bottomcenter_18ve0_37";
9
+ const bottomright = "_bottomright_18ve0_44";
10
+ const toast = "_toast_18ve0_50";
11
+ const toastEnter = "_toastEnter_18ve0_1";
12
+ const icon = "_icon_18ve0_73";
13
+ const success = "_success_18ve0_77";
14
+ const title = "_title_18ve0_81";
15
+ const description = "_description_18ve0_84";
16
+ const error = "_error_18ve0_92";
17
+ const warning = "_warning_18ve0_107";
18
+ const info = "_info_18ve0_122";
19
+ const content = "_content_18ve0_148";
20
+ const action = "_action_18ve0_167";
21
+ const close = "_close_18ve0_192";
22
22
  const styles = {
23
23
  container,
24
24
  topleft,
@@ -29,15 +29,15 @@ const styles = {
29
29
  bottomright,
30
30
  toast,
31
31
  toastEnter,
32
- "default": "_default_19oju_73",
32
+ "default": "_default_18ve0_73",
33
33
  icon,
34
34
  success,
35
+ title,
36
+ description,
35
37
  error,
36
38
  warning,
37
39
  info,
38
40
  content,
39
- title,
40
- description,
41
41
  action,
42
42
  close
43
43
  };
@@ -1,22 +1,22 @@
1
- const container = "_container_19oju_1";
2
- const topleft = "_topleft_19oju_15";
3
- const topcenter = "_topcenter_19oju_20";
4
- const topright = "_topright_19oju_26";
5
- const bottomleft = "_bottomleft_19oju_31";
6
- const bottomcenter = "_bottomcenter_19oju_37";
7
- const bottomright = "_bottomright_19oju_44";
8
- const toast = "_toast_19oju_50";
9
- const toastEnter = "_toastEnter_19oju_1";
10
- const icon = "_icon_19oju_73";
11
- const success = "_success_19oju_77";
12
- const error = "_error_19oju_84";
13
- const warning = "_warning_19oju_91";
14
- const info = "_info_19oju_98";
15
- const content = "_content_19oju_116";
16
- const title = "_title_19oju_121";
17
- const description = "_description_19oju_128";
18
- const action = "_action_19oju_135";
19
- const close = "_close_19oju_160";
1
+ const container = "_container_18ve0_1";
2
+ const topleft = "_topleft_18ve0_15";
3
+ const topcenter = "_topcenter_18ve0_20";
4
+ const topright = "_topright_18ve0_26";
5
+ const bottomleft = "_bottomleft_18ve0_31";
6
+ const bottomcenter = "_bottomcenter_18ve0_37";
7
+ const bottomright = "_bottomright_18ve0_44";
8
+ const toast = "_toast_18ve0_50";
9
+ const toastEnter = "_toastEnter_18ve0_1";
10
+ const icon = "_icon_18ve0_73";
11
+ const success = "_success_18ve0_77";
12
+ const title = "_title_18ve0_81";
13
+ const description = "_description_18ve0_84";
14
+ const error = "_error_18ve0_92";
15
+ const warning = "_warning_18ve0_107";
16
+ const info = "_info_18ve0_122";
17
+ const content = "_content_18ve0_148";
18
+ const action = "_action_18ve0_167";
19
+ const close = "_close_18ve0_192";
20
20
  const styles = {
21
21
  container,
22
22
  topleft,
@@ -27,15 +27,15 @@ const styles = {
27
27
  bottomright,
28
28
  toast,
29
29
  toastEnter,
30
- "default": "_default_19oju_73",
30
+ "default": "_default_18ve0_73",
31
31
  icon,
32
32
  success,
33
+ title,
34
+ description,
33
35
  error,
34
36
  warning,
35
37
  info,
36
38
  content,
37
- title,
38
- description,
39
39
  action,
40
40
  close
41
41
  };
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const root = "_root_1g50k_1";
4
- const rootWithHelper = "_rootWithHelper_1g50k_14";
5
- const track = "_track_1g50k_17";
6
- const trackSm = "_trackSm_1g50k_47";
7
- const trackLg = "_trackLg_1g50k_59";
8
- const trackMd = "_trackMd_1g50k_71";
9
- const thumb = "_thumb_1g50k_83";
10
- const content = "_content_1g50k_107";
11
- const label = "_label_1g50k_111";
12
- const labelSm = "_labelSm_1g50k_119";
13
- const labelLg = "_labelLg_1g50k_123";
14
- const helper = "_helper_1g50k_127";
15
- const helperSm = "_helperSm_1g50k_135";
3
+ const root = "_root_7kgme_1";
4
+ const rootWithHelper = "_rootWithHelper_7kgme_14";
5
+ const track = "_track_7kgme_17";
6
+ const trackSm = "_trackSm_7kgme_49";
7
+ const trackLg = "_trackLg_7kgme_61";
8
+ const trackMd = "_trackMd_7kgme_73";
9
+ const thumb = "_thumb_7kgme_85";
10
+ const content = "_content_7kgme_108";
11
+ const label = "_label_7kgme_112";
12
+ const labelSm = "_labelSm_7kgme_120";
13
+ const labelLg = "_labelLg_7kgme_124";
14
+ const helper = "_helper_7kgme_128";
15
+ const helperSm = "_helperSm_7kgme_136";
16
16
  const styles = {
17
17
  root,
18
18
  rootWithHelper,
@@ -1,16 +1,16 @@
1
- const root = "_root_1g50k_1";
2
- const rootWithHelper = "_rootWithHelper_1g50k_14";
3
- const track = "_track_1g50k_17";
4
- const trackSm = "_trackSm_1g50k_47";
5
- const trackLg = "_trackLg_1g50k_59";
6
- const trackMd = "_trackMd_1g50k_71";
7
- const thumb = "_thumb_1g50k_83";
8
- const content = "_content_1g50k_107";
9
- const label = "_label_1g50k_111";
10
- const labelSm = "_labelSm_1g50k_119";
11
- const labelLg = "_labelLg_1g50k_123";
12
- const helper = "_helper_1g50k_127";
13
- const helperSm = "_helperSm_1g50k_135";
1
+ const root = "_root_7kgme_1";
2
+ const rootWithHelper = "_rootWithHelper_7kgme_14";
3
+ const track = "_track_7kgme_17";
4
+ const trackSm = "_trackSm_7kgme_49";
5
+ const trackLg = "_trackLg_7kgme_61";
6
+ const trackMd = "_trackMd_7kgme_73";
7
+ const thumb = "_thumb_7kgme_85";
8
+ const content = "_content_7kgme_108";
9
+ const label = "_label_7kgme_112";
10
+ const labelSm = "_labelSm_7kgme_120";
11
+ const labelLg = "_labelLg_7kgme_124";
12
+ const helper = "_helper_7kgme_128";
13
+ const helperSm = "_helperSm_7kgme_136";
14
14
  const styles = {
15
15
  root,
16
16
  rootWithHelper,
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const _switch = require("@base-ui/react/switch");
6
+ const aria = require("../../utils/aria.cjs");
6
7
  const Toggle_module = require("./Toggle.module.scss.cjs");
7
8
  function _interopNamespaceDefault(e) {
8
9
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -40,6 +41,9 @@ const SwitchRoot = React__namespace.forwardRef(
40
41
  "aria-describedby": ariaDescribedBy
41
42
  }, ref) {
42
43
  const resolvedHelperText = helperText ?? description;
44
+ const generatedId = React__namespace.useId();
45
+ const resolvedId = id ?? `switch-${generatedId}`;
46
+ const helperId = resolvedHelperText ? `${resolvedId}-helper` : void 0;
43
47
  const trackClasses = [
44
48
  Toggle_module.default.track,
45
49
  size === "sm" ? Toggle_module.default.trackSm : size === "lg" ? Toggle_module.default.trackLg : Toggle_module.default.trackMd
@@ -63,7 +67,7 @@ const SwitchRoot = React__namespace.forwardRef(
63
67
  _switch.Switch.Root,
64
68
  {
65
69
  ref,
66
- id,
70
+ id: resolvedId,
67
71
  checked,
68
72
  defaultChecked,
69
73
  onCheckedChange: onCheckedChange ?? onChange,
@@ -72,12 +76,12 @@ const SwitchRoot = React__namespace.forwardRef(
72
76
  className: rootClasses,
73
77
  "aria-label": ariaLabel,
74
78
  "aria-labelledby": ariaLabelledBy,
75
- "aria-describedby": ariaDescribedBy,
79
+ "aria-describedby": aria.mergeAriaIds(ariaDescribedBy, helperId),
76
80
  children: [
77
81
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: trackClasses, "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Thumb, { className: thumbClasses }) }),
78
82
  (label || resolvedHelperText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Toggle_module.default.content, children: [
79
83
  label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: labelClasses, children: label }),
80
- resolvedHelperText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: helperClasses, children: resolvedHelperText })
84
+ resolvedHelperText && /* @__PURE__ */ jsxRuntime.jsx("span", { id: helperId, className: helperClasses, children: resolvedHelperText })
81
85
  ] })
82
86
  ]
83
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toggle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAmFtC,eAAO,MAAM,MAAM;;CAEjB,CAAC;AAEH,wCAAwC;AACxC,eAAO,MAAM,MAAM;;CAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toggle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AA0FtC,eAAO,MAAM,MAAM;;CAEjB,CAAC;AAEH,wCAAwC;AACxC,eAAO,MAAM,MAAM;;CAAS,CAAC"}