@hellboy/ds 0.1.2 → 0.2.7

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 (298) hide show
  1. package/README.md +568 -71
  2. package/{src/style/components/badge → dist/components}/badge.css +9 -25
  3. package/dist/components/badge.d.mts +12 -0
  4. package/dist/components/badge.d.ts +12 -0
  5. package/dist/components/badge.js +42 -0
  6. package/dist/components/badge.mjs +15 -0
  7. package/dist/components/banner.css +280 -0
  8. package/dist/components/banner.d.mts +12 -0
  9. package/dist/components/banner.d.ts +12 -0
  10. package/dist/components/banner.js +184 -0
  11. package/dist/components/banner.mjs +147 -0
  12. package/dist/components/button-group.css +289 -0
  13. package/dist/components/button-group.d.mts +81 -0
  14. package/dist/components/button-group.d.ts +81 -0
  15. package/dist/components/button-group.js +180 -0
  16. package/dist/components/button-group.mjs +143 -0
  17. package/{src/style/components/button → dist/components}/button.css +59 -62
  18. package/dist/components/button.d.mts +57 -0
  19. package/dist/components/button.d.ts +57 -0
  20. package/dist/components/button.js +129 -0
  21. package/dist/components/button.mjs +92 -0
  22. package/{src/style/components/card → dist/components}/card.css +9 -30
  23. package/dist/components/card.d.mts +31 -0
  24. package/dist/components/card.d.ts +31 -0
  25. package/dist/components/card.js +59 -0
  26. package/dist/components/card.mjs +32 -0
  27. package/{src/style → dist}/components/checkbox.css +51 -43
  28. package/dist/components/checkbox.d.mts +31 -0
  29. package/dist/components/checkbox.d.ts +31 -0
  30. package/dist/components/checkbox.js +130 -0
  31. package/dist/components/checkbox.mjs +93 -0
  32. package/{src/style/components/code-block → dist/components}/code-block.css +3 -7
  33. package/dist/components/code-block.d.mts +24 -0
  34. package/dist/components/code-block.d.ts +24 -0
  35. package/dist/components/code-block.js +43 -0
  36. package/dist/components/code-block.mjs +16 -0
  37. package/dist/components/color-control.css +285 -0
  38. package/dist/components/color-control.d.mts +5 -0
  39. package/dist/components/color-control.d.ts +5 -0
  40. package/dist/components/color-control.js +534 -0
  41. package/dist/components/color-control.mjs +497 -0
  42. package/dist/components/dialog.css +930 -0
  43. package/dist/components/dialog.d.mts +32 -0
  44. package/dist/components/dialog.d.ts +32 -0
  45. package/dist/components/dialog.js +1111 -0
  46. package/dist/components/dialog.mjs +1074 -0
  47. package/dist/components/divider.css +356 -0
  48. package/dist/components/divider.d.mts +32 -0
  49. package/dist/components/divider.d.ts +32 -0
  50. package/dist/components/divider.js +344 -0
  51. package/dist/components/divider.mjs +307 -0
  52. package/{src/style/components/drag-handle → dist/components}/drag-handle.css +3 -18
  53. package/dist/components/drag-handle.d.mts +11 -0
  54. package/dist/components/drag-handle.d.ts +11 -0
  55. package/dist/components/drag-handle.js +103 -0
  56. package/dist/components/drag-handle.mjs +66 -0
  57. package/dist/components/drawer.css +1027 -0
  58. package/dist/components/drawer.d.mts +14 -0
  59. package/dist/components/drawer.d.ts +14 -0
  60. package/dist/components/drawer.js +1072 -0
  61. package/dist/components/drawer.mjs +1035 -0
  62. package/dist/components/floating-bar.css +17 -0
  63. package/dist/components/floating-bar.d.mts +25 -0
  64. package/dist/components/floating-bar.d.ts +25 -0
  65. package/dist/components/floating-bar.js +52 -0
  66. package/dist/components/floating-bar.mjs +25 -0
  67. package/dist/components/footer.css +40 -0
  68. package/dist/components/footer.d.mts +8 -0
  69. package/dist/components/footer.d.ts +8 -0
  70. package/dist/components/footer.js +44 -0
  71. package/dist/components/footer.mjs +17 -0
  72. package/dist/components/grid.css +47 -0
  73. package/dist/components/grid.d.mts +27 -0
  74. package/dist/components/grid.d.ts +27 -0
  75. package/dist/components/grid.js +52 -0
  76. package/dist/components/grid.mjs +25 -0
  77. package/dist/components/header.css +1075 -0
  78. package/dist/components/header.d.mts +35 -0
  79. package/dist/components/header.d.ts +35 -0
  80. package/dist/components/header.js +1402 -0
  81. package/dist/components/header.mjs +1365 -0
  82. package/dist/components/hero.css +121 -0
  83. package/dist/components/hero.d.mts +111 -0
  84. package/dist/components/hero.d.ts +111 -0
  85. package/dist/components/hero.js +285 -0
  86. package/dist/components/hero.mjs +248 -0
  87. package/{src/style/components/icons → dist/components}/icons.css +14 -15
  88. package/dist/components/icons.d.mts +104 -0
  89. package/dist/components/icons.d.ts +104 -0
  90. package/dist/components/icons.js +239 -0
  91. package/dist/components/icons.mjs +203 -0
  92. package/{src/style/components/input → dist/components}/input.css +189 -102
  93. package/dist/components/input.d.mts +114 -0
  94. package/dist/components/input.d.ts +114 -0
  95. package/dist/components/input.js +926 -0
  96. package/dist/components/input.mjs +879 -0
  97. package/dist/components/layout.css +551 -0
  98. package/dist/components/layout.d.mts +16 -0
  99. package/dist/components/layout.d.ts +16 -0
  100. package/dist/components/layout.js +387 -0
  101. package/dist/components/layout.mjs +352 -0
  102. package/{src/style/components/list → dist/components}/list.css +47 -41
  103. package/dist/components/list.d.mts +46 -0
  104. package/dist/components/list.d.ts +46 -0
  105. package/dist/components/list.js +124 -0
  106. package/dist/components/list.mjs +96 -0
  107. package/dist/components/navbar.css +706 -0
  108. package/dist/components/navbar.d.mts +56 -0
  109. package/dist/components/navbar.d.ts +56 -0
  110. package/dist/components/navbar.js +994 -0
  111. package/dist/components/navbar.mjs +952 -0
  112. package/{src/style/components/page-index → dist/components}/page-index.css +2 -47
  113. package/dist/components/page-index.d.mts +25 -0
  114. package/dist/components/page-index.d.ts +25 -0
  115. package/dist/components/page-index.js +239 -0
  116. package/dist/components/page-index.mjs +202 -0
  117. package/{src/style/components/page → dist/components}/page.css +4 -15
  118. package/dist/components/page.d.mts +30 -0
  119. package/dist/components/page.d.ts +30 -0
  120. package/dist/components/page.js +40 -0
  121. package/dist/components/page.mjs +13 -0
  122. package/dist/components/popover.css +87 -0
  123. package/dist/components/popover.d.mts +22 -0
  124. package/dist/components/popover.d.ts +22 -0
  125. package/dist/components/popover.js +243 -0
  126. package/dist/components/popover.mjs +206 -0
  127. package/{src/style → dist}/components/radio.css +8 -51
  128. package/dist/components/radio.d.mts +59 -0
  129. package/dist/components/radio.d.ts +59 -0
  130. package/dist/components/radio.js +133 -0
  131. package/dist/components/radio.mjs +95 -0
  132. package/dist/components/section.css +993 -0
  133. package/dist/components/section.d.mts +33 -0
  134. package/dist/components/section.d.ts +33 -0
  135. package/dist/components/section.js +1401 -0
  136. package/dist/components/section.mjs +1364 -0
  137. package/dist/components/select.css +391 -0
  138. package/dist/components/select.d.mts +63 -0
  139. package/dist/components/select.d.ts +63 -0
  140. package/dist/components/select.js +452 -0
  141. package/dist/components/select.mjs +415 -0
  142. package/{src/style/components/slider → dist/components}/slider.css +55 -33
  143. package/dist/components/slider.d.mts +69 -0
  144. package/dist/components/slider.d.ts +69 -0
  145. package/dist/components/slider.js +254 -0
  146. package/dist/components/slider.mjs +217 -0
  147. package/dist/components/switch.css +1081 -0
  148. package/dist/components/switch.d.mts +33 -0
  149. package/dist/components/switch.d.ts +33 -0
  150. package/dist/components/switch.js +1092 -0
  151. package/dist/components/switch.mjs +1055 -0
  152. package/{src/style/components/table → dist/components}/table.css +3 -28
  153. package/dist/components/table.d.mts +42 -0
  154. package/dist/components/table.d.ts +42 -0
  155. package/dist/components/table.js +108 -0
  156. package/dist/components/table.mjs +76 -0
  157. package/dist/components/tag.css +97 -0
  158. package/dist/components/tag.d.mts +12 -0
  159. package/dist/components/tag.d.ts +12 -0
  160. package/dist/components/tag.js +42 -0
  161. package/dist/components/tag.mjs +15 -0
  162. package/dist/components/textarea.css +1359 -0
  163. package/dist/components/textarea.d.mts +84 -0
  164. package/dist/components/textarea.d.ts +84 -0
  165. package/dist/components/textarea.js +1962 -0
  166. package/dist/components/textarea.mjs +1924 -0
  167. package/{src/style/components/theme-control → dist/components}/theme-control.css +3 -7
  168. package/dist/components/theme-control.d.mts +9 -0
  169. package/dist/components/theme-control.d.ts +9 -0
  170. package/dist/components/theme-control.js +235 -0
  171. package/dist/components/theme-control.mjs +200 -0
  172. package/{src/style/components/tooltip → dist/components}/tooltip.css +5 -13
  173. package/dist/components/tooltip.d.mts +12 -0
  174. package/dist/components/tooltip.d.ts +12 -0
  175. package/dist/components/tooltip.js +200 -0
  176. package/dist/components/tooltip.mjs +163 -0
  177. package/dist/icons-Czahnf-r.d.mts +15 -0
  178. package/dist/icons-Czahnf-r.d.ts +15 -0
  179. package/dist/index.css +2915 -2068
  180. package/dist/index.d.mts +144 -721
  181. package/dist/index.d.ts +144 -721
  182. package/dist/index.js +4076 -2282
  183. package/dist/index.mjs +4132 -2366
  184. package/dist/theme.css +34 -34
  185. package/package.json +27 -8
  186. package/dist/index.css.map +0 -1
  187. package/dist/index.js.map +0 -1
  188. package/dist/index.mjs.map +0 -1
  189. package/hellboy-ds-0.1.2.tgz +0 -0
  190. package/src/components/badge/Badge.tsx +0 -29
  191. package/src/components/badge/index.ts +0 -1
  192. package/src/components/banner/Banner.tsx +0 -48
  193. package/src/components/banner/banner.css +0 -44
  194. package/src/components/banner/index.ts +0 -1
  195. package/src/components/button/button.tsx +0 -127
  196. package/src/components/button/index.ts +0 -1
  197. package/src/components/card/card.tsx +0 -57
  198. package/src/components/card/index.ts +0 -1
  199. package/src/components/checkbox/Checkbox.tsx +0 -98
  200. package/src/components/checkbox/index.ts +0 -1
  201. package/src/components/code-block/code-block.tsx +0 -44
  202. package/src/components/code-block/index.ts +0 -1
  203. package/src/components/color-control/color-control.tsx +0 -322
  204. package/src/components/color-control/index.ts +0 -1
  205. package/src/components/drag-handle/DragHandle.tsx +0 -78
  206. package/src/components/drag-handle/index.ts +0 -1
  207. package/src/components/drawer/drawer.tsx +0 -82
  208. package/src/components/drawer/index.ts +0 -1
  209. package/src/components/floating-bar/floating-bar.tsx +0 -52
  210. package/src/components/floating-bar/index.ts +0 -2
  211. package/src/components/footer/footer.tsx +0 -28
  212. package/src/components/footer/index.ts +0 -1
  213. package/src/components/grid/Grid.tsx +0 -53
  214. package/src/components/grid/index.ts +0 -1
  215. package/src/components/header/header.tsx +0 -57
  216. package/src/components/header/index.ts +0 -1
  217. package/src/components/icons/icons.tsx +0 -44
  218. package/src/components/icons/index.ts +0 -1
  219. package/src/components/index.ts +0 -29
  220. package/src/components/input/DatePicker.tsx +0 -133
  221. package/src/components/input/Input.tsx +0 -220
  222. package/src/components/input/InputDate.tsx +0 -10
  223. package/src/components/input/InputDateTime.tsx +0 -10
  224. package/src/components/input/InputEmail.tsx +0 -10
  225. package/src/components/input/InputField.tsx +0 -137
  226. package/src/components/input/InputNumber.tsx +0 -10
  227. package/src/components/input/InputPassword.tsx +0 -10
  228. package/src/components/input/InputSearch.tsx +0 -10
  229. package/src/components/input/InputTel.tsx +0 -10
  230. package/src/components/input/InputText.tsx +0 -10
  231. package/src/components/input/InputTime.tsx +0 -10
  232. package/src/components/input/InputUrl.tsx +0 -10
  233. package/src/components/input/TimePicker.tsx +0 -151
  234. package/src/components/input/index.ts +0 -11
  235. package/src/components/layout/Layout.tsx +0 -244
  236. package/src/components/layout/index.ts +0 -1
  237. package/src/components/list/List.tsx +0 -159
  238. package/src/components/list/index.ts +0 -1
  239. package/src/components/navbar/MenuCategory.tsx +0 -20
  240. package/src/components/navbar/MenuGroup.tsx +0 -288
  241. package/src/components/navbar/MenuItem.tsx +0 -65
  242. package/src/components/navbar/Navbar.tsx +0 -23
  243. package/src/components/navbar/index.ts +0 -4
  244. package/src/components/page/index.ts +0 -1
  245. package/src/components/page/page.tsx +0 -46
  246. package/src/components/page-index/PageIndex.tsx +0 -275
  247. package/src/components/page-index/index.ts +0 -1
  248. package/src/components/popover/index.ts +0 -1
  249. package/src/components/popover/popover.tsx +0 -199
  250. package/src/components/radio/Radio.tsx +0 -176
  251. package/src/components/radio/index.ts +0 -1
  252. package/src/components/section/index.ts +0 -1
  253. package/src/components/section/section.tsx +0 -66
  254. package/src/components/select/Select.tsx +0 -212
  255. package/src/components/select/index.ts +0 -1
  256. package/src/components/slider/Slider.tsx +0 -267
  257. package/src/components/slider/index.ts +0 -1
  258. package/src/components/switch/index.ts +0 -1
  259. package/src/components/switch/switch.tsx +0 -99
  260. package/src/components/table/Table.tsx +0 -147
  261. package/src/components/table/index.ts +0 -1
  262. package/src/components/theme-control/index.ts +0 -1
  263. package/src/components/theme-control/theme-control.tsx +0 -78
  264. package/src/components/tooltip/index.ts +0 -1
  265. package/src/components/tooltip/tooltip.tsx +0 -207
  266. package/src/contexts/NavbarTooltipContext.tsx +0 -48
  267. package/src/contexts/index.ts +0 -1
  268. package/src/foundations/motion.md +0 -136
  269. package/src/index.ts +0 -40
  270. package/src/style/_shared/field.css +0 -69
  271. package/src/style/components/color-control/color-control.css +0 -126
  272. package/src/style/components/drawer/drawer.css +0 -210
  273. package/src/style/components/floating-bar/floating-bar.css +0 -39
  274. package/src/style/components/footer/footer.css +0 -108
  275. package/src/style/components/grid/grid.css +0 -33
  276. package/src/style/components/header/header.css +0 -44
  277. package/src/style/components/layout/layout.css +0 -205
  278. package/src/style/components/navbar/navbar.css +0 -342
  279. package/src/style/components/popover/popover.css +0 -44
  280. package/src/style/components/section/section.css +0 -67
  281. package/src/style/components/select/select.css +0 -143
  282. package/src/style/components/switch/switch.css +0 -267
  283. package/src/style/foundations/global.css +0 -316
  284. package/src/style/foundations/motion.css +0 -164
  285. package/src/style/foundations/spacing.css +0 -51
  286. package/src/style/foundations/typography.css +0 -39
  287. package/src/style/foundations/z-index.css +0 -81
  288. package/src/style/modes/dark.css +0 -146
  289. package/src/style/modes/light.css +0 -147
  290. package/src/style/semantic.css +0 -52
  291. package/src/style/styles.css +0 -51
  292. package/src/style/themes/theme.json +0 -37
  293. package/src/utils/README.md +0 -305
  294. package/src/utils/USER_PREFERENCES.md +0 -558
  295. package/src/utils/theme.ts +0 -127
  296. package/src/utils/user-preferences.ts +0 -577
  297. package/tsconfig.json +0 -25
  298. package/tsup.config.ts +0 -52
