@scaleflex/ui-tw 0.0.2 → 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 (365) hide show
  1. package/LICENSE +1 -33
  2. package/README.md +2 -16
  3. package/{core/button → button}/button.component.d.ts +2 -3
  4. package/{core/button → button}/button.component.js +8 -9
  5. package/{core/button → button}/button.const.d.ts +0 -2
  6. package/{core/button → button}/button.const.js +2 -2
  7. package/{core/button → button}/button.types.d.ts +3 -5
  8. package/{core/button → button}/button.types.js +2 -4
  9. package/{core/button → button}/button.utils.d.ts +1 -1
  10. package/{core/button → button}/button.utils.js +1 -1
  11. package/{core/button → button}/components/end-icon.d.ts +1 -1
  12. package/{core/button → button}/components/end-icon.js +3 -3
  13. package/{core/button → button}/components/start-icon.d.ts +2 -2
  14. package/{core/button → button}/components/start-icon.js +3 -3
  15. package/button/index.d.ts +3 -0
  16. package/button/index.js +2 -0
  17. package/card/card.component.d.ts +9 -0
  18. package/card/card.component.js +59 -0
  19. package/card/index.d.ts +1 -0
  20. package/card/index.js +1 -0
  21. package/form/components/form-field-group.component.d.ts +19 -0
  22. package/form/components/form-field-group.component.js +41 -0
  23. package/form/form.component.d.ts +30 -0
  24. package/form/form.component.js +123 -0
  25. package/form/form.types.d.ts +7 -0
  26. package/{core/switcher/switcher-size.js → form/form.types.js} +1 -1
  27. package/form/index.d.ts +2 -0
  28. package/form/index.js +2 -0
  29. package/input/index.d.ts +3 -0
  30. package/input/index.js +2 -0
  31. package/input/input.component.d.ts +7 -0
  32. package/input/input.component.js +42 -0
  33. package/input/input.types.d.ts +17 -0
  34. package/input/input.types.js +10 -0
  35. package/label/components/info-outline-icon.d.ts +3 -0
  36. package/label/components/info-outline-icon.js +30 -0
  37. package/label/components/label-icon.d.ts +7 -0
  38. package/label/components/label-icon.js +43 -0
  39. package/label/index.d.ts +1 -0
  40. package/label/index.js +1 -0
  41. package/label/label.component.d.ts +4 -0
  42. package/label/label.component.js +44 -0
  43. package/label/label.types.d.ts +14 -0
  44. package/{core/tab/types/size.js → label/label.types.js} +1 -1
  45. package/label/label.utils.d.ts +2 -0
  46. package/label/label.utils.js +16 -0
  47. package/package.json +8 -4
  48. package/{theme/theme.css → theme.css} +4 -4
  49. package/tooltip/index.d.ts +1 -0
  50. package/tooltip/index.js +1 -0
  51. package/tooltip/tooltip.component.d.ts +10 -0
  52. package/tooltip/tooltip.component.js +51 -0
  53. package/tooltip/tooltip.types.d.ts +5 -0
  54. package/core/accordion/accordion.component.d.ts +0 -3
  55. package/core/accordion/accordion.component.js +0 -50
  56. package/core/accordion/accordion.props.d.ts +0 -13
  57. package/core/accordion/accordion.props.js +0 -1
  58. package/core/accordion/index.d.ts +0 -2
  59. package/core/accordion/index.js +0 -1
  60. package/core/accordion-details/accordion-details.component.d.ts +0 -3
  61. package/core/accordion-details/accordion-details.component.js +0 -16
  62. package/core/accordion-details/accordion-details.props.d.ts +0 -4
  63. package/core/accordion-details/index.d.ts +0 -2
  64. package/core/accordion-details/index.js +0 -1
  65. package/core/accordion-header/accordion-header.component.d.ts +0 -3
  66. package/core/accordion-header/accordion-header.component.js +0 -48
  67. package/core/accordion-header/accordion-header.props.d.ts +0 -11
  68. package/core/accordion-header/accordion-header.props.js +0 -1
  69. package/core/accordion-header/index.d.ts +0 -2
  70. package/core/accordion-header/index.js +0 -1
  71. package/core/arrow/arrow.component.d.ts +0 -3
  72. package/core/arrow/arrow.component.js +0 -22
  73. package/core/arrow/arrow.props.d.ts +0 -14
  74. package/core/arrow/arrow.props.js +0 -6
  75. package/core/arrow/index.d.ts +0 -2
  76. package/core/arrow/index.js +0 -1
  77. package/core/arrow-tick/arrow-tick.component.d.ts +0 -3
  78. package/core/arrow-tick/arrow-tick.component.js +0 -21
  79. package/core/arrow-tick/arrow-tick.props.d.ts +0 -14
  80. package/core/arrow-tick/arrow-tick.props.js +0 -6
  81. package/core/arrow-tick/index.d.ts +0 -2
  82. package/core/arrow-tick/index.js +0 -1
  83. package/core/button/index.d.ts +0 -4
  84. package/core/button/index.js +0 -3
  85. package/core/check-box/check-box.component.d.ts +0 -0
  86. package/core/check-box/check-box.component.js +0 -77
  87. package/core/check-box/check-box.props.d.ts +0 -15
  88. package/core/check-box/check-box.props.js +0 -1
  89. package/core/check-box/check-box.utils.d.ts +0 -3
  90. package/core/check-box/check-box.utils.js +0 -21
  91. package/core/check-box/index.d.ts +0 -0
  92. package/core/check-box/index.js +0 -2
  93. package/core/check-box/types/index.d.ts +0 -2
  94. package/core/check-box/types/index.js +0 -2
  95. package/core/check-box/types/size.d.ts +0 -4
  96. package/core/check-box/types/size.js +0 -4
  97. package/core/check-box/types/type.d.ts +0 -4
  98. package/core/check-box/types/type.js +0 -4
  99. package/core/check-box-group/check-box-group.component.d.ts +0 -0
  100. package/core/check-box-group/check-box-group.component.js +0 -75
  101. package/core/check-box-group/check-box-group.props.d.ts +0 -0
  102. package/core/check-box-group/check-box-group.props.js +0 -23
  103. package/core/check-box-group/index.d.ts +0 -0
  104. package/core/check-box-group/index.js +0 -2
  105. package/core/check-box-group/types/index.d.ts +0 -1
  106. package/core/check-box-group/types/index.js +0 -1
  107. package/core/check-box-group/types/label-position.d.ts +0 -4
  108. package/core/check-box-group/types/label-position.js +0 -4
  109. package/core/cross-button/cross-button.component.d.ts +0 -3
  110. package/core/cross-button/cross-button.component.js +0 -37
  111. package/core/cross-button/cross-button.props.d.ts +0 -8
  112. package/core/cross-button/cross-button.props.js +0 -1
  113. package/core/cross-button/index.d.ts +0 -2
  114. package/core/cross-button/index.js +0 -1
  115. package/core/cross-button/types/index.d.ts +0 -1
  116. package/core/cross-button/types/index.js +0 -1
  117. package/core/cross-button/types/size.d.ts +0 -6
  118. package/core/cross-button/types/size.js +0 -6
  119. package/core/dot/dot.component.d.ts +0 -3
  120. package/core/dot/dot.component.js +0 -15
  121. package/core/dot/dot.props.d.ts +0 -4
  122. package/core/dot/dot.props.js +0 -1
  123. package/core/dot/index.d.ts +0 -2
  124. package/core/dot/index.js +0 -1
  125. package/core/dots-navigation/dots-navigation.component.d.ts +0 -3
  126. package/core/dots-navigation/dots-navigation.component.js +0 -24
  127. package/core/dots-navigation/dots-navigation.props.d.ts +0 -5
  128. package/core/dots-navigation/dots-navigation.props.js +0 -1
  129. package/core/dots-navigation/index.d.ts +0 -2
  130. package/core/dots-navigation/index.js +0 -1
  131. package/core/input/components/clear-icon.d.ts +0 -6
  132. package/core/input/components/clear-icon.js +0 -12
  133. package/core/input/components/copy-icon.d.ts +0 -6
  134. package/core/input/components/copy-icon.js +0 -13
  135. package/core/input/components/password-icon.d.ts +0 -7
  136. package/core/input/components/password-icon.js +0 -24
  137. package/core/input/components/render-icon.d.ts +0 -7
  138. package/core/input/components/render-icon.js +0 -26
  139. package/core/input/index.d.ts +0 -2
  140. package/core/input/index.js +0 -1
  141. package/core/input/input.component.d.ts +0 -3
  142. package/core/input/input.component.js +0 -233
  143. package/core/input/input.const.d.ts +0 -6
  144. package/core/input/input.const.js +0 -6
  145. package/core/input/input.types.d.ts +0 -56
  146. package/core/input/input.types.js +0 -16
  147. package/core/input/input.utils.d.ts +0 -2
  148. package/core/input/input.utils.js +0 -13
  149. package/core/modal/index.d.ts +0 -2
  150. package/core/modal/index.js +0 -1
  151. package/core/modal/modal-menu-context.d.ts +0 -5
  152. package/core/modal/modal-menu-context.js +0 -10
  153. package/core/modal/modal.component.d.ts +0 -3
  154. package/core/modal/modal.component.js +0 -97
  155. package/core/modal/modal.props.d.ts +0 -16
  156. package/core/modal/modal.props.js +0 -1
  157. package/core/modal/modal.utils.d.ts +0 -1
  158. package/core/modal/modal.utils.js +0 -4
  159. package/core/modal/types/index.d.ts +0 -1
  160. package/core/modal/types/index.js +0 -1
  161. package/core/modal/types/size.d.ts +0 -7
  162. package/core/modal/types/size.js +0 -7
  163. package/core/modal-actions/index.d.ts +0 -2
  164. package/core/modal-actions/index.js +0 -1
  165. package/core/modal-actions/modal-actions.component.d.ts +0 -3
  166. package/core/modal-actions/modal-actions.component.js +0 -18
  167. package/core/modal-actions/modal-actions.props.d.ts +0 -8
  168. package/core/modal-actions/modal-actions.props.js +0 -1
  169. package/core/modal-actions/types/align.d.ts +0 -5
  170. package/core/modal-actions/types/align.js +0 -5
  171. package/core/modal-actions/types/index.d.ts +0 -1
  172. package/core/modal-actions/types/index.js +0 -1
  173. package/core/modal-content/index.d.ts +0 -2
  174. package/core/modal-content/index.js +0 -1
  175. package/core/modal-content/modal-content.component.d.ts +0 -3
  176. package/core/modal-content/modal-content.component.js +0 -15
  177. package/core/modal-content/modal-content.props.d.ts +0 -4
  178. package/core/modal-content/modal-content.props.js +0 -1
  179. package/core/modal-title/index.d.ts +0 -2
  180. package/core/modal-title/index.js +0 -1
  181. package/core/modal-title/modal-title.component.d.ts +0 -6
  182. package/core/modal-title/modal-title.component.js +0 -37
  183. package/core/modal-title/modal-title.props.d.ts +0 -14
  184. package/core/modal-title/modal-title.props.js +0 -1
  185. package/core/modal-title/types/index.d.ts +0 -1
  186. package/core/modal-title/types/index.js +0 -1
  187. package/core/modal-title/types/variant.d.ts +0 -4
  188. package/core/modal-title/types/variant.js +0 -4
  189. package/core/pagination/index.d.ts +0 -2
  190. package/core/pagination/index.js +0 -1
  191. package/core/pagination/pagination.component.d.ts +0 -3
  192. package/core/pagination/pagination.component.js +0 -81
  193. package/core/pagination/pagination.props.d.ts +0 -11
  194. package/core/pagination/pagination.props.js +0 -1
  195. package/core/popper/index.d.ts +0 -2
  196. package/core/popper/index.js +0 -1
  197. package/core/popper/popper.component.d.ts +0 -3
  198. package/core/popper/popper.component.js +0 -113
  199. package/core/popper/popper.props.d.ts +0 -41
  200. package/core/popper/popper.props.js +0 -1
  201. package/core/popper/popper.utils.d.ts +0 -1
  202. package/core/popper/popper.utils.js +0 -10
  203. package/core/popper/types/index.d.ts +0 -3
  204. package/core/popper/types/index.js +0 -3
  205. package/core/popper/types/phases.d.ts +0 -11
  206. package/core/popper/types/phases.js +0 -11
  207. package/core/popper/types/position.d.ts +0 -17
  208. package/core/popper/types/position.js +0 -17
  209. package/core/popper/types/strategy.d.ts +0 -4
  210. package/core/popper/types/strategy.js +0 -4
  211. package/core/radio/index.d.ts +0 -3
  212. package/core/radio/index.js +0 -2
  213. package/core/radio/radio.component.d.ts +0 -3
  214. package/core/radio/radio.component.js +0 -38
  215. package/core/radio/radio.props.d.ts +0 -13
  216. package/core/radio/radio.props.js +0 -1
  217. package/core/radio/size.d.ts +0 -4
  218. package/core/radio/size.js +0 -4
  219. package/core/radio-group/index.d.ts +0 -2
  220. package/core/radio-group/index.js +0 -1
  221. package/core/radio-group/radio-group.component.d.ts +0 -3
  222. package/core/radio-group/radio-group.component.js +0 -48
  223. package/core/radio-group/radio-group.props.d.ts +0 -15
  224. package/core/radio-group/radio-group.props.js +0 -1
  225. package/core/switcher/index.d.ts +0 -3
  226. package/core/switcher/index.js +0 -2
  227. package/core/switcher/switcher-size.d.ts +0 -5
  228. package/core/switcher/switcher.component.d.ts +0 -3
  229. package/core/switcher/switcher.component.js +0 -54
  230. package/core/switcher/switcher.props.d.ts +0 -14
  231. package/core/switcher/switcher.props.js +0 -1
  232. package/core/switcher/switcher.utils.d.ts +0 -4
  233. package/core/switcher/switcher.utils.js +0 -37
  234. package/core/switcher-group/index.d.ts +0 -2
  235. package/core/switcher-group/index.js +0 -1
  236. package/core/switcher-group/switcher-group.component.d.ts +0 -3
  237. package/core/switcher-group/switcher-group.component.js +0 -41
  238. package/core/switcher-group/switcher-group.props.d.ts +0 -13
  239. package/core/switcher-group/switcher-group.props.js +0 -1
  240. package/core/tab/index.d.ts +0 -2
  241. package/core/tab/index.js +0 -1
  242. package/core/tab/tab.component.d.ts +0 -6
  243. package/core/tab/tab.component.js +0 -52
  244. package/core/tab/tab.props.d.ts +0 -15
  245. package/core/tab/tab.props.js +0 -1
  246. package/core/tab/types/index.d.ts +0 -1
  247. package/core/tab/types/index.js +0 -1
  248. package/core/tab/types/size.d.ts +0 -5
  249. package/core/tab-panel/index.d.ts +0 -2
  250. package/core/tab-panel/index.js +0 -1
  251. package/core/tab-panel/tab-panel.component.d.ts +0 -3
  252. package/core/tab-panel/tab-panel.component.js +0 -18
  253. package/core/tab-panel/tab-panel.props.d.ts +0 -6
  254. package/core/tab-panel/tab-panel.props.js +0 -1
  255. package/core/upload-input/index.d.ts +0 -2
  256. package/core/upload-input/index.js +0 -1
  257. package/core/upload-input/upload-input.component.d.ts +0 -3
  258. package/core/upload-input/upload-input.component.js +0 -68
  259. package/core/upload-input/upload-input.props.d.ts +0 -9
  260. package/core/upload-input/upload-input.props.js +0 -1
  261. package/hooks/README.md +0 -26
  262. package/hooks/use-controlled.d.ts +0 -1
  263. package/hooks/use-controlled.js +0 -20
  264. package/hooks/use-debounce.d.ts +0 -2
  265. package/hooks/use-debounce.js +0 -19
  266. package/hooks/use-drag.d.ts +0 -5
  267. package/hooks/use-drag.js +0 -37
  268. package/hooks/use-enhanced-effect.d.ts +0 -3
  269. package/hooks/use-enhanced-effect.js +0 -3
  270. package/hooks/use-event-callback.d.ts +0 -4
  271. package/hooks/use-event-callback.js +0 -19
  272. package/hooks/use-pagination.d.ts +0 -3
  273. package/hooks/use-pagination.js +0 -106
  274. package/hooks/use-portal.d.ts +0 -14
  275. package/hooks/use-portal.js +0 -75
  276. package/theme/README.md +0 -9
  277. package/utils/README.md +0 -11
  278. package/utils/functions/apply-display-names.d.ts +0 -6
  279. package/utils/functions/apply-display-names.js +0 -12
  280. package/utils/functions/apply-polymorphic-function-prop.d.ts +0 -6
  281. package/utils/functions/apply-polymorphic-function-prop.js +0 -11
  282. package/utils/functions/color-picker/color-converters.d.ts +0 -11
  283. package/utils/functions/color-picker/color-converters.js +0 -159
  284. package/utils/functions/convert-to-string.d.ts +0 -1
  285. package/utils/functions/convert-to-string.js +0 -3
  286. package/utils/functions/escape-regexp.d.ts +0 -1
  287. package/utils/functions/escape-regexp.js +0 -3
  288. package/utils/functions/generate-class-names.d.ts +0 -1
  289. package/utils/functions/generate-class-names.js +0 -22
  290. package/utils/functions/get-elem-document-coords.d.ts +0 -6
  291. package/utils/functions/get-elem-document-coords.js +0 -21
  292. package/utils/functions/ignore-event.d.ts +0 -1
  293. package/utils/functions/ignore-event.js +0 -9
  294. package/utils/functions/index.d.ts +0 -11
  295. package/utils/functions/index.js +0 -12
  296. package/utils/functions/intrinsic-component.d.ts +0 -0
  297. package/utils/functions/intrinsic-component.js +0 -28
  298. package/utils/functions/object-keys.d.ts +0 -6
  299. package/utils/functions/object-keys.js +0 -6
  300. package/utils/functions/object-values.d.ts +0 -7
  301. package/utils/functions/object-values.js +0 -6
  302. package/utils/functions/on-click-by-mouse-down.d.ts +0 -2
  303. package/utils/functions/on-click-by-mouse-down.js +0 -9
  304. package/utils/functions/set-ref.d.ts +0 -8
  305. package/utils/functions/set-ref.js +0 -13
  306. package/utils/functions/slider/utils.d.ts +0 -47
  307. package/utils/functions/slider/utils.js +0 -124
  308. package/utils/functions/use-fork-ref.d.ts +0 -2
  309. package/utils/functions/use-fork-ref.js +0 -18
  310. package/utils/types/color/icon-button-color.d.ts +0 -5
  311. package/utils/types/color/icon-button-color.js +0 -5
  312. package/utils/types/color/index.d.ts +0 -0
  313. package/utils/types/color/index.js +0 -2
  314. package/utils/types/color/input-background-color.d.ts +0 -4
  315. package/utils/types/color/input-background-color.js +0 -4
  316. package/utils/types/css/align.d.ts +0 -11
  317. package/utils/types/css/align.js +0 -11
  318. package/utils/types/css/breakpoint.d.ts +0 -18
  319. package/utils/types/css/breakpoint.js +0 -18
  320. package/utils/types/css/direction.d.ts +0 -8
  321. package/utils/types/css/direction.js +0 -4
  322. package/utils/types/css/index.d.ts +0 -4
  323. package/utils/types/css/index.js +0 -4
  324. package/utils/types/css/position.d.ts +0 -6
  325. package/utils/types/css/position.js +0 -6
  326. package/utils/types/index.d.ts +0 -6
  327. package/utils/types/index.js +0 -3
  328. package/utils/types/intrinsic-component.d.ts +0 -1
  329. package/utils/types/keys.d.ts +0 -4
  330. package/utils/types/palette/color.d.ts +0 -133
  331. package/utils/types/palette/color.js +0 -133
  332. package/utils/types/palette/index.d.ts +0 -1
  333. package/utils/types/palette/index.js +0 -1
  334. package/utils/types/position/index.d.ts +0 -1
  335. package/utils/types/position/index.js +0 -1
  336. package/utils/types/position/position.d.ts +0 -6
  337. package/utils/types/position/position.js +0 -6
  338. package/utils/types/prop-types/index.d.ts +0 -1
  339. package/utils/types/prop-types/index.js +0 -1
  340. package/utils/types/prop-types/record.d.ts +0 -1
  341. package/utils/types/prop-types/record.js +0 -6
  342. package/utils/types/shadows/index.d.ts +0 -1
  343. package/utils/types/shadows/index.js +0 -1
  344. package/utils/types/shadows/shadows.d.ts +0 -14
  345. package/utils/types/shadows/shadows.js +0 -14
  346. package/utils/types/shape/border-radius-size.d.ts +0 -5
  347. package/utils/types/shape/border-radius-size.js +0 -5
  348. package/utils/types/shape/index.d.ts +0 -1
  349. package/utils/types/shape/index.js +0 -1
  350. package/utils/types/stylable-component.d.ts +0 -7
  351. package/utils/types/typography/font-variant.d.ts +0 -58
  352. package/utils/types/typography/font-variant.js +0 -58
  353. package/utils/types/typography/font-weight.d.ts +0 -11
  354. package/utils/types/typography/font-weight.js +0 -11
  355. package/utils/types/typography/index.d.ts +0 -4
  356. package/utils/types/typography/index.js +0 -4
  357. package/utils/types/typography/text-align.d.ts +0 -5
  358. package/utils/types/typography/text-align.js +0 -5
  359. package/utils/types/typography/text-decoration.d.ts +0 -5
  360. package/utils/types/typography/text-decoration.js +0 -5
  361. package/utils/types/with.d.ts +0 -4
  362. /package/{core/accordion-details/accordion-details.props.js → tooltip/tooltip.types.js} +0 -0
  363. /package/{utils/types → types}/values.d.ts +0 -0
  364. /package/utils/{functions/shadcn-utils.d.ts → cn.d.ts} +0 -0
  365. /package/utils/{functions/shadcn-utils.js → cn.js} +0 -0
package/LICENSE CHANGED
@@ -1,33 +1 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 SCALEFLEX SAS
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
6
- to use the Software without restriction for personal purposes only. If you intend to use, copy, modify, distribute, sell, or lease any part of our Software for
7
- commercial or corporate purposes,
8
- you are required to contact the Scaleflex Sales team (sales@scaleflex.com) to settle the payment of a yearly licensing subscription of five thousand euros.
9
- If you are proven to be in violation of this condition, you agree to pay a ten thousand euro penalty charge in addition to the yearly licensing subscription.
10
-
11
- By utilizing the "Software", you acknowledge and unconditionally agree to be bound by these Terms, which are associated with the Scaleflex Services Terms and Conditions,
12
- which can be found at www.scaleflex.com:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
24
-
25
- ---------------------------------------------------------------------------------
26
-
27
- Publicity
28
-
29
- You agree that Scaleflex may reference and use Your name, logos and trademarks in
30
- Scaleflex marketing and promotional materials, including, but not limited to the
31
- Scaleflex Websites, solely for purposes of identifying You as a customer of Scaleflex.
32
- Otherwise, neither party may use the trade names, trademarks, service marks, or logos
33
- of the other party without the express written consent of the other party.
1
+ TBD
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @scaleflex/ui-tw
2
2
 
3
- React UI components library by Scaleflex
3
+ React UI components library based on shadcn and tailwind by Scaleflex
4
4
 
5
5
  ---
6
6
 
@@ -9,20 +9,6 @@ TODO: Update doc
9
9
  ## Installation
10
10
 
11
11
  ```shell script
12
- npm i @scaleflex/ui # styled-components react react-dom
12
+ yarn add @scaleflex/ui-tw
13
13
  ```
14
14
 
15
- ```shell script
16
- yarn add @scaleflex/ui # styled-components react react-dom
17
- ```
18
-
19
- > Make sure to have `react`, `react-dom` and `styled-components` installed in your package as they are included in our peer dependencies.
20
-
21
- ## Usage
22
-
23
- Scaleflex UI includes several parts:
24
-
25
- - [`core`](src/core/README.md)
26
- - [`hooks`](src/hooks/README.md)
27
- - [`theme`](src/theme/README.md)
28
- - [`utils`](src/utils/README.md)
@@ -1,9 +1,8 @@
1
1
  import React from 'react';
2
2
  import { type ButtonProps } from './button.types';
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "primary" | "secondary" | "outline" | "link-primary" | "link-secondary" | "link-basic-primary" | "link-basic-secondary" | "link-error" | "link-warning" | "error-primary" | "error-outline" | "warning-primary" | "warning-outline" | null | undefined;
4
+ variant?: "primary" | "secondary" | "outline" | "link-primary" | "link-secondary" | "link-basic-primary" | "link-basic-secondary" | "link-error" | "link-warning" | "error-primary" | "warning-primary" | null | undefined;
5
5
  size?: "xs" | "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
7
  declare function Button({ className, children, size, startIcon, endIcon, variant, loading, asChild, disabled, ...rest }: ButtonProps): React.JSX.Element;
8
- export { buttonVariants };
9
- export default Button;
8
+ export { Button, buttonVariants };
@@ -5,16 +5,16 @@ var _excluded = ["className", "children", "size", "startIcon", "endIcon", "varia
5
5
  var _buttonVariantOptions;
6
6
  import { Slot } from '@radix-ui/react-slot';
7
7
  import SpinnerIcon from '@scaleflex/icons-tw/spinner';
8
- import EndIcon from '@scaleflex/ui-tw/core/button/components/end-icon';
9
- import StartIcon, { startIconVariants } from '@scaleflex/ui-tw/core/button/components/start-icon';
10
- import { cn } from '@scaleflex/ui-tw/utils/functions/shadcn-utils';
8
+ import EndIcon from '@scaleflex/ui-tw/button/components/end-icon';
9
+ import StartIcon, { startIconVariants } from '@scaleflex/ui-tw/button/components/start-icon';
10
+ import { cn } from '@scaleflex/ui-tw/utils/cn';
11
11
  import { cva } from 'class-variance-authority';
12
12
  import React from 'react';
13
13
  import { ButtonSize, ButtonVariant } from './button.types';
14
14
  import { getIconSizeInRem } from './button.utils';
15
- var buttonVariantOptions = (_buttonVariantOptions = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_buttonVariantOptions, ButtonVariant.Primary, 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/80'), ButtonVariant.Secondary, 'border bg-background shadow-xs text-primary border-primary hover:bg-primary/80 hover:text-primary-foreground'), ButtonVariant.Outline, 'border bg-background text-secondary-foreground shadow-xs border-input hover:text-secondary-foreground/80 hover:border-input/80'), ButtonVariant.LinkPrimary, 'text-primary hover:text-primary/80'), ButtonVariant.LinkSecondary, 'text-secondary-foreground hover:text-secondary-foreground/80'), ButtonVariant.LinkBasicPrimary, 'text-primary hover:text-primary/80 font-normal'), ButtonVariant.LinkBasicSecondary, 'text-secondary-foreground font-normal hover:text-secondary-foreground/80'), ButtonVariant.LinkError, 'text-destructive hover:text-destructive/80'), ButtonVariant.LinkWarning, 'text-warning hover:text-warning/80'), ButtonVariant.ErrorPrimary, 'bg-destructive text-primary-foreground shadow-xs hover:bg-destructive/90'), _defineProperty(_defineProperty(_defineProperty(_buttonVariantOptions, ButtonVariant.ErrorOutline, 'border bg-background text-secondary-foreground shadow-xs border-input hover:bg-destructive hover:text-primary-foreground hover:border-transparent hover:border-destructive'), ButtonVariant.WarningPrimary, 'bg-warning text-primary-foreground shadow-xs hover:bg-warning/90'), ButtonVariant.WarningOutline, 'border bg-background text-secondary-foreground shadow-xs border-input hover:bg-warning hover:text-primary-foreground hover:border-transparent hover:border-warning'));
16
- var buttonSizeOptions = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ButtonSize.Xs, 'h-6 px-2.5 py-1.5 text-sm'), ButtonSize.Sm, 'h-8 px-3 py-2 text-sm'), ButtonSize.Md, 'h-10 px-4 py-2.5 text-base'), ButtonSize.Lg, 'h-12 px-6 py-3.5 text-lg');
17
- var buttonVariants = cva("group/button cursor-pointer inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-30 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
15
+ var buttonVariantOptions = (_buttonVariantOptions = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_buttonVariantOptions, ButtonVariant.Primary, 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/80'), ButtonVariant.Secondary, 'border bg-background shadow-xs text-primary border-primary hover:bg-accent hover:border-primary/80'), ButtonVariant.Outline, 'border bg-background text-secondary-foreground shadow-xs border-input hover:bg-secondary hover:border-input/80'), ButtonVariant.LinkPrimary, 'text-primary hover:text-primary/80'), ButtonVariant.LinkSecondary, 'text-secondary-foreground hover:text-secondary-foreground/80'), ButtonVariant.LinkBasicPrimary, 'text-primary font-normal hover:text-primary/80'), ButtonVariant.LinkBasicSecondary, 'text-secondary-foreground font-normal hover:text-secondary-foreground/80'), ButtonVariant.LinkError, 'text-destructive hover:text-destructive/80'), ButtonVariant.LinkWarning, 'text-warning hover:text-warning/80'), ButtonVariant.Error, 'bg-destructive text-primary-foreground shadow-xs hover:bg-destructive/80'), _defineProperty(_buttonVariantOptions, ButtonVariant.Warning, 'bg-warning text-primary-foreground shadow-xs hover:bg-warning/80'));
16
+ var buttonSizeOptions = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ButtonSize.Xs, 'h-6 px-2.5 py-1.5 text-xs'), ButtonSize.Sm, 'h-8 px-3 py-2 text-sm'), ButtonSize.Md, 'h-10 px-4 py-2.5 text-base'), ButtonSize.Lg, 'h-12 px-6 py-3.5 text-lg');
17
+ var buttonVariants = cva('', {
18
18
  variants: {
19
19
  variant: buttonVariantOptions,
20
20
  size: buttonSizeOptions
@@ -43,7 +43,7 @@ function Button(_ref) {
43
43
  var Comp = asChild ? Slot : 'button';
44
44
  return /*#__PURE__*/React.createElement(Comp, _extends({
45
45
  "data-slot": "button",
46
- className: cn(buttonVariants({
46
+ className: cn('group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md font-medium whitespace-nowrap transition-all outline-none', 'ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-40', "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", buttonVariants({
47
47
  variant: variant,
48
48
  size: size,
49
49
  className: className
@@ -69,5 +69,4 @@ function Button(_ref) {
69
69
  icon: endIcon
70
70
  })) : children);
71
71
  }
72
- export { buttonVariants };
73
- export default Button;
72
+ export { Button, buttonVariants };
@@ -9,7 +9,5 @@ export declare const iconVariantOptions: {
9
9
  "link-error": string;
10
10
  "link-warning": string;
11
11
  "error-primary": string;
12
- "error-outline": string;
13
12
  "warning-primary": string;
14
- "warning-outline": string;
15
13
  };
@@ -1,4 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  var _iconVariantOptions;
3
- import { ButtonVariant } from '@scaleflex/ui-tw/core/button/button.types';
4
- export var iconVariantOptions = (_iconVariantOptions = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_iconVariantOptions, ButtonVariant.Primary, ''), ButtonVariant.Secondary, ''), ButtonVariant.Outline, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.LinkPrimary, ''), ButtonVariant.LinkSecondary, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.LinkBasicPrimary, ''), ButtonVariant.LinkBasicSecondary, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.LinkError, ''), ButtonVariant.LinkWarning, ''), ButtonVariant.ErrorPrimary, ''), _defineProperty(_defineProperty(_defineProperty(_iconVariantOptions, ButtonVariant.ErrorOutline, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.WarningPrimary, ''), ButtonVariant.WarningOutline, 'text-muted-foreground group-hover/button:text-muted-foreground/80'));
3
+ import { ButtonVariant } from '@scaleflex/ui-tw/button/button.types';
4
+ export var iconVariantOptions = (_iconVariantOptions = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_iconVariantOptions, ButtonVariant.Primary, ''), ButtonVariant.Secondary, ''), ButtonVariant.Outline, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.LinkPrimary, ''), ButtonVariant.LinkSecondary, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.LinkBasicPrimary, ''), ButtonVariant.LinkBasicSecondary, 'text-muted-foreground group-hover/button:text-muted-foreground/80'), ButtonVariant.LinkError, ''), ButtonVariant.LinkWarning, ''), ButtonVariant.Error, ''), _defineProperty(_iconVariantOptions, ButtonVariant.Warning, ''));
@@ -1,4 +1,4 @@
1
- import { buttonVariants } from '@scaleflex/ui-tw/core/button/button.component';
1
+ import { buttonVariants } from '@scaleflex/ui-tw/button/button.component';
2
2
  import type { VariantProps } from 'class-variance-authority';
3
3
  import { ComponentProps, ReactElement } from 'react';
4
4
  export declare const ButtonVariant: {
@@ -11,10 +11,8 @@ export declare const ButtonVariant: {
11
11
  readonly LinkBasicSecondary: "link-basic-secondary";
12
12
  readonly LinkError: "link-error";
13
13
  readonly LinkWarning: "link-warning";
14
- readonly ErrorPrimary: "error-primary";
15
- readonly ErrorOutline: "error-outline";
16
- readonly WarningPrimary: "warning-primary";
17
- readonly WarningOutline: "warning-outline";
14
+ readonly Error: "error-primary";
15
+ readonly Warning: "warning-primary";
18
16
  };
19
17
  export interface ButtonProps extends ComponentProps<'button'>, VariantProps<typeof buttonVariants> {
20
18
  asChild?: boolean;
@@ -8,10 +8,8 @@ export var ButtonVariant = {
8
8
  LinkBasicSecondary: 'link-basic-secondary',
9
9
  LinkError: 'link-error',
10
10
  LinkWarning: 'link-warning',
11
- ErrorPrimary: 'error-primary',
12
- ErrorOutline: 'error-outline',
13
- WarningPrimary: 'warning-primary',
14
- WarningOutline: 'warning-outline'
11
+ Error: 'error-primary',
12
+ Warning: 'warning-primary'
15
13
  };
16
14
  export var ButtonSize = {
17
15
  Xs: 'xs',
@@ -1,2 +1,2 @@
1
- import { ButtonSizeType } from '@scaleflex/ui-tw/core/button/button.types';
1
+ import { ButtonSizeType } from '@scaleflex/ui-tw/button/button.types';
2
2
  export declare const getIconSizeInRem: (sizeName?: ButtonSizeType | null) => string;
@@ -1,4 +1,4 @@
1
- import { ButtonSize } from '@scaleflex/ui-tw/core/button/button.types';
1
+ import { ButtonSize } from '@scaleflex/ui-tw/button/button.types';
2
2
  export var getIconSizeInRem = function getIconSizeInRem(sizeName) {
3
3
  switch (sizeName) {
4
4
  case ButtonSize.Lg:
@@ -1,4 +1,4 @@
1
- import { type ButtonProps } from '@scaleflex/ui-tw/core/button';
1
+ import { type ButtonProps } from '@scaleflex/ui-tw/button';
2
2
  import React, { ComponentProps, ReactElement } from 'react';
3
3
  interface EndIconProps extends ComponentProps<'span'>, Pick<ButtonProps, 'size' | 'variant'> {
4
4
  icon?: ReactElement;
@@ -2,9 +2,9 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  var _excluded = ["size", "icon", "variant"];
5
- import { ButtonSize } from '@scaleflex/ui-tw/core/button';
6
- import { iconVariantOptions } from '@scaleflex/ui-tw/core/button/button.const';
7
- import { getIconSizeInRem } from '@scaleflex/ui-tw/core/button/button.utils';
5
+ import { ButtonSize } from '@scaleflex/ui-tw/button';
6
+ import { iconVariantOptions } from '@scaleflex/ui-tw/button/button.const';
7
+ import { getIconSizeInRem } from '@scaleflex/ui-tw/button/button.utils';
8
8
  import { cva } from 'class-variance-authority';
9
9
  import React, { cloneElement, useMemo } from 'react';
10
10
  var endIconSizes = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ButtonSize.Xs, 'ml-1.5'), ButtonSize.Sm, 'ml-1.5'), ButtonSize.Md, 'ml-2'), ButtonSize.Lg, 'ml-2');
@@ -1,7 +1,7 @@
1
- import { type ButtonProps } from '@scaleflex/ui-tw/core/button';
1
+ import { type ButtonProps } from '@scaleflex/ui-tw/button';
2
2
  import React, { ComponentProps, ReactElement } from 'react';
3
3
  declare const startIconVariants: (props?: ({
4
- variant?: "primary" | "secondary" | "outline" | "link-primary" | "link-secondary" | "link-basic-primary" | "link-basic-secondary" | "link-error" | "link-warning" | "error-primary" | "error-outline" | "warning-primary" | "warning-outline" | null | undefined;
4
+ variant?: "primary" | "secondary" | "outline" | "link-primary" | "link-secondary" | "link-basic-primary" | "link-basic-secondary" | "link-error" | "link-warning" | "error-primary" | "warning-primary" | null | undefined;
5
5
  size?: "xs" | "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
7
  interface StartIconProps extends ComponentProps<'span'>, Pick<ButtonProps, 'size' | 'variant'> {
@@ -3,9 +3,9 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  var _excluded = ["size", "variant", "icon", "loading"];
5
5
  import SpinnerIcon from '@scaleflex/icons-tw/spinner';
6
- import { ButtonSize } from '@scaleflex/ui-tw/core/button';
7
- import { iconVariantOptions } from '@scaleflex/ui-tw/core/button/button.const';
8
- import { getIconSizeInRem } from '@scaleflex/ui-tw/core/button/button.utils';
6
+ import { ButtonSize } from '@scaleflex/ui-tw/button';
7
+ import { iconVariantOptions } from '@scaleflex/ui-tw/button/button.const';
8
+ import { getIconSizeInRem } from '@scaleflex/ui-tw/button/button.utils';
9
9
  import { cva } from 'class-variance-authority';
10
10
  import React, { cloneElement, useMemo } from 'react';
11
11
  var startIconSizes = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ButtonSize.Xs, 'mr-1.5'), ButtonSize.Sm, 'mr-1.5'), ButtonSize.Md, 'mr-2'), ButtonSize.Lg, 'mr-2');
@@ -0,0 +1,3 @@
1
+ export { Button, buttonVariants } from './button.component';
2
+ export type { ButtonProps } from './button.types';
3
+ export { ButtonVariant, ButtonSize } from './button.types';
@@ -0,0 +1,2 @@
1
+ export { Button, buttonVariants } from './button.component';
2
+ export { ButtonVariant, ButtonSize } from './button.types';
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ComponentProps } from 'react';
3
+ declare function Card({ className, ...rest }: ComponentProps<'div'>): React.JSX.Element;
4
+ declare function CardHeader({ className, ...rest }: ComponentProps<'div'>): React.JSX.Element;
5
+ declare function CardTitle({ className, ...rest }: ComponentProps<'div'>): React.JSX.Element;
6
+ declare function CardDescription({ className, ...rest }: ComponentProps<'div'>): React.JSX.Element;
7
+ declare function CardContent({ className, ...rest }: ComponentProps<'div'>): React.JSX.Element;
8
+ declare function CardSetting({ className, ...rest }: ComponentProps<'div'>): React.JSX.Element;
9
+ export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardSetting };
@@ -0,0 +1,59 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["className"],
4
+ _excluded2 = ["className"],
5
+ _excluded3 = ["className"],
6
+ _excluded4 = ["className"],
7
+ _excluded5 = ["className"],
8
+ _excluded6 = ["className"];
9
+ import { cn } from '@scaleflex/ui-tw/utils/cn';
10
+ import React from 'react';
11
+ function Card(_ref) {
12
+ var className = _ref.className,
13
+ rest = _objectWithoutProperties(_ref, _excluded);
14
+ return /*#__PURE__*/React.createElement("div", _extends({
15
+ "data-slot": "card",
16
+ className: cn('bg-card lg:border-border border-y-border shadow-shadow mt-8 max-w-7xl border-y shadow-md lg:rounded-xl lg:border', className)
17
+ }, rest));
18
+ }
19
+ function CardHeader(_ref2) {
20
+ var className = _ref2.className,
21
+ rest = _objectWithoutProperties(_ref2, _excluded2);
22
+ return /*#__PURE__*/React.createElement("div", _extends({
23
+ "data-slot": "card-header",
24
+ className: cn('border-border flex flex-col gap-1 border-b px-6 py-6 text-xl font-medium lg:rounded-t-xl', className)
25
+ }, rest));
26
+ }
27
+ function CardTitle(_ref3) {
28
+ var className = _ref3.className,
29
+ rest = _objectWithoutProperties(_ref3, _excluded3);
30
+ return /*#__PURE__*/React.createElement("div", _extends({
31
+ "data-slot": "card-title",
32
+ className: cn(className)
33
+ }, rest));
34
+ }
35
+ function CardDescription(_ref4) {
36
+ var className = _ref4.className,
37
+ rest = _objectWithoutProperties(_ref4, _excluded4);
38
+ return /*#__PURE__*/React.createElement("div", _extends({
39
+ "data-slot": "card-description",
40
+ className: cn('text-secondary-foreground max-w-4xl text-sm font-normal', className)
41
+ }, rest));
42
+ }
43
+ function CardContent(_ref5) {
44
+ var className = _ref5.className,
45
+ rest = _objectWithoutProperties(_ref5, _excluded5);
46
+ return /*#__PURE__*/React.createElement("div", _extends({
47
+ "data-slot": "card-content",
48
+ className: cn('flex flex-col gap-6 rounded-b-xl p-6', className)
49
+ }, rest));
50
+ }
51
+ function CardSetting(_ref6) {
52
+ var className = _ref6.className,
53
+ rest = _objectWithoutProperties(_ref6, _excluded6);
54
+ return /*#__PURE__*/React.createElement("div", _extends({
55
+ "data-slot": "card-setting",
56
+ className: cn('flex min-h-[2.5rem] items-center justify-between gap-4 text-base', className)
57
+ }, rest));
58
+ }
59
+ export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardSetting };
@@ -0,0 +1 @@
1
+ export { Card, CardHeader, CardContent, CardTitle, CardDescription, CardSetting } from './card.component';
package/card/index.js ADDED
@@ -0,0 +1 @@
1
+ export { Card, CardHeader, CardContent, CardTitle, CardDescription, CardSetting } from './card.component';
@@ -0,0 +1,19 @@
1
+ import { InputSizeType } from '@scaleflex/ui-tw/input/input.types';
2
+ import React, { ReactNode } from 'react';
3
+ import { ControllerRenderProps, FieldValues, Path, UseControllerProps } from 'react-hook-form';
4
+ export interface FormFieldArgs {
5
+ size?: InputSizeType;
6
+ readOnly?: boolean;
7
+ disabled?: boolean;
8
+ }
9
+ export interface FormFieldGroupProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>> extends UseControllerProps<TFieldValues, TName> {
10
+ label?: string;
11
+ description?: string;
12
+ tooltip?: string;
13
+ size?: InputSizeType;
14
+ readOnly?: boolean;
15
+ highlight?: boolean;
16
+ children: (field: ControllerRenderProps<TFieldValues, TName>, args?: FormFieldArgs) => ReactNode;
17
+ }
18
+ declare function FormFieldGroup<TFieldValues extends FieldValues, TName extends Path<TFieldValues>>({ control, name, label, description, size, readOnly, disabled, tooltip, highlight, children, }: FormFieldGroupProps<TFieldValues, TName>): React.JSX.Element;
19
+ export { FormFieldGroup };
@@ -0,0 +1,41 @@
1
+ import { FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '@scaleflex/ui-tw/form';
2
+ import React from 'react';
3
+ function FormFieldGroup(_ref) {
4
+ var control = _ref.control,
5
+ name = _ref.name,
6
+ label = _ref.label,
7
+ description = _ref.description,
8
+ _ref$size = _ref.size,
9
+ size = _ref$size === void 0 ? 'md' : _ref$size,
10
+ _ref$readOnly = _ref.readOnly,
11
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
12
+ _ref$disabled = _ref.disabled,
13
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
14
+ tooltip = _ref.tooltip,
15
+ highlight = _ref.highlight,
16
+ children = _ref.children;
17
+ return /*#__PURE__*/React.createElement(FormField, {
18
+ control: control,
19
+ name: name,
20
+ render: function render(_ref2) {
21
+ var field = _ref2.field;
22
+ return /*#__PURE__*/React.createElement(FormItem, {
23
+ className: "group",
24
+ "data-disabled": disabled,
25
+ "data-highlight": highlight
26
+ }, label && /*#__PURE__*/React.createElement(FormLabel, {
27
+ size: size,
28
+ tooltip: tooltip
29
+ }, label), /*#__PURE__*/React.createElement(FormControl, null, children(field, {
30
+ size: size,
31
+ readOnly: readOnly,
32
+ disabled: disabled
33
+ })), description && /*#__PURE__*/React.createElement(FormDescription, {
34
+ size: size
35
+ }, description), /*#__PURE__*/React.createElement(FormMessage, {
36
+ size: size
37
+ }));
38
+ }
39
+ });
40
+ }
41
+ export { FormFieldGroup };
@@ -0,0 +1,30 @@
1
+ import { Slot } from '@radix-ui/react-slot';
2
+ import { FormMessageSizeType } from '@scaleflex/ui-tw/form/form.types';
3
+ import { LabelProps } from '@scaleflex/ui-tw/label/label.types';
4
+ import * as React from 'react';
5
+ import { ComponentProps } from 'react';
6
+ import { type ControllerProps, type FieldPath, type FieldValues } from 'react-hook-form';
7
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
8
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => React.JSX.Element;
9
+ declare const useFormField: () => {
10
+ invalid: boolean;
11
+ isDirty: boolean;
12
+ isTouched: boolean;
13
+ isValidating: boolean;
14
+ error?: import("react-hook-form").FieldError;
15
+ id: string;
16
+ name: string;
17
+ formItemId: string;
18
+ formDescriptionId: string;
19
+ formMessageId: string;
20
+ };
21
+ declare function FormItem({ className, ...props }: ComponentProps<'div'>): React.JSX.Element;
22
+ declare function FormLabel({ className, ...props }: LabelProps): React.JSX.Element;
23
+ declare function FormControl({ ...props }: ComponentProps<typeof Slot>): React.JSX.Element;
24
+ declare function FormDescription({ className, size, ...props }: ComponentProps<'p'> & {
25
+ size?: FormMessageSizeType;
26
+ }): React.JSX.Element;
27
+ declare function FormMessage({ className, size, ...props }: ComponentProps<'p'> & {
28
+ size?: FormMessageSizeType;
29
+ }): React.JSX.Element | null;
30
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
@@ -0,0 +1,123 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectDestructuringEmpty from "@babel/runtime/helpers/objectDestructuringEmpty";
4
+ import _extends from "@babel/runtime/helpers/extends";
5
+ var _excluded = ["className"],
6
+ _excluded2 = ["className"],
7
+ _excluded3 = ["className", "size"],
8
+ _excluded4 = ["className", "size"];
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ import { Slot } from '@radix-ui/react-slot';
12
+ import { FormMessageSize } from '@scaleflex/ui-tw/form/form.types';
13
+ import { Label } from '@scaleflex/ui-tw/label';
14
+ import { cn } from '@scaleflex/ui-tw/utils/cn';
15
+ import * as React from 'react';
16
+ import { createContext, useContext, useId } from 'react';
17
+ import { Controller, FormProvider, useFormContext, useFormState } from 'react-hook-form';
18
+ var Form = FormProvider;
19
+ var FormFieldContext = /*#__PURE__*/createContext({});
20
+ var FormField = function FormField(_ref) {
21
+ var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
22
+ return /*#__PURE__*/React.createElement(FormFieldContext.Provider, {
23
+ value: {
24
+ name: props.name
25
+ }
26
+ }, /*#__PURE__*/React.createElement(Controller, props));
27
+ };
28
+ var useFormField = function useFormField() {
29
+ var fieldContext = useContext(FormFieldContext);
30
+ var itemContext = useContext(FormItemContext);
31
+ var _useFormContext = useFormContext(),
32
+ getFieldState = _useFormContext.getFieldState;
33
+ var formState = useFormState({
34
+ name: fieldContext.name
35
+ });
36
+ var fieldState = getFieldState(fieldContext.name, formState);
37
+ if (!fieldContext) {
38
+ throw new Error('useFormField should be used within <FormField>');
39
+ }
40
+ var id = itemContext.id;
41
+ return _objectSpread({
42
+ id: id,
43
+ name: fieldContext.name,
44
+ formItemId: "".concat(id, "-form-item"),
45
+ formDescriptionId: "".concat(id, "-form-item-description"),
46
+ formMessageId: "".concat(id, "-form-item-message")
47
+ }, fieldState);
48
+ };
49
+ var FormItemContext = /*#__PURE__*/createContext({});
50
+ function FormItem(_ref2) {
51
+ var className = _ref2.className,
52
+ props = _objectWithoutProperties(_ref2, _excluded);
53
+ var id = useId();
54
+ return /*#__PURE__*/React.createElement(FormItemContext.Provider, {
55
+ value: {
56
+ id: id
57
+ }
58
+ }, /*#__PURE__*/React.createElement("div", _extends({
59
+ "data-slot": "form-item",
60
+ className: cn('grid gap-1.5', className)
61
+ }, props)));
62
+ }
63
+ function FormLabel(_ref3) {
64
+ var className = _ref3.className,
65
+ props = _objectWithoutProperties(_ref3, _excluded2);
66
+ var _useFormField = useFormField(),
67
+ error = _useFormField.error,
68
+ formItemId = _useFormField.formItemId;
69
+ return /*#__PURE__*/React.createElement(Label, _extends({
70
+ "data-slot": "form-label",
71
+ "data-error": !!error,
72
+ className: cn('data-[error=true]:text-destructive', className),
73
+ htmlFor: formItemId
74
+ }, props));
75
+ }
76
+ function FormControl(_ref4) {
77
+ var props = _extends({}, (_objectDestructuringEmpty(_ref4), _ref4));
78
+ var _useFormField2 = useFormField(),
79
+ error = _useFormField2.error,
80
+ formItemId = _useFormField2.formItemId,
81
+ formDescriptionId = _useFormField2.formDescriptionId,
82
+ formMessageId = _useFormField2.formMessageId;
83
+ return /*#__PURE__*/React.createElement(Slot, _extends({
84
+ "data-slot": "form-control",
85
+ id: formItemId,
86
+ "aria-describedby": !error ? "".concat(formDescriptionId) : "".concat(formDescriptionId, " ").concat(formMessageId),
87
+ "aria-invalid": !!error
88
+ }, props));
89
+ }
90
+ var formMessageSizeOptions = _defineProperty(_defineProperty(_defineProperty({}, FormMessageSize.Sm, 'text-xs'), FormMessageSize.Md, 'text-xs'), FormMessageSize.Lg, 'text-sm');
91
+ function FormDescription(_ref5) {
92
+ var className = _ref5.className,
93
+ _ref5$size = _ref5.size,
94
+ size = _ref5$size === void 0 ? FormMessageSize.Md : _ref5$size,
95
+ props = _objectWithoutProperties(_ref5, _excluded3);
96
+ var _useFormField3 = useFormField(),
97
+ formDescriptionId = _useFormField3.formDescriptionId;
98
+ return /*#__PURE__*/React.createElement("p", _extends({
99
+ "data-slot": "form-description",
100
+ id: formDescriptionId,
101
+ className: cn('text-muted-foreground', 'group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50', 'group-data-[highlight=true]:text-warning', formMessageSizeOptions[size], className)
102
+ }, props));
103
+ }
104
+ function FormMessage(_ref6) {
105
+ var _error$message;
106
+ var className = _ref6.className,
107
+ _ref6$size = _ref6.size,
108
+ size = _ref6$size === void 0 ? FormMessageSize.Md : _ref6$size,
109
+ props = _objectWithoutProperties(_ref6, _excluded4);
110
+ var _useFormField4 = useFormField(),
111
+ error = _useFormField4.error,
112
+ formMessageId = _useFormField4.formMessageId;
113
+ var body = error ? String((_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : '') : props.children;
114
+ if (!body) {
115
+ return null;
116
+ }
117
+ return /*#__PURE__*/React.createElement("p", _extends({
118
+ "data-slot": "form-message",
119
+ id: formMessageId,
120
+ className: cn('text-destructive', 'group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50', formMessageSizeOptions[size], className)
121
+ }, props), body);
122
+ }
123
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };
@@ -0,0 +1,7 @@
1
+ import type { Values } from 'packages/ui/src/types/values';
2
+ export declare const FormMessageSize: {
3
+ readonly Sm: "sm";
4
+ readonly Md: "md";
5
+ readonly Lg: "lg";
6
+ };
7
+ export type FormMessageSizeType = Values<typeof FormMessageSize>;
@@ -1,4 +1,4 @@
1
- export var SwitcherSize = {
1
+ export var FormMessageSize = {
2
2
  Sm: 'sm',
3
3
  Md: 'md',
4
4
  Lg: 'lg'
@@ -0,0 +1,2 @@
1
+ export { Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, useFormField, } from './form.component';
2
+ export { FormFieldGroup } from './components/form-field-group.component';
package/form/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, useFormField } from './form.component';
2
+ export { FormFieldGroup } from './components/form-field-group.component';
@@ -0,0 +1,3 @@
1
+ export { Input, inputVariants } from './input.component';
2
+ export type { InputProps } from './input.types';
3
+ export { InputType, InputSize } from './input.types';
package/input/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Input, inputVariants } from './input.component';
2
+ export { InputType, InputSize } from './input.types';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { InputProps } from './input.types';
3
+ declare const inputVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ declare function Input({ className, type, size, disabled, readOnly, ...props }: InputProps): React.JSX.Element;
7
+ export { Input, inputVariants };
@@ -0,0 +1,42 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ var _excluded = ["className", "type", "size", "disabled", "readOnly"];
5
+ import { ButtonSize } from '@scaleflex/ui-tw/button';
6
+ import { cn } from '@scaleflex/ui-tw/utils/cn';
7
+ import { cva } from 'class-variance-authority';
8
+ import React from 'react';
9
+ import { InputType } from './input.types';
10
+ import { InputSize } from './input.types';
11
+ var inputSizeOptions = _defineProperty(_defineProperty(_defineProperty({}, InputSize.Sm, 'py-2 px-3 text-sm h-8'), InputSize.Md, 'py-3 px-4 h-10 text-base '), InputSize.Lg, 'py-3 px-4 h-12 text-lg ');
12
+ var inputVariants = cva('', {
13
+ variants: {
14
+ size: inputSizeOptions
15
+ },
16
+ defaultVariants: {
17
+ size: ButtonSize.Md
18
+ }
19
+ });
20
+ function Input(_ref) {
21
+ var className = _ref.className,
22
+ _ref$type = _ref.type,
23
+ type = _ref$type === void 0 ? InputType.Text : _ref$type,
24
+ _ref$size = _ref.size,
25
+ size = _ref$size === void 0 ? InputSize.Md : _ref$size,
26
+ _ref$disabled = _ref.disabled,
27
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
28
+ _ref$readOnly = _ref.readOnly,
29
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
30
+ props = _objectWithoutProperties(_ref, _excluded);
31
+ return /*#__PURE__*/React.createElement("input", _extends({
32
+ type: type,
33
+ "data-slot": "input",
34
+ disabled: disabled,
35
+ readOnly: readOnly,
36
+ className: cn('border-input text-foreground bg-background flex w-full min-w-0 rounded-md border shadow-xs transition-[color,box-shadow] outline-none', 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50', 'focus-visible:ring-ring ring-offset-background focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none', 'read-only:bg-secondary read-only:text-foreground read-only:cursor-default', 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive', 'group-data-[highlight=true]:border-warning group-data-[highlight=true]:focus-visible:ring-warning/20', inputVariants({
37
+ size: size,
38
+ className: className
39
+ }))
40
+ }, props));
41
+ }
42
+ export { Input, inputVariants };