@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 +0,0 @@
1
- export { default as TableCaption } from "./table-caption";
@@ -1,32 +0,0 @@
1
- import { useTheme } from "../../../theme";
2
- import { factory } from "../../../utils";
3
- import { useTableContext } from "../table.context";
4
- import { getSize } from "../table.styles";
5
- import { TableCaptionFactoryPayload } from "../table.types";
6
-
7
- const TableCaption = factory<TableCaptionFactoryPayload>(
8
- ({ children, className, ...props }, ref) => {
9
- const { cx } = useTheme();
10
- const { size, getStyles } = useTableContext();
11
- const sizeStyles = getSize(size);
12
-
13
- return (
14
- <caption
15
- ref={ref}
16
- className={cx(
17
- "caption-bottom mt-2 text-[var(--refraktor-text-secondary)]",
18
- sizeStyles.caption,
19
- getStyles("caption"),
20
- className
21
- )}
22
- {...props}
23
- >
24
- {children}
25
- </caption>
26
- );
27
- }
28
- );
29
-
30
- TableCaption.displayName = "@refraktor/core/Table.Caption";
31
-
32
- export default TableCaption;
@@ -1 +0,0 @@
1
- export { default as TableCell } from "./table-cell";
@@ -1,33 +0,0 @@
1
- import { useTheme } from "../../../theme";
2
- import { factory } from "../../../utils";
3
- import { useTableContext } from "../table.context";
4
- import { getColumnBorder, getSize } from "../table.styles";
5
- import { TableCellFactoryPayload } from "../table.types";
6
-
7
- const TableCell = factory<TableCellFactoryPayload>(
8
- ({ children, className, ...props }, ref) => {
9
- const { cx } = useTheme();
10
- const { size, withColumnBorders, getStyles } = useTableContext();
11
- const sizeStyles = getSize(size);
12
-
13
- return (
14
- <td
15
- ref={ref}
16
- className={cx(
17
- "align-middle text-[var(--refraktor-text)]",
18
- sizeStyles.cell,
19
- getColumnBorder(withColumnBorders),
20
- getStyles("cell"),
21
- className
22
- )}
23
- {...props}
24
- >
25
- {children}
26
- </td>
27
- );
28
- }
29
- );
30
-
31
- TableCell.displayName = "@refraktor/core/Table.Cell";
32
-
33
- export default TableCell;
@@ -1 +0,0 @@
1
- export { default as TableHead } from "./table-head";
@@ -1,29 +0,0 @@
1
- import { useTheme } from "../../../theme";
2
- import { factory } from "../../../utils";
3
- import { useTableContext } from "../table.context";
4
- import { TableHeadFactoryPayload } from "../table.types";
5
-
6
- const TableHead = factory<TableHeadFactoryPayload>(
7
- ({ children, className, ...props }, ref) => {
8
- const { cx } = useTheme();
9
- const { getStyles } = useTableContext();
10
-
11
- return (
12
- <thead
13
- ref={ref}
14
- className={cx(
15
- "border-b border-[var(--refraktor-border)] bg-[var(--refraktor-bg-subtle)]",
16
- getStyles("head"),
17
- className
18
- )}
19
- {...props}
20
- >
21
- {children}
22
- </thead>
23
- );
24
- }
25
- );
26
-
27
- TableHead.displayName = "@refraktor/core/Table.Head";
28
-
29
- export default TableHead;
@@ -1 +0,0 @@
1
- export { default as TableHeaderCell } from "./table-header-cell";
@@ -1,33 +0,0 @@
1
- import { useTheme } from "../../../theme";
2
- import { factory } from "../../../utils";
3
- import { useTableContext } from "../table.context";
4
- import { getColumnBorder, getSize } from "../table.styles";
5
- import { TableHeaderCellFactoryPayload } from "../table.types";
6
-
7
- const TableHeaderCell = factory<TableHeaderCellFactoryPayload>(
8
- ({ children, className, ...props }, ref) => {
9
- const { cx } = useTheme();
10
- const { size, withColumnBorders, getStyles } = useTableContext();
11
- const sizeStyles = getSize(size);
12
-
13
- return (
14
- <th
15
- ref={ref}
16
- className={cx(
17
- "text-left font-medium align-middle text-[var(--refraktor-text-secondary)]",
18
- sizeStyles.headerCell,
19
- getColumnBorder(withColumnBorders),
20
- getStyles("headerCell"),
21
- className
22
- )}
23
- {...props}
24
- >
25
- {children}
26
- </th>
27
- );
28
- }
29
- );
30
-
31
- TableHeaderCell.displayName = "@refraktor/core/Table.HeaderCell";
32
-
33
- export default TableHeaderCell;
@@ -1 +0,0 @@
1
- export { default as TableRow } from "./table-row";
@@ -1,30 +0,0 @@
1
- import { useTheme } from "../../../theme";
2
- import { factory } from "../../../utils";
3
- import { useTableContext } from "../table.context";
4
- import { TableRowFactoryPayload } from "../table.types";
5
-
6
- const TableRow = factory<TableRowFactoryPayload>(
7
- ({ children, className, ...props }, ref) => {
8
- const { cx } = useTheme();
9
- const { highlightOnHover, getStyles } = useTableContext();
10
-
11
- return (
12
- <tr
13
- ref={ref}
14
- className={cx(
15
- "align-middle",
16
- highlightOnHover && "transition-colors",
17
- getStyles("row"),
18
- className
19
- )}
20
- {...props}
21
- >
22
- {children}
23
- </tr>
24
- );
25
- }
26
- );
27
-
28
- TableRow.displayName = "@refraktor/core/Table.Row";
29
-
30
- export default TableRow;
@@ -1,18 +0,0 @@
1
- import { createSafeContext } from "@refraktor/utils";
2
- import { RefraktorRadius, RefraktorSize } from "../../theme";
3
- import { TableClassNames } from "./table.types";
4
-
5
- export interface TableContextValue {
6
- size: RefraktorSize;
7
- radius: RefraktorRadius;
8
- striped: boolean;
9
- highlightOnHover: boolean;
10
- withRowBorders: boolean;
11
- withColumnBorders: boolean;
12
- getStyles: (part: keyof TableClassNames) => string | undefined;
13
- }
14
-
15
- export const [TableProvider, useTableContext] =
16
- createSafeContext<TableContextValue>(
17
- "Table component was not found in tree. Make sure Table subcomponents are wrapped with Table."
18
- );
@@ -1,62 +0,0 @@
1
- import { RefraktorSize } from "../../theme";
2
-
3
- type TableSizeStyles = {
4
- headerCell: string;
5
- cell: string;
6
- caption: string;
7
- };
8
-
9
- type TableBodyStyleOptions = {
10
- striped: boolean;
11
- highlightOnHover: boolean;
12
- withRowBorders: boolean;
13
- };
14
-
15
- const sizes: Record<RefraktorSize, TableSizeStyles> = {
16
- xs: {
17
- headerCell: "px-2 py-1.5 text-xs",
18
- cell: "px-2 py-1.5 text-xs",
19
- caption: "text-xs"
20
- },
21
- sm: {
22
- headerCell: "px-2.5 py-2 text-xs",
23
- cell: "px-2.5 py-2 text-sm",
24
- caption: "text-xs"
25
- },
26
- md: {
27
- headerCell: "px-3 py-2.5 text-sm",
28
- cell: "px-3 py-2.5 text-sm",
29
- caption: "text-sm"
30
- },
31
- lg: {
32
- headerCell: "px-3.5 py-3 text-base",
33
- cell: "px-3.5 py-3 text-base",
34
- caption: "text-base"
35
- },
36
- xl: {
37
- headerCell: "px-4 py-3.5 text-lg",
38
- cell: "px-4 py-3.5 text-lg",
39
- caption: "text-lg"
40
- }
41
- };
42
-
43
- export const getSize = (size: RefraktorSize = "md") => sizes[size];
44
-
45
- export const getColumnBorder = (withColumnBorders = false) =>
46
- withColumnBorders
47
- ? "border-r border-[var(--refraktor-border)] last:border-r-0"
48
- : "";
49
-
50
- export const getBodyStyles = ({
51
- striped,
52
- highlightOnHover,
53
- withRowBorders
54
- }: TableBodyStyleOptions) =>
55
- [
56
- striped && "[&_tr:nth-child(odd)]:bg-[var(--refraktor-bg-subtle)]",
57
- highlightOnHover && "[&_tr:hover]:bg-[var(--refraktor-bg-hover)]",
58
- withRowBorders &&
59
- "[&_tr]:border-b [&_tr]:border-[var(--refraktor-border)] [&_tr:last-child]:border-b-0"
60
- ]
61
- .filter(Boolean)
62
- .join(" ");
@@ -1,145 +0,0 @@
1
- import { createRef } from "react";
2
- import { describe, expect, it } from "vitest";
3
- import { render, screen } from "../../vitest";
4
- import Table from "./table";
5
-
6
- describe("@refraktor/core/Table", () => {
7
- it("renders semantic table structure with subcomponents", async () => {
8
- await render(
9
- <Table>
10
- <Table.Caption>Users</Table.Caption>
11
- <Table.Head>
12
- <Table.Row>
13
- <Table.HeaderCell>Name</Table.HeaderCell>
14
- <Table.HeaderCell>Email</Table.HeaderCell>
15
- </Table.Row>
16
- </Table.Head>
17
-
18
- <Table.Body>
19
- <Table.Row>
20
- <Table.Cell>Ada</Table.Cell>
21
- <Table.Cell>ada@example.com</Table.Cell>
22
- </Table.Row>
23
- </Table.Body>
24
- </Table>
25
- );
26
-
27
- expect(screen.getByRole("table")).toBeInTheDocument();
28
- expect(screen.getByText("Users")).toBeInTheDocument();
29
- expect(
30
- screen.getByRole("columnheader", { name: "Name" })
31
- ).toBeInTheDocument();
32
- expect(screen.getByRole("cell", { name: "Ada" })).toBeInTheDocument();
33
- });
34
-
35
- it("applies body behavior styles", async () => {
36
- const { container } = await render(
37
- <Table striped highlightOnHover withRowBorders>
38
- <Table.Head>
39
- <Table.Row>
40
- <Table.HeaderCell>Name</Table.HeaderCell>
41
- </Table.Row>
42
- </Table.Head>
43
-
44
- <Table.Body>
45
- <Table.Row>
46
- <Table.Cell>Ada</Table.Cell>
47
- </Table.Row>
48
- </Table.Body>
49
- </Table>
50
- );
51
-
52
- const body = container.querySelector("tbody") as HTMLTableSectionElement;
53
-
54
- expect(body.className).toContain("nth-child(odd)");
55
- expect(body.className).toContain("[&_tr:hover]:bg-[var(--refraktor-bg-hover)]");
56
- expect(body.className).toContain("[&_tr]:border-b");
57
- });
58
-
59
- it("applies column borders and size styles", async () => {
60
- await render(
61
- <Table withColumnBorders size="xl">
62
- <Table.Head>
63
- <Table.Row>
64
- <Table.HeaderCell>Name</Table.HeaderCell>
65
- </Table.Row>
66
- </Table.Head>
67
-
68
- <Table.Body>
69
- <Table.Row>
70
- <Table.Cell>Ada</Table.Cell>
71
- </Table.Row>
72
- </Table.Body>
73
- </Table>
74
- );
75
-
76
- const headerCell = screen.getByRole("columnheader", { name: "Name" });
77
- const cell = screen.getByRole("cell", { name: "Ada" });
78
-
79
- expect(headerCell.className).toContain("border-r");
80
- expect(cell.className).toContain("border-r");
81
- expect(cell.className).toContain("px-4");
82
- });
83
-
84
- it("supports root and slot class names", async () => {
85
- const { container } = await render(
86
- <Table
87
- className="custom-root"
88
- classNames={{
89
- head: "custom-head",
90
- body: "custom-body",
91
- row: "custom-row",
92
- headerCell: "custom-header-cell",
93
- cell: "custom-cell",
94
- caption: "custom-caption"
95
- }}
96
- >
97
- <Table.Caption>Users</Table.Caption>
98
- <Table.Head>
99
- <Table.Row>
100
- <Table.HeaderCell>Name</Table.HeaderCell>
101
- </Table.Row>
102
- </Table.Head>
103
-
104
- <Table.Body>
105
- <Table.Row>
106
- <Table.Cell>Ada</Table.Cell>
107
- </Table.Row>
108
- </Table.Body>
109
- </Table>
110
- );
111
-
112
- const root = container.firstElementChild as HTMLTableElement;
113
- const head = container.querySelector("thead") as HTMLTableSectionElement;
114
- const body = container.querySelector("tbody") as HTMLTableSectionElement;
115
- const row = screen.getAllByRole("row")[0];
116
- const headerCell = screen.getByRole("columnheader", { name: "Name" });
117
- const cell = screen.getByRole("cell", { name: "Ada" });
118
- const caption = screen.getByText("Users");
119
-
120
- expect(root).toHaveClass("custom-root");
121
- expect(head).toHaveClass("custom-head");
122
- expect(body).toHaveClass("custom-body");
123
- expect(row).toHaveClass("custom-row");
124
- expect(headerCell).toHaveClass("custom-header-cell");
125
- expect(cell).toHaveClass("custom-cell");
126
- expect(caption).toHaveClass("custom-caption");
127
- });
128
-
129
- it("forwards ref to table root", async () => {
130
- const ref = createRef<HTMLTableElement>();
131
-
132
- await render(
133
- <Table ref={ref}>
134
- <Table.Body>
135
- <Table.Row>
136
- <Table.Cell>Ada</Table.Cell>
137
- </Table.Row>
138
- </Table.Body>
139
- </Table>
140
- );
141
-
142
- expect(ref.current).toBeInstanceOf(HTMLTableElement);
143
- expect(ref.current?.tagName).toBe("TABLE");
144
- });
145
- });
@@ -1,91 +0,0 @@
1
- import { useId } from "@refraktor/utils";
2
- import { useCallback } from "react";
3
- import { useTheme } from "../../theme";
4
- import {
5
- createClassNamesConfig,
6
- createComponentConfig,
7
- factory,
8
- useClassNames,
9
- useProps
10
- } from "../../utils";
11
- import { TableBody } from "./table-body";
12
- import { TableCaption } from "./table-caption";
13
- import { TableCell } from "./table-cell";
14
- import { TableProvider } from "./table.context";
15
- import { TableHead } from "./table-head";
16
- import { TableHeaderCell } from "./table-header-cell";
17
- import { TableRow } from "./table-row";
18
- import { TableClassNames, TableFactoryPayload, TableProps } from "./table.types";
19
-
20
- const defaultProps = {
21
- size: "md",
22
- radius: "default",
23
- striped: false,
24
- highlightOnHover: false,
25
- withRowBorders: true,
26
- withColumnBorders: false
27
- } satisfies Partial<TableProps>;
28
-
29
- const Table = factory<TableFactoryPayload>((_props, ref) => {
30
- const { cx, getRadius } = useTheme();
31
- const {
32
- id,
33
- children,
34
- size,
35
- radius,
36
- striped,
37
- highlightOnHover,
38
- withRowBorders,
39
- withColumnBorders,
40
- className,
41
- classNames,
42
- ...props
43
- } = useProps("Table", defaultProps, _props);
44
- const classes = useClassNames("Table", classNames);
45
- const _id = useId(id);
46
-
47
- const getStyles = useCallback(
48
- (part: keyof TableClassNames) => classes[part],
49
- [classes]
50
- );
51
-
52
- return (
53
- <TableProvider
54
- value={{
55
- size,
56
- radius,
57
- striped,
58
- highlightOnHover,
59
- withRowBorders,
60
- withColumnBorders,
61
- getStyles
62
- }}
63
- >
64
- <table
65
- ref={ref}
66
- id={_id}
67
- className={cx(
68
- "w-full border-collapse text-left text-[var(--refraktor-text)]",
69
- getRadius(radius),
70
- classes.root,
71
- className
72
- )}
73
- {...props}
74
- >
75
- {children}
76
- </table>
77
- </TableProvider>
78
- );
79
- });
80
-
81
- Table.displayName = "@refraktor/core/Table";
82
- Table.configure = createComponentConfig<TableProps>();
83
- Table.classNames = createClassNamesConfig<TableClassNames>();
84
- Table.Head = TableHead;
85
- Table.Body = TableBody;
86
- Table.Row = TableRow;
87
- Table.HeaderCell = TableHeaderCell;
88
- Table.Cell = TableCell;
89
- Table.Caption = TableCaption;
90
-
91
- export default Table;
@@ -1,145 +0,0 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
- import { RefraktorRadius, RefraktorSize } from "../../theme";
3
- import {
4
- createClassNamesConfig,
5
- createComponentConfig,
6
- FactoryPayload
7
- } from "../../utils";
8
- import { TableBody } from "./table-body";
9
- import { TableCaption } from "./table-caption";
10
- import { TableCell } from "./table-cell";
11
- import { TableHead } from "./table-head";
12
- import { TableHeaderCell } from "./table-header-cell";
13
- import { TableRow } from "./table-row";
14
-
15
- export type TableClassNames = {
16
- root?: string;
17
- head?: string;
18
- body?: string;
19
- row?: string;
20
- headerCell?: string;
21
- cell?: string;
22
- caption?: string;
23
- };
24
-
25
- export interface TableProps extends ComponentPropsWithoutRef<"table"> {
26
- /** Children containing table subcomponents */
27
- children: ReactNode;
28
-
29
- /** Shared table size @default `md` */
30
- size?: RefraktorSize;
31
-
32
- /** Shared table radius @default `default` */
33
- radius?: RefraktorRadius;
34
-
35
- /** Whether odd body rows are striped @default `false` */
36
- striped?: boolean;
37
-
38
- /** Whether body rows highlight on hover @default `false` */
39
- highlightOnHover?: boolean;
40
-
41
- /** Whether body rows have bottom border @default `true` */
42
- withRowBorders?: boolean;
43
-
44
- /** Whether cells have vertical separators @default `false` */
45
- withColumnBorders?: boolean;
46
-
47
- /** Used for editing root class name */
48
- className?: string;
49
-
50
- /** Used for styling different parts of the component */
51
- classNames?: TableClassNames;
52
- }
53
-
54
- export interface TableHeadProps extends ComponentPropsWithoutRef<"thead"> {
55
- /** Header content */
56
- children: ReactNode;
57
-
58
- /** Used for editing root class name */
59
- className?: string;
60
- }
61
-
62
- export interface TableBodyProps extends ComponentPropsWithoutRef<"tbody"> {
63
- /** Body content */
64
- children: ReactNode;
65
-
66
- /** Used for editing root class name */
67
- className?: string;
68
- }
69
-
70
- export interface TableRowProps extends ComponentPropsWithoutRef<"tr"> {
71
- /** Row content */
72
- children: ReactNode;
73
-
74
- /** Used for editing root class name */
75
- className?: string;
76
- }
77
-
78
- export interface TableHeaderCellProps extends ComponentPropsWithoutRef<"th"> {
79
- /** Header cell content */
80
- children: ReactNode;
81
-
82
- /** Used for editing root class name */
83
- className?: string;
84
- }
85
-
86
- export interface TableCellProps extends ComponentPropsWithoutRef<"td"> {
87
- /** Cell content */
88
- children: ReactNode;
89
-
90
- /** Used for editing root class name */
91
- className?: string;
92
- }
93
-
94
- export interface TableCaptionProps extends ComponentPropsWithoutRef<"caption"> {
95
- /** Caption content */
96
- children?: ReactNode;
97
-
98
- /** Used for editing root class name */
99
- className?: string;
100
- }
101
-
102
- export interface TableFactoryPayload extends FactoryPayload {
103
- props: TableProps;
104
- ref: HTMLTableElement;
105
- compound: {
106
- configure: ReturnType<typeof createComponentConfig<TableProps>>;
107
- classNames: ReturnType<typeof createClassNamesConfig<TableClassNames>>;
108
- Head: typeof TableHead;
109
- Body: typeof TableBody;
110
- Row: typeof TableRow;
111
- HeaderCell: typeof TableHeaderCell;
112
- Cell: typeof TableCell;
113
- Caption: typeof TableCaption;
114
- };
115
- }
116
-
117
- export interface TableHeadFactoryPayload extends FactoryPayload {
118
- props: TableHeadProps;
119
- ref: HTMLTableSectionElement;
120
- }
121
-
122
- export interface TableBodyFactoryPayload extends FactoryPayload {
123
- props: TableBodyProps;
124
- ref: HTMLTableSectionElement;
125
- }
126
-
127
- export interface TableRowFactoryPayload extends FactoryPayload {
128
- props: TableRowProps;
129
- ref: HTMLTableRowElement;
130
- }
131
-
132
- export interface TableHeaderCellFactoryPayload extends FactoryPayload {
133
- props: TableHeaderCellProps;
134
- ref: HTMLTableCellElement;
135
- }
136
-
137
- export interface TableCellFactoryPayload extends FactoryPayload {
138
- props: TableCellProps;
139
- ref: HTMLTableCellElement;
140
- }
141
-
142
- export interface TableCaptionFactoryPayload extends FactoryPayload {
143
- props: TableCaptionProps;
144
- ref: HTMLTableCaptionElement;
145
- }
@@ -1,18 +0,0 @@
1
- export { default as Tabs } from "./tabs";
2
- export { TabsList } from "./tabs-list";
3
- export { TabsTab } from "./tabs-tab";
4
- export { TabsPanel } from "./tabs-panel";
5
- export type {
6
- TabsProps,
7
- TabsListProps,
8
- TabsTabProps,
9
- TabsPanelProps,
10
- TabsClassNames,
11
- TabsOrientation,
12
- TabsActivationMode,
13
- TabsVariant,
14
- TabsFactoryPayload,
15
- TabsListFactoryPayload,
16
- TabsTabFactoryPayload,
17
- TabsPanelFactoryPayload
18
- } from "./tabs.types";
@@ -1 +0,0 @@
1
- export { default as TabsList } from "./tabs-list";