@refraktor/core 0.0.4 → 0.0.5

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 (334) hide show
  1. package/build/components/progress-circle/progress-circle.d.ts.map +1 -1
  2. package/build/components/progress-circle/progress-circle.js +6 -6
  3. package/build/components/progress-circle/progress-circle.styles.d.ts +2 -7
  4. package/build/components/progress-circle/progress-circle.styles.d.ts.map +1 -1
  5. package/build/components/progress-circle/progress-circle.styles.js +2 -23
  6. package/build/components/progress-circle/progress-circle.types.d.ts +4 -3
  7. package/build/components/progress-circle/progress-circle.types.d.ts.map +1 -1
  8. package/build/components/slider/slider.d.ts.map +1 -1
  9. package/build/components/slider/slider.js +69 -20
  10. package/build/components/tooltip/tooltip.js +1 -1
  11. package/build/style.css +2 -2
  12. package/package.json +30 -3
  13. package/.turbo/turbo-build.log +0 -4
  14. package/refraktor-core-0.0.1-alpha.0.tgz +0 -0
  15. package/src/components/accordion/accordion-control/accordion-control.tsx +0 -156
  16. package/src/components/accordion/accordion-control/index.ts +0 -1
  17. package/src/components/accordion/accordion-item/accordion-item.tsx +0 -40
  18. package/src/components/accordion/accordion-item/index.ts +0 -1
  19. package/src/components/accordion/accordion-panel/accordion-panel.tsx +0 -58
  20. package/src/components/accordion/accordion-panel/index.ts +0 -1
  21. package/src/components/accordion/accordion.context.ts +0 -93
  22. package/src/components/accordion/accordion.styles.ts +0 -60
  23. package/src/components/accordion/accordion.test.tsx +0 -174
  24. package/src/components/accordion/accordion.tsx +0 -203
  25. package/src/components/accordion/accordion.types.ts +0 -126
  26. package/src/components/accordion/index.ts +0 -17
  27. package/src/components/avatar/avatar-group/avatar-group.tsx +0 -73
  28. package/src/components/avatar/avatar-group/index.ts +0 -1
  29. package/src/components/avatar/avatar.styles.ts +0 -11
  30. package/src/components/avatar/avatar.tsx +0 -142
  31. package/src/components/avatar/avatar.types.ts +0 -86
  32. package/src/components/avatar/index.ts +0 -8
  33. package/src/components/badge/badge.styles.ts +0 -21
  34. package/src/components/badge/badge.tsx +0 -62
  35. package/src/components/badge/badge.types.ts +0 -40
  36. package/src/components/badge/index.ts +0 -2
  37. package/src/components/breadcrumbs/breadcrumbs.styles.ts +0 -55
  38. package/src/components/breadcrumbs/breadcrumbs.test.tsx +0 -136
  39. package/src/components/breadcrumbs/breadcrumbs.tsx +0 -199
  40. package/src/components/breadcrumbs/breadcrumbs.types.ts +0 -78
  41. package/src/components/breadcrumbs/breadcrumbs.utils.ts +0 -70
  42. package/src/components/breadcrumbs/index.ts +0 -6
  43. package/src/components/button/button.styles.ts +0 -28
  44. package/src/components/button/button.test.tsx +0 -57
  45. package/src/components/button/button.tsx +0 -110
  46. package/src/components/button/button.types.ts +0 -69
  47. package/src/components/button/index.ts +0 -2
  48. package/src/components/checkbox/checkbox-group/checkbox-group.tsx +0 -93
  49. package/src/components/checkbox/checkbox-group/index.ts +0 -1
  50. package/src/components/checkbox/checkbox.context.ts +0 -14
  51. package/src/components/checkbox/checkbox.styles.ts +0 -49
  52. package/src/components/checkbox/checkbox.test.tsx +0 -80
  53. package/src/components/checkbox/checkbox.tsx +0 -192
  54. package/src/components/checkbox/checkbox.types.ts +0 -125
  55. package/src/components/checkbox/index.ts +0 -10
  56. package/src/components/chip/chip-group/chip-group.tsx +0 -107
  57. package/src/components/chip/chip-group/index.ts +0 -1
  58. package/src/components/chip/chip.context.ts +0 -15
  59. package/src/components/chip/chip.styles.ts +0 -36
  60. package/src/components/chip/chip.test.tsx +0 -197
  61. package/src/components/chip/chip.tsx +0 -208
  62. package/src/components/chip/chip.types.ts +0 -134
  63. package/src/components/chip/index.ts +0 -10
  64. package/src/components/color-swatch/color-swatch.styles.ts +0 -11
  65. package/src/components/color-swatch/color-swatch.test.tsx +0 -80
  66. package/src/components/color-swatch/color-swatch.tsx +0 -84
  67. package/src/components/color-swatch/color-swatch.types.ts +0 -46
  68. package/src/components/color-swatch/index.ts +0 -2
  69. package/src/components/drawer/drawer-body/drawer-body.tsx +0 -29
  70. package/src/components/drawer/drawer-body/index.ts +0 -1
  71. package/src/components/drawer/drawer-close/drawer-close.tsx +0 -43
  72. package/src/components/drawer/drawer-close/index.ts +0 -1
  73. package/src/components/drawer/drawer-content/drawer-content.tsx +0 -135
  74. package/src/components/drawer/drawer-content/index.ts +0 -1
  75. package/src/components/drawer/drawer-header/drawer-header.tsx +0 -40
  76. package/src/components/drawer/drawer-header/index.ts +0 -1
  77. package/src/components/drawer/drawer-overlay/drawer-overlay.tsx +0 -87
  78. package/src/components/drawer/drawer-overlay/index.ts +0 -1
  79. package/src/components/drawer/drawer-root/drawer-root.tsx +0 -93
  80. package/src/components/drawer/drawer-root/index.ts +0 -1
  81. package/src/components/drawer/drawer.context.ts +0 -26
  82. package/src/components/drawer/drawer.styles.ts +0 -32
  83. package/src/components/drawer/drawer.test.tsx +0 -274
  84. package/src/components/drawer/drawer.tsx +0 -58
  85. package/src/components/drawer/drawer.types.ts +0 -192
  86. package/src/components/drawer/index.ts +0 -18
  87. package/src/components/drawer/use-drawer.ts +0 -94
  88. package/src/components/file-input/file-input.test.tsx +0 -134
  89. package/src/components/file-input/file-input.tsx +0 -224
  90. package/src/components/file-input/file-input.types.ts +0 -78
  91. package/src/components/file-input/file-input.utils.test.ts +0 -36
  92. package/src/components/file-input/file-input.utils.ts +0 -130
  93. package/src/components/file-input/index.ts +0 -2
  94. package/src/components/for/for.test.tsx +0 -66
  95. package/src/components/for/for.tsx +0 -53
  96. package/src/components/for/for.types.ts +0 -40
  97. package/src/components/for/index.ts +0 -2
  98. package/src/components/index.ts +0 -35
  99. package/src/components/input/index.ts +0 -2
  100. package/src/components/input/input-description/index.ts +0 -2
  101. package/src/components/input/input-description/input-description.tsx +0 -36
  102. package/src/components/input/input-error/index.ts +0 -2
  103. package/src/components/input/input-error/input-error.tsx +0 -36
  104. package/src/components/input/input-field/index.ts +0 -1
  105. package/src/components/input/input-field/input-field.styles.ts +0 -23
  106. package/src/components/input/input-field/input-field.tsx +0 -94
  107. package/src/components/input/input-label/index.ts +0 -2
  108. package/src/components/input/input-label/input-label.tsx +0 -47
  109. package/src/components/input/input-wrapper/index.ts +0 -2
  110. package/src/components/input/input-wrapper/input-wrapper.tsx +0 -43
  111. package/src/components/input/input.tsx +0 -71
  112. package/src/components/input/input.types.ts +0 -111
  113. package/src/components/loader/index.ts +0 -2
  114. package/src/components/loader/loader.tsx +0 -89
  115. package/src/components/loader/loader.types.ts +0 -33
  116. package/src/components/menu/index.ts +0 -24
  117. package/src/components/menu/menu-dropdown/index.ts +0 -1
  118. package/src/components/menu/menu-dropdown/menu-dropdown.tsx +0 -220
  119. package/src/components/menu/menu-item/index.ts +0 -1
  120. package/src/components/menu/menu-item/menu-item.tsx +0 -126
  121. package/src/components/menu/menu-label/index.ts +0 -1
  122. package/src/components/menu/menu-label/menu-label.tsx +0 -30
  123. package/src/components/menu/menu-separator/index.ts +0 -1
  124. package/src/components/menu/menu-separator/menu-separator.tsx +0 -28
  125. package/src/components/menu/menu-sub/index.ts +0 -1
  126. package/src/components/menu/menu-sub/menu-sub.tsx +0 -117
  127. package/src/components/menu/menu-sub-dropdown/index.ts +0 -1
  128. package/src/components/menu/menu-sub-dropdown/menu-sub-dropdown.tsx +0 -221
  129. package/src/components/menu/menu-sub-trigger/index.ts +0 -1
  130. package/src/components/menu/menu-sub-trigger/menu-sub-trigger.tsx +0 -164
  131. package/src/components/menu/menu-trigger/index.ts +0 -1
  132. package/src/components/menu/menu-trigger/menu-trigger.tsx +0 -98
  133. package/src/components/menu/menu.context.ts +0 -162
  134. package/src/components/menu/menu.test.tsx +0 -136
  135. package/src/components/menu/menu.tsx +0 -133
  136. package/src/components/menu/menu.types.ts +0 -291
  137. package/src/components/menu/use-menu.ts +0 -204
  138. package/src/components/modal/index.ts +0 -18
  139. package/src/components/modal/modal-body/index.ts +0 -1
  140. package/src/components/modal/modal-body/modal-body.tsx +0 -29
  141. package/src/components/modal/modal-close/index.ts +0 -1
  142. package/src/components/modal/modal-close/modal-close.tsx +0 -43
  143. package/src/components/modal/modal-content/index.ts +0 -1
  144. package/src/components/modal/modal-content/modal-content.tsx +0 -119
  145. package/src/components/modal/modal-header/index.ts +0 -1
  146. package/src/components/modal/modal-header/modal-header.tsx +0 -40
  147. package/src/components/modal/modal-overlay/index.ts +0 -1
  148. package/src/components/modal/modal-overlay/modal-overlay.tsx +0 -87
  149. package/src/components/modal/modal-root/index.ts +0 -1
  150. package/src/components/modal/modal-root/modal-root.tsx +0 -93
  151. package/src/components/modal/modal.context.ts +0 -26
  152. package/src/components/modal/modal.test.tsx +0 -316
  153. package/src/components/modal/modal.tsx +0 -58
  154. package/src/components/modal/modal.types.ts +0 -189
  155. package/src/components/modal/use-modal.ts +0 -94
  156. package/src/components/number-input/index.ts +0 -2
  157. package/src/components/number-input/number-input.styles.ts +0 -37
  158. package/src/components/number-input/number-input.test.tsx +0 -22
  159. package/src/components/number-input/number-input.tsx +0 -381
  160. package/src/components/number-input/number-input.types.ts +0 -58
  161. package/src/components/pagination/index.ts +0 -7
  162. package/src/components/pagination/pagination.styles.ts +0 -84
  163. package/src/components/pagination/pagination.test.tsx +0 -117
  164. package/src/components/pagination/pagination.tsx +0 -371
  165. package/src/components/pagination/pagination.types.ts +0 -95
  166. package/src/components/pagination/pagination.utils.ts +0 -88
  167. package/src/components/password-input/index.ts +0 -2
  168. package/src/components/password-input/password-input.test.tsx +0 -72
  169. package/src/components/password-input/password-input.tsx +0 -85
  170. package/src/components/password-input/password-input.types.ts +0 -30
  171. package/src/components/pin-input/index.ts +0 -2
  172. package/src/components/pin-input/pin-input.test.tsx +0 -149
  173. package/src/components/pin-input/pin-input.tsx +0 -473
  174. package/src/components/pin-input/pin-input.types.ts +0 -78
  175. package/src/components/popover/index.ts +0 -12
  176. package/src/components/popover/popover-dropdown/index.ts +0 -1
  177. package/src/components/popover/popover-dropdown/popover-dropdown.tsx +0 -94
  178. package/src/components/popover/popover-trigger/index.ts +0 -1
  179. package/src/components/popover/popover-trigger/popover-trigger.tsx +0 -49
  180. package/src/components/popover/popover.context.ts +0 -20
  181. package/src/components/popover/popover.tsx +0 -113
  182. package/src/components/popover/popover.types.ts +0 -137
  183. package/src/components/popover/use-popover.ts +0 -219
  184. package/src/components/portal/index.ts +0 -2
  185. package/src/components/portal/portal.test.tsx +0 -39
  186. package/src/components/portal/portal.tsx +0 -104
  187. package/src/components/portal/portal.types.ts +0 -31
  188. package/src/components/progress/index.ts +0 -2
  189. package/src/components/progress/progress.styles.ts +0 -25
  190. package/src/components/progress/progress.test.tsx +0 -107
  191. package/src/components/progress/progress.tsx +0 -93
  192. package/src/components/progress/progress.types.ts +0 -52
  193. package/src/components/progress-circle/index.ts +0 -5
  194. package/src/components/progress-circle/progress-circle.styles.ts +0 -31
  195. package/src/components/progress-circle/progress-circle.test.tsx +0 -140
  196. package/src/components/progress-circle/progress-circle.tsx +0 -124
  197. package/src/components/progress-circle/progress-circle.types.ts +0 -52
  198. package/src/components/radio/index.ts +0 -10
  199. package/src/components/radio/radio-group/index.ts +0 -1
  200. package/src/components/radio/radio-group/radio-group.tsx +0 -89
  201. package/src/components/radio/radio.context.ts +0 -14
  202. package/src/components/radio/radio.styles.ts +0 -49
  203. package/src/components/radio/radio.test.tsx +0 -75
  204. package/src/components/radio/radio.tsx +0 -173
  205. package/src/components/radio/radio.types.ts +0 -126
  206. package/src/components/scroll-area/index.ts +0 -6
  207. package/src/components/scroll-area/scroll-area.test.tsx +0 -72
  208. package/src/components/scroll-area/scroll-area.tsx +0 -70
  209. package/src/components/scroll-area/scroll-area.types.ts +0 -37
  210. package/src/components/segmented-control/index.ts +0 -6
  211. package/src/components/segmented-control/segmented-control.styles.ts +0 -37
  212. package/src/components/segmented-control/segmented-control.test.tsx +0 -170
  213. package/src/components/segmented-control/segmented-control.tsx +0 -255
  214. package/src/components/segmented-control/segmented-control.types.ts +0 -78
  215. package/src/components/select/index.ts +0 -20
  216. package/src/components/select/select-dropdown/index.ts +0 -1
  217. package/src/components/select/select-dropdown/select-dropdown.tsx +0 -299
  218. package/src/components/select/select-group/index.ts +0 -1
  219. package/src/components/select/select-group/select-group.tsx +0 -47
  220. package/src/components/select/select-item/index.ts +0 -1
  221. package/src/components/select/select-item/select-item.tsx +0 -157
  222. package/src/components/select/select-root/index.ts +0 -1
  223. package/src/components/select/select-root/select-root.tsx +0 -333
  224. package/src/components/select/select-trigger/index.ts +0 -1
  225. package/src/components/select/select-trigger/select-trigger.tsx +0 -123
  226. package/src/components/select/select.context.ts +0 -140
  227. package/src/components/select/select.test.tsx +0 -190
  228. package/src/components/select/select.tsx +0 -82
  229. package/src/components/select/select.types.ts +0 -272
  230. package/src/components/select/use-select.ts +0 -170
  231. package/src/components/slider/index.ts +0 -7
  232. package/src/components/slider/slider.styles.ts +0 -37
  233. package/src/components/slider/slider.tsx +0 -275
  234. package/src/components/slider/slider.types.ts +0 -82
  235. package/src/components/switch/index.ts +0 -2
  236. package/src/components/switch/switch.styles.ts +0 -31
  237. package/src/components/switch/switch.tsx +0 -132
  238. package/src/components/switch/switch.types.ts +0 -62
  239. package/src/components/table/index.ts +0 -24
  240. package/src/components/table/table-body/index.ts +0 -1
  241. package/src/components/table/table-body/table-body.tsx +0 -37
  242. package/src/components/table/table-caption/index.ts +0 -1
  243. package/src/components/table/table-caption/table-caption.tsx +0 -32
  244. package/src/components/table/table-cell/index.ts +0 -1
  245. package/src/components/table/table-cell/table-cell.tsx +0 -33
  246. package/src/components/table/table-head/index.ts +0 -1
  247. package/src/components/table/table-head/table-head.tsx +0 -29
  248. package/src/components/table/table-header-cell/index.ts +0 -1
  249. package/src/components/table/table-header-cell/table-header-cell.tsx +0 -33
  250. package/src/components/table/table-row/index.ts +0 -1
  251. package/src/components/table/table-row/table-row.tsx +0 -30
  252. package/src/components/table/table.context.ts +0 -18
  253. package/src/components/table/table.styles.ts +0 -62
  254. package/src/components/table/table.test.tsx +0 -145
  255. package/src/components/table/table.tsx +0 -91
  256. package/src/components/table/table.types.ts +0 -145
  257. package/src/components/tabs/index.ts +0 -18
  258. package/src/components/tabs/tabs-list/index.ts +0 -1
  259. package/src/components/tabs/tabs-list/tabs-list.tsx +0 -42
  260. package/src/components/tabs/tabs-panel/index.ts +0 -1
  261. package/src/components/tabs/tabs-panel/tabs-panel.tsx +0 -58
  262. package/src/components/tabs/tabs-tab/index.ts +0 -1
  263. package/src/components/tabs/tabs-tab/tabs-tab.tsx +0 -210
  264. package/src/components/tabs/tabs.context.ts +0 -88
  265. package/src/components/tabs/tabs.styles.ts +0 -92
  266. package/src/components/tabs/tabs.test.tsx +0 -167
  267. package/src/components/tabs/tabs.tsx +0 -137
  268. package/src/components/tabs/tabs.types.ts +0 -128
  269. package/src/components/textarea/index.ts +0 -2
  270. package/src/components/textarea/textarea-field/index.ts +0 -1
  271. package/src/components/textarea/textarea-field/textarea-field.styles.ts +0 -34
  272. package/src/components/textarea/textarea-field/textarea-field.tsx +0 -96
  273. package/src/components/textarea/textarea.tsx +0 -64
  274. package/src/components/textarea/textarea.types.ts +0 -80
  275. package/src/components/timeline/index.ts +0 -11
  276. package/src/components/timeline/timeline-item/index.ts +0 -1
  277. package/src/components/timeline/timeline-item/timeline-item.tsx +0 -158
  278. package/src/components/timeline/timeline.context.ts +0 -21
  279. package/src/components/timeline/timeline.styles.ts +0 -135
  280. package/src/components/timeline/timeline.test.tsx +0 -150
  281. package/src/components/timeline/timeline.tsx +0 -124
  282. package/src/components/timeline/timeline.types.ts +0 -91
  283. package/src/components/tooltip/index.ts +0 -8
  284. package/src/components/tooltip/tooltip.tsx +0 -164
  285. package/src/components/tooltip/tooltip.types.ts +0 -104
  286. package/src/components/tooltip/use-tooltip.ts +0 -200
  287. package/src/components/transition/index.ts +0 -11
  288. package/src/components/transition/transition.test.tsx +0 -126
  289. package/src/components/transition/transition.tsx +0 -441
  290. package/src/components/transition/transition.types.ts +0 -97
  291. package/src/components/transition/transitions.ts +0 -140
  292. package/src/icons/check.tsx +0 -25
  293. package/src/icons/chevron.tsx +0 -46
  294. package/src/icons/eye-off.tsx +0 -30
  295. package/src/icons/eye.tsx +0 -24
  296. package/src/icons/index.ts +0 -7
  297. package/src/icons/minus.tsx +0 -24
  298. package/src/icons/types.ts +0 -9
  299. package/src/icons/user.tsx +0 -18
  300. package/src/icons/x.tsx +0 -35
  301. package/src/index.ts +0 -5
  302. package/src/style.css +0 -334
  303. package/src/theme/ThemeProvider/ThemeProvider.tsx +0 -111
  304. package/src/theme/ThemeProvider/context.ts +0 -7
  305. package/src/theme/ThemeProvider/generateVariables.test.ts +0 -49
  306. package/src/theme/ThemeProvider/generateVariables.ts +0 -124
  307. package/src/theme/ThemeProvider/index.ts +0 -3
  308. package/src/theme/ThemeProvider/types.ts +0 -37
  309. package/src/theme/createTheme/createTheme.ts +0 -41
  310. package/src/theme/createTheme/index.ts +0 -7
  311. package/src/theme/createTheme/types.ts +0 -62
  312. package/src/theme/defaults/colors.ts +0 -203
  313. package/src/theme/defaults/settings.ts +0 -8
  314. package/src/theme/index.ts +0 -4
  315. package/src/theme/types.ts +0 -31
  316. package/src/theme/utils/get-radius.ts +0 -23
  317. package/src/theme/utils/get-shade.ts +0 -16
  318. package/src/theme/utils/index.ts +0 -3
  319. package/src/theme/utils/use-theme.ts +0 -27
  320. package/src/utils/configs/create-config.ts +0 -15
  321. package/src/utils/configs/index.ts +0 -3
  322. package/src/utils/configs/use-class-names.ts +0 -41
  323. package/src/utils/configs/use-props.ts +0 -55
  324. package/src/utils/cx/index.ts +0 -6
  325. package/src/utils/factory/factory.ts +0 -23
  326. package/src/utils/factory/index.ts +0 -14
  327. package/src/utils/factory/types.ts +0 -92
  328. package/src/utils/index.ts +0 -3
  329. package/src/vitest/index.ts +0 -1
  330. package/src/vitest/setup.tsx +0 -20
  331. package/src/vitest/utils.tsx +0 -59
  332. package/tsconfig.json +0 -13
  333. package/tsconfig.tsbuildinfo +0 -1
  334. package/vitest.config.js +0 -19
@@ -1,53 +0,0 @@
1
- import { Fragment } from "react";
2
- import type { JSX } from "react";
3
- import type { ForProps } from "./for.types";
4
-
5
- const normalize = <T,>(collection?: ForProps<T>["each"]): T[] => {
6
- if (!collection) {
7
- return [];
8
- }
9
-
10
- if (Array.isArray(collection)) {
11
- return collection.slice();
12
- }
13
-
14
- return Array.from(collection as Iterable<T> | ArrayLike<T>);
15
- };
16
-
17
- const For = <T,>({
18
- each,
19
- children,
20
- fallback = null,
21
- keyExtractor
22
- }: ForProps<T>): JSX.Element | null => {
23
- const items = normalize(each);
24
-
25
- if (items.length === 0) {
26
- return fallback === null ? null : <>{fallback}</>;
27
- }
28
-
29
- const lastIndex = items.length - 1;
30
-
31
- return (
32
- <>
33
- {items.map((item, index) => {
34
- const meta = {
35
- index,
36
- length: items.length,
37
- isFirst: index === 0,
38
- isLast: index === lastIndex,
39
- previous: index > 0 ? items[index - 1] : undefined,
40
- next: index < lastIndex ? items[index + 1] : undefined
41
- };
42
-
43
- const key = keyExtractor?.(item, index) ?? index;
44
-
45
- return <Fragment key={key}>{children(item, meta)}</Fragment>;
46
- })}
47
- </>
48
- );
49
- };
50
-
51
- For.displayName = "@refraktor/core/For";
52
-
53
- export default For;
@@ -1,40 +0,0 @@
1
- import { Key, ReactNode } from "react";
2
-
3
- /**
4
- * Supported collections for the For component. Accepts arrays, array-likes and iterables.
5
- */
6
- export type ForList<T> = readonly T[] | Iterable<T> | ArrayLike<T>;
7
-
8
- /**
9
- * Metadata passed to the render function for each item in the collection.
10
- */
11
- export type ForRenderMeta<T> = {
12
- /** Index of the current item in the collection. */
13
- index: number;
14
-
15
- /** Total number of items in the collection. */
16
- length: number;
17
-
18
- /** Indicates whether the current item is the first in the collection. */
19
- isFirst: boolean;
20
-
21
- /** Indicates whether the current item is the last in the collection. */
22
- isLast: boolean;
23
-
24
- /** Previous item in the collection if it exists. */
25
- previous?: T;
26
-
27
- /** Next item in the collection if it exists. */
28
- next?: T;
29
- };
30
-
31
- export type ForProps<T> = {
32
- /** Collection that should be iterated. */
33
- each?: ForList<T> | null;
34
- /** Render function that receives the current item and helpful metadata. */
35
- children: (item: T, meta: ForRenderMeta<T>) => ReactNode;
36
- /** Node rendered when the collection is empty. */
37
- fallback?: ReactNode;
38
- /** Optional function to derive a stable React key for each item. */
39
- keyExtractor?: (item: T, index: number) => Key;
40
- };
@@ -1,2 +0,0 @@
1
- export { default as For } from "./for";
2
- export type { ForList, ForProps, ForRenderMeta } from "./for.types";
@@ -1,35 +0,0 @@
1
- export * from "./accordion";
2
- export * from "./avatar";
3
- export * from "./badge";
4
- export * from "./breadcrumbs";
5
- export * from "./button";
6
- export * from "./checkbox";
7
- export * from "./chip";
8
- export * from "./color-swatch";
9
- export * from "./drawer";
10
- export * from "./file-input";
11
- export * from "./for";
12
- export * from "./input";
13
- export * from "./loader";
14
- export * from "./modal";
15
- export * from "./menu";
16
- export * from "./number-input";
17
- export * from "./password-input";
18
- export * from "./pin-input";
19
- export * from "./pagination";
20
- export * from "./popover";
21
- export * from "./portal";
22
- export * from "./progress";
23
- export * from "./progress-circle";
24
- export * from "./radio";
25
- export * from "./scroll-area";
26
- export * from "./select";
27
- export * from "./segmented-control";
28
- export * from "./slider";
29
- export * from "./switch";
30
- export * from "./table";
31
- export * from "./tabs";
32
- export * from "./timeline";
33
- export * from "./textarea";
34
- export * from "./tooltip";
35
- export * from "./transition";
@@ -1,2 +0,0 @@
1
- export { default as Input } from "./input";
2
- export * from "./input.types";
@@ -1,2 +0,0 @@
1
- export { default as InputDescription } from "./input-description";
2
- export type { InputDescriptionProps } from "./input-description";
@@ -1,36 +0,0 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
- import { factory, useProps, cx } from "../../../utils";
3
-
4
- export interface InputDescriptionProps extends ComponentPropsWithoutRef<"p"> {
5
- /** Editing root class name */
6
- className?: string;
7
- }
8
-
9
- const InputDescription = factory<{
10
- props: InputDescriptionProps;
11
- ref: HTMLParagraphElement;
12
- }>((_props, ref) => {
13
- const { className, children, ...props } = useProps(
14
- "InputDescription",
15
- null,
16
- _props
17
- );
18
-
19
- return (
20
- <p
21
- ref={ref}
22
- className={cx(
23
- "text-xs leading-relaxed",
24
- "text-[var(--refraktor-text-tertiary)]",
25
- className
26
- )}
27
- {...props}
28
- >
29
- {children}
30
- </p>
31
- );
32
- });
33
-
34
- InputDescription.displayName = "@refraktor/core/InputDescription";
35
-
36
- export default InputDescription;
@@ -1,2 +0,0 @@
1
- export { default as InputError } from "./input-error";
2
- export type { InputErrorProps } from "./input-error";
@@ -1,36 +0,0 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
- import { factory, useProps, cx } from "../../../utils";
3
-
4
- export interface InputErrorProps extends ComponentPropsWithoutRef<"p"> {
5
- /** Editing root class name */
6
- className?: string;
7
- }
8
-
9
- const InputError = factory<{
10
- props: InputErrorProps;
11
- ref: HTMLParagraphElement;
12
- }>((_props, ref) => {
13
- const { className, children, ...props } = useProps(
14
- "InputError",
15
- null,
16
- _props
17
- );
18
-
19
- return (
20
- <p
21
- ref={ref}
22
- className={cx(
23
- "text-xs mt-0.5",
24
- "text-[var(--refraktor-colors-red-5)]",
25
- className
26
- )}
27
- {...props}
28
- >
29
- {children}
30
- </p>
31
- );
32
- });
33
-
34
- InputError.displayName = "@refraktor/core/InputError";
35
-
36
- export default InputError;
@@ -1 +0,0 @@
1
- export { default as InputField } from "./input-field";
@@ -1,23 +0,0 @@
1
- import { RefraktorSize } from "../../../theme";
2
- import { InputVariant } from "../input.types";
3
-
4
- const sizes: Record<RefraktorSize, string> = {
5
- xs: "h-5 px-2 text-[8px]",
6
- sm: "h-6 px-2.5 text-[10px]",
7
- md: "h-8 px-3 text-xs",
8
- lg: "h-10 px-3.5 text-sm",
9
- xl: "h-12 px-4 text-base"
10
- };
11
-
12
- export const getSize = (size: RefraktorSize = "md") => sizes[size];
13
-
14
- const variants: Record<InputVariant, string> = {
15
- default:
16
- "bg-[var(--refraktor-bg)] text-[var(--refraktor-text)] border border-[var(--refraktor-border)]",
17
- filled: "bg-[var(--refraktor-bg)] text-[var(--refraktor-text)]",
18
- outline:
19
- "bg-transparent text-[var(--refraktor-text)] border border-[var(--refraktor-border)]"
20
- };
21
-
22
- export const getVariant = (variant: InputVariant = "default") =>
23
- variants[variant];
@@ -1,94 +0,0 @@
1
- import { createComponentConfig, factory, useProps } from "../../../utils";
2
- import { useId } from "@refraktor/utils";
3
- import { InputFieldFactoryPayload, InputFieldProps } from "../input.types";
4
- import { getSize, getVariant } from "./input-field.styles";
5
- import { useTheme } from "../../../theme";
6
-
7
- const defaultProps = {
8
- variant: "default",
9
- size: "md",
10
- radius: "default"
11
- } satisfies Partial<InputFieldProps>;
12
-
13
- const InputField = factory<InputFieldFactoryPayload>((_props, ref) => {
14
- const { cx, getRadius } = useTheme();
15
- const {
16
- id,
17
- variant,
18
- size,
19
- radius,
20
- error,
21
- leftSection,
22
- rightSection,
23
- className,
24
- classNames,
25
- style,
26
- disabled,
27
- ...props
28
- } = useProps("InputField", defaultProps, _props);
29
-
30
- const _id = useId(id);
31
-
32
- return (
33
- <div
34
- className={cx(
35
- "relative w-full grid items-center transition-all",
36
- leftSection && rightSection && "grid-cols-[auto_1fr_auto]",
37
- leftSection && !rightSection && "grid-cols-[auto_1fr]",
38
- !leftSection && rightSection && "grid-cols-[1fr_auto]",
39
- !leftSection && !rightSection && "grid-cols-[1fr]",
40
- (leftSection || rightSection) && "gap-2",
41
- getSize(size),
42
- getVariant(variant),
43
- getRadius(radius),
44
- "focus-within:border-[var(--refraktor-primary)]",
45
- error && "border-[var(--refraktor-colors-red-6)]",
46
- disabled && "opacity-50 cursor-not-allowed",
47
- className,
48
- classNames?.root
49
- )}
50
- style={style}
51
- >
52
- {leftSection && (
53
- <div
54
- className={cx(
55
- "flex h-full self-stretch items-center justify-center text-[var(--refraktor-text-secondary)] shrink-0 select-none",
56
- classNames?.leftSection
57
- )}
58
- >
59
- {leftSection}
60
- </div>
61
- )}
62
-
63
- <input
64
- id={_id}
65
- ref={ref}
66
- disabled={disabled}
67
- aria-invalid={error ? true : undefined}
68
- className={cx(
69
- "w-full h-full outline-none border-none bg-transparent p-0",
70
- "text-[var(--refraktor-text)]",
71
- "placeholder:text-[var(--refraktor-text-tertiary)]",
72
- disabled && "cursor-not-allowed"
73
- )}
74
- {...props}
75
- />
76
-
77
- {rightSection && (
78
- <div
79
- className={cx(
80
- "flex h-full self-stretch items-center justify-center text-[var(--refraktor-text-secondary)] shrink-0 select-none",
81
- classNames?.rightSection
82
- )}
83
- >
84
- {rightSection}
85
- </div>
86
- )}
87
- </div>
88
- );
89
- });
90
-
91
- InputField.displayName = "@refraktor/core/InputField";
92
- InputField.configure = createComponentConfig<InputFieldProps>();
93
-
94
- export default InputField;
@@ -1,2 +0,0 @@
1
- export { default as InputLabel } from "./input-label";
2
- export type { InputLabelProps } from "./input-label";
@@ -1,47 +0,0 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
- import { factory, useProps, cx } from "../../../utils";
3
-
4
- export interface InputLabelProps extends ComponentPropsWithoutRef<"label"> {
5
- /** Show required asterisk */
6
- required?: boolean;
7
-
8
- /** Used for editing root class name */
9
- className?: string;
10
- }
11
-
12
- const InputLabel = factory<{
13
- props: InputLabelProps;
14
- ref: HTMLLabelElement;
15
- }>((_props, ref) => {
16
- const { required, className, children, ...props } = useProps(
17
- "InputLabel",
18
- null,
19
- _props
20
- );
21
-
22
- return (
23
- <label
24
- ref={ref}
25
- className={cx(
26
- "inline-block text-xs font-medium mb-0.5",
27
- "text-[var(--refraktor-text)]",
28
- className
29
- )}
30
- {...props}
31
- >
32
- {children}
33
- {required && (
34
- <span
35
- className="ml-1 text-[var(--refraktor-colors-red-5)]"
36
- aria-hidden="true"
37
- >
38
- *
39
- </span>
40
- )}
41
- </label>
42
- );
43
- });
44
-
45
- InputLabel.displayName = "@refraktor/core/InputLabel";
46
-
47
- export default InputLabel;
@@ -1,2 +0,0 @@
1
- export { default as InputWrapper } from "./input-wrapper";
2
- export type { InputWrapperProps } from "../input.types";
@@ -1,43 +0,0 @@
1
- import { factory, useProps, cx, createComponentConfig } from "../../../utils";
2
- import { InputDescription } from "../input-description";
3
- import { InputError } from "../input-error";
4
- import { InputLabel } from "../input-label";
5
- import { InputWrapperFactoryPayload, InputWrapperProps } from "../input.types";
6
-
7
- const InputWrapper = factory<InputWrapperFactoryPayload>((_props, ref) => {
8
- const {
9
- label,
10
- description,
11
- error,
12
- required,
13
- withAsterisk,
14
- inputId,
15
- children,
16
- className,
17
- ...props
18
- } = useProps("InputWrapper", null, _props);
19
-
20
- const showAsterisk = withAsterisk || required;
21
-
22
- return (
23
- <div ref={ref} className={cx("flex flex-col", className)} {...props}>
24
- {label && (
25
- <InputLabel htmlFor={inputId} required={showAsterisk}>
26
- {label}
27
- </InputLabel>
28
- )}
29
-
30
- {description && <InputDescription>{description}</InputDescription>}
31
-
32
- {children}
33
-
34
- {error && typeof error !== "boolean" && (
35
- <InputError>{error}</InputError>
36
- )}
37
- </div>
38
- );
39
- });
40
-
41
- InputWrapper.displayName = "@refraktor/core/InputWrapper";
42
-
43
- export default InputWrapper;
@@ -1,71 +0,0 @@
1
- import { useId } from "@refraktor/utils";
2
- import { createComponentConfig, factory, useProps } from "../../utils";
3
- import { InputFactoryPayload, InputProps } from "./input.types";
4
- import { InputWrapper } from "./input-wrapper";
5
- import { InputLabel } from "./input-label";
6
- import { InputDescription } from "./input-description";
7
- import { InputError } from "./input-error";
8
- import { InputField } from "./input-field";
9
-
10
- const defaultProps = {
11
- variant: "default",
12
- size: "md",
13
- radius: "default"
14
- } satisfies Partial<InputProps>;
15
-
16
- const Input = factory<InputFactoryPayload>((_props, ref) => {
17
- const { id, label, description, error, required, withAsterisk, ...props } =
18
- useProps("Input", defaultProps, _props);
19
-
20
- const _id = useId(id);
21
-
22
- const hasWrapper = label || description || error;
23
-
24
- if (!hasWrapper) {
25
- return (
26
- <InputField
27
- ref={ref}
28
- id={_id}
29
- required={required}
30
- error={!!error}
31
- {...props}
32
- />
33
- );
34
- }
35
-
36
- return (
37
- <InputWrapper
38
- label={label}
39
- description={description}
40
- error={error}
41
- required={required}
42
- withAsterisk={withAsterisk}
43
- inputId={_id}
44
- >
45
- <InputField
46
- ref={ref}
47
- id={_id}
48
- required={required}
49
- error={!!error}
50
- aria-describedby={
51
- error
52
- ? `${_id}-error`
53
- : description
54
- ? `${_id}-description`
55
- : undefined
56
- }
57
- {...props}
58
- />
59
- </InputWrapper>
60
- );
61
- });
62
-
63
- Input.displayName = "@refraktor/core/Input";
64
- Input.configure = createComponentConfig<InputProps>();
65
- Input.Wrapper = InputWrapper;
66
- Input.Label = InputLabel;
67
- Input.Description = InputDescription;
68
- Input.Error = InputError;
69
- Input.Field = InputField;
70
-
71
- export default Input;
@@ -1,111 +0,0 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
- import { RefraktorRadius, RefraktorSize } from "../../theme";
3
- import { createComponentConfig, FactoryPayload } from "../../utils";
4
- import { InputLabel } from "./input-label";
5
- import { InputDescription } from "./input-description";
6
- import { InputError } from "./input-error";
7
- import { InputField } from "./input-field";
8
- import { InputWrapper } from "./input-wrapper";
9
-
10
- export type InputVariant = "default" | "filled" | "outline";
11
-
12
- export type InputFieldClassNames = {
13
- root?: string;
14
- leftSection?: string;
15
- rightSection?: string;
16
- };
17
-
18
- export interface InputWrapperProps extends ComponentPropsWithoutRef<"div"> {
19
- /** Label text */
20
- label?: ReactNode;
21
-
22
- /** Description text displayed below the label */
23
- description?: ReactNode;
24
-
25
- /** Error message */
26
- error?: ReactNode;
27
-
28
- /** Whether the field is required */
29
- required?: boolean;
30
-
31
- /** Display an asterisk next to the label */
32
- withAsterisk?: boolean;
33
-
34
- /** Input id for label association */
35
- inputId?: string;
36
-
37
- /** Children (input field) */
38
- children: ReactNode;
39
-
40
- /** Used for editing root class name */
41
- className?: string;
42
- }
43
-
44
- export interface InputFieldProps
45
- extends Omit<ComponentPropsWithoutRef<"input">, "size"> {
46
- /** Input variant @default `default` */
47
- variant?: InputVariant;
48
-
49
- /** Input size @default `md` */
50
- size?: RefraktorSize;
51
-
52
- /** Input radius @default `md` */
53
- radius?: RefraktorRadius;
54
-
55
- /** Error state */
56
- error?: boolean;
57
-
58
- /** Left section content */
59
- leftSection?: ReactNode;
60
-
61
- /** Right section content */
62
- rightSection?: ReactNode;
63
-
64
- /** Used for editing root class name */
65
- className?: string;
66
-
67
- classNames?: InputFieldClassNames;
68
- }
69
-
70
- export interface InputProps extends Omit<InputFieldProps, "error"> {
71
- /** Label text */
72
- label?: ReactNode;
73
-
74
- /** Description text */
75
- description?: ReactNode;
76
-
77
- /** Error message */
78
- error?: ReactNode;
79
-
80
- /** Whether the field is required */
81
- required?: boolean;
82
-
83
- /** Display an asterisk next to the label */
84
- withAsterisk?: boolean;
85
- }
86
-
87
- export interface InputFactoryPayload extends FactoryPayload {
88
- props: InputProps;
89
- ref: HTMLInputElement;
90
- compound: {
91
- configure: ReturnType<typeof createComponentConfig<InputProps>>;
92
- Wrapper: typeof InputWrapper;
93
- Label: typeof InputLabel;
94
- Description: typeof InputDescription;
95
- Error: typeof InputError;
96
- Field: typeof InputField;
97
- };
98
- }
99
-
100
- export interface InputWrapperFactoryPayload extends FactoryPayload {
101
- props: InputWrapperProps;
102
- ref: HTMLDivElement;
103
- }
104
-
105
- export interface InputFieldFactoryPayload extends FactoryPayload {
106
- props: InputFieldProps;
107
- ref: HTMLInputElement;
108
- compound: {
109
- configure: ReturnType<typeof createComponentConfig<InputFieldProps>>;
110
- };
111
- }
@@ -1,2 +0,0 @@
1
- export { default as Loader } from "./loader";
2
- export type { LoaderProps } from "./loader.types";