@refraktor/core 0.0.3 → 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 (505) hide show
  1. package/build/components/button/button.styles.js +5 -5
  2. package/build/components/chip/chip-group/chip-group.d.ts +4 -0
  3. package/build/components/chip/chip-group/chip-group.d.ts.map +1 -0
  4. package/build/components/chip/chip-group/chip-group.js +43 -0
  5. package/build/components/chip/chip-group/index.d.ts +2 -0
  6. package/build/components/chip/chip-group/index.d.ts.map +1 -0
  7. package/build/components/chip/chip-group/index.js +1 -0
  8. package/build/components/chip/chip.context.d.ts +15 -0
  9. package/build/components/chip/chip.context.d.ts.map +1 -0
  10. package/build/components/chip/chip.context.js +2 -0
  11. package/build/components/chip/chip.d.ts +4 -0
  12. package/build/components/chip/chip.d.ts.map +1 -0
  13. package/build/components/chip/chip.js +85 -0
  14. package/build/components/chip/chip.styles.d.ts +5 -0
  15. package/build/components/chip/chip.styles.d.ts.map +1 -0
  16. package/build/components/chip/chip.styles.js +19 -0
  17. package/build/components/chip/chip.test.d.ts +2 -0
  18. package/build/components/chip/chip.test.d.ts.map +1 -0
  19. package/build/components/chip/chip.test.js +107 -0
  20. package/build/components/chip/chip.types.d.ts +95 -0
  21. package/build/components/chip/chip.types.d.ts.map +1 -0
  22. package/build/components/chip/chip.types.js +1 -0
  23. package/build/components/chip/index.d.ts +4 -0
  24. package/build/components/chip/index.d.ts.map +1 -0
  25. package/build/components/chip/index.js +2 -0
  26. package/build/components/combobox/combobox-dropdown/combobox-dropdown.d.ts +4 -0
  27. package/build/components/combobox/combobox-dropdown/combobox-dropdown.d.ts.map +1 -0
  28. package/build/components/combobox/combobox-dropdown/combobox-dropdown.js +21 -0
  29. package/build/components/combobox/combobox-dropdown/index.d.ts +2 -0
  30. package/build/components/combobox/combobox-dropdown/index.d.ts.map +1 -0
  31. package/build/components/combobox/combobox-dropdown/index.js +1 -0
  32. package/build/components/combobox/combobox-group/combobox-group.d.ts +4 -0
  33. package/build/components/combobox/combobox-group/combobox-group.d.ts.map +1 -0
  34. package/build/components/combobox/combobox-group/combobox-group.js +15 -0
  35. package/build/components/combobox/combobox-group/index.d.ts +2 -0
  36. package/build/components/combobox/combobox-group/index.d.ts.map +1 -0
  37. package/build/components/combobox/combobox-group/index.js +1 -0
  38. package/build/components/combobox/combobox-input/combobox-input.d.ts +4 -0
  39. package/build/components/combobox/combobox-input/combobox-input.d.ts.map +1 -0
  40. package/build/components/combobox/combobox-input/combobox-input.js +101 -0
  41. package/build/components/combobox/combobox-input/index.d.ts +2 -0
  42. package/build/components/combobox/combobox-input/index.d.ts.map +1 -0
  43. package/build/components/combobox/combobox-input/index.js +1 -0
  44. package/build/components/combobox/combobox-option/combobox-option.d.ts +4 -0
  45. package/build/components/combobox/combobox-option/combobox-option.d.ts.map +1 -0
  46. package/build/components/combobox/combobox-option/combobox-option.js +86 -0
  47. package/build/components/combobox/combobox-option/index.d.ts +2 -0
  48. package/build/components/combobox/combobox-option/index.d.ts.map +1 -0
  49. package/build/components/combobox/combobox-option/index.js +1 -0
  50. package/build/components/combobox/combobox-root/combobox-root.d.ts +4 -0
  51. package/build/components/combobox/combobox-root/combobox-root.d.ts.map +1 -0
  52. package/build/components/combobox/combobox-root/combobox-root.js +282 -0
  53. package/build/components/combobox/combobox-root/index.d.ts +2 -0
  54. package/build/components/combobox/combobox-root/index.d.ts.map +1 -0
  55. package/build/components/combobox/combobox-root/index.js +1 -0
  56. package/build/components/combobox/combobox.context.d.ts +73 -0
  57. package/build/components/combobox/combobox.context.d.ts.map +1 -0
  58. package/build/components/combobox/combobox.context.js +50 -0
  59. package/build/components/combobox/combobox.d.ts +4 -0
  60. package/build/components/combobox/combobox.d.ts.map +1 -0
  61. package/build/components/combobox/combobox.js +31 -0
  62. package/build/components/combobox/combobox.test.d.ts +2 -0
  63. package/build/components/combobox/combobox.test.d.ts.map +1 -0
  64. package/build/components/combobox/combobox.test.js +104 -0
  65. package/{src/components/select/select.types.ts → build/components/combobox/combobox.types.d.ts} +81 -148
  66. package/build/components/combobox/combobox.types.d.ts.map +1 -0
  67. package/build/components/combobox/combobox.types.js +1 -0
  68. package/build/components/combobox/index.d.ts +8 -0
  69. package/build/components/combobox/index.d.ts.map +1 -0
  70. package/build/components/combobox/index.js +6 -0
  71. package/build/components/combobox/use-combobox.d.ts +32 -0
  72. package/build/components/combobox/use-combobox.d.ts.map +1 -0
  73. package/build/components/combobox/use-combobox.js +80 -0
  74. package/build/components/drawer/drawer-body/drawer-body.d.ts +4 -0
  75. package/build/components/drawer/drawer-body/drawer-body.d.ts.map +1 -0
  76. package/build/components/drawer/drawer-body/drawer-body.js +11 -0
  77. package/build/components/drawer/drawer-body/index.d.ts +2 -0
  78. package/build/components/drawer/drawer-body/index.d.ts.map +1 -0
  79. package/build/components/drawer/drawer-body/index.js +1 -0
  80. package/build/components/drawer/drawer-content/drawer-content.d.ts.map +1 -1
  81. package/build/components/drawer/drawer-content/drawer-content.js +9 -6
  82. package/build/components/drawer/drawer-overlay/drawer-overlay.d.ts.map +1 -1
  83. package/build/components/drawer/drawer-overlay/drawer-overlay.js +4 -4
  84. package/build/components/drawer/drawer-root/drawer-root.d.ts.map +1 -1
  85. package/build/components/drawer/drawer-root/drawer-root.js +8 -9
  86. package/build/components/drawer/drawer.context.d.ts +2 -1
  87. package/build/components/drawer/drawer.context.d.ts.map +1 -1
  88. package/build/components/drawer/drawer.d.ts.map +1 -1
  89. package/build/components/drawer/drawer.js +5 -3
  90. package/build/components/drawer/drawer.test.js +55 -16
  91. package/build/components/drawer/drawer.types.d.ts +29 -3
  92. package/build/components/drawer/drawer.types.d.ts.map +1 -1
  93. package/build/components/drawer/index.d.ts +2 -1
  94. package/build/components/drawer/index.d.ts.map +1 -1
  95. package/build/components/drawer/index.js +1 -0
  96. package/build/components/drawer/use-drawer.d.ts +8 -1
  97. package/build/components/drawer/use-drawer.d.ts.map +1 -1
  98. package/build/components/drawer/use-drawer.js +25 -38
  99. package/build/components/file-input/file-input.d.ts +4 -0
  100. package/build/components/file-input/file-input.d.ts.map +1 -0
  101. package/build/components/file-input/file-input.js +88 -0
  102. package/build/components/file-input/file-input.test.d.ts +2 -0
  103. package/build/components/file-input/file-input.test.d.ts.map +1 -0
  104. package/build/components/file-input/file-input.test.js +74 -0
  105. package/build/components/file-input/file-input.types.d.ts +46 -0
  106. package/build/components/file-input/file-input.types.d.ts.map +1 -0
  107. package/build/components/file-input/file-input.types.js +1 -0
  108. package/build/components/file-input/file-input.utils.d.ts +11 -0
  109. package/build/components/file-input/file-input.utils.d.ts.map +1 -0
  110. package/build/components/file-input/file-input.utils.js +67 -0
  111. package/build/components/file-input/file-input.utils.test.d.ts +2 -0
  112. package/build/components/file-input/file-input.utils.test.d.ts.map +1 -0
  113. package/build/components/file-input/file-input.utils.test.js +27 -0
  114. package/build/components/file-input/index.d.ts +3 -0
  115. package/build/components/file-input/index.d.ts.map +1 -0
  116. package/build/components/file-input/index.js +2 -0
  117. package/build/components/for/for.d.ts +8 -0
  118. package/build/components/for/for.d.ts.map +1 -0
  119. package/build/components/for/for.js +32 -0
  120. package/build/components/for/for.test.d.ts +2 -0
  121. package/build/components/for/for.test.d.ts.map +1 -0
  122. package/build/components/for/for.test.js +31 -0
  123. package/build/components/for/for.types.d.ts +33 -0
  124. package/build/components/for/for.types.d.ts.map +1 -0
  125. package/build/components/for/for.types.js +1 -0
  126. package/build/components/for/index.d.ts +3 -0
  127. package/build/components/for/index.d.ts.map +1 -0
  128. package/build/components/for/index.js +1 -0
  129. package/build/components/index.d.ts +6 -0
  130. package/build/components/index.d.ts.map +1 -1
  131. package/build/components/index.js +6 -0
  132. package/build/components/modal/index.d.ts +2 -1
  133. package/build/components/modal/index.d.ts.map +1 -1
  134. package/build/components/modal/index.js +1 -0
  135. package/build/components/modal/modal-body/index.d.ts +2 -0
  136. package/build/components/modal/modal-body/index.d.ts.map +1 -0
  137. package/build/components/modal/modal-body/index.js +1 -0
  138. package/build/components/modal/modal-body/modal-body.d.ts +4 -0
  139. package/build/components/modal/modal-body/modal-body.d.ts.map +1 -0
  140. package/build/components/modal/modal-body/modal-body.js +11 -0
  141. package/build/components/modal/modal-content/modal-content.d.ts.map +1 -1
  142. package/build/components/modal/modal-content/modal-content.js +13 -5
  143. package/build/components/modal/modal-header/modal-header.js +2 -2
  144. package/build/components/modal/modal-overlay/modal-overlay.d.ts.map +1 -1
  145. package/build/components/modal/modal-overlay/modal-overlay.js +4 -4
  146. package/build/components/modal/modal-root/modal-root.d.ts.map +1 -1
  147. package/build/components/modal/modal-root/modal-root.js +12 -9
  148. package/build/components/modal/modal.context.d.ts +5 -2
  149. package/build/components/modal/modal.context.d.ts.map +1 -1
  150. package/build/components/modal/modal.d.ts.map +1 -1
  151. package/build/components/modal/modal.js +5 -3
  152. package/build/components/modal/modal.test.js +78 -13
  153. package/build/components/modal/modal.types.d.ts +34 -5
  154. package/build/components/modal/modal.types.d.ts.map +1 -1
  155. package/build/components/modal/use-modal.d.ts +8 -1
  156. package/build/components/modal/use-modal.d.ts.map +1 -1
  157. package/build/components/modal/use-modal.js +25 -38
  158. package/build/components/password-input/index.d.ts +3 -0
  159. package/build/components/password-input/index.d.ts.map +1 -0
  160. package/build/components/password-input/index.js +2 -0
  161. package/build/components/password-input/password-input.d.ts +4 -0
  162. package/build/components/password-input/password-input.d.ts.map +1 -0
  163. package/build/components/password-input/password-input.js +32 -0
  164. package/build/components/password-input/password-input.test.d.ts +2 -0
  165. package/build/components/password-input/password-input.test.d.ts.map +1 -0
  166. package/build/components/password-input/password-input.test.js +47 -0
  167. package/build/components/password-input/password-input.types.d.ts +24 -0
  168. package/build/components/password-input/password-input.types.d.ts.map +1 -0
  169. package/build/components/password-input/password-input.types.js +1 -0
  170. package/build/components/pin-input/index.d.ts +3 -0
  171. package/build/components/pin-input/index.d.ts.map +1 -0
  172. package/build/components/pin-input/index.js +2 -0
  173. package/build/components/pin-input/pin-input.d.ts +4 -0
  174. package/build/components/pin-input/pin-input.d.ts.map +1 -0
  175. package/build/components/pin-input/pin-input.js +245 -0
  176. package/build/components/pin-input/pin-input.test.d.ts +2 -0
  177. package/build/components/pin-input/pin-input.test.d.ts.map +1 -0
  178. package/build/components/pin-input/pin-input.test.js +87 -0
  179. package/build/components/pin-input/pin-input.types.d.ts +44 -0
  180. package/build/components/pin-input/pin-input.types.d.ts.map +1 -0
  181. package/build/components/pin-input/pin-input.types.js +1 -0
  182. package/build/components/progress-circle/progress-circle.d.ts.map +1 -1
  183. package/build/components/progress-circle/progress-circle.js +6 -6
  184. package/build/components/progress-circle/progress-circle.styles.d.ts +2 -7
  185. package/build/components/progress-circle/progress-circle.styles.d.ts.map +1 -1
  186. package/build/components/progress-circle/progress-circle.styles.js +2 -23
  187. package/build/components/progress-circle/progress-circle.types.d.ts +4 -3
  188. package/build/components/progress-circle/progress-circle.types.d.ts.map +1 -1
  189. package/build/components/scroll-area/index.d.ts +3 -0
  190. package/build/components/scroll-area/index.d.ts.map +1 -0
  191. package/build/components/scroll-area/index.js +1 -0
  192. package/build/components/scroll-area/scroll-area.d.ts +4 -0
  193. package/build/components/scroll-area/scroll-area.d.ts.map +1 -0
  194. package/build/components/scroll-area/scroll-area.js +30 -0
  195. package/build/components/scroll-area/scroll-area.test.d.ts +2 -0
  196. package/build/components/scroll-area/scroll-area.test.d.ts.map +1 -0
  197. package/build/components/scroll-area/scroll-area.test.js +39 -0
  198. package/build/components/scroll-area/scroll-area.types.d.ts +25 -0
  199. package/build/components/scroll-area/scroll-area.types.d.ts.map +1 -0
  200. package/build/components/scroll-area/scroll-area.types.js +1 -0
  201. package/build/components/segmented-control/segmented-control.d.ts.map +1 -1
  202. package/build/components/segmented-control/segmented-control.js +3 -3
  203. package/build/components/segmented-control/segmented-control.styles.js +13 -13
  204. package/build/components/segmented-control/segmented-control.test.js +11 -0
  205. package/build/components/segmented-control/segmented-control.types.d.ts +2 -0
  206. package/build/components/segmented-control/segmented-control.types.d.ts.map +1 -1
  207. package/build/components/slider/slider.d.ts.map +1 -1
  208. package/build/components/slider/slider.js +69 -20
  209. package/build/components/tooltip/tooltip.js +1 -1
  210. package/build/icons/eye-off.d.ts +4 -0
  211. package/build/icons/eye-off.d.ts.map +1 -0
  212. package/build/icons/eye-off.js +5 -0
  213. package/build/icons/eye.d.ts +4 -0
  214. package/build/icons/eye.d.ts.map +1 -0
  215. package/build/icons/eye.js +5 -0
  216. package/build/icons/index.d.ts +2 -0
  217. package/build/icons/index.d.ts.map +1 -1
  218. package/build/icons/index.js +2 -0
  219. package/build/style.css +2 -2
  220. package/package.json +30 -3
  221. package/.turbo/turbo-build.log +0 -4
  222. package/refraktor-core-0.0.1-alpha.0.tgz +0 -0
  223. package/src/components/accordion/accordion-control/accordion-control.tsx +0 -156
  224. package/src/components/accordion/accordion-control/index.ts +0 -1
  225. package/src/components/accordion/accordion-item/accordion-item.tsx +0 -40
  226. package/src/components/accordion/accordion-item/index.ts +0 -1
  227. package/src/components/accordion/accordion-panel/accordion-panel.tsx +0 -58
  228. package/src/components/accordion/accordion-panel/index.ts +0 -1
  229. package/src/components/accordion/accordion.context.ts +0 -93
  230. package/src/components/accordion/accordion.styles.ts +0 -60
  231. package/src/components/accordion/accordion.test.tsx +0 -174
  232. package/src/components/accordion/accordion.tsx +0 -203
  233. package/src/components/accordion/accordion.types.ts +0 -126
  234. package/src/components/accordion/index.ts +0 -17
  235. package/src/components/avatar/avatar-group/avatar-group.tsx +0 -73
  236. package/src/components/avatar/avatar-group/index.ts +0 -1
  237. package/src/components/avatar/avatar.styles.ts +0 -11
  238. package/src/components/avatar/avatar.tsx +0 -142
  239. package/src/components/avatar/avatar.types.ts +0 -86
  240. package/src/components/avatar/index.ts +0 -8
  241. package/src/components/badge/badge.styles.ts +0 -21
  242. package/src/components/badge/badge.tsx +0 -62
  243. package/src/components/badge/badge.types.ts +0 -40
  244. package/src/components/badge/index.ts +0 -2
  245. package/src/components/breadcrumbs/breadcrumbs.styles.ts +0 -55
  246. package/src/components/breadcrumbs/breadcrumbs.test.tsx +0 -136
  247. package/src/components/breadcrumbs/breadcrumbs.tsx +0 -199
  248. package/src/components/breadcrumbs/breadcrumbs.types.ts +0 -78
  249. package/src/components/breadcrumbs/breadcrumbs.utils.ts +0 -70
  250. package/src/components/breadcrumbs/index.ts +0 -6
  251. package/src/components/button/button.styles.ts +0 -28
  252. package/src/components/button/button.test.tsx +0 -57
  253. package/src/components/button/button.tsx +0 -110
  254. package/src/components/button/button.types.ts +0 -69
  255. package/src/components/button/index.ts +0 -2
  256. package/src/components/checkbox/checkbox-group/checkbox-group.tsx +0 -93
  257. package/src/components/checkbox/checkbox-group/index.ts +0 -1
  258. package/src/components/checkbox/checkbox.context.ts +0 -14
  259. package/src/components/checkbox/checkbox.styles.ts +0 -49
  260. package/src/components/checkbox/checkbox.test.tsx +0 -80
  261. package/src/components/checkbox/checkbox.tsx +0 -192
  262. package/src/components/checkbox/checkbox.types.ts +0 -125
  263. package/src/components/checkbox/index.ts +0 -10
  264. package/src/components/color-swatch/color-swatch.styles.ts +0 -11
  265. package/src/components/color-swatch/color-swatch.test.tsx +0 -80
  266. package/src/components/color-swatch/color-swatch.tsx +0 -84
  267. package/src/components/color-swatch/color-swatch.types.ts +0 -46
  268. package/src/components/color-swatch/index.ts +0 -2
  269. package/src/components/drawer/drawer-close/drawer-close.tsx +0 -43
  270. package/src/components/drawer/drawer-close/index.ts +0 -1
  271. package/src/components/drawer/drawer-content/drawer-content.tsx +0 -98
  272. package/src/components/drawer/drawer-content/index.ts +0 -1
  273. package/src/components/drawer/drawer-header/drawer-header.tsx +0 -40
  274. package/src/components/drawer/drawer-header/index.ts +0 -1
  275. package/src/components/drawer/drawer-overlay/drawer-overlay.tsx +0 -86
  276. package/src/components/drawer/drawer-overlay/index.ts +0 -1
  277. package/src/components/drawer/drawer-root/drawer-root.tsx +0 -94
  278. package/src/components/drawer/drawer-root/index.ts +0 -1
  279. package/src/components/drawer/drawer.context.ts +0 -25
  280. package/src/components/drawer/drawer.styles.ts +0 -32
  281. package/src/components/drawer/drawer.test.tsx +0 -166
  282. package/src/components/drawer/drawer.tsx +0 -30
  283. package/src/components/drawer/drawer.types.ts +0 -158
  284. package/src/components/drawer/index.ts +0 -16
  285. package/src/components/drawer/use-drawer.ts +0 -101
  286. package/src/components/index.ts +0 -29
  287. package/src/components/input/index.ts +0 -2
  288. package/src/components/input/input-description/index.ts +0 -2
  289. package/src/components/input/input-description/input-description.tsx +0 -36
  290. package/src/components/input/input-error/index.ts +0 -2
  291. package/src/components/input/input-error/input-error.tsx +0 -36
  292. package/src/components/input/input-field/index.ts +0 -1
  293. package/src/components/input/input-field/input-field.styles.ts +0 -23
  294. package/src/components/input/input-field/input-field.tsx +0 -94
  295. package/src/components/input/input-label/index.ts +0 -2
  296. package/src/components/input/input-label/input-label.tsx +0 -47
  297. package/src/components/input/input-wrapper/index.ts +0 -2
  298. package/src/components/input/input-wrapper/input-wrapper.tsx +0 -43
  299. package/src/components/input/input.tsx +0 -71
  300. package/src/components/input/input.types.ts +0 -111
  301. package/src/components/loader/index.ts +0 -2
  302. package/src/components/loader/loader.tsx +0 -89
  303. package/src/components/loader/loader.types.ts +0 -33
  304. package/src/components/menu/index.ts +0 -24
  305. package/src/components/menu/menu-dropdown/index.ts +0 -1
  306. package/src/components/menu/menu-dropdown/menu-dropdown.tsx +0 -220
  307. package/src/components/menu/menu-item/index.ts +0 -1
  308. package/src/components/menu/menu-item/menu-item.tsx +0 -126
  309. package/src/components/menu/menu-label/index.ts +0 -1
  310. package/src/components/menu/menu-label/menu-label.tsx +0 -30
  311. package/src/components/menu/menu-separator/index.ts +0 -1
  312. package/src/components/menu/menu-separator/menu-separator.tsx +0 -28
  313. package/src/components/menu/menu-sub/index.ts +0 -1
  314. package/src/components/menu/menu-sub/menu-sub.tsx +0 -117
  315. package/src/components/menu/menu-sub-dropdown/index.ts +0 -1
  316. package/src/components/menu/menu-sub-dropdown/menu-sub-dropdown.tsx +0 -221
  317. package/src/components/menu/menu-sub-trigger/index.ts +0 -1
  318. package/src/components/menu/menu-sub-trigger/menu-sub-trigger.tsx +0 -164
  319. package/src/components/menu/menu-trigger/index.ts +0 -1
  320. package/src/components/menu/menu-trigger/menu-trigger.tsx +0 -98
  321. package/src/components/menu/menu.context.ts +0 -162
  322. package/src/components/menu/menu.test.tsx +0 -136
  323. package/src/components/menu/menu.tsx +0 -133
  324. package/src/components/menu/menu.types.ts +0 -291
  325. package/src/components/menu/use-menu.ts +0 -204
  326. package/src/components/modal/index.ts +0 -15
  327. package/src/components/modal/modal-close/index.ts +0 -1
  328. package/src/components/modal/modal-close/modal-close.tsx +0 -43
  329. package/src/components/modal/modal-content/index.ts +0 -1
  330. package/src/components/modal/modal-content/modal-content.tsx +0 -72
  331. package/src/components/modal/modal-header/index.ts +0 -1
  332. package/src/components/modal/modal-header/modal-header.tsx +0 -40
  333. package/src/components/modal/modal-overlay/index.ts +0 -1
  334. package/src/components/modal/modal-overlay/modal-overlay.tsx +0 -86
  335. package/src/components/modal/modal-root/index.ts +0 -1
  336. package/src/components/modal/modal-root/modal-root.tsx +0 -88
  337. package/src/components/modal/modal.context.ts +0 -23
  338. package/src/components/modal/modal.test.tsx +0 -146
  339. package/src/components/modal/modal.tsx +0 -26
  340. package/src/components/modal/modal.types.ts +0 -148
  341. package/src/components/modal/use-modal.ts +0 -101
  342. package/src/components/number-input/index.ts +0 -2
  343. package/src/components/number-input/number-input.styles.ts +0 -37
  344. package/src/components/number-input/number-input.test.tsx +0 -22
  345. package/src/components/number-input/number-input.tsx +0 -381
  346. package/src/components/number-input/number-input.types.ts +0 -58
  347. package/src/components/pagination/index.ts +0 -7
  348. package/src/components/pagination/pagination.styles.ts +0 -84
  349. package/src/components/pagination/pagination.test.tsx +0 -117
  350. package/src/components/pagination/pagination.tsx +0 -371
  351. package/src/components/pagination/pagination.types.ts +0 -95
  352. package/src/components/pagination/pagination.utils.ts +0 -88
  353. package/src/components/popover/index.ts +0 -12
  354. package/src/components/popover/popover-dropdown/index.ts +0 -1
  355. package/src/components/popover/popover-dropdown/popover-dropdown.tsx +0 -94
  356. package/src/components/popover/popover-trigger/index.ts +0 -1
  357. package/src/components/popover/popover-trigger/popover-trigger.tsx +0 -49
  358. package/src/components/popover/popover.context.ts +0 -20
  359. package/src/components/popover/popover.tsx +0 -113
  360. package/src/components/popover/popover.types.ts +0 -137
  361. package/src/components/popover/use-popover.ts +0 -219
  362. package/src/components/portal/index.ts +0 -2
  363. package/src/components/portal/portal.test.tsx +0 -39
  364. package/src/components/portal/portal.tsx +0 -104
  365. package/src/components/portal/portal.types.ts +0 -31
  366. package/src/components/progress/index.ts +0 -2
  367. package/src/components/progress/progress.styles.ts +0 -25
  368. package/src/components/progress/progress.test.tsx +0 -107
  369. package/src/components/progress/progress.tsx +0 -93
  370. package/src/components/progress/progress.types.ts +0 -52
  371. package/src/components/progress-circle/index.ts +0 -5
  372. package/src/components/progress-circle/progress-circle.styles.ts +0 -31
  373. package/src/components/progress-circle/progress-circle.test.tsx +0 -140
  374. package/src/components/progress-circle/progress-circle.tsx +0 -124
  375. package/src/components/progress-circle/progress-circle.types.ts +0 -52
  376. package/src/components/radio/index.ts +0 -10
  377. package/src/components/radio/radio-group/index.ts +0 -1
  378. package/src/components/radio/radio-group/radio-group.tsx +0 -89
  379. package/src/components/radio/radio.context.ts +0 -14
  380. package/src/components/radio/radio.styles.ts +0 -49
  381. package/src/components/radio/radio.test.tsx +0 -75
  382. package/src/components/radio/radio.tsx +0 -173
  383. package/src/components/radio/radio.types.ts +0 -126
  384. package/src/components/segmented-control/index.ts +0 -6
  385. package/src/components/segmented-control/segmented-control.styles.ts +0 -37
  386. package/src/components/segmented-control/segmented-control.test.tsx +0 -152
  387. package/src/components/segmented-control/segmented-control.tsx +0 -245
  388. package/src/components/segmented-control/segmented-control.types.ts +0 -75
  389. package/src/components/select/index.ts +0 -20
  390. package/src/components/select/select-dropdown/index.ts +0 -1
  391. package/src/components/select/select-dropdown/select-dropdown.tsx +0 -299
  392. package/src/components/select/select-group/index.ts +0 -1
  393. package/src/components/select/select-group/select-group.tsx +0 -47
  394. package/src/components/select/select-item/index.ts +0 -1
  395. package/src/components/select/select-item/select-item.tsx +0 -157
  396. package/src/components/select/select-root/index.ts +0 -1
  397. package/src/components/select/select-root/select-root.tsx +0 -333
  398. package/src/components/select/select-trigger/index.ts +0 -1
  399. package/src/components/select/select-trigger/select-trigger.tsx +0 -123
  400. package/src/components/select/select.context.ts +0 -140
  401. package/src/components/select/select.test.tsx +0 -190
  402. package/src/components/select/select.tsx +0 -82
  403. package/src/components/select/use-select.ts +0 -170
  404. package/src/components/slider/index.ts +0 -7
  405. package/src/components/slider/slider.styles.ts +0 -37
  406. package/src/components/slider/slider.tsx +0 -275
  407. package/src/components/slider/slider.types.ts +0 -82
  408. package/src/components/switch/index.ts +0 -2
  409. package/src/components/switch/switch.styles.ts +0 -31
  410. package/src/components/switch/switch.tsx +0 -132
  411. package/src/components/switch/switch.types.ts +0 -62
  412. package/src/components/table/index.ts +0 -24
  413. package/src/components/table/table-body/index.ts +0 -1
  414. package/src/components/table/table-body/table-body.tsx +0 -37
  415. package/src/components/table/table-caption/index.ts +0 -1
  416. package/src/components/table/table-caption/table-caption.tsx +0 -32
  417. package/src/components/table/table-cell/index.ts +0 -1
  418. package/src/components/table/table-cell/table-cell.tsx +0 -33
  419. package/src/components/table/table-head/index.ts +0 -1
  420. package/src/components/table/table-head/table-head.tsx +0 -29
  421. package/src/components/table/table-header-cell/index.ts +0 -1
  422. package/src/components/table/table-header-cell/table-header-cell.tsx +0 -33
  423. package/src/components/table/table-row/index.ts +0 -1
  424. package/src/components/table/table-row/table-row.tsx +0 -30
  425. package/src/components/table/table.context.ts +0 -18
  426. package/src/components/table/table.styles.ts +0 -62
  427. package/src/components/table/table.test.tsx +0 -145
  428. package/src/components/table/table.tsx +0 -91
  429. package/src/components/table/table.types.ts +0 -145
  430. package/src/components/tabs/index.ts +0 -18
  431. package/src/components/tabs/tabs-list/index.ts +0 -1
  432. package/src/components/tabs/tabs-list/tabs-list.tsx +0 -42
  433. package/src/components/tabs/tabs-panel/index.ts +0 -1
  434. package/src/components/tabs/tabs-panel/tabs-panel.tsx +0 -58
  435. package/src/components/tabs/tabs-tab/index.ts +0 -1
  436. package/src/components/tabs/tabs-tab/tabs-tab.tsx +0 -210
  437. package/src/components/tabs/tabs.context.ts +0 -88
  438. package/src/components/tabs/tabs.styles.ts +0 -92
  439. package/src/components/tabs/tabs.test.tsx +0 -167
  440. package/src/components/tabs/tabs.tsx +0 -137
  441. package/src/components/tabs/tabs.types.ts +0 -128
  442. package/src/components/textarea/index.ts +0 -2
  443. package/src/components/textarea/textarea-field/index.ts +0 -1
  444. package/src/components/textarea/textarea-field/textarea-field.styles.ts +0 -34
  445. package/src/components/textarea/textarea-field/textarea-field.tsx +0 -96
  446. package/src/components/textarea/textarea.tsx +0 -64
  447. package/src/components/textarea/textarea.types.ts +0 -80
  448. package/src/components/timeline/index.ts +0 -11
  449. package/src/components/timeline/timeline-item/index.ts +0 -1
  450. package/src/components/timeline/timeline-item/timeline-item.tsx +0 -158
  451. package/src/components/timeline/timeline.context.ts +0 -21
  452. package/src/components/timeline/timeline.styles.ts +0 -135
  453. package/src/components/timeline/timeline.test.tsx +0 -150
  454. package/src/components/timeline/timeline.tsx +0 -124
  455. package/src/components/timeline/timeline.types.ts +0 -91
  456. package/src/components/tooltip/index.ts +0 -8
  457. package/src/components/tooltip/tooltip.tsx +0 -164
  458. package/src/components/tooltip/tooltip.types.ts +0 -104
  459. package/src/components/tooltip/use-tooltip.ts +0 -200
  460. package/src/components/transition/index.ts +0 -11
  461. package/src/components/transition/transition.test.tsx +0 -126
  462. package/src/components/transition/transition.tsx +0 -441
  463. package/src/components/transition/transition.types.ts +0 -97
  464. package/src/components/transition/transitions.ts +0 -140
  465. package/src/icons/check.tsx +0 -25
  466. package/src/icons/chevron.tsx +0 -46
  467. package/src/icons/index.ts +0 -5
  468. package/src/icons/minus.tsx +0 -24
  469. package/src/icons/types.ts +0 -9
  470. package/src/icons/user.tsx +0 -18
  471. package/src/icons/x.tsx +0 -35
  472. package/src/index.ts +0 -5
  473. package/src/style.css +0 -328
  474. package/src/theme/ThemeProvider/ThemeProvider.tsx +0 -111
  475. package/src/theme/ThemeProvider/context.ts +0 -7
  476. package/src/theme/ThemeProvider/generateVariables.test.ts +0 -49
  477. package/src/theme/ThemeProvider/generateVariables.ts +0 -124
  478. package/src/theme/ThemeProvider/index.ts +0 -3
  479. package/src/theme/ThemeProvider/types.ts +0 -37
  480. package/src/theme/createTheme/createTheme.ts +0 -41
  481. package/src/theme/createTheme/index.ts +0 -7
  482. package/src/theme/createTheme/types.ts +0 -62
  483. package/src/theme/defaults/colors.ts +0 -203
  484. package/src/theme/defaults/settings.ts +0 -8
  485. package/src/theme/index.ts +0 -4
  486. package/src/theme/types.ts +0 -31
  487. package/src/theme/utils/get-radius.ts +0 -23
  488. package/src/theme/utils/get-shade.ts +0 -16
  489. package/src/theme/utils/index.ts +0 -3
  490. package/src/theme/utils/use-theme.ts +0 -27
  491. package/src/utils/configs/create-config.ts +0 -15
  492. package/src/utils/configs/index.ts +0 -3
  493. package/src/utils/configs/use-class-names.ts +0 -41
  494. package/src/utils/configs/use-props.ts +0 -55
  495. package/src/utils/cx/index.ts +0 -6
  496. package/src/utils/factory/factory.ts +0 -23
  497. package/src/utils/factory/index.ts +0 -14
  498. package/src/utils/factory/types.ts +0 -92
  499. package/src/utils/index.ts +0 -3
  500. package/src/vitest/index.ts +0 -1
  501. package/src/vitest/setup.tsx +0 -20
  502. package/src/vitest/utils.tsx +0 -59
  503. package/tsconfig.json +0 -13
  504. package/tsconfig.tsbuildinfo +0 -1
  505. package/vitest.config.js +0 -19
@@ -1,31 +0,0 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from "react";
2
- import {
3
- createClassNamesConfig,
4
- createComponentConfig,
5
- FactoryPayload
6
- } from "../../utils";
7
-
8
- export interface BasePortalProps extends ComponentPropsWithoutRef<"div"> {
9
- /** Target element to render the portal inside. Can be an HTMLElement or a CSS selector string. */
10
- target?: HTMLElement | string;
11
-
12
- /** Whether to reuse a shared portal node for all portals with this option enabled. @default false */
13
- reuseTargetNode?: boolean;
14
- }
15
-
16
- export interface PortalProps extends BasePortalProps {
17
- /** The content to render inside the portal */
18
- children: ReactNode;
19
- }
20
-
21
- export type PortalClassNames = {
22
- root?: string;
23
- };
24
-
25
- export interface PortalFactoryPayload extends FactoryPayload {
26
- props: PortalProps;
27
- ref: HTMLDivElement;
28
- compound: {
29
- configure: ReturnType<typeof createComponentConfig<PortalProps>>;
30
- };
31
- }
@@ -1,2 +0,0 @@
1
- export { default as Progress } from "./progress";
2
- export type { ProgressProps, ProgressClassNames } from "./progress.types";
@@ -1,25 +0,0 @@
1
- import { RefraktorSize } from "../../theme";
2
-
3
- type ProgressSizeStyles = {
4
- track: string;
5
- };
6
-
7
- const sizes: Record<RefraktorSize, ProgressSizeStyles> = {
8
- xs: {
9
- track: "h-1"
10
- },
11
- sm: {
12
- track: "h-1.5"
13
- },
14
- md: {
15
- track: "h-2"
16
- },
17
- lg: {
18
- track: "h-2.5"
19
- },
20
- xl: {
21
- track: "h-3"
22
- }
23
- };
24
-
25
- export const getSize = (size: RefraktorSize = "md") => sizes[size];
@@ -1,107 +0,0 @@
1
- import { createRef } from "react";
2
- import { describe, expect, it } from "vitest";
3
- import { render, screen, waitFor } from "../../vitest";
4
- import Progress from "./progress";
5
-
6
- describe("@refraktor/core/Progress", () => {
7
- it("renders with determinate values", async () => {
8
- await render(<Progress value={45} aria-label="Upload progress" />);
9
-
10
- const track = screen.getByRole("progressbar", {
11
- name: "Upload progress"
12
- });
13
- const bar = track.firstElementChild as HTMLDivElement;
14
-
15
- expect(track).toHaveAttribute("aria-valuemin", "0");
16
- expect(track).toHaveAttribute("aria-valuemax", "100");
17
- expect(track).toHaveAttribute("aria-valuenow", "45");
18
- expect(bar).toHaveStyle({ width: "45%" });
19
- });
20
-
21
- it("forwards ref correctly", async () => {
22
- const ref = createRef<HTMLDivElement>();
23
-
24
- await render(<Progress ref={ref} aria-label="Progress" />);
25
-
26
- expect(ref.current).toBeInstanceOf(HTMLDivElement);
27
- expect(ref.current?.tagName).toBe("DIV");
28
- expect(ref.current).toHaveAttribute("role", "progressbar");
29
- });
30
-
31
- it("clamps values outside range", async () => {
32
- const { rerender } = await render(
33
- <Progress value={-20} aria-label="Clamped progress" />
34
- );
35
-
36
- let track = screen.getByRole("progressbar", { name: "Clamped progress" });
37
- let bar = track.firstElementChild as HTMLDivElement;
38
- expect(track).toHaveAttribute("aria-valuenow", "0");
39
- expect(bar).toHaveStyle({ width: "0%" });
40
-
41
- rerender(<Progress value={180} aria-label="Clamped progress" />);
42
-
43
- await waitFor(() => {
44
- track = screen.getByRole("progressbar", { name: "Clamped progress" });
45
- bar = track.firstElementChild as HTMLDivElement;
46
- expect(track).toHaveAttribute("aria-valuenow", "100");
47
- expect(bar).toHaveStyle({ width: "100%" });
48
- });
49
- });
50
-
51
- it("supports custom min and max", async () => {
52
- await render(
53
- <Progress
54
- value={25}
55
- min={20}
56
- max={40}
57
- aria-label="Custom range progress"
58
- />
59
- );
60
-
61
- const track = screen.getByRole("progressbar", {
62
- name: "Custom range progress"
63
- });
64
- const bar = track.firstElementChild as HTMLDivElement;
65
-
66
- expect(track).toHaveAttribute("aria-valuemin", "20");
67
- expect(track).toHaveAttribute("aria-valuemax", "40");
68
- expect(track).toHaveAttribute("aria-valuenow", "25");
69
- expect(bar).toHaveStyle({ width: "25%" });
70
- });
71
-
72
- it("supports indeterminate mode", async () => {
73
- await render(<Progress indeterminate aria-label="Loading progress" />);
74
-
75
- const track = screen.getByRole("progressbar", {
76
- name: "Loading progress"
77
- });
78
- const bar = track.firstElementChild as HTMLDivElement;
79
-
80
- expect(track).not.toHaveAttribute("aria-valuemin");
81
- expect(track).not.toHaveAttribute("aria-valuemax");
82
- expect(track).not.toHaveAttribute("aria-valuenow");
83
- expect(bar).toHaveClass("refraktor-progress-indeterminate");
84
- expect(bar.style.width).toBe("");
85
- });
86
-
87
- it("supports root and slot class names", async () => {
88
- const { container } = await render(
89
- <Progress
90
- aria-label="Styled progress"
91
- className="custom-root"
92
- classNames={{
93
- track: "custom-track",
94
- bar: "custom-bar"
95
- }}
96
- />
97
- );
98
-
99
- const root = container.firstElementChild as HTMLDivElement;
100
- const track = screen.getByRole("progressbar", { name: "Styled progress" });
101
- const bar = track.firstElementChild as HTMLDivElement;
102
-
103
- expect(root).toHaveClass("custom-root");
104
- expect(track).toHaveClass("custom-track");
105
- expect(bar).toHaveClass("custom-bar");
106
- });
107
- });
@@ -1,93 +0,0 @@
1
- import { clamp, useId } from "@refraktor/utils";
2
- import { useTheme } from "../../theme";
3
- import {
4
- createClassNamesConfig,
5
- createComponentConfig,
6
- factory,
7
- useClassNames,
8
- useProps
9
- } from "../../utils";
10
- import {
11
- ProgressClassNames,
12
- ProgressFactoryPayload,
13
- ProgressProps
14
- } from "./progress.types";
15
- import { getSize } from "./progress.styles";
16
-
17
- const defaultProps = {
18
- value: 0,
19
- min: 0,
20
- max: 100,
21
- indeterminate: false,
22
- animated: true,
23
- size: "md",
24
- radius: "full"
25
- } satisfies Partial<ProgressProps>;
26
-
27
- const Progress = factory<ProgressFactoryPayload>((_props, ref) => {
28
- const { cx, getRadius } = useTheme();
29
- const {
30
- id,
31
- value,
32
- min,
33
- max,
34
- indeterminate,
35
- animated,
36
- size,
37
- radius,
38
- className,
39
- classNames,
40
- ...props
41
- } = useProps("Progress", defaultProps, _props);
42
- const classes = useClassNames("Progress", classNames);
43
-
44
- const _id = useId(id);
45
- const sizeStyles = getSize(size);
46
-
47
- const lowerBound = Math.min(min, max);
48
- const upperBound = Math.max(min, max);
49
- const clampedValue = clamp(value, lowerBound, upperBound);
50
- const percentage =
51
- upperBound === lowerBound
52
- ? 0
53
- : ((clampedValue - lowerBound) / (upperBound - lowerBound)) * 100;
54
-
55
- return (
56
- <div className={cx("w-full", classes.root, className)}>
57
- <div
58
- {...props}
59
- ref={ref}
60
- id={_id}
61
- role="progressbar"
62
- aria-valuemin={indeterminate ? undefined : lowerBound}
63
- aria-valuemax={indeterminate ? undefined : upperBound}
64
- aria-valuenow={indeterminate ? undefined : clampedValue}
65
- className={cx(
66
- "relative w-full overflow-hidden bg-[var(--refraktor-bg)]",
67
- sizeStyles.track,
68
- getRadius(radius),
69
- classes.track
70
- )}
71
- >
72
- <div
73
- className={cx(
74
- "h-full bg-[var(--refraktor-primary)]",
75
- getRadius(radius),
76
- indeterminate &&
77
- "absolute inset-y-0 left-0 refraktor-progress-indeterminate",
78
- animated && !indeterminate &&
79
- "transition-[width] duration-300 ease-out",
80
- classes.bar
81
- )}
82
- style={indeterminate ? undefined : { width: `${percentage}%` }}
83
- />
84
- </div>
85
- </div>
86
- );
87
- });
88
-
89
- Progress.displayName = "@refraktor/core/Progress";
90
- Progress.configure = createComponentConfig<ProgressProps>();
91
- Progress.classNames = createClassNamesConfig<ProgressClassNames>();
92
-
93
- export default Progress;
@@ -1,52 +0,0 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
- import { RefraktorRadius, RefraktorSize } from "../../theme";
3
- import {
4
- createClassNamesConfig,
5
- createComponentConfig,
6
- FactoryPayload
7
- } from "../../utils";
8
-
9
- export type ProgressClassNames = {
10
- root?: string;
11
- track?: string;
12
- bar?: string;
13
- };
14
-
15
- export interface ProgressProps
16
- extends Omit<ComponentPropsWithoutRef<"div">, "children"> {
17
- /** Current progress value @default `0` */
18
- value?: number;
19
-
20
- /** Minimum progress value @default `0` */
21
- min?: number;
22
-
23
- /** Maximum progress value @default `100` */
24
- max?: number;
25
-
26
- /** Whether progress is indeterminate @default `false` */
27
- indeterminate?: boolean;
28
-
29
- /** Whether width transitions are animated @default `true` */
30
- animated?: boolean;
31
-
32
- /** Track size @default `md` */
33
- size?: RefraktorSize;
34
-
35
- /** Track radius @default `full` */
36
- radius?: RefraktorRadius;
37
-
38
- /** Used for editing root class name */
39
- className?: string;
40
-
41
- /** Used for styling different parts of the component */
42
- classNames?: ProgressClassNames;
43
- }
44
-
45
- export interface ProgressFactoryPayload extends FactoryPayload {
46
- props: ProgressProps;
47
- ref: HTMLDivElement;
48
- compound: {
49
- configure: ReturnType<typeof createComponentConfig<ProgressProps>>;
50
- classNames: ReturnType<typeof createClassNamesConfig<ProgressClassNames>>;
51
- };
52
- }
@@ -1,5 +0,0 @@
1
- export { default as ProgressCircle } from "./progress-circle";
2
- export type {
3
- ProgressCircleProps,
4
- ProgressCircleClassNames
5
- } from "./progress-circle.types";
@@ -1,31 +0,0 @@
1
- import { RefraktorSize } from "../../theme";
2
-
3
- type ProgressCircleSizeStyles = {
4
- size: number;
5
- stroke: number;
6
- };
7
-
8
- const sizes: Record<RefraktorSize, ProgressCircleSizeStyles> = {
9
- xs: {
10
- size: 16,
11
- stroke: 2
12
- },
13
- sm: {
14
- size: 20,
15
- stroke: 2.5
16
- },
17
- md: {
18
- size: 24,
19
- stroke: 3
20
- },
21
- lg: {
22
- size: 32,
23
- stroke: 4
24
- },
25
- xl: {
26
- size: 40,
27
- stroke: 5
28
- }
29
- };
30
-
31
- export const getSize = (size: RefraktorSize = "md") => sizes[size];
@@ -1,140 +0,0 @@
1
- import { createRef } from "react";
2
- import { describe, expect, it } from "vitest";
3
- import { render, screen, waitFor } from "../../vitest";
4
- import ProgressCircle from "./progress-circle";
5
-
6
- function getCircleMetrics(bar: SVGCircleElement) {
7
- const radius = Number(bar.getAttribute("r"));
8
- const circumference = 2 * Math.PI * radius;
9
- return { radius, circumference };
10
- }
11
-
12
- describe("@refraktor/core/ProgressCircle", () => {
13
- it("renders with determinate values", async () => {
14
- await render(<ProgressCircle value={45} aria-label="Upload progress" />);
15
-
16
- const root = screen.getByRole("progressbar", {
17
- name: "Upload progress"
18
- });
19
- const circles = root.querySelectorAll("circle");
20
- const bar = circles[1] as SVGCircleElement;
21
-
22
- expect(root).toHaveAttribute("aria-valuemin", "0");
23
- expect(root).toHaveAttribute("aria-valuemax", "100");
24
- expect(root).toHaveAttribute("aria-valuenow", "45");
25
-
26
- const { circumference } = getCircleMetrics(bar);
27
- const expectedOffset = circumference - (45 / 100) * circumference;
28
- expect(
29
- Number(bar.getAttribute("stroke-dashoffset"))
30
- ).toBeCloseTo(expectedOffset, 4);
31
- });
32
-
33
- it("forwards ref correctly", async () => {
34
- const ref = createRef<HTMLDivElement>();
35
-
36
- await render(<ProgressCircle ref={ref} aria-label="Progress" />);
37
-
38
- expect(ref.current).toBeInstanceOf(HTMLDivElement);
39
- expect(ref.current?.tagName).toBe("DIV");
40
- expect(ref.current).toHaveAttribute("role", "progressbar");
41
- });
42
-
43
- it("clamps values outside range", async () => {
44
- const { rerender } = await render(
45
- <ProgressCircle value={-20} aria-label="Clamped progress" />
46
- );
47
-
48
- let root = screen.getByRole("progressbar", { name: "Clamped progress" });
49
- let circles = root.querySelectorAll("circle");
50
- let bar = circles[1] as SVGCircleElement;
51
-
52
- expect(root).toHaveAttribute("aria-valuenow", "0");
53
-
54
- let { circumference } = getCircleMetrics(bar);
55
- expect(
56
- Number(bar.getAttribute("stroke-dashoffset"))
57
- ).toBeCloseTo(circumference, 4);
58
-
59
- rerender(<ProgressCircle value={180} aria-label="Clamped progress" />);
60
-
61
- await waitFor(() => {
62
- root = screen.getByRole("progressbar", { name: "Clamped progress" });
63
- circles = root.querySelectorAll("circle");
64
- bar = circles[1] as SVGCircleElement;
65
- expect(root).toHaveAttribute("aria-valuenow", "100");
66
- ({ circumference } = getCircleMetrics(bar));
67
- expect(
68
- Number(bar.getAttribute("stroke-dashoffset"))
69
- ).toBeCloseTo(0, 4);
70
- });
71
- });
72
-
73
- it("supports custom min and max", async () => {
74
- await render(
75
- <ProgressCircle
76
- value={25}
77
- min={20}
78
- max={40}
79
- aria-label="Custom range progress"
80
- />
81
- );
82
-
83
- const root = screen.getByRole("progressbar", {
84
- name: "Custom range progress"
85
- });
86
- const circles = root.querySelectorAll("circle");
87
- const bar = circles[1] as SVGCircleElement;
88
-
89
- expect(root).toHaveAttribute("aria-valuemin", "20");
90
- expect(root).toHaveAttribute("aria-valuemax", "40");
91
- expect(root).toHaveAttribute("aria-valuenow", "25");
92
-
93
- const { circumference } = getCircleMetrics(bar);
94
- const expectedOffset = circumference - (25 / 100) * circumference;
95
- expect(
96
- Number(bar.getAttribute("stroke-dashoffset"))
97
- ).toBeCloseTo(expectedOffset, 4);
98
- });
99
-
100
- it("supports indeterminate mode", async () => {
101
- await render(<ProgressCircle indeterminate aria-label="Loading progress" />);
102
-
103
- const root = screen.getByRole("progressbar", {
104
- name: "Loading progress"
105
- });
106
- const circles = root.querySelectorAll("circle");
107
- const bar = circles[1] as SVGCircleElement;
108
-
109
- expect(root).not.toHaveAttribute("aria-valuemin");
110
- expect(root).not.toHaveAttribute("aria-valuemax");
111
- expect(root).not.toHaveAttribute("aria-valuenow");
112
- expect(bar).toHaveClass("loader-spin");
113
- expect(bar.getAttribute("stroke-dasharray")).not.toBe("");
114
- });
115
-
116
- it("supports root and slot class names", async () => {
117
- await render(
118
- <ProgressCircle
119
- aria-label="Styled progress"
120
- className="custom-root"
121
- classNames={{
122
- svg: "custom-svg",
123
- track: "custom-track",
124
- bar: "custom-bar"
125
- }}
126
- />
127
- );
128
-
129
- const root = screen.getByRole("progressbar", { name: "Styled progress" });
130
- const svg = root.querySelector("svg") as SVGSVGElement;
131
- const circles = root.querySelectorAll("circle");
132
- const track = circles[0] as SVGCircleElement;
133
- const bar = circles[1] as SVGCircleElement;
134
-
135
- expect(root).toHaveClass("custom-root");
136
- expect(svg).toHaveClass("custom-svg");
137
- expect(track).toHaveClass("custom-track");
138
- expect(bar).toHaveClass("custom-bar");
139
- });
140
- });
@@ -1,124 +0,0 @@
1
- import { clamp, useId } from "@refraktor/utils";
2
- import { useTheme } from "../../theme";
3
- import {
4
- createClassNamesConfig,
5
- createComponentConfig,
6
- factory,
7
- useClassNames,
8
- useProps
9
- } from "../../utils";
10
- import {
11
- ProgressCircleClassNames,
12
- ProgressCircleFactoryPayload,
13
- ProgressCircleProps
14
- } from "./progress-circle.types";
15
- import { getSize } from "./progress-circle.styles";
16
-
17
- const defaultProps = {
18
- value: 0,
19
- min: 0,
20
- max: 100,
21
- indeterminate: false,
22
- animated: true,
23
- size: "md"
24
- } satisfies Partial<ProgressCircleProps>;
25
-
26
- const ProgressCircle = factory<ProgressCircleFactoryPayload>((_props, ref) => {
27
- const { cx } = useTheme();
28
- const {
29
- id,
30
- value,
31
- min,
32
- max,
33
- indeterminate,
34
- animated,
35
- size,
36
- className,
37
- classNames,
38
- ...props
39
- } = useProps("ProgressCircle", defaultProps, _props);
40
- const classes = useClassNames("ProgressCircle", classNames);
41
-
42
- const _id = useId(id);
43
-
44
- const sizeStyles = getSize(size);
45
- const diameter = sizeStyles.size;
46
- const strokeWidth = sizeStyles.stroke;
47
- const radius = Math.max(0, diameter / 2 - strokeWidth / 2);
48
- const circumference = 2 * Math.PI * radius;
49
-
50
- const lowerBound = Math.min(min, max);
51
- const upperBound = Math.max(min, max);
52
- const clampedValue = clamp(value, lowerBound, upperBound);
53
-
54
- const percentage =
55
- upperBound === lowerBound
56
- ? 0
57
- : ((clampedValue - lowerBound) / (upperBound - lowerBound)) * 100;
58
-
59
- const strokeDashoffset =
60
- circumference - (percentage / 100) * circumference;
61
-
62
- return (
63
- <div
64
- {...props}
65
- ref={ref}
66
- id={_id}
67
- role="progressbar"
68
- aria-valuemin={indeterminate ? undefined : lowerBound}
69
- aria-valuemax={indeterminate ? undefined : upperBound}
70
- aria-valuenow={indeterminate ? undefined : clampedValue}
71
- className={cx(
72
- "inline-flex items-center justify-center",
73
- classes.root,
74
- className
75
- )}
76
- >
77
- <svg
78
- viewBox={`0 0 ${diameter} ${diameter}`}
79
- width={diameter}
80
- height={diameter}
81
- className={cx("block -rotate-90", classes.svg)}
82
- >
83
- <circle
84
- cx={diameter / 2}
85
- cy={diameter / 2}
86
- r={radius}
87
- fill="none"
88
- strokeWidth={strokeWidth}
89
- className={cx("stroke-[var(--refraktor-bg)]", classes.track)}
90
- />
91
-
92
- <circle
93
- cx={diameter / 2}
94
- cy={diameter / 2}
95
- r={radius}
96
- fill="none"
97
- strokeWidth={strokeWidth}
98
- strokeLinecap="round"
99
- strokeDasharray={
100
- indeterminate
101
- ? `${circumference * 0.4} ${circumference}`
102
- : circumference
103
- }
104
- strokeDashoffset={
105
- indeterminate ? circumference * 0.15 : strokeDashoffset
106
- }
107
- className={cx(
108
- "stroke-[var(--refraktor-primary)]",
109
- indeterminate && "loader-spin",
110
- animated && !indeterminate &&
111
- "transition-[stroke-dashoffset] duration-300 ease-out",
112
- classes.bar
113
- )}
114
- />
115
- </svg>
116
- </div>
117
- );
118
- });
119
-
120
- ProgressCircle.displayName = "@refraktor/core/ProgressCircle";
121
- ProgressCircle.configure = createComponentConfig<ProgressCircleProps>();
122
- ProgressCircle.classNames = createClassNamesConfig<ProgressCircleClassNames>();
123
-
124
- export default ProgressCircle;
@@ -1,52 +0,0 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
- import { RefraktorSize } from "../../theme";
3
- import {
4
- createClassNamesConfig,
5
- createComponentConfig,
6
- FactoryPayload
7
- } from "../../utils";
8
-
9
- export type ProgressCircleClassNames = {
10
- root?: string;
11
- svg?: string;
12
- track?: string;
13
- bar?: string;
14
- };
15
-
16
- export interface ProgressCircleProps
17
- extends Omit<ComponentPropsWithoutRef<"div">, "children"> {
18
- /** Current progress value @default `0` */
19
- value?: number;
20
-
21
- /** Minimum progress value @default `0` */
22
- min?: number;
23
-
24
- /** Maximum progress value @default `100` */
25
- max?: number;
26
-
27
- /** Whether progress is indeterminate @default `false` */
28
- indeterminate?: boolean;
29
-
30
- /** Whether dash-offset transitions are animated @default `true` */
31
- animated?: boolean;
32
-
33
- /** Circle size @default `md` */
34
- size?: RefraktorSize;
35
-
36
- /** Used for editing root class name */
37
- className?: string;
38
-
39
- /** Used for styling different parts of the component */
40
- classNames?: ProgressCircleClassNames;
41
- }
42
-
43
- export interface ProgressCircleFactoryPayload extends FactoryPayload {
44
- props: ProgressCircleProps;
45
- ref: HTMLDivElement;
46
- compound: {
47
- configure: ReturnType<typeof createComponentConfig<ProgressCircleProps>>;
48
- classNames: ReturnType<
49
- typeof createClassNamesConfig<ProgressCircleClassNames>
50
- >;
51
- };
52
- }
@@ -1,10 +0,0 @@
1
- export { default as Radio } from "./radio";
2
- export { RadioGroup } from "./radio-group";
3
- export type {
4
- RadioProps,
5
- RadioClassNames,
6
- RadioGroupProps,
7
- RadioGroupClassNames,
8
- RadioLabelPosition,
9
- RadioGroupOrientation
10
- } from "./radio.types";
@@ -1 +0,0 @@
1
- export { default as RadioGroup } from "./radio-group";