@arthurzakharov/ui-kit 1.3.8 → 1.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 (279) hide show
  1. package/dist/_commonjsHelpers-CqEciG1_.js +31 -0
  2. package/dist/animations/animation-fade-grow/animation-fade-grow.component.d.ts +2 -0
  3. package/dist/animations/animation-fade-grow/animation-fade-grow.component.js +34 -0
  4. package/dist/animations/animation-fade-grow/index.d.ts +1 -0
  5. package/dist/animations/animation-fade-grow/index.js +4 -0
  6. package/dist/animations/animation-fade-scale/animation-fade-scale.component.d.ts +2 -0
  7. package/dist/animations/animation-fade-scale/animation-fade-scale.component.js +33 -0
  8. package/dist/animations/animation-fade-scale/index.d.ts +1 -0
  9. package/dist/animations/animation-fade-scale/index.js +4 -0
  10. package/dist/animations/animation-fade-slide/animation-fade-slide.component.d.ts +6 -0
  11. package/dist/animations/animation-fade-slide/animation-fade-slide.component.js +33 -0
  12. package/dist/animations/animation-fade-slide/index.d.ts +1 -0
  13. package/dist/animations/animation-fade-slide/index.js +4 -0
  14. package/dist/animations/animation-rotate/animation-rotate.component.d.ts +8 -0
  15. package/dist/animations/animation-rotate/animation-rotate.component.js +38 -0
  16. package/dist/animations/animation-rotate/index.d.ts +1 -0
  17. package/dist/animations/animation-rotate/index.js +4 -0
  18. package/dist/animations/hook/index.d.ts +1 -0
  19. package/dist/animations/hook/index.js +4 -0
  20. package/dist/animations/hook/use-animation-lifecycle/index.d.ts +1 -0
  21. package/dist/animations/hook/use-animation-lifecycle/index.js +4 -0
  22. package/dist/animations/hook/use-animation-lifecycle/use-animation-lifecycle.hook.d.ts +12 -0
  23. package/dist/animations/hook/use-animation-lifecycle/use-animation-lifecycle.hook.js +31 -0
  24. package/dist/animations/utils/default-props.d.ts +5 -0
  25. package/dist/animations/utils/default-props.js +17 -0
  26. package/dist/animations/utils/index.d.ts +2 -0
  27. package/dist/animations/utils/index.js +4 -0
  28. package/dist/animations/utils/types.d.ts +15 -0
  29. package/dist/animations/utils/types.js +1 -0
  30. package/dist/assets/control-box-Dx-QKPgf.css +1 -0
  31. package/dist/assets/control-button-Tzg6F5Dp.css +1 -0
  32. package/dist/assets/control-button-card-Cb8_vJbQ.css +1 -0
  33. package/dist/assets/control-button-radio-BodzD0rU.css +1 -0
  34. package/dist/assets/control-button-text-BbE_5ebO.css +1 -0
  35. package/dist/assets/control-card-image-BYT3bzTE.css +1 -0
  36. package/dist/assets/control-card-text-Cvv3bL2p.css +1 -0
  37. package/dist/assets/control-checkbox-uLtXjmYN.css +1 -0
  38. package/dist/assets/control-choice-BAHN-VTm.css +1 -0
  39. package/dist/assets/control-dropdown-DaS5KsvG.css +1 -0
  40. package/dist/assets/control-error-message-CKgqmo1U.css +1 -0
  41. package/dist/assets/control-hidden-input-BhMdNmnP.css +1 -0
  42. package/dist/assets/control-input-nR0XQHHp.css +1 -0
  43. package/dist/assets/control-label-C8pjaWEU.css +1 -0
  44. package/dist/assets/control-radio-Bo1rvcg2.css +1 -0
  45. package/dist/assets/control-radio-label-CgZ-FNj0.css +1 -0
  46. package/dist/assets/control-radio-text-S7MEO4a2.css +1 -0
  47. package/dist/assets/control-status-DPNvkGlM.css +1 -0
  48. package/dist/assets/control-text-n-qi7e2Y.css +1 -0
  49. package/dist/assets/control-textarea-B6gWlJs3.css +1 -0
  50. package/dist/assets/data-protected-label-BN19_NZF.css +1 -0
  51. package/dist/assets/dialog-article-WnyHZI47.css +1 -0
  52. package/dist/assets/expenses-AU5q4idk.css +1 -0
  53. package/dist/assets/loader-DadlBlOF.css +1 -0
  54. package/dist/assets/main-DlyWXITA.css +1 -0
  55. package/dist/assets/message-block-DG1cePyB.css +1 -0
  56. package/dist/components/accordion-table/accordion-table.component.d.ts +9 -7
  57. package/dist/components/accordion-table/accordion-table.component.js +44 -41
  58. package/dist/components/bottom-bar/bottom-bar.component.js +2 -2
  59. package/dist/components/certifications/certifications.component.d.ts +6 -3
  60. package/dist/components/certifications/certifications.component.js +54 -46
  61. package/dist/components/data-protected-label/data-protected-label.component.d.ts +8 -3
  62. package/dist/components/data-protected-label/data-protected-label.component.js +31 -28
  63. package/dist/components/data-protected-label/index.d.ts +1 -0
  64. package/dist/components/data-protected-label/index.js +4 -0
  65. package/dist/components/dialog-article/dialog-article.component.d.ts +9 -3
  66. package/dist/components/dialog-article/dialog-article.component.js +51 -21
  67. package/dist/components/dialog-article/index.d.ts +1 -0
  68. package/dist/components/dialog-article/index.js +4 -0
  69. package/dist/components/expenses/expenses.component.d.ts +12 -7
  70. package/dist/components/expenses/expenses.component.js +26 -20
  71. package/dist/components/expenses/index.d.ts +1 -0
  72. package/dist/components/expenses/index.js +4 -0
  73. package/dist/components/flex/flex.component.d.ts +158 -158
  74. package/dist/components/footer/footer.component.d.ts +6 -3
  75. package/dist/components/footer/footer.component.js +39 -31
  76. package/dist/components/footer/index.d.ts +1 -1
  77. package/dist/components/info-panel/info-panel.component.d.ts +6 -3
  78. package/dist/components/info-panel/info-panel.component.js +20 -12
  79. package/dist/components/information/index.d.ts +1 -1
  80. package/dist/components/information/information.component.d.ts +5 -4
  81. package/dist/components/information/information.component.js +21 -12
  82. package/dist/components/loader/index.d.ts +1 -1
  83. package/dist/components/loader/loader.component.d.ts +9 -5
  84. package/dist/components/loader/loader.component.js +42 -55
  85. package/dist/components/loader/loader.utils.d.ts +2 -0
  86. package/dist/components/loader/loader.utils.js +13 -0
  87. package/dist/components/main-attachment/main-attachment.component.js +2 -2
  88. package/dist/components/message/index.d.ts +1 -1
  89. package/dist/components/message/message.component.d.ts +6 -3
  90. package/dist/components/message/message.component.js +23 -22
  91. package/dist/components/message-block/index.d.ts +1 -0
  92. package/dist/components/message-block/index.js +4 -0
  93. package/dist/components/message-block/message-block.component.d.ts +7 -2
  94. package/dist/components/message-block/message-block.component.js +36 -18
  95. package/dist/components/not-found/not-found.component.d.ts +6 -3
  96. package/dist/components/not-found/not-found.component.js +35 -27
  97. package/dist/components/payment/components/glass/glass.component.js +1 -1
  98. package/dist/components/sidebar/components/step/step.component.d.ts +1 -1
  99. package/dist/components/sidebar/components/step/step.component.js +6 -6
  100. package/dist/components/sidebar/sidebar.component.d.ts +1 -1
  101. package/dist/components/sidebar/sidebar.component.js +9 -9
  102. package/dist/components/signature/index.d.ts +1 -1
  103. package/dist/components/signature/signature.component.d.ts +4 -4
  104. package/dist/components/signature/signature.component.js +255 -263
  105. package/dist/components/text/components/tag/tag.component.d.ts +316 -316
  106. package/dist/components/text/text.component.d.ts +316 -316
  107. package/dist/components/user-panel/user-panel.component.d.ts +6 -3
  108. package/dist/components/user-panel/user-panel.component.js +35 -27
  109. package/dist/components/warranty/warranty.component.d.ts +6 -3
  110. package/dist/components/warranty/warranty.component.js +26 -19
  111. package/dist/controls/control-box/control-box.component.d.ts +15 -0
  112. package/dist/controls/control-box/control-box.component.js +33 -0
  113. package/dist/controls/control-box/index.d.ts +2 -0
  114. package/dist/controls/control-box/index.js +4 -0
  115. package/dist/controls/control-button/control-button.component.d.ts +18 -0
  116. package/dist/controls/control-button/control-button.component.js +84 -0
  117. package/dist/controls/control-button/index.d.ts +2 -0
  118. package/dist/controls/control-button/index.js +4 -0
  119. package/dist/{components/control/components/button-card/button-card.component.d.ts → controls/control-button-card/control-button-card.component.d.ts} +4 -3
  120. package/dist/controls/control-button-card/control-button-card.component.js +65 -0
  121. package/dist/controls/control-button-card/index.d.ts +2 -0
  122. package/dist/controls/control-button-card/index.js +4 -0
  123. package/dist/controls/control-button-radio/control-button-radio.component.d.ts +19 -0
  124. package/dist/controls/control-button-radio/control-button-radio.component.js +69 -0
  125. package/dist/controls/control-button-radio/index.d.ts +2 -0
  126. package/dist/controls/control-button-radio/index.js +4 -0
  127. package/dist/controls/control-button-text/control-button-text.component.d.ts +20 -0
  128. package/dist/controls/control-button-text/control-button-text.component.js +87 -0
  129. package/dist/controls/control-button-text/index.d.ts +2 -0
  130. package/dist/controls/control-button-text/index.js +4 -0
  131. package/dist/controls/control-card-image/control-card-image.component.d.ts +8 -0
  132. package/dist/controls/control-card-image/control-card-image.component.js +53 -0
  133. package/dist/controls/control-card-image/index.d.ts +2 -0
  134. package/dist/controls/control-card-image/index.js +4 -0
  135. package/dist/controls/control-card-text/control-card-text.component.d.ts +7 -0
  136. package/dist/controls/control-card-text/control-card-text.component.js +48 -0
  137. package/dist/controls/control-card-text/index.d.ts +2 -0
  138. package/dist/controls/control-card-text/index.js +4 -0
  139. package/dist/controls/control-checkbox/control-checkbox.component.d.ts +11 -0
  140. package/dist/controls/control-checkbox/control-checkbox.component.js +96 -0
  141. package/dist/controls/control-checkbox/index.d.ts +2 -0
  142. package/dist/controls/control-checkbox/index.js +4 -0
  143. package/dist/controls/control-choice/control-choice.component.d.ts +12 -0
  144. package/dist/controls/control-choice/control-choice.component.js +64 -0
  145. package/dist/controls/control-choice/index.d.ts +2 -0
  146. package/dist/controls/control-choice/index.js +4 -0
  147. package/dist/{components/control/components/dropdown/dropdown.component.d.ts → controls/control-dropdown/control-dropdown.component.d.ts} +4 -3
  148. package/dist/controls/control-dropdown/control-dropdown.component.js +106 -0
  149. package/dist/controls/control-dropdown/index.d.ts +2 -0
  150. package/dist/controls/control-dropdown/index.js +4 -0
  151. package/dist/controls/control-error-message/control-error-message.component.d.ts +7 -0
  152. package/dist/controls/control-error-message/control-error-message.component.js +16 -0
  153. package/dist/controls/control-error-message/index.d.ts +1 -0
  154. package/dist/controls/control-error-message/index.js +4 -0
  155. package/dist/controls/control-hidden-input/control-hidden-input.component.d.ts +15 -0
  156. package/dist/controls/control-hidden-input/control-hidden-input.component.js +41 -0
  157. package/dist/controls/control-hidden-input/index.d.ts +2 -0
  158. package/dist/controls/control-hidden-input/index.js +4 -0
  159. package/dist/controls/control-input/control-input.component.d.ts +11 -0
  160. package/dist/controls/control-input/control-input.component.js +973 -0
  161. package/dist/controls/control-input/index.d.ts +2 -0
  162. package/dist/controls/control-input/index.js +4 -0
  163. package/dist/controls/control-label/control-label.component.d.ts +13 -0
  164. package/dist/controls/control-label/control-label.component.js +30 -0
  165. package/dist/controls/control-label/index.d.ts +1 -0
  166. package/dist/controls/control-label/index.js +4 -0
  167. package/dist/controls/control-radio/control-radio.component.d.ts +14 -0
  168. package/dist/controls/control-radio/control-radio.component.js +79 -0
  169. package/dist/controls/control-radio/index.d.ts +2 -0
  170. package/dist/controls/control-radio/index.js +4 -0
  171. package/dist/controls/control-radio-label/control-radio-label.component.d.ts +22 -0
  172. package/dist/controls/control-radio-label/control-radio-label.component.js +39 -0
  173. package/dist/controls/control-radio-label/index.d.ts +1 -0
  174. package/dist/controls/control-radio-label/index.js +4 -0
  175. package/dist/controls/control-radio-text/control-radio-text.component.d.ts +10 -0
  176. package/dist/controls/control-radio-text/control-radio-text.component.js +45 -0
  177. package/dist/controls/control-radio-text/index.d.ts +2 -0
  178. package/dist/controls/control-radio-text/index.js +4 -0
  179. package/dist/controls/control-status/control-status.component.d.ts +11 -0
  180. package/dist/controls/control-status/control-status.component.js +42 -0
  181. package/dist/controls/control-status/index.d.ts +1 -0
  182. package/dist/controls/control-status/index.js +4 -0
  183. package/dist/controls/control-text/control-text.component.d.ts +11 -0
  184. package/dist/controls/control-text/control-text.component.js +70 -0
  185. package/dist/controls/control-text/index.d.ts +2 -0
  186. package/dist/controls/control-text/index.js +4 -0
  187. package/dist/controls/control-textarea/control-textarea.component.d.ts +15 -0
  188. package/dist/controls/control-textarea/control-textarea.component.js +63 -0
  189. package/dist/controls/control-textarea/index.d.ts +1 -0
  190. package/dist/controls/control-textarea/index.js +4 -0
  191. package/dist/controls/hooks/index.d.ts +1 -0
  192. package/dist/controls/hooks/index.js +4 -0
  193. package/dist/controls/hooks/use-choice/index.d.ts +1 -0
  194. package/dist/controls/hooks/use-choice/index.js +4 -0
  195. package/dist/{components/control/hooks/useChoice/useChoice.hook.d.ts → controls/hooks/use-choice/use-choice.hook.d.ts} +2 -2
  196. package/dist/controls/utils/functions/index.d.ts +1 -0
  197. package/dist/controls/utils/functions/index.js +7 -0
  198. package/dist/controls/utils/index.d.ts +2 -0
  199. package/dist/controls/utils/index.js +7 -0
  200. package/dist/{components/control/control.types.d.ts → controls/utils/types.d.ts} +11 -3
  201. package/dist/main.d.ts +35 -13
  202. package/dist/main.js +101 -59
  203. package/dist/utils/functions/functions.util.d.ts +12 -2
  204. package/dist/utils/functions/functions.util.js +7 -3
  205. package/dist/utils/functions/index.js +5 -4
  206. package/dist/utils/svg/svg.component.d.ts +2 -2
  207. package/dist/utils/types.d.ts +6 -1
  208. package/package.json +6 -1
  209. package/dist/animations/animation.component.d.ts +0 -10
  210. package/dist/animations/animation.component.js +0 -13
  211. package/dist/animations/fade-grow/fade-grow.component.d.ts +0 -14
  212. package/dist/animations/fade-grow/fade-grow.component.js +0 -40
  213. package/dist/animations/fade-scale/fade-scale.component.d.ts +0 -14
  214. package/dist/animations/fade-scale/fade-scale.component.js +0 -40
  215. package/dist/animations/fade-slide/fade-slide.component.d.ts +0 -15
  216. package/dist/animations/fade-slide/fade-slide.component.js +0 -41
  217. package/dist/animations/rotate/rotate.component.d.ts +0 -18
  218. package/dist/animations/rotate/rotate.component.js +0 -43
  219. package/dist/assets/box-b_yPaNPs.css +0 -1
  220. package/dist/assets/button-4MJZ7yPE.css +0 -1
  221. package/dist/assets/button-text-CNXFsTky.css +0 -1
  222. package/dist/assets/choice-pCBafXqx.css +0 -1
  223. package/dist/assets/control-Dk23qyF8.css +0 -1
  224. package/dist/assets/data-protected-label-zRn9upL6.css +0 -1
  225. package/dist/assets/dialog-article-lpJC_c40.css +0 -1
  226. package/dist/assets/expenses-8eaHjdlH.css +0 -1
  227. package/dist/assets/fade-grow-B23oZuuD.css +0 -1
  228. package/dist/assets/hidden-input-DHJQHUKd.css +0 -1
  229. package/dist/assets/input-Cckwgcro.css +0 -1
  230. package/dist/assets/label-bo2ALC-X.css +0 -1
  231. package/dist/assets/loader-C0f3AvRU.css +0 -1
  232. package/dist/assets/main-BK_1RcKG.css +0 -1
  233. package/dist/assets/message-block-BVk5u9rO.css +0 -1
  234. package/dist/assets/radio-label-Bd5UiESO.css +0 -1
  235. package/dist/assets/radio-text-BI17l0wD.css +0 -1
  236. package/dist/assets/status-6MH80dkz.css +0 -1
  237. package/dist/components/control/components/box/box.component.d.ts +0 -10
  238. package/dist/components/control/components/box/box.component.js +0 -32
  239. package/dist/components/control/components/button/button.component.d.ts +0 -16
  240. package/dist/components/control/components/button/button.component.js +0 -82
  241. package/dist/components/control/components/button-card/button-card.component.js +0 -9
  242. package/dist/components/control/components/button-radio/button-radio.component.d.ts +0 -17
  243. package/dist/components/control/components/button-radio/button-radio.component.js +0 -7
  244. package/dist/components/control/components/button-text/button-text.component.d.ts +0 -18
  245. package/dist/components/control/components/button-text/button-text.component.js +0 -86
  246. package/dist/components/control/components/card-image/card-image.component.d.ts +0 -7
  247. package/dist/components/control/components/card-image/card-image.component.js +0 -7
  248. package/dist/components/control/components/card-text/card-text.component.d.ts +0 -6
  249. package/dist/components/control/components/card-text/card-text.component.js +0 -7
  250. package/dist/components/control/components/checkbox/checkbox.component.d.ts +0 -9
  251. package/dist/components/control/components/checkbox/checkbox.component.js +0 -8
  252. package/dist/components/control/components/choice/choice.component.d.ts +0 -10
  253. package/dist/components/control/components/choice/choice.component.js +0 -52
  254. package/dist/components/control/components/dropdown/dropdown.component.js +0 -11
  255. package/dist/components/control/components/hidden-input/hidden-input.component.d.ts +0 -12
  256. package/dist/components/control/components/hidden-input/hidden-input.component.js +0 -25
  257. package/dist/components/control/components/input/input.component.d.ts +0 -10
  258. package/dist/components/control/components/input/input.component.js +0 -7
  259. package/dist/components/control/components/label/label.component.d.ts +0 -7
  260. package/dist/components/control/components/label/label.component.js +0 -28
  261. package/dist/components/control/components/radio/radio.component.d.ts +0 -9
  262. package/dist/components/control/components/radio/radio.component.js +0 -7
  263. package/dist/components/control/components/radio-label/radio-label.component.d.ts +0 -17
  264. package/dist/components/control/components/radio-label/radio-label.component.js +0 -37
  265. package/dist/components/control/components/radio-text/radio-text.component.d.ts +0 -9
  266. package/dist/components/control/components/radio-text/radio-text.component.js +0 -29
  267. package/dist/components/control/components/status/status.component.d.ts +0 -6
  268. package/dist/components/control/components/status/status.component.js +0 -37
  269. package/dist/components/control/components/text/text.component.d.ts +0 -9
  270. package/dist/components/control/components/text/text.component.js +0 -8
  271. package/dist/components/control/components/textarea/textarea.component.d.ts +0 -9
  272. package/dist/components/control/components/textarea/textarea.component.js +0 -6
  273. package/dist/components/control/control.component.d.ts +0 -41
  274. package/dist/components/control/control.component.js +0 -14
  275. package/dist/control.component-B9Ao9mfl.js +0 -557
  276. package/dist/input.component-C5xcmnfu.js +0 -999
  277. /package/dist/{components/control/hooks/useChoice/useChoice.hook.js → controls/hooks/use-choice/use-choice.hook.js} +0 -0
  278. /package/dist/{components/control → controls}/utils/functions/functions.util.d.ts +0 -0
  279. /package/dist/{components/control → controls}/utils/functions/functions.util.js +0 -0
@@ -0,0 +1,2 @@
1
+ export { ControlInput } from './control-input.component';
2
+ export type { ControlInputProps } from './control-input.component';
@@ -0,0 +1,4 @@
1
+ import { ControlInput as t } from "./control-input.component.js";
2
+ export {
3
+ t as ControlInput
4
+ };
@@ -0,0 +1,13 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { State } from '../utils/types';
3
+ import { Base } from '../../utils/types';
4
+ interface ControlLabelProps extends Base {
5
+ state?: State;
6
+ position?: 'idle' | 'active';
7
+ }
8
+ /**
9
+ * `ControlLabel` renders field label text with active/idle positioning and validation color states.
10
+ * Use it to keep label behavior and appearance consistent across inputs.
11
+ */
12
+ export declare const ControlLabel: ({ children, position, state, ...base }: PropsWithChildren<ControlLabelProps>) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,30 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import a from "clsx";
3
+ import { baseProps as r } from "../../utils/functions/functions.util.js";
4
+ import '../../assets/control-label-C8pjaWEU.css';const _ = "_ControlLabel_l2cwl_1", n = "_Idle_l2cwl_7", d = "_Active_l2cwl_12", i = "_Success_l2cwl_21", l = {
5
+ ControlLabel: _,
6
+ Idle: n,
7
+ Active: d,
8
+ Error: "_Error_l2cwl_17",
9
+ Success: i
10
+ }, u = ({
11
+ children: s,
12
+ position: c = "idle",
13
+ state: e = "idle",
14
+ ...o
15
+ }) => /* @__PURE__ */ t(
16
+ "span",
17
+ {
18
+ "data-testid": r(o, "data-testid", "control-label"),
19
+ className: a(l.ControlLabel, r(o, "className"), {
20
+ [l.Idle]: c === "idle",
21
+ [l.Active]: c === "active",
22
+ [l.Error]: e === "error",
23
+ [l.Success]: e === "success"
24
+ }),
25
+ children: s
26
+ }
27
+ );
28
+ export {
29
+ u as ControlLabel
30
+ };
@@ -0,0 +1 @@
1
+ export { ControlLabel } from './control-label.component';
@@ -0,0 +1,4 @@
1
+ import { ControlLabel as e } from "./control-label.component.js";
2
+ export {
3
+ e as ControlLabel
4
+ };
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { Interactive, RadioChoice, State } from '../utils/types';
3
+ import { ControlChoiceProps } from '../control-choice';
4
+ import { ControlRadioTextProps } from '../control-radio-text';
5
+ import { Base } from '../../utils/types';
6
+ export interface ControlRadioProps extends Base, Interactive<string> {
7
+ orientation?: 'horizontal' | 'vertical';
8
+ choices: RadioChoice[];
9
+ state?: State;
10
+ size?: ControlChoiceProps['size'];
11
+ textSize?: ControlRadioTextProps['size'];
12
+ message?: ReactNode;
13
+ }
14
+ export declare const ControlRadio: ({ id, value, choices, onChange, orientation, state, size, textSize, message, disabled, onBlur, onFocus, className, }: ControlRadioProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,79 @@
1
+ import { jsxs as c, jsx as o } from "react/jsx-runtime";
2
+ import _ from "clsx";
3
+ import { ControlChoice as H } from "../control-choice/control-choice.component.js";
4
+ import { ControlHiddenInput as L } from "../control-hidden-input/control-hidden-input.component.js";
5
+ import { ControlRadioLabel as M } from "../control-radio-label/control-radio-label.component.js";
6
+ import { ControlRadioText as V } from "../control-radio-text/control-radio-text.component.js";
7
+ import { getChoiceId as y } from "../utils/functions/functions.util.js";
8
+ import { AnimationFadeSlide as I } from "../../animations/animation-fade-slide/animation-fade-slide.component.js";
9
+ import { ControlErrorMessage as N } from "../control-error-message/control-error-message.component.js";
10
+ import '../../assets/control-radio-Bo1rvcg2.css';const j = "_ControlRadio_14a61_1", F = "_Content_14a61_6", A = "_Horizontal_14a61_10", B = "_Vertical_14a61_15", S = "_Label_14a61_20", T = "_ErrorMessage_14a61_33", r = {
11
+ ControlRadio: j,
12
+ Content: F,
13
+ Horizontal: A,
14
+ Vertical: B,
15
+ Label: S,
16
+ ErrorMessage: T
17
+ }, Q = ({
18
+ id: t,
19
+ value: C,
20
+ choices: p,
21
+ onChange: f,
22
+ orientation: l = "horizontal",
23
+ state: i = "idle",
24
+ size: h = "md",
25
+ textSize: u = "body",
26
+ message: s = "",
27
+ disabled: m = !1,
28
+ onBlur: v = () => {
29
+ },
30
+ onFocus: g = () => {
31
+ },
32
+ className: d = ""
33
+ }) => /* @__PURE__ */ c("div", { className: _(r.ControlRadio, d), children: [
34
+ /* @__PURE__ */ o(
35
+ "div",
36
+ {
37
+ className: _(r.Content, d, {
38
+ [r.Horizontal]: l === "horizontal",
39
+ [r.Vertical]: l === "vertical"
40
+ }),
41
+ children: p.map((a, z, R) => {
42
+ const n = y(t, a.value, z);
43
+ return /* @__PURE__ */ o(M, { id: n, value: C, state: i, choice: a, choices: R, children: ({ focused: b, hovered: x, checked: e, state: E }) => /* @__PURE__ */ c("div", { className: r.Label, children: [
44
+ /* @__PURE__ */ o(
45
+ H,
46
+ {
47
+ type: "radio",
48
+ size: h,
49
+ state: E,
50
+ checked: e,
51
+ focused: b,
52
+ hovered: x,
53
+ disabled: m
54
+ }
55
+ ),
56
+ /* @__PURE__ */ o(
57
+ L,
58
+ {
59
+ type: "radio",
60
+ id: n,
61
+ value: a.value,
62
+ name: t,
63
+ checked: e,
64
+ disabled: m,
65
+ onChange: () => f(a.value, t),
66
+ onFocus: () => g(t),
67
+ onBlur: () => v(t)
68
+ }
69
+ ),
70
+ /* @__PURE__ */ o(V, { size: u, checked: e, children: a.label })
71
+ ] }) }, n);
72
+ })
73
+ }
74
+ ),
75
+ /* @__PURE__ */ o(I, { name: "message", condition: i === "error" && !!s, children: /* @__PURE__ */ o(N, { className: r.ErrorMessage, children: s }) })
76
+ ] });
77
+ export {
78
+ Q as ControlRadio
79
+ };
@@ -0,0 +1,2 @@
1
+ export { ControlRadio } from './control-radio.component';
2
+ export type { ControlRadioProps } from './control-radio.component';
@@ -0,0 +1,4 @@
1
+ import { ControlRadio as t } from "./control-radio.component.js";
2
+ export {
3
+ t as ControlRadio
4
+ };
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { ChoiceValue, RadioChoice, State } from '../utils/types';
3
+ import { Base } from '../../utils/types';
4
+ interface ControlRadioLabelProps<T extends ChoiceValue> extends Base {
5
+ id: string;
6
+ value: T;
7
+ choice: RadioChoice;
8
+ choices?: RadioChoice[];
9
+ state?: State;
10
+ children: (props: {
11
+ focused: boolean;
12
+ hovered: boolean;
13
+ checked: boolean;
14
+ state?: State;
15
+ }) => ReactNode;
16
+ }
17
+ /**
18
+ * `ControlRadioLabel` provides a stateful wrapper for individual radio choices using the render props pattern.
19
+ * It manages hover, focus, and checked states, passing them to child components. Use it to build custom radio UI implementations with consistent interaction behavior.
20
+ */
21
+ export declare const ControlRadioLabel: <T extends ChoiceValue>(props: ControlRadioLabelProps<T>) => import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsx as h } from "react/jsx-runtime";
2
+ import { useToggle as s } from "usehooks-ts";
3
+ import v from "clsx";
4
+ import { baseProps as a } from "../../utils/functions/functions.util.js";
5
+ import '../../assets/control-radio-label-CgZ-FNj0.css';const g = "_ControlRadioLabel_14ean_1", p = {
6
+ ControlRadioLabel: g
7
+ }, F = (c) => {
8
+ const { children: n, id: i, value: e, choice: o, choices: d = [], state: u = "idle", ...r } = c, [m, t] = s(!1), [b, l] = s(!1);
9
+ return /* @__PURE__ */ h(
10
+ "label",
11
+ {
12
+ "data-testid": a(r, "data-testid", "control-radio-label"),
13
+ htmlFor: i,
14
+ className: v(p.ControlRadioLabel, a(r, "className")),
15
+ onFocus: () => t(),
16
+ onBlur: () => t(),
17
+ onMouseEnter: () => l(),
18
+ onMouseLeave: () => l(),
19
+ children: n({
20
+ focused: m,
21
+ hovered: b,
22
+ checked: typeof e == "string" ? e === o.value : e.includes(o.value),
23
+ state: (() => {
24
+ switch (u) {
25
+ case "success":
26
+ return "idle";
27
+ case "error":
28
+ return d.some((f) => f.value === e) ? e === o.value ? "error" : "idle" : "error";
29
+ case "idle":
30
+ return "idle";
31
+ }
32
+ })()
33
+ })
34
+ }
35
+ );
36
+ };
37
+ export {
38
+ F as ControlRadioLabel
39
+ };
@@ -0,0 +1 @@
1
+ export { ControlRadioLabel } from './control-radio-label.component';
@@ -0,0 +1,4 @@
1
+ import { ControlRadioLabel as a } from "./control-radio-label.component.js";
2
+ export {
3
+ a as ControlRadioLabel
4
+ };
@@ -0,0 +1,10 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { Base } from '../../utils/types';
3
+ import { ControlRadioTextColor, ControlRadioTextSize } from '../utils';
4
+ export interface ControlRadioTextProps extends Base {
5
+ size?: ControlRadioTextSize;
6
+ color?: ControlRadioTextColor;
7
+ checked?: boolean;
8
+ oneLine?: boolean;
9
+ }
10
+ export declare const ControlRadioText: ({ children, size, color, checked, oneLine, className, }: PropsWithChildren<ControlRadioTextProps>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,45 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import y from "clsx";
3
+ import { Content as _ } from "../../utils/content/content.component.js";
4
+ import '../../assets/control-radio-text-S7MEO4a2.css';const l = "_ControlRadioText_wkqvo_1", m = "_TextPrimary_wkqvo_8", s = "_Content_wkqvo_8", x = "_TextSecondary_wkqvo_12", i = "_AccentPrimary_wkqvo_16", k = "_AccentSecondary_wkqvo_20", B = "_BodyExtraSmall_wkqvo_24", S = "_BodySmall_wkqvo_29", C = "_Body_wkqvo_24", v = "_BodyLarge_wkqvo_39", T = "_OneLine_wkqvo_44", q = "_Checked_wkqvo_49", o = {
5
+ ControlRadioText: l,
6
+ TextPrimary: m,
7
+ Content: s,
8
+ TextSecondary: x,
9
+ AccentPrimary: i,
10
+ AccentSecondary: k,
11
+ BodyExtraSmall: B,
12
+ BodySmall: S,
13
+ Body: C,
14
+ BodyLarge: v,
15
+ OneLine: T,
16
+ Checked: q
17
+ }, L = ({
18
+ children: a,
19
+ size: t = "body",
20
+ color: e = "text-primary",
21
+ checked: r = !1,
22
+ oneLine: c = !1,
23
+ className: d = ""
24
+ }) => /* @__PURE__ */ n(
25
+ "div",
26
+ {
27
+ "data-testid": "control-radio-text",
28
+ className: y(o.ControlRadioText, d, {
29
+ [o.TextPrimary]: e === "text-primary",
30
+ [o.TextSecondary]: e === "text-secondary",
31
+ [o.AccentPrimary]: e === "accent-primary",
32
+ [o.AccentSecondary]: e === "accent-secondary",
33
+ [o.BodyExtraSmall]: t === "body-extra-small",
34
+ [o.BodySmall]: t === "body-small",
35
+ [o.Body]: t === "body",
36
+ [o.BodyLarge]: t === "body-large",
37
+ [o.OneLine]: c,
38
+ [o.Checked]: r
39
+ }),
40
+ children: /* @__PURE__ */ n(_, { tag: "span", className: o.Content, children: a })
41
+ }
42
+ );
43
+ export {
44
+ L as ControlRadioText
45
+ };
@@ -0,0 +1,2 @@
1
+ export { ControlRadioText } from './control-radio-text.component';
2
+ export type { ControlRadioTextProps } from './control-radio-text.component';
@@ -0,0 +1,4 @@
1
+ import { ControlRadioText as t } from "./control-radio-text.component.js";
2
+ export {
3
+ t as ControlRadioText
4
+ };
@@ -0,0 +1,11 @@
1
+ import { State } from '../utils/types';
2
+ import { Base } from '../../utils/types';
3
+ interface ControlStatusProps extends Base {
4
+ state: State;
5
+ }
6
+ /**
7
+ * `ControlStatus` renders a compact visual marker that communicates validation result near a field.
8
+ * Use it to show neutral (`idle`), success (`success`), or error (`error`) state consistently across form controls.
9
+ */
10
+ export declare const ControlStatus: ({ state, ...base }: ControlStatusProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,42 @@
1
+ import { jsxs as n, jsx as o } from "react/jsx-runtime";
2
+ import { Circle as a, X as m, Check as l } from "lucide-react";
3
+ import t from "clsx";
4
+ import { AnimationFadeScale as r } from "../../animations/animation-fade-scale/animation-fade-scale.component.js";
5
+ import { baseProps as i } from "../../utils/functions/functions.util.js";
6
+ import '../../assets/control-status-DPNvkGlM.css';const _ = "_ControlStatus_hj1em_1", C = "_Circle_hj1em_6", h = "_Idle_hj1em_14", d = "_Success_hj1em_20", I = "_IconContent_hj1em_32", u = "_IconAnimate_hj1em_40", j = "_Check_hj1em_48", S = "_X_hj1em_49", c = {
7
+ ControlStatus: _,
8
+ Circle: C,
9
+ Idle: h,
10
+ Success: d,
11
+ Error: "_Error_hj1em_26",
12
+ IconContent: I,
13
+ IconAnimate: u,
14
+ Check: j,
15
+ X: S
16
+ }, f = ({ state: e = "idle", ...s }) => /* @__PURE__ */ n(
17
+ "div",
18
+ {
19
+ "data-testid": i(s, "data-testid", "control-status"),
20
+ className: t(c.ControlStatus, i(s, "className")),
21
+ children: [
22
+ /* @__PURE__ */ o(
23
+ a,
24
+ {
25
+ size: 24,
26
+ className: t(c.Circle, {
27
+ [c.Idle]: e === "idle",
28
+ [c.Success]: e === "success",
29
+ [c.Error]: e === "error"
30
+ })
31
+ }
32
+ ),
33
+ /* @__PURE__ */ n("div", { className: c.IconContent, children: [
34
+ /* @__PURE__ */ o(r, { name: "icon-x", condition: e === "error", className: c.IconAnimate, children: /* @__PURE__ */ o(m, { size: 14, className: c.X }) }),
35
+ /* @__PURE__ */ o(r, { name: "icon-check", condition: e === "success", className: c.IconAnimate, children: /* @__PURE__ */ o(l, { size: 14, className: c.Check }) })
36
+ ] })
37
+ ]
38
+ }
39
+ );
40
+ export {
41
+ f as ControlStatus
42
+ };
@@ -0,0 +1 @@
1
+ export { ControlStatus } from './control-status.component';
@@ -0,0 +1,4 @@
1
+ import { ControlStatus as r } from "./control-status.component.js";
2
+ export {
3
+ r as ControlStatus
4
+ };
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { State } from '../utils/types';
3
+ import { ControlInputProps } from '../control-input';
4
+ import { Base } from '../../utils/types';
5
+ export interface ControlTextProps extends Base, ControlInputProps {
6
+ label: string;
7
+ message?: ReactNode;
8
+ placeholder?: string;
9
+ state?: State;
10
+ }
11
+ export declare const ControlText: (props: ControlTextProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,70 @@
1
+ import { jsxs as u, jsx as e } from "react/jsx-runtime";
2
+ import x from "clsx";
3
+ import { useBoolean as h, useToggle as y } from "usehooks-ts";
4
+ import { AnimationFadeScale as $ } from "../../animations/animation-fade-scale/animation-fade-scale.component.js";
5
+ import { ControlBox as q } from "../control-box/control-box.component.js";
6
+ import { ControlInput as z } from "../control-input/control-input.component.js";
7
+ import { ControlLabel as D } from "../control-label/control-label.component.js";
8
+ import { ControlErrorMessage as G } from "../control-error-message/control-error-message.component.js";
9
+ import { AnimationFadeSlide as H } from "../../animations/animation-fade-slide/animation-fade-slide.component.js";
10
+ import '../../assets/control-text-n-qi7e2Y.css';const J = "_ControlText_11mtx_1", K = "_Content_11mtx_14", O = "_Label_11mtx_26", Q = "_LabelIdle_11mtx_32", R = "_LabelActive_11mtx_37", U = "_Placeholder_11mtx_42", V = "_PlaceholderText_11mtx_49", W = "_ErrorMessage_11mtx_57", t = {
11
+ ControlText: J,
12
+ Content: K,
13
+ Label: O,
14
+ LabelIdle: Q,
15
+ LabelActive: R,
16
+ Placeholder: U,
17
+ PlaceholderText: V,
18
+ ErrorMessage: W
19
+ }, ne = (_) => {
20
+ const {
21
+ label: f,
22
+ message: n = "",
23
+ placeholder: s = "",
24
+ dateMask: p = !1,
25
+ maxLength: b,
26
+ state: a = "idle",
27
+ type: C = "text",
28
+ id: c,
29
+ value: o,
30
+ disabled: L = !1,
31
+ onChange: g,
32
+ onFocus: A,
33
+ onBlur: v,
34
+ className: T
35
+ } = _, { value: l, setTrue: i, setFalse: m } = h(!0), { value: I, setTrue: F, setFalse: P } = h(!0), [M, d] = y(), N = !l || !!o, E = !!s && !l && !o && !I, k = !!n && a === "error", B = () => {
36
+ F(), m();
37
+ }, S = () => {
38
+ o || (P(), i());
39
+ }, j = (r) => {
40
+ o || m(), d(), A?.call(null, r);
41
+ }, w = (r) => {
42
+ o || i(), d(), v?.call(null, r);
43
+ };
44
+ return /* @__PURE__ */ u("div", { className: x(t.ControlText, T), children: [
45
+ /* @__PURE__ */ e(q, { state: a, focused: M, children: /* @__PURE__ */ u("label", { htmlFor: c, className: t.Content, children: [
46
+ /* @__PURE__ */ e("div", { className: x(t.Label, N ? t.LabelActive : t.LabelIdle), children: /* @__PURE__ */ e(D, { position: l ? "idle" : "active", state: l ? "idle" : a, children: f }) }),
47
+ /* @__PURE__ */ e($, { name: "text-placeholder", condition: E, className: t.Placeholder, children: /* @__PURE__ */ e("span", { className: t.PlaceholderText, children: s }) }),
48
+ /* @__PURE__ */ e(
49
+ z,
50
+ {
51
+ dateMask: p,
52
+ maxLength: b,
53
+ disabled: L,
54
+ type: C,
55
+ id: c,
56
+ value: o,
57
+ onChange: g,
58
+ onAutofill: B,
59
+ onAutofillCancel: S,
60
+ onFocus: j,
61
+ onBlur: w
62
+ }
63
+ )
64
+ ] }) }),
65
+ /* @__PURE__ */ e(H, { name: "text-message", condition: k, children: /* @__PURE__ */ e(G, { className: t.ErrorMessage, children: n }) })
66
+ ] });
67
+ };
68
+ export {
69
+ ne as ControlText
70
+ };
@@ -0,0 +1,2 @@
1
+ export { ControlText } from './control-text.component';
2
+ export type { ControlTextProps } from './control-text.component';
@@ -0,0 +1,4 @@
1
+ import { ControlText as t } from "./control-text.component.js";
2
+ export {
3
+ t as ControlText
4
+ };
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from 'react';
2
+ import { Interactive, State } from '../utils/types';
3
+ import { Base } from '../../utils/types';
4
+ interface ControlTextareaProps extends Interactive<string>, Base {
5
+ state?: State;
6
+ placeholder?: string;
7
+ rows?: number;
8
+ message?: ReactNode;
9
+ }
10
+ /**
11
+ * `ControlTextarea` renders a multi-line text input field with validation visual feedback. It handles focus states,
12
+ * value changes, and displays error messages. Use it for longer text inputs like comments or descriptions.
13
+ */
14
+ export declare const ControlTextarea: ({ id, value, onChange, state, placeholder, rows, message, disabled, onFocus, onBlur, ...base }: ControlTextareaProps) => import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,63 @@
1
+ import { jsxs as F, jsx as r } from "react/jsx-runtime";
2
+ import M from "clsx";
3
+ import { useBoolean as T, useToggle as B } from "usehooks-ts";
4
+ import { AnimationFadeSlide as k } from "../../animations/animation-fade-slide/animation-fade-slide.component.js";
5
+ import { ControlBox as A } from "../control-box/control-box.component.js";
6
+ import { ControlErrorMessage as j } from "../control-error-message/control-error-message.component.js";
7
+ import { baseProps as n } from "../../utils/functions/functions.util.js";
8
+ import '../../assets/control-textarea-B6gWlJs3.css';const S = "_Input_rcp54_6", v = "_ErrorMessage_rcp54_52", o = {
9
+ Input: S,
10
+ "autofill-start": "_autofill-start_rcp54_1",
11
+ "autofill-cancel": "_autofill-cancel_rcp54_1",
12
+ ErrorMessage: v
13
+ }, G = ({
14
+ id: e,
15
+ value: a,
16
+ onChange: u,
17
+ state: l = "idle",
18
+ placeholder: f = "",
19
+ rows: p = 5,
20
+ message: i = "",
21
+ disabled: x = !1,
22
+ onFocus: _,
23
+ onBlur: g,
24
+ ...s
25
+ }) => {
26
+ const { value: N, setTrue: c, setFalse: m } = T(!0), [I, d] = B(!1), h = (t) => {
27
+ t.animationName === o["autofill-start"] && m(), t.animationName === o["autofill-cancel"] && !a && c();
28
+ }, C = (t) => {
29
+ a || m(), d(), _?.(t);
30
+ }, E = (t) => {
31
+ a || c(), d(), g?.(t);
32
+ };
33
+ return /* @__PURE__ */ F(
34
+ "div",
35
+ {
36
+ "data-testid": n(s, "data-testid", "control-textarea"),
37
+ className: M(o.Container, n(s, "className")),
38
+ children: [
39
+ /* @__PURE__ */ r(A, { state: l, focused: I, className: n(s, "className"), children: /* @__PURE__ */ r(
40
+ "textarea",
41
+ {
42
+ "data-testid": "control-textarea-input",
43
+ "data-is-idle": N,
44
+ disabled: x,
45
+ id: e,
46
+ rows: p,
47
+ placeholder: f,
48
+ value: a,
49
+ className: o.Input,
50
+ onChange: (t) => u(t.target.value, e, "keyboard"),
51
+ onAnimationStart: h,
52
+ onFocus: () => C(e),
53
+ onBlur: () => E(e)
54
+ }
55
+ ) }),
56
+ /* @__PURE__ */ r(k, { name: "text-message", condition: l === "error" && !!i, children: /* @__PURE__ */ r(j, { "data-testid": "control-textarea-error", className: o.ErrorMessage, children: i }) })
57
+ ]
58
+ }
59
+ );
60
+ };
61
+ export {
62
+ G as ControlTextarea
63
+ };
@@ -0,0 +1 @@
1
+ export { ControlTextarea } from './control-textarea.component';
@@ -0,0 +1,4 @@
1
+ import { ControlTextarea as e } from "./control-textarea.component.js";
2
+ export {
3
+ e as ControlTextarea
4
+ };
@@ -0,0 +1 @@
1
+ export * from './use-choice';
@@ -0,0 +1,4 @@
1
+ import { useChoice as r } from "./use-choice/use-choice.hook.js";
2
+ export {
3
+ r as useChoice
4
+ };
@@ -0,0 +1 @@
1
+ export * from './use-choice.hook';
@@ -0,0 +1,4 @@
1
+ import { useChoice as r } from "./use-choice.hook.js";
2
+ export {
3
+ r as useChoice
4
+ };
@@ -1,5 +1,5 @@
1
- import { ChoiceType, ChoiceValue, InputChangeSource, Interactive } from '../../control.types';
1
+ import { ControlChoiceType, ChoiceValue, InputChangeSource, Interactive } from '../../utils/types';
2
2
  export declare const useChoice: (value: ChoiceValue, id: string, cb: Interactive<ChoiceValue>["onChange"]) => {
3
- type: ChoiceType;
3
+ type: ControlChoiceType;
4
4
  onChoiceChange: (newValue: string, source?: InputChangeSource) => void;
5
5
  };
@@ -0,0 +1 @@
1
+ export * from './functions.util';
@@ -0,0 +1,7 @@
1
+ import { clickHasNode as n, containsHtml as o, findEndIndex as c, getChoiceId as i } from "./functions.util.js";
2
+ export {
3
+ n as clickHasNode,
4
+ o as containsHtml,
5
+ c as findEndIndex,
6
+ i as getChoiceId
7
+ };
@@ -0,0 +1,2 @@
1
+ export * from './functions';
2
+ export * from './types';
@@ -0,0 +1,7 @@
1
+ import { clickHasNode as n, containsHtml as o, findEndIndex as c, getChoiceId as i } from "./functions/functions.util.js";
2
+ export {
3
+ n as clickHasNode,
4
+ o as containsHtml,
5
+ c as findEndIndex,
6
+ i as getChoiceId
7
+ };
@@ -1,20 +1,28 @@
1
+ import { FontSize, FontColor } from '../../utils/types';
1
2
  export type InputChangeSource = 'mouse' | 'keyboard';
2
- export interface Interactive<V> {
3
+ export type Interactive<V> = {
3
4
  id: string;
4
5
  value: V;
5
6
  disabled?: boolean;
6
7
  onChange: (value: V, id: string, source?: InputChangeSource) => void;
7
8
  onFocus?: (id: string) => void;
8
9
  onBlur?: (id: string) => void;
9
- }
10
+ };
10
11
  export type RadioChoice = {
11
12
  label: string;
12
13
  value: string;
13
14
  icon?: string;
14
15
  };
15
- export type ChoiceType = 'radio' | 'checkbox';
16
+ export type ControlChoiceType = 'radio' | 'checkbox';
16
17
  export type ChoiceValue = string | string[];
17
18
  export type State = 'idle' | 'error' | 'success';
19
+ export type ControlLabelPosition = 'idle' | 'active';
20
+ export type ControlRadioTextSize = Extract<FontSize, 'body-extra-small' | 'body-small' | 'body' | 'body-large'>;
21
+ export type ControlRadioTextColor = Extract<FontColor, 'text-primary' | 'text-secondary' | 'accent-primary' | 'accent-secondary'>;
22
+ export type ControlButtonColor = 'primary' | 'secondary' | 'tertiary';
23
+ export type ControlButtonTypeColor = Extract<FontColor, 'text-primary' | 'text-secondary' | 'accent-primary' | 'accent-secondary' | 'theme-primary' | 'theme-secondary'>;
24
+ export type ControlButtonSize = 'sm' | 'md' | 'lg';
25
+ export type ControlButtonType = 'submit' | 'reset' | 'button';
18
26
  export type QuestionPath = string[];
19
27
  export type QuestionChoice = {
20
28
  value: string;