@@ -1,5 +1,4 @@
1
- /* Radio Component Styles */
2
-
1
+ /* src/style/components/radio.css */
3
2
  .radio {
4
3
  display: inline-flex;
5
4
  align-items: center;
@@ -8,7 +7,6 @@
8
7
  user-select: none;
9
8
  position: relative;
10
9
  }
11
-
12
10
  .radio__input {
13
11
  position: absolute;
14
12
  opacity: 0;
@@ -16,7 +14,6 @@
16
14
  height: 0;
17
15
  pointer-events: none;
18
16
  }
19
-
20
17
  .radio__box {
21
18
  position: relative;
22
19
  display: inline-flex;
@@ -26,9 +23,8 @@
26
23
  border: 2px solid var(--color-foreground-2);
27
24
  border-radius: 50%;
28
25
  background-color: var(--color-bg-1);
29
- transition: all 0.2s ease;
26
+ transition: all var(--motion-transition-base);
30
27
  }
31
-
32
28
  .radio__dot {
33
29
  width: 50%;
34
30
  height: 50%;
@@ -36,143 +32,104 @@
36
32
  background-color: var(--color-on-primary);
37
33
  opacity: 0;
38
34
  transform: scale(0);
39
- transition: all 0.2s ease;
35
+ transition: all var(--motion-transition-base);
40
36
  }
41
-
42
37
  .radio__label {
43
38
  font-size: var(--font-size-md);
44
39
  color: var(--color-foreground-1);
45
40
  line-height: 1.5;
46
41
  }
47
-
48
- /* Size variants */
49
42
  .radio--sm .radio__box {
50
43
  width: 16px;
51
44
  height: 16px;
52
45
  }
53
-
54
46
  .radio--sm .radio__label {
55
47
  font-size: var(--font-size-sm);
56
48
  }
57
-
58
49
  .radio--md .radio__box {
59
50
  width: 20px;
60
51
  height: 20px;
61
52
  }
62
-
63
53
  .radio--lg .radio__box {
64
54
  width: 24px;
65
55
  height: 24px;
66
56
  }
67
-
68
57
  .radio--lg .radio__label {
69
58
  font-size: var(--font-size-lg);
70
59
  }
71
-
72
- /* Checked state */
73
- .radio__input[aria-checked="true"] + .radio__box,
60
+ .radio__input[aria-checked=true] + .radio__box,
74
61
  .radio__input:checked + .radio__box {
75
62
  background-color: var(--color-primary);
76
63
  border-color: var(--color-primary);
77
64
  }
78
-
79
- .radio__input[aria-checked="true"] + .radio__box .radio__dot,
65
+ .radio__input[aria-checked=true] + .radio__box .radio__dot,
80
66
  .radio__input:checked + .radio__box .radio__dot {
81
67
  opacity: 1;
82
68
  transform: scale(1);
83
69
  }
84
-
85
- /* Focus state */
86
70
  .radio__input:focus-visible + .radio__box {
87
71
  outline: 2px solid var(--color-primary);
88
72
  outline-offset: 2px;
89
73
  }
90
-
91
- /* Hover state */
92
74
  .radio:hover .radio__box {
93
75
  border-color: var(--color-primary);
94
76
  }
95
-
96
- .radio:hover .radio__input[aria-checked="true"] + .radio__box,
77
+ .radio:hover .radio__input[aria-checked=true] + .radio__box,
97
78
  .radio:hover .radio__input:checked + .radio__box {
98
- background-color: HSLA(
99
- var(--primary-hue),
100
- var(--primary-saturation),
101
- calc(var(--primary-lightness) - 5%),
102
- 1
103
- );
104
- }
105
-
106
- /* Disabled state */
79
+ background-color: HSLA(var(--primary-hue), var(--primary-saturation), calc(var(--primary-lightness) - 5%), 1);
80
+ }
107
81
  .radio--disabled {
108
82
  cursor: not-allowed;
109
83
  opacity: 0.5;
110
84
  }
111
-
112
85
  .radio--disabled .radio__box {
113
86
  background-color: var(--color-bg-2);
114
87
  border-color: var(--color-foreground-3);
115
88
  }
116
-
117
- /* Error state */
118
89
  .radio--error .radio__box {
119
90
  border-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
120
91
  }
121
-
122
92
  .radio--error .radio__input:focus-visible + .radio__box {
123
93
  outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
124
94
  }
125
-
126
- /* Radio Group Styles */
127
-
128
95
  .radio-group {
129
96
  display: flex;
130
97
  flex-direction: column;
131
98
  gap: var(--spacing-1);
132
99
  }
133
-
134
100
  .radio-group__label {
135
101
  font-size: var(--font-size-md);
136
102
  font-weight: 600;
137
103
  color: var(--color-foreground-1);
138
104
  margin-bottom: var(--spacing-1);
139
105
  }
140
-
141
106
  .radio-group__container {
142
107
  display: flex;
143
108
  gap: var(--spacing-3);
144
109
  }
145
-
146
110
  .radio-group--vertical .radio-group__container {
147
111
  flex-direction: column;
148
112
  }
149
-
150
113
  .radio-group--horizontal .radio-group__container {
151
114
  flex-direction: row;
152
115
  flex-wrap: wrap;
153
116
  }
154
-
155
117
  .radio-group__feedback {
156
118
  margin-top: var(--spacing-1);
157
119
  }
158
-
159
120
  .radio-group__error-text {
160
121
  font-size: var(--font-size-sm);
161
122
  color: hsla(var(--error-hue), var(--error-saturation), var(--error-lightness), 1);
162
123
  display: block;
163
124
  }
164
-
165
125
  .radio-group__helper-text {
166
126
  font-size: var(--font-size-sm);
167
127
  color: var(--color-foreground-2);
168
128
  display: block;
169
129
  }
170
-
171
- /* Radio group error state */
172
130
  .radio-group--error .radio__box {
173
131
  border-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
174
132
  }
175
-
176
133
  .radio-group--error .radio__input:focus-visible + .radio__box {
177
134
  outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
178
135
  }
@@ -0,0 +1,59 @@
1
+ import React__default from 'react';
2
+ import { RadioProps as RadioProps$1, RadioGroupProps as RadioGroupProps$1 } from '@ariakit/react';
3
+
4
+ type RadioSize = 'sm' | 'md' | 'lg';
5
+ interface RadioProps extends Omit<RadioProps$1, 'children' | 'size'> {
6
+ /**
7
+ * Size of the radio button
8
+ * @default 'md'
9
+ */
10
+ size?: RadioSize;
11
+ /**
12
+ * Label text for the radio button
13
+ */
14
+ label?: React__default.ReactNode;
15
+ /**
16
+ * Error state
17
+ */
18
+ error?: boolean;
19
+ }
20
+ interface RadioGroupProps extends Omit<RadioGroupProps$1, 'onChange'> {
21
+ /**
22
+ * Size of all radio buttons in the group
23
+ * @default 'md'
24
+ */
25
+ size?: RadioSize;
26
+ /**
27
+ * Label for the radio group
28
+ */
29
+ label?: string;
30
+ /**
31
+ * Error message to display below the radio group
32
+ */
33
+ error?: string;
34
+ /**
35
+ * Helper text to display below the radio group
36
+ */
37
+ helperText?: string;
38
+ /**
39
+ * Children (Radio components)
40
+ */
41
+ children: React__default.ReactNode;
42
+ /**
43
+ * Orientation of the radio group
44
+ * @default 'vertical'
45
+ */
46
+ orientation?: 'horizontal' | 'vertical';
47
+ /**
48
+ * The value of the selected radio button
49
+ */
50
+ value?: string | number | null;
51
+ /**
52
+ * Callback when the selected value changes
53
+ */
54
+ onChange?: (value: string | number | null) => void;
55
+ }
56
+ declare const Radio: React__default.ForwardRefExoticComponent<Omit<RadioProps, "ref"> & React__default.RefAttributes<HTMLInputElement>>;
57
+ declare const RadioGroup: React__default.ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
58
+
59
+ export { Radio, RadioGroup, type RadioGroupProps, type RadioProps, type RadioSize };
@@ -0,0 +1,59 @@
1
+ import React__default from 'react';
2
+ import { RadioProps as RadioProps$1, RadioGroupProps as RadioGroupProps$1 } from '@ariakit/react';
3
+
4
+ type RadioSize = 'sm' | 'md' | 'lg';
5
+ interface RadioProps extends Omit<RadioProps$1, 'children' | 'size'> {
6
+ /**
7
+ * Size of the radio button
8
+ * @default 'md'
9
+ */
10
+ size?: RadioSize;
11
+ /**
12
+ * Label text for the radio button
13
+ */
14
+ label?: React__default.ReactNode;
15
+ /**
16
+ * Error state
17
+ */
18
+ error?: boolean;
19
+ }
20
+ interface RadioGroupProps extends Omit<RadioGroupProps$1, 'onChange'> {
21
+ /**
22
+ * Size of all radio buttons in the group
23
+ * @default 'md'
24
+ */
25
+ size?: RadioSize;
26
+ /**
27
+ * Label for the radio group
28
+ */
29
+ label?: string;
30
+ /**
31
+ * Error message to display below the radio group
32
+ */
33
+ error?: string;
34
+ /**
35
+ * Helper text to display below the radio group
36
+ */
37
+ helperText?: string;
38
+ /**
39
+ * Children (Radio components)
40
+ */
41
+ children: React__default.ReactNode;
42
+ /**
43
+ * Orientation of the radio group
44
+ * @default 'vertical'
45
+ */
46
+ orientation?: 'horizontal' | 'vertical';
47
+ /**
48
+ * The value of the selected radio button
49
+ */
50
+ value?: string | number | null;
51
+ /**
52
+ * Callback when the selected value changes
53
+ */
54
+ onChange?: (value: string | number | null) => void;
55
+ }
56
+ declare const Radio: React__default.ForwardRefExoticComponent<Omit<RadioProps, "ref"> & React__default.RefAttributes<HTMLInputElement>>;
57
+ declare const RadioGroup: React__default.ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & React__default.RefAttributes<HTMLDivElement>>;
58
+
59
+ export { Radio, RadioGroup, type RadioGroupProps, type RadioProps, type RadioSize };
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/radio/index.ts
31
+ var radio_exports = {};
32
+ __export(radio_exports, {
33
+ Radio: () => Radio,
34
+ RadioGroup: () => RadioGroup
35
+ });
36
+ module.exports = __toCommonJS(radio_exports);
37
+
38
+ // src/components/radio/Radio.tsx
39
+ var import_react = __toESM(require("react"));
40
+ var import_react2 = require("@ariakit/react");
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var Radio = import_react.default.forwardRef(
43
+ ({
44
+ size = "md",
45
+ label,
46
+ error = false,
47
+ disabled = false,
48
+ className,
49
+ ...props
50
+ }, ref) => {
51
+ const radioClasses = [
52
+ "radio",
53
+ `radio--${size}`,
54
+ error && "radio--error",
55
+ disabled && "radio--disabled",
56
+ className
57
+ ].filter(Boolean).join(" ");
58
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { className: radioClasses, children: [
59
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
60
+ import_react2.Radio,
61
+ {
62
+ ref,
63
+ disabled,
64
+ className: "radio__input",
65
+ ...props
66
+ }
67
+ ),
68
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "radio__box", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "radio__dot" }) }),
69
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "radio__label", children: label })
70
+ ] });
71
+ }
72
+ );
73
+ Radio.displayName = "Radio";
74
+ var RadioGroup = import_react.default.forwardRef(
75
+ ({
76
+ size = "md",
77
+ label,
78
+ error,
79
+ helperText,
80
+ children,
81
+ orientation = "vertical",
82
+ disabled = false,
83
+ className,
84
+ value,
85
+ onChange,
86
+ ...props
87
+ }, ref) => {
88
+ const groupClasses = [
89
+ "radio-group",
90
+ `radio-group--${orientation}`,
91
+ error && "radio-group--error",
92
+ disabled && "radio-group--disabled",
93
+ className
94
+ ].filter(Boolean).join(" ");
95
+ const radioGroupStore = (0, import_react2.useRadioStore)({
96
+ value,
97
+ setValue: onChange
98
+ });
99
+ const childrenWithProps = import_react.default.Children.map(children, (child) => {
100
+ if (import_react.default.isValidElement(child) && child.type === Radio) {
101
+ return import_react.default.cloneElement(child, {
102
+ size: child.props.size || size,
103
+ error: error ? true : child.props.error,
104
+ disabled: disabled || child.props.disabled
105
+ });
106
+ }
107
+ return child;
108
+ });
109
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: groupClasses, children: [
110
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "radio-group__label", children: label }),
111
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
112
+ import_react2.RadioGroup,
113
+ {
114
+ ref,
115
+ store: radioGroupStore,
116
+ className: "radio-group__container",
117
+ ...props,
118
+ children: childrenWithProps
119
+ }
120
+ ),
121
+ (error || helperText) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "radio-group__feedback", children: [
122
+ error && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "radio-group__error-text", children: error }),
123
+ !error && helperText && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "radio-group__helper-text", children: helperText })
124
+ ] })
125
+ ] });
126
+ }
127
+ );
128
+ RadioGroup.displayName = "RadioGroup";
129
+ // Annotate the CommonJS export names for ESM import in node:
130
+ 0 && (module.exports = {
131
+ Radio,
132
+ RadioGroup
133
+ });
@@ -0,0 +1,95 @@
1
+ // src/components/radio/Radio.tsx
2
+ import React from "react";
3
+ import { Radio as AriakitRadio, RadioGroup as AriakitRadioGroup, useRadioStore } from "@ariakit/react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ var Radio = React.forwardRef(
6
+ ({
7
+ size = "md",
8
+ label,
9
+ error = false,
10
+ disabled = false,
11
+ className,
12
+ ...props
13
+ }, ref) => {
14
+ const radioClasses = [
15
+ "radio",
16
+ `radio--${size}`,
17
+ error && "radio--error",
18
+ disabled && "radio--disabled",
19
+ className
20
+ ].filter(Boolean).join(" ");
21
+ return /* @__PURE__ */ jsxs("label", { className: radioClasses, children: [
22
+ /* @__PURE__ */ jsx(
23
+ AriakitRadio,
24
+ {
25
+ ref,
26
+ disabled,
27
+ className: "radio__input",
28
+ ...props
29
+ }
30
+ ),
31
+ /* @__PURE__ */ jsx("span", { className: "radio__box", children: /* @__PURE__ */ jsx("span", { className: "radio__dot" }) }),
32
+ label && /* @__PURE__ */ jsx("span", { className: "radio__label", children: label })
33
+ ] });
34
+ }
35
+ );
36
+ Radio.displayName = "Radio";
37
+ var RadioGroup = React.forwardRef(
38
+ ({
39
+ size = "md",
40
+ label,
41
+ error,
42
+ helperText,
43
+ children,
44
+ orientation = "vertical",
45
+ disabled = false,
46
+ className,
47
+ value,
48
+ onChange,
49
+ ...props
50
+ }, ref) => {
51
+ const groupClasses = [
52
+ "radio-group",
53
+ `radio-group--${orientation}`,
54
+ error && "radio-group--error",
55
+ disabled && "radio-group--disabled",
56
+ className
57
+ ].filter(Boolean).join(" ");
58
+ const radioGroupStore = useRadioStore({
59
+ value,
60
+ setValue: onChange
61
+ });
62
+ const childrenWithProps = React.Children.map(children, (child) => {
63
+ if (React.isValidElement(child) && child.type === Radio) {
64
+ return React.cloneElement(child, {
65
+ size: child.props.size || size,
66
+ error: error ? true : child.props.error,
67
+ disabled: disabled || child.props.disabled
68
+ });
69
+ }
70
+ return child;
71
+ });
72
+ return /* @__PURE__ */ jsxs("div", { className: groupClasses, children: [
73
+ label && /* @__PURE__ */ jsx("div", { className: "radio-group__label", children: label }),
74
+ /* @__PURE__ */ jsx(
75
+ AriakitRadioGroup,
76
+ {
77
+ ref,
78
+ store: radioGroupStore,
79
+ className: "radio-group__container",
80
+ ...props,
81
+ children: childrenWithProps
82
+ }
83
+ ),
84
+ (error || helperText) && /* @__PURE__ */ jsxs("div", { className: "radio-group__feedback", children: [
85
+ error && /* @__PURE__ */ jsx("span", { className: "radio-group__error-text", children: error }),
86
+ !error && helperText && /* @__PURE__ */ jsx("span", { className: "radio-group__helper-text", children: helperText })
87
+ ] })
88
+ ] });
89
+ }
90
+ );
91
+ RadioGroup.displayName = "RadioGroup";
92
+ export {
93
+ Radio,
94
+ RadioGroup
95
+ };