singularity-components 0.1.140 → 0.1.193

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 (284) hide show
  1. package/README.md +36 -4
  2. package/dist/components/blocks/cards/blogpost-card.d.ts +13 -0
  3. package/dist/components/blocks/cards/blogpost-card.js +79 -0
  4. package/dist/components/blocks/cards/blogpost-card.js.map +1 -0
  5. package/dist/components/blocks/cards/card.d.ts +14 -0
  6. package/dist/components/blocks/cards/card.js +86 -0
  7. package/dist/components/blocks/cards/card.js.map +1 -0
  8. package/dist/components/blocks/empty-state/EmptyState.d.ts +15 -0
  9. package/dist/components/blocks/empty-state/EmptyState.js +36 -0
  10. package/dist/components/blocks/empty-state/EmptyState.js.map +1 -0
  11. package/dist/components/blocks/index.d.ts +5 -0
  12. package/dist/components/blocks/index.js +5 -0
  13. package/dist/components/blocks/index.js.map +1 -0
  14. package/dist/components/blocks/post-list/post-filters.d.ts +19 -0
  15. package/dist/components/blocks/post-list/post-filters.js +99 -0
  16. package/dist/components/blocks/post-list/post-filters.js.map +1 -0
  17. package/dist/components/blocks/post-list/post-list-with-filters.d.ts +19 -0
  18. package/dist/components/blocks/post-list/post-list-with-filters.js +439 -0
  19. package/dist/components/blocks/post-list/post-list-with-filters.js.map +1 -0
  20. package/dist/components/index.d.ts +43 -10
  21. package/dist/components/index.js +5 -3
  22. package/dist/components/index.js.map +1 -1
  23. package/dist/components/pages/admin/admin-page.d.ts +8 -0
  24. package/dist/components/pages/admin/admin-page.js +299 -0
  25. package/dist/components/pages/admin/admin-page.js.map +1 -0
  26. package/dist/components/pages/blogpost/blogpost.d.ts +5 -0
  27. package/dist/components/pages/blogpost/blogpost.js +440 -0
  28. package/dist/components/pages/blogpost/blogpost.js.map +1 -0
  29. package/dist/components/pages/category/category-page.d.ts +8 -0
  30. package/dist/components/pages/category/category-page.js +69 -0
  31. package/dist/components/pages/category/category-page.js.map +1 -0
  32. package/dist/components/pages/chat/chat-page.d.ts +5 -0
  33. package/dist/components/pages/chat/chat-page.js +209 -0
  34. package/dist/components/pages/chat/chat-page.js.map +1 -0
  35. package/dist/components/pages/index.d.ts +11 -0
  36. package/dist/components/pages/index.js +11 -0
  37. package/dist/components/pages/index.js.map +1 -0
  38. package/dist/components/pages/login/login-page.d.ts +19 -0
  39. package/dist/components/pages/login/login-page.js +108 -0
  40. package/dist/components/pages/login/login-page.js.map +1 -0
  41. package/dist/components/pages/maintenance/maintenance-page.d.ts +5 -0
  42. package/dist/components/pages/maintenance/maintenance-page.js +50 -0
  43. package/dist/components/pages/maintenance/maintenance-page.js.map +1 -0
  44. package/dist/components/pages/not-found/not-found.d.ts +10 -0
  45. package/dist/components/pages/not-found/not-found.js +64 -0
  46. package/dist/components/pages/not-found/not-found.js.map +1 -0
  47. package/dist/components/pages/privacy/privacy-page.d.ts +15 -0
  48. package/dist/components/pages/privacy/privacy-page.js +98 -0
  49. package/dist/components/pages/privacy/privacy-page.js.map +1 -0
  50. package/dist/components/pages/search/search-page.d.ts +5 -0
  51. package/dist/components/pages/search/search-page.js +18 -0
  52. package/dist/components/pages/search/search-page.js.map +1 -0
  53. package/dist/components/pages/startpage/startpage.d.ts +5 -0
  54. package/dist/components/pages/startpage/startpage.js +50 -0
  55. package/dist/components/pages/startpage/startpage.js.map +1 -0
  56. package/dist/components/pages/terms/terms-page.d.ts +15 -0
  57. package/dist/components/pages/terms/terms-page.js +98 -0
  58. package/dist/components/pages/terms/terms-page.js.map +1 -0
  59. package/dist/components/primitives/accordion/accordion.js +1 -1
  60. package/dist/components/primitives/accordion/accordion.js.map +1 -1
  61. package/dist/components/primitives/alert/alert.js +1 -1
  62. package/dist/components/primitives/alert/alert.js.map +1 -1
  63. package/dist/components/primitives/avatar/avatar.d.ts +14 -0
  64. package/dist/components/primitives/avatar/avatar.js +103 -0
  65. package/dist/components/primitives/avatar/avatar.js.map +1 -0
  66. package/dist/components/primitives/badge/badge.d.ts +12 -4
  67. package/dist/components/primitives/badge/badge.js +15 -15
  68. package/dist/components/primitives/badge/badge.js.map +1 -1
  69. package/dist/components/primitives/badge/badges.js +1 -1
  70. package/dist/components/primitives/badge/badges.js.map +1 -1
  71. package/dist/components/primitives/{button → buttons}/button.d.ts +15 -9
  72. package/dist/components/primitives/buttons/button.js +92 -0
  73. package/dist/components/primitives/buttons/button.js.map +1 -0
  74. package/dist/components/primitives/buttons/icon-button.d.ts +33 -0
  75. package/dist/components/primitives/buttons/icon-button.js +61 -0
  76. package/dist/components/primitives/buttons/icon-button.js.map +1 -0
  77. package/dist/components/primitives/buttons/link-button.d.ts +16 -0
  78. package/dist/components/primitives/buttons/link-button.js +35 -0
  79. package/dist/components/primitives/buttons/link-button.js.map +1 -0
  80. package/dist/components/primitives/collapsible/collapsible.d.ts +9 -0
  81. package/dist/components/primitives/collapsible/collapsible.js +53 -0
  82. package/dist/components/primitives/collapsible/collapsible.js.map +1 -0
  83. package/dist/components/primitives/dropdown-menu/dropdown-menu.d.ts +30 -0
  84. package/dist/components/primitives/dropdown-menu/dropdown-menu.js +164 -0
  85. package/dist/components/primitives/dropdown-menu/dropdown-menu.js.map +1 -0
  86. package/dist/components/primitives/forms/checkbox.d.ts +6 -0
  87. package/dist/components/primitives/forms/checkbox.js +30 -0
  88. package/dist/components/primitives/forms/checkbox.js.map +1 -0
  89. package/dist/components/primitives/forms/field.d.ts +29 -0
  90. package/dist/components/primitives/forms/field.js +218 -0
  91. package/dist/components/primitives/forms/field.js.map +1 -0
  92. package/dist/components/primitives/forms/input.d.ts +6 -0
  93. package/dist/components/primitives/forms/input.js +22 -0
  94. package/dist/components/primitives/forms/input.js.map +1 -0
  95. package/dist/components/primitives/forms/select.d.ts +22 -0
  96. package/dist/components/primitives/forms/select.js +169 -0
  97. package/dist/components/primitives/forms/select.js.map +1 -0
  98. package/dist/components/primitives/forms/textarea.d.ts +6 -0
  99. package/dist/components/primitives/forms/textarea.js +20 -0
  100. package/dist/components/primitives/forms/textarea.js.map +1 -0
  101. package/dist/components/primitives/icon/icon.d.ts +10 -3
  102. package/dist/components/primitives/icon/icon.js +15 -14
  103. package/dist/components/primitives/icon/icon.js.map +1 -1
  104. package/dist/components/primitives/index.d.ts +25 -7
  105. package/dist/components/primitives/index.js +31 -18
  106. package/dist/components/primitives/index.js.map +1 -1
  107. package/dist/components/primitives/label/label.d.ts +6 -0
  108. package/dist/components/primitives/label/label.js +22 -0
  109. package/dist/components/primitives/label/label.js.map +1 -0
  110. package/dist/components/primitives/layout/layout.d.ts +8 -4
  111. package/dist/components/primitives/layout/layout.js +35 -17
  112. package/dist/components/primitives/layout/layout.js.map +1 -1
  113. package/dist/components/primitives/link/link.d.ts +42 -0
  114. package/dist/components/primitives/link/link.js +83 -0
  115. package/dist/components/primitives/link/link.js.map +1 -0
  116. package/dist/components/primitives/separator/separator.js +1 -1
  117. package/dist/components/primitives/separator/separator.js.map +1 -1
  118. package/dist/components/primitives/sheet/sheet.d.ts +29 -0
  119. package/dist/components/primitives/sheet/sheet.js +117 -0
  120. package/dist/components/primitives/sheet/sheet.js.map +1 -0
  121. package/dist/components/primitives/skeleton/skeleton.js +1 -1
  122. package/dist/components/primitives/skeleton/skeleton.js.map +1 -1
  123. package/dist/components/primitives/sonner/sonner.d.ts +7 -0
  124. package/dist/components/primitives/sonner/sonner.js +42 -0
  125. package/dist/components/primitives/sonner/sonner.js.map +1 -0
  126. package/dist/components/primitives/sonner/use-toast.d.ts +24 -0
  127. package/dist/components/primitives/sonner/use-toast.js +21 -0
  128. package/dist/components/primitives/sonner/use-toast.js.map +1 -0
  129. package/dist/components/primitives/spinner/spinner.js +1 -1
  130. package/dist/components/primitives/spinner/spinner.js.map +1 -1
  131. package/dist/components/primitives/stack/stack.d.ts +5 -1
  132. package/dist/components/primitives/stack/stack.js +46 -5
  133. package/dist/components/primitives/stack/stack.js.map +1 -1
  134. package/dist/components/primitives/text/{text-heading.d.ts → heading.d.ts} +5 -5
  135. package/dist/components/primitives/text/heading.js +53 -0
  136. package/dist/components/primitives/text/heading.js.map +1 -0
  137. package/dist/components/primitives/text/internal/text-element.d.ts +30 -4
  138. package/dist/components/primitives/text/internal/text-element.js +24 -14
  139. package/dist/components/primitives/text/internal/text-element.js.map +1 -1
  140. package/dist/components/primitives/text/text-code.d.ts +26 -0
  141. package/dist/components/primitives/text/text-code.js +44 -0
  142. package/dist/components/primitives/text/text-code.js.map +1 -0
  143. package/dist/components/primitives/text/text-div.d.ts +1 -1
  144. package/dist/components/primitives/text/text-div.js +2 -2
  145. package/dist/components/primitives/text/text-div.js.map +1 -1
  146. package/dist/components/primitives/text/text-span.js +2 -2
  147. package/dist/components/primitives/text/text-span.js.map +1 -1
  148. package/dist/components/primitives/text/text-time.js +2 -2
  149. package/dist/components/primitives/text/text-time.js.map +1 -1
  150. package/dist/components/primitives/text/text.d.ts +16 -0
  151. package/dist/components/primitives/text/{text-paragraph.js → text.js} +16 -5
  152. package/dist/components/primitives/text/text.js.map +1 -0
  153. package/dist/components/primitives/{ui-image.d.ts → ui-image/ui-image.d.ts} +1 -1
  154. package/dist/components/primitives/{ui-image.js → ui-image/ui-image.js} +4 -7
  155. package/dist/components/primitives/ui-image/ui-image.js.map +1 -0
  156. package/dist/components/primitives/ui-link/ui-link.d.ts +8 -0
  157. package/dist/components/primitives/ui-link/ui-link.js +19 -0
  158. package/dist/components/primitives/ui-link/ui-link.js.map +1 -0
  159. package/dist/components/providers/LinkContext.d.ts +1 -1
  160. package/dist/components/providers/LinkContext.js +1 -1
  161. package/dist/components/providers/LinkContext.js.map +1 -1
  162. package/dist/components/providers/SingularityContext.d.ts +4 -1
  163. package/dist/components/providers/SingularityContext.js +7 -3
  164. package/dist/components/providers/SingularityContext.js.map +1 -1
  165. package/dist/components/providers/auth-provider.d.ts +15 -0
  166. package/dist/components/providers/auth-provider.js +30 -0
  167. package/dist/components/providers/auth-provider.js.map +1 -0
  168. package/dist/components/providers/index.d.ts +3 -0
  169. package/dist/components/providers/index.js +5 -3
  170. package/dist/components/providers/index.js.map +1 -1
  171. package/dist/components/providers/theme-provider.d.ts +27 -0
  172. package/dist/components/providers/theme-provider.js +75 -0
  173. package/dist/components/providers/theme-provider.js.map +1 -0
  174. package/dist/components/templates/container/container.d.ts +20 -0
  175. package/dist/components/templates/container/container.js +58 -0
  176. package/dist/components/templates/container/container.js.map +1 -0
  177. package/dist/components/templates/footer/footer.d.ts +5 -0
  178. package/dist/components/templates/footer/footer.js +12 -0
  179. package/dist/components/templates/footer/footer.js.map +1 -0
  180. package/dist/components/templates/form/form.d.ts +5 -0
  181. package/dist/components/templates/form/form.js +141 -0
  182. package/dist/components/templates/form/form.js.map +1 -0
  183. package/dist/components/templates/hero/hero.d.ts +18 -0
  184. package/dist/components/templates/hero/hero.js +301 -0
  185. package/dist/components/templates/hero/hero.js.map +1 -0
  186. package/dist/components/templates/index.d.ts +5 -0
  187. package/dist/components/templates/index.js +5 -0
  188. package/dist/components/templates/index.js.map +1 -0
  189. package/dist/components/templates/navigation/header.d.ts +19 -0
  190. package/dist/components/templates/navigation/header.js +222 -0
  191. package/dist/components/templates/navigation/header.js.map +1 -0
  192. package/dist/components/templates/navigation/index.d.ts +3 -0
  193. package/dist/components/templates/navigation/index.js +2 -0
  194. package/dist/components/templates/navigation/index.js.map +1 -0
  195. package/dist/css/variables.css +75 -73
  196. package/dist/css/variables.css.map +1 -1
  197. package/dist/data/authors.d.ts +12 -0
  198. package/dist/data/authors.js +33 -0
  199. package/dist/data/authors.js.map +1 -0
  200. package/dist/data/posts.d.ts +22 -0
  201. package/dist/data/posts.js +285 -0
  202. package/dist/data/posts.js.map +1 -0
  203. package/dist/index.d.ts +43 -10
  204. package/dist/index.js +1 -1
  205. package/dist/index.js.map +1 -1
  206. package/dist/lib/helpers/index.js +1 -1
  207. package/dist/lib/helpers/index.js.map +1 -1
  208. package/dist/lib/hooks/useIsClient.d.ts +3 -0
  209. package/dist/lib/hooks/useIsClient.js +14 -0
  210. package/dist/lib/hooks/useIsClient.js.map +1 -0
  211. package/dist/lib/index.d.ts +1 -0
  212. package/dist/lib/index.js +2 -1
  213. package/dist/lib/index.js.map +1 -1
  214. package/dist/lib/types.d.ts +4 -8
  215. package/dist/main.css +2026 -455
  216. package/dist/main.css.map +1 -1
  217. package/dist/{utils.js → utils/index.js} +1 -1
  218. package/dist/utils/index.js.map +1 -0
  219. package/dist/utils/index.test.js +37 -0
  220. package/dist/utils/index.test.js.map +1 -0
  221. package/package.json +80 -44
  222. package/dist/components/primitives/accordion/accordion.stories.d.ts +0 -15
  223. package/dist/components/primitives/accordion/accordion.stories.js +0 -60
  224. package/dist/components/primitives/accordion/accordion.stories.js.map +0 -1
  225. package/dist/components/primitives/alert/alert.stories.d.ts +0 -22
  226. package/dist/components/primitives/alert/alert.stories.js +0 -37
  227. package/dist/components/primitives/alert/alert.stories.js.map +0 -1
  228. package/dist/components/primitives/button/button.js +0 -56
  229. package/dist/components/primitives/button/button.js.map +0 -1
  230. package/dist/components/primitives/button/button.stories.d.ts +0 -34
  231. package/dist/components/primitives/button/button.stories.js +0 -74
  232. package/dist/components/primitives/button/button.stories.js.map +0 -1
  233. package/dist/components/primitives/button/button_with_icon_variant.js +0 -1
  234. package/dist/components/primitives/button/button_with_icon_variant.js.map +0 -1
  235. package/dist/components/primitives/icon/icon.stories.d.ts +0 -27
  236. package/dist/components/primitives/icon/icon.stories.js +0 -30
  237. package/dist/components/primitives/icon/icon.stories.js.map +0 -1
  238. package/dist/components/primitives/layout/layout.stories.d.ts +0 -32
  239. package/dist/components/primitives/layout/layout.stories.js +0 -72
  240. package/dist/components/primitives/layout/layout.stories.js.map +0 -1
  241. package/dist/components/primitives/separator/separator.stories.d.ts +0 -15
  242. package/dist/components/primitives/separator/separator.stories.js +0 -18
  243. package/dist/components/primitives/separator/separator.stories.js.map +0 -1
  244. package/dist/components/primitives/skeleton/skeleton.stories.d.ts +0 -13
  245. package/dist/components/primitives/skeleton/skeleton.stories.js +0 -16
  246. package/dist/components/primitives/skeleton/skeleton.stories.js.map +0 -1
  247. package/dist/components/primitives/spinner/spinner.stories.d.ts +0 -16
  248. package/dist/components/primitives/spinner/spinner.stories.js +0 -34
  249. package/dist/components/primitives/spinner/spinner.stories.js.map +0 -1
  250. package/dist/components/primitives/stack/stack.stories.d.ts +0 -13
  251. package/dist/components/primitives/stack/stack.stories.js +0 -26
  252. package/dist/components/primitives/stack/stack.stories.js.map +0 -1
  253. package/dist/components/primitives/text/text-div.stories.d.ts +0 -32
  254. package/dist/components/primitives/text/text-div.stories.js +0 -59
  255. package/dist/components/primitives/text/text-div.stories.js.map +0 -1
  256. package/dist/components/primitives/text/text-heading.js +0 -53
  257. package/dist/components/primitives/text/text-heading.js.map +0 -1
  258. package/dist/components/primitives/text/text-heading.stories.d.ts +0 -27
  259. package/dist/components/primitives/text/text-heading.stories.js +0 -47
  260. package/dist/components/primitives/text/text-heading.stories.js.map +0 -1
  261. package/dist/components/primitives/text/text-paragraph.d.ts +0 -10
  262. package/dist/components/primitives/text/text-paragraph.js.map +0 -1
  263. package/dist/components/primitives/text/text-span.stories.d.ts +0 -31
  264. package/dist/components/primitives/text/text-span.stories.js +0 -59
  265. package/dist/components/primitives/text/text-span.stories.js.map +0 -1
  266. package/dist/components/primitives/ui-image.js.map +0 -1
  267. package/dist/components/primitives/ui-link.d.ts +0 -6
  268. package/dist/components/primitives/ui-link.js +0 -22
  269. package/dist/components/primitives/ui-link.js.map +0 -1
  270. package/dist/components/units/cards/blog-card.d.ts +0 -19
  271. package/dist/components/units/cards/blog-card.js +0 -82
  272. package/dist/components/units/cards/blog-card.js.map +0 -1
  273. package/dist/components/units/cards/card.d.ts +0 -15
  274. package/dist/components/units/cards/card.js +0 -89
  275. package/dist/components/units/cards/card.js.map +0 -1
  276. package/dist/components/units/cards/cards.d.ts +0 -17
  277. package/dist/components/units/cards/cards.js +0 -37
  278. package/dist/components/units/cards/cards.js.map +0 -1
  279. package/dist/components/units/index.d.ts +0 -5
  280. package/dist/components/units/index.js +0 -4
  281. package/dist/components/units/index.js.map +0 -1
  282. package/dist/utils.js.map +0 -1
  283. /package/dist/{utils.d.ts → utils/index.d.ts} +0 -0
  284. /package/dist/{components/primitives/button/button_with_icon_variant.d.ts → utils/index.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { cn } from \"./index\";\n\ndescribe(\"cn utility\", () => {\n it(\"should merge basic tailwind classes\", () => {\n expect(cn(\"bg-red-500\", \"bg-blue-500\")).toBe(\"bg-blue-500\");\n });\n\n it(\"should merge basic sg: prefixed tailwind classes\", () => {\n expect(cn(\"sg:bg-red-500\", \"sg:bg-blue-500\")).toBe(\"sg:bg-blue-500\");\n });\n\n it(\"should merge a mix of unprefixed and prefixed tailwind classes\", () => {\n // If someone passes sg:bg-red-500 and then an unprefixed bg-blue-500,\n // the unprefixed one should win because in the original `cn` logic it looks at unprefixed.\n expect(cn(\"sg:bg-red-500\", \"bg-blue-500\")).toBe(\"bg-blue-500\");\n });\n\n it(\"should handle custom tailwind prefixes correctly\", () => {\n expect(cn(\"sg:px-2\", \"sg:-px-2\")).toBe(\"sg:-px-2\");\n expect(cn(\"sg:p-4 sg:p-2\")).toBe(\"sg:p-2\");\n expect(cn(\"sg:w-full\", \"sg:w-1/2\")).toBe(\"sg:w-1/2\");\n expect(cn(\"sg:text-sm sg:text-lg sg:leading-6\")).toBe(\n \"sg:text-lg sg:leading-6\",\n );\n });\n\n it(\"should preserve standard non-conflicting styles with prefix\", () => {\n expect(cn(\"sg:text-red-500\", \"sg:bg-blue-500\")).toBe(\n \"sg:text-red-500 sg:bg-blue-500\",\n );\n });\n\n it(\"should ignore empty, null, undefined, false inputs\", () => {\n expect(\n cn(\"sg:bg-red-500\", null, undefined, false, \"\", \"sg:text-white\"),\n ).toBe(\"sg:bg-red-500 sg:text-white\");\n });\n\n it(\"should combine correctly when passing objects or arrays\", () => {\n expect(\n cn([\"sg:bg-red-500\"], { \"sg:text-white\": true, \"sg:text-black\": false }),\n ).toBe(\"sg:bg-red-500 sg:text-white\");\n });\n});\n"],"mappings":"AAAA,SAAS,UAAU,IAAI,cAAc;AACrC,SAAS,UAAU;AAEnB,SAAS,cAAc,MAAM;AAC3B,KAAG,uCAAuC,MAAM;AAC9C,WAAO,GAAG,cAAc,aAAa,CAAC,EAAE,KAAK,aAAa;AAAA,EAC5D,CAAC;AAED,KAAG,oDAAoD,MAAM;AAC3D,WAAO,GAAG,iBAAiB,gBAAgB,CAAC,EAAE,KAAK,gBAAgB;AAAA,EACrE,CAAC;AAED,KAAG,kEAAkE,MAAM;AAGzE,WAAO,GAAG,iBAAiB,aAAa,CAAC,EAAE,KAAK,aAAa;AAAA,EAC/D,CAAC;AAED,KAAG,oDAAoD,MAAM;AAC3D,WAAO,GAAG,WAAW,UAAU,CAAC,EAAE,KAAK,UAAU;AACjD,WAAO,GAAG,eAAe,CAAC,EAAE,KAAK,QAAQ;AACzC,WAAO,GAAG,aAAa,UAAU,CAAC,EAAE,KAAK,UAAU;AACnD,WAAO,GAAG,oCAAoC,CAAC,EAAE;AAAA,MAC/C;AAAA,IACF;AAAA,EACF,CAAC;AAED,KAAG,+DAA+D,MAAM;AACtE,WAAO,GAAG,mBAAmB,gBAAgB,CAAC,EAAE;AAAA,MAC9C;AAAA,IACF;AAAA,EACF,CAAC;AAED,KAAG,sDAAsD,MAAM;AAC7D;AAAA,MACE,GAAG,iBAAiB,MAAM,QAAW,OAAO,IAAI,eAAe;AAAA,IACjE,EAAE,KAAK,6BAA6B;AAAA,EACtC,CAAC;AAED,KAAG,2DAA2D,MAAM;AAClE;AAAA,MACE,GAAG,CAAC,eAAe,GAAG,EAAE,iBAAiB,MAAM,iBAAiB,MAAM,CAAC;AAAA,IACzE,EAAE,KAAK,6BAA6B;AAAA,EACtC,CAAC;AACH,CAAC;","names":[]}
package/package.json CHANGED
@@ -1,21 +1,24 @@
1
1
  {
2
2
  "name": "singularity-components",
3
- "version": "0.1.140",
3
+ "version": "0.1.193",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
8
8
  "main": "./dist/index.js",
9
9
  "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "sideEffects": [
12
+ "**/*.css"
13
+ ],
10
14
  "exports": {
11
15
  ".": {
12
16
  "types": "./dist/index.d.ts",
13
17
  "import": "./dist/index.js"
14
18
  },
15
- "./package.json": "./package.json",
16
- "./*": {
17
- "types": "./dist/*.d.ts",
18
- "import": "./dist/*.js"
19
+ "./components": {
20
+ "types": "./dist/components/index.d.ts",
21
+ "import": "./dist/components/index.js"
19
22
  },
20
23
  "./components/*": {
21
24
  "types": "./dist/components/*.d.ts",
@@ -25,65 +28,98 @@
25
28
  "types": "./dist/components/providers/*.d.ts",
26
29
  "import": "./dist/components/providers/*.js"
27
30
  },
31
+ "./lib": {
32
+ "types": "./dist/lib/index.d.ts",
33
+ "import": "./dist/lib/index.js"
34
+ },
35
+ "./lib/*": {
36
+ "types": "./dist/lib/*.d.ts",
37
+ "import": "./dist/lib/*.js"
38
+ },
28
39
  "./utils": {
29
- "types": "./dist/utils.d.ts",
30
- "import": "./dist/utils.js"
40
+ "types": "./dist/utils/index.d.ts",
41
+ "import": "./dist/utils/index.js"
31
42
  }
32
43
  },
33
- "scripts": {
34
- "build": "tsup",
35
- "storybook": "storybook dev -p 6006 --no-open",
36
- "storybook:build": "storybook build",
37
- "droplet-down": "docker-compose --context remote -f .\\docker-compose-droplet.yml down",
38
- "droplet-up": "powershell -ExecutionPolicy Bypass -File droplet-update-containers.ps1"
39
- },
40
44
  "keywords": [
41
- "test"
45
+ "ui",
46
+ "components",
47
+ "react",
48
+ "typescript",
49
+ "tailwindcss",
50
+ "headless",
51
+ "design-system"
42
52
  ],
43
53
  "author": "Filip",
44
54
  "license": "MIT",
45
55
  "description": "",
46
56
  "dependencies": {
47
- "@base-ui/react": "^1.1.0",
57
+ "@base-ui/react": "^1.4.1",
58
+ "@radix-ui/react-collapsible": "^1.1.12",
59
+ "@radix-ui/react-dialog": "^1.1.15",
60
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
48
61
  "@radix-ui/react-slot": "^1.2.4",
49
- "@tailwindcss/postcss": "^4.1.18",
62
+ "@tailwindcss/postcss": "^4.2.4",
50
63
  "class-variance-authority": "^0.7.1",
51
64
  "clsx": "^2.1.1",
52
- "lucide-react": "^0.563.0",
53
- "postcss": "^8.5.6",
54
- "react": "^19.2.4",
55
- "react-dom": "^19.2.4",
65
+ "framer-motion": "^12.38.0",
66
+ "isomorphic-dompurify": "^3.10.0",
67
+ "postcss": "^8.5.10",
56
68
  "react-spinners": "^0.17.0",
57
- "tailwind-merge": "^3.4.0",
58
- "tailwindcss": "^4.1.18",
69
+ "sonner": "^2.0.7",
70
+ "tailwind-merge": "^3.5.0",
71
+ "tailwindcss": "^4.2.4",
59
72
  "tailwindcss-animate": "^1.0.7"
60
73
  },
61
74
  "devDependencies": {
62
- "@chromatic-com/storybook": "^5.0.0",
63
- "@storybook/addon-docs": "^10.2.6",
64
- "@storybook/addon-links": "^10.2.6",
65
- "@storybook/addon-themes": "^10.2.6",
66
- "@storybook/react-vite": "^10.2.6",
67
- "@types/node": "^25.2.0",
68
- "@types/react": "^19.2.11",
75
+ "@storybook/addon-a11y": "^10.3.5",
76
+ "@storybook/addon-docs": "^10.3.5",
77
+ "@storybook/addon-links": "^10.3.5",
78
+ "@storybook/addon-themes": "^10.3.5",
79
+ "@storybook/addon-vitest": "^10.3.5",
80
+ "@storybook/react-vite": "^10.3.5",
81
+ "@types/node": "^25.6.0",
82
+ "@types/react": "^19.2.14",
69
83
  "@types/react-dom": "^19.2.3",
70
- "@typescript-eslint/eslint-plugin": "^8.54.0",
71
- "@typescript-eslint/parser": "^8.54.0",
72
- "@vitejs/plugin-react": "^5.1.3",
73
- "eslint": "^9.39.2",
74
- "eslint-plugin-react-hooks": "^7.0.1",
75
- "eslint-plugin-react-refresh": "^0.5.0",
76
- "eslint-plugin-storybook": "10.2.6",
77
- "storybook": "^10.2.6",
84
+ "@typescript-eslint/eslint-plugin": "^8.59.0",
85
+ "@typescript-eslint/parser": "^8.59.0",
86
+ "@vitejs/plugin-react": "^5.2.0",
87
+ "@vitest/browser-playwright": "^4.0.18",
88
+ "@vitest/coverage-v8": "^4.0.18",
89
+ "cross-env": "^10.1.0",
90
+ "eslint": "^9.39.4",
91
+ "eslint-plugin-import": "^2.32.0",
92
+ "eslint-plugin-react-hooks": "^7.1.1",
93
+ "eslint-plugin-react-refresh": "^0.5.2",
94
+ "eslint-plugin-storybook": "10.3.5",
95
+ "lucide-react": "^1.8.0",
96
+ "playwright": "^1.59.1",
97
+ "react": "^19.2.5",
98
+ "react-dom": "^19.2.5",
99
+ "storybook": "^10.3.5",
78
100
  "tsup": "^8.5.1",
79
101
  "typescript": "^5.9.3",
80
- "vite": "^7.3.1",
102
+ "vite": "^8.0.9",
81
103
  "vite-plugin-dts": "^4.5.4",
82
- "vite-tsconfig-paths": "^6.0.5"
104
+ "vite-tsconfig-paths": "^6.1.1",
105
+ "vitest": "^4.0.18"
83
106
  },
84
107
  "peerDependencies": {
85
- "lucide-react": "^0.563.0",
86
- "react": "^19.2.4",
87
- "react-dom": "^19.2.4"
108
+ "lucide-react": "^1.8.0",
109
+ "react": "^19.2.5",
110
+ "react-dom": "^19.2.5"
111
+ },
112
+ "scripts": {
113
+ "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 tsup && node postbuild.mjs",
114
+ "test": "vitest",
115
+ "test:watch": "vitest",
116
+ "storybook": "storybook dev -p 6006 --no-open",
117
+ "storybook:build": "storybook build",
118
+ "storybook:test": "vitest --project=storybook",
119
+ "droplet-down": "docker-compose --context remote -f .\\docker-compose-droplet.yml down",
120
+ "droplet-up": "powershell -ExecutionPolicy Bypass -File droplet-update-containers.ps1",
121
+ "react-doctor": "npx -y react-doctor@latest . --verbose",
122
+ "openapi-types": "npx openapi-typescript https://api.filion.se/swagger/v1/swagger.json -o ./src/lib/api/v1.d.ts --alphabetize --default-non-nullable --root-types --root-types-no-schema-prefix",
123
+ "openapi-dev-types": "npx openapi-typescript http://localhost:5268/swagger/v1/swagger.json -o ./src/lib/api/v1.d.ts --alphabetize --default-non-nullable --root-types --root-types-no-schema-prefix"
88
124
  }
89
- }
125
+ }
@@ -1,15 +0,0 @@
1
- import { Accordion } from './accordion.js';
2
- import { StoryObj } from '@storybook/react-vite';
3
- import 'react/jsx-runtime';
4
- import '@base-ui/react/accordion';
5
-
6
- declare const meta: {
7
- component: typeof Accordion;
8
- title: string;
9
- };
10
-
11
- type Story = StoryObj<typeof meta>;
12
- declare const primary: Story;
13
- declare const multiple: Story;
14
-
15
- export { meta as default, multiple, primary };
@@ -1,60 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import {
3
- Accordion,
4
- AccordionContent,
5
- AccordionItem,
6
- AccordionTrigger
7
- } from "./accordion";
8
- const meta = {
9
- component: Accordion,
10
- title: "Accordion"
11
- };
12
- var accordion_stories_default = meta;
13
- const primary = {
14
- args: {
15
- multiple: false,
16
- children: [
17
- /* @__PURE__ */ jsxs(Accordion, { multiple: false, className: "w-full", children: [
18
- /* @__PURE__ */ jsxs(AccordionItem, { value: "item-1", children: [
19
- /* @__PURE__ */ jsx(AccordionTrigger, { children: "Is it accessible?" }),
20
- /* @__PURE__ */ jsx(AccordionContent, { children: "Yes. It adheres to the WAI-ARIA design pattern." })
21
- ] }),
22
- /* @__PURE__ */ jsxs(AccordionItem, { value: "item-2", children: [
23
- /* @__PURE__ */ jsx(AccordionTrigger, { children: "Is it styled?" }),
24
- /* @__PURE__ */ jsx(AccordionContent, { children: "Yes. It comes with default styles that matches the other components' aesthetic." })
25
- ] }),
26
- /* @__PURE__ */ jsxs(AccordionItem, { value: "item-3", children: [
27
- /* @__PURE__ */ jsx(AccordionTrigger, { children: "Is it animated?" }),
28
- /* @__PURE__ */ jsx(AccordionContent, { children: "Yes. It's animated by default, but you can disable it if you prefer." })
29
- ] })
30
- ] })
31
- ]
32
- }
33
- };
34
- const multiple = {
35
- args: {
36
- multiple: true,
37
- children: [
38
- /* @__PURE__ */ jsxs(Accordion, { multiple: true, className: "w-full", children: [
39
- /* @__PURE__ */ jsxs(AccordionItem, { value: "item-1", children: [
40
- /* @__PURE__ */ jsx(AccordionTrigger, { children: "Is it accessible?" }),
41
- /* @__PURE__ */ jsx(AccordionContent, { children: "Yes. It adheres to the WAI-ARIA design pattern." })
42
- ] }),
43
- /* @__PURE__ */ jsxs(AccordionItem, { value: "item-2", children: [
44
- /* @__PURE__ */ jsx(AccordionTrigger, { children: "Is it styled?" }),
45
- /* @__PURE__ */ jsx(AccordionContent, { children: "Yes. It comes with default styles that matches the other components' aesthetic." })
46
- ] }),
47
- /* @__PURE__ */ jsxs(AccordionItem, { value: "item-3", children: [
48
- /* @__PURE__ */ jsx(AccordionTrigger, { children: "Is it animated?" }),
49
- /* @__PURE__ */ jsx(AccordionContent, { children: "Yes. It's animated by default, but you can disable it if you prefer." })
50
- ] })
51
- ] })
52
- ]
53
- }
54
- };
55
- export {
56
- accordion_stories_default as default,
57
- multiple,
58
- primary
59
- };
60
- //# sourceMappingURL=accordion.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/primitives/accordion/accordion.stories.tsx"],"sourcesContent":["import {\r\n Accordion,\r\n AccordionContent,\r\n AccordionItem,\r\n AccordionTrigger,\r\n} from \"./accordion\";\r\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\r\n\r\nconst meta = {\r\n component: Accordion,\r\n title: \"Accordion\",\r\n} satisfies Meta<typeof Accordion>;\r\nexport default meta;\r\n\r\ntype Story = StoryObj<typeof meta>;\r\n\r\nexport const primary: Story = {\r\n args: {\r\n multiple: false,\r\n children: [\r\n <Accordion multiple={false} className=\"w-full\">\r\n <AccordionItem value=\"item-1\">\r\n <AccordionTrigger>Is it accessible?</AccordionTrigger>\r\n <AccordionContent>\r\n Yes. It adheres to the WAI-ARIA design pattern.\r\n </AccordionContent>\r\n </AccordionItem>\r\n <AccordionItem value=\"item-2\">\r\n <AccordionTrigger>Is it styled?</AccordionTrigger>\r\n <AccordionContent>\r\n Yes. It comes with default styles that matches the other\r\n components&apos; aesthetic.\r\n </AccordionContent>\r\n </AccordionItem>\r\n <AccordionItem value=\"item-3\">\r\n <AccordionTrigger>Is it animated?</AccordionTrigger>\r\n <AccordionContent>\r\n Yes. It's animated by default, but you can disable it if you prefer.\r\n </AccordionContent>\r\n </AccordionItem>\r\n </Accordion>,\r\n ],\r\n },\r\n};\r\n\r\nexport const multiple: Story = {\r\n args: {\r\n multiple: true,\r\n children: [\r\n <Accordion multiple className=\"w-full\">\r\n <AccordionItem value=\"item-1\">\r\n <AccordionTrigger>Is it accessible?</AccordionTrigger>\r\n <AccordionContent>\r\n Yes. It adheres to the WAI-ARIA design pattern.\r\n </AccordionContent>\r\n </AccordionItem>\r\n <AccordionItem value=\"item-2\">\r\n <AccordionTrigger>Is it styled?</AccordionTrigger>\r\n <AccordionContent>\r\n Yes. It comes with default styles that matches the other\r\n components&apos; aesthetic.\r\n </AccordionContent>\r\n </AccordionItem>\r\n <AccordionItem value=\"item-3\">\r\n <AccordionTrigger>Is it animated?</AccordionTrigger>\r\n <AccordionContent>\r\n Yes. It's animated by default, but you can disable it if you prefer.\r\n </AccordionContent>\r\n </AccordionItem>\r\n </Accordion>,\r\n ],\r\n },\r\n};\r\n"],"mappings":"AAqBQ,SACE,KADF;AArBR;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,MAAM,OAAO;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AACT;AACA,IAAO,4BAAQ;AAIR,MAAM,UAAiB;AAAA,EAC5B,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,UAAU;AAAA,MACR,qBAAC,aAAU,UAAU,OAAO,WAAU,UACpC;AAAA,6BAAC,iBAAc,OAAM,UACnB;AAAA,8BAAC,oBAAiB,+BAAiB;AAAA,UACnC,oBAAC,oBAAiB,6DAElB;AAAA,WACF;AAAA,QACA,qBAAC,iBAAc,OAAM,UACnB;AAAA,8BAAC,oBAAiB,2BAAa;AAAA,UAC/B,oBAAC,oBAAiB,6FAGlB;AAAA,WACF;AAAA,QACA,qBAAC,iBAAc,OAAM,UACnB;AAAA,8BAAC,oBAAiB,6BAAe;AAAA,UACjC,oBAAC,oBAAiB,kFAElB;AAAA,WACF;AAAA,SACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,MAAM,WAAkB;AAAA,EAC7B,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,UAAU;AAAA,MACR,qBAAC,aAAU,UAAQ,MAAC,WAAU,UAC5B;AAAA,6BAAC,iBAAc,OAAM,UACnB;AAAA,8BAAC,oBAAiB,+BAAiB;AAAA,UACnC,oBAAC,oBAAiB,6DAElB;AAAA,WACF;AAAA,QACA,qBAAC,iBAAc,OAAM,UACnB;AAAA,8BAAC,oBAAiB,2BAAa;AAAA,UAC/B,oBAAC,oBAAiB,6FAGlB;AAAA,WACF;AAAA,QACA,qBAAC,iBAAc,OAAM,UACnB;AAAA,8BAAC,oBAAiB,6BAAe;AAAA,UACjC,oBAAC,oBAAiB,kFAElB;AAAA,WACF;AAAA,SACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,22 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- import { Alert } from './alert.js';
3
- import 'react/jsx-runtime';
4
- import 'class-variance-authority/types';
5
- import 'react';
6
- import 'class-variance-authority';
7
-
8
- declare const meta: {
9
- component: typeof Alert;
10
- title: string;
11
- argTypes: {
12
- variant: {
13
- options: string[];
14
- };
15
- };
16
- };
17
-
18
- type Story = StoryObj<typeof meta>;
19
- declare const normal: Story;
20
- declare const destructive: Story;
21
-
22
- export { meta as default, destructive, normal };
@@ -1,37 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Alert, AlertDescription, AlertTitle, alertVariants } from "./alert";
3
- import { Terminal } from "lucide-react";
4
- const meta = {
5
- component: Alert,
6
- title: "Alert",
7
- argTypes: {
8
- variant: {
9
- options: Object.keys(alertVariants.variant)
10
- }
11
- }
12
- };
13
- var alert_stories_default = meta;
14
- const normal = {
15
- args: {
16
- children: [
17
- /* @__PURE__ */ jsx(Terminal, {}),
18
- /* @__PURE__ */ jsx(AlertTitle, { children: "Default" }),
19
- /* @__PURE__ */ jsx(AlertDescription, { children: "Default variant" })
20
- ]
21
- }
22
- };
23
- const destructive = {
24
- args: {
25
- variant: "destructive",
26
- children: [
27
- /* @__PURE__ */ jsx(AlertTitle, { children: "Destructive" }),
28
- /* @__PURE__ */ jsx(AlertDescription, { children: "Destructive variant" })
29
- ]
30
- }
31
- };
32
- export {
33
- alert_stories_default as default,
34
- destructive,
35
- normal
36
- };
37
- //# sourceMappingURL=alert.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/primitives/alert/alert.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\r\nimport { Alert, AlertDescription, AlertTitle, alertVariants } from \"./alert\";\r\nimport { Terminal } from \"lucide-react\";\r\n\r\nconst meta = {\r\n component: Alert,\r\n title: \"Alert\",\r\n argTypes: {\r\n variant: {\r\n options: Object.keys(alertVariants.variant),\r\n },\r\n },\r\n} satisfies Meta<typeof Alert>;\r\nexport default meta;\r\n\r\ntype Story = StoryObj<typeof meta>;\r\n\r\nexport const normal: Story = {\r\n args: {\r\n children: [\r\n <Terminal />,\r\n <AlertTitle>Default</AlertTitle>,\r\n <AlertDescription>Default variant</AlertDescription>,\r\n ],\r\n },\r\n};\r\n\r\nexport const destructive: Story = {\r\n args: {\r\n variant: \"destructive\",\r\n children: [\r\n <AlertTitle>Destructive</AlertTitle>,\r\n <AlertDescription>Destructive variant</AlertDescription>,\r\n ],\r\n },\r\n};\r\n"],"mappings":"AAoBM;AAnBN,SAAS,OAAO,kBAAkB,YAAY,qBAAqB;AACnE,SAAS,gBAAgB;AAEzB,MAAM,OAAO;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,OAAO,KAAK,cAAc,OAAO;AAAA,IAC5C;AAAA,EACF;AACF;AACA,IAAO,wBAAQ;AAIR,MAAM,SAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,oBAAC,YAAS;AAAA,MACV,oBAAC,cAAW,qBAAO;AAAA,MACnB,oBAAC,oBAAiB,6BAAe;AAAA,IACnC;AAAA,EACF;AACF;AAEO,MAAM,cAAqB;AAAA,EAChC,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,UAAU;AAAA,MACR,oBAAC,cAAW,yBAAW;AAAA,MACvB,oBAAC,oBAAiB,iCAAmB;AAAA,IACvC;AAAA,EACF;AACF;","names":[]}
@@ -1,56 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { cn } from "../../../utils";
4
- import { Button as ButtonPrimitive } from "@base-ui/react/button";
5
- import { cva } from "class-variance-authority";
6
- const buttonVariants = {
7
- variant: {
8
- default: "sg:bg-primary sg:text-primary-foreground sg:hover:bg-primary/80",
9
- outline: "sg:border-border sg:bg-input/30 sg:hover:bg-input/50 sg:hover:text-foreground sg:aria-expanded:bg-muted sg:aria-expanded:text-foreground",
10
- secondary: "sg:bg-secondary sg:text-secondary-foreground sg:hover:bg-secondary/80 sg:aria-expanded:bg-secondary sg:aria-expanded:text-secondary-foreground",
11
- ghost: "sg:hover:bg-muted sg:hover:text-foreground sg:dark:hover:bg-muted/50 sg:aria-expanded:bg-muted sg:aria-expanded:text-foreground",
12
- destructive: "sg:bg-destructive/10 sg:hover:bg-destructive/20 sg:focus-visible:ring-destructive/20 sg:dark:focus-visible:ring-destructive/40 sg:dark:bg-destructive/20 sg:text-destructive sg:focus-visible:border-destructive/40 sg:dark:hover:bg-destructive/30",
13
- link: "sg:text-primary sg:underline-offset-4 sg:hover:underline"
14
- },
15
- size: {
16
- default: "sg:h-9 sg:gap-1.5 sg:px-3 sg:has-data-[icon=inline-end]:pe-2.5 sg:has-data-[icon=inline-start]:ps-2.5",
17
- xs: "sg:h-6 sg:gap-1 sg:px-2.5 sg:text-xs sg:has-data-[icon=inline-end]:pe-2 sg:has-data-[icon=inline-start]:ps-2 sg:[&_svg:not([class*=size-])]:size-3",
18
- sm: "sg:h-8 sg:gap-1 sg:px-3 sg:has-data-[icon=inline-end]:pe-2 sg:has-data-[icon=inline-start]:ps-2",
19
- lg: "sg:h-10 sg:gap-1.5 sg:px-4 sg:has-data-[icon=inline-end]:pe-3 sg:has-data-[icon=inline-start]:ps-3",
20
- icon: "sg:size-9",
21
- "icon-xs": "sg:size-6 sg:[&_svg:not([class*=size-])]:size-3",
22
- "icon-sm": "sg:size-8",
23
- "icon-lg": "sg:size-10"
24
- }
25
- };
26
- const buttonVariantsProps = cva(
27
- "sg:focus-visible:border-ring sg:focus-visible:ring-ring/50 sg:aria-invalid:ring-destructive/20 sg:dark:aria-invalid:ring-destructive/40 sg:aria-invalid:border-destructive sg:dark:aria-invalid:border-destructive/50 sg:rounded-4xl sg:border sg:border-transparent sg:bg-clip-padding sg:text-sm sg:font-medium sg:focus-visible:ring-[3px] sg:aria-invalid:ring-[3px] sg:[&_svg:not([class*=size-])]:size-4 sg:inline-flex sg:items-center sg:justify-center sg:whitespace-nowrap sg:transition-all sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:shrink-0 sg:[&_svg]:shrink-0 sg:outline-none sg:group/button sg:select-none",
28
- {
29
- variants: buttonVariants,
30
- defaultVariants: {
31
- variant: "default",
32
- size: "default"
33
- }
34
- }
35
- );
36
- function Button({
37
- className,
38
- variant = "default",
39
- size = "default",
40
- ...props
41
- }) {
42
- return /* @__PURE__ */ jsx(
43
- ButtonPrimitive,
44
- {
45
- "data-slot": "button",
46
- className: cn(buttonVariantsProps({ variant, size, className })),
47
- ...props
48
- }
49
- );
50
- }
51
- export {
52
- Button,
53
- buttonVariants,
54
- buttonVariantsProps
55
- };
56
- //# sourceMappingURL=button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/primitives/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"../../../utils\";\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nconst buttonVariants = {\n variant: {\n default: \"sg:bg-primary sg:text-primary-foreground sg:hover:bg-primary/80\",\n outline:\n \"sg:border-border sg:bg-input/30 sg:hover:bg-input/50 sg:hover:text-foreground sg:aria-expanded:bg-muted sg:aria-expanded:text-foreground\",\n secondary:\n \"sg:bg-secondary sg:text-secondary-foreground sg:hover:bg-secondary/80 sg:aria-expanded:bg-secondary sg:aria-expanded:text-secondary-foreground\",\n ghost:\n \"sg:hover:bg-muted sg:hover:text-foreground sg:dark:hover:bg-muted/50 sg:aria-expanded:bg-muted sg:aria-expanded:text-foreground\",\n destructive:\n \"sg:bg-destructive/10 sg:hover:bg-destructive/20 sg:focus-visible:ring-destructive/20 sg:dark:focus-visible:ring-destructive/40 sg:dark:bg-destructive/20 sg:text-destructive sg:focus-visible:border-destructive/40 sg:dark:hover:bg-destructive/30\",\n link: \"sg:text-primary sg:underline-offset-4 sg:hover:underline\",\n },\n size: {\n default:\n \"sg:h-9 sg:gap-1.5 sg:px-3 sg:has-data-[icon=inline-end]:pe-2.5 sg:has-data-[icon=inline-start]:ps-2.5\",\n xs: \"sg:h-6 sg:gap-1 sg:px-2.5 sg:text-xs sg:has-data-[icon=inline-end]:pe-2 sg:has-data-[icon=inline-start]:ps-2 sg:[&_svg:not([class*=size-])]:size-3\",\n sm: \"sg:h-8 sg:gap-1 sg:px-3 sg:has-data-[icon=inline-end]:pe-2 sg:has-data-[icon=inline-start]:ps-2\",\n lg: \"sg:h-10 sg:gap-1.5 sg:px-4 sg:has-data-[icon=inline-end]:pe-3 sg:has-data-[icon=inline-start]:ps-3\",\n icon: \"sg:size-9\",\n \"icon-xs\": \"sg:size-6 sg:[&_svg:not([class*=size-])]:size-3\",\n \"icon-sm\": \"sg:size-8\",\n \"icon-lg\": \"sg:size-10\",\n },\n};\n\nconst buttonVariantsProps = cva(\n \"sg:focus-visible:border-ring sg:focus-visible:ring-ring/50 sg:aria-invalid:ring-destructive/20 sg:dark:aria-invalid:ring-destructive/40 sg:aria-invalid:border-destructive sg:dark:aria-invalid:border-destructive/50 sg:rounded-4xl sg:border sg:border-transparent sg:bg-clip-padding sg:text-sm sg:font-medium sg:focus-visible:ring-[3px] sg:aria-invalid:ring-[3px] sg:[&_svg:not([class*=size-])]:size-4 sg:inline-flex sg:items-center sg:justify-center sg:whitespace-nowrap sg:transition-all sg:disabled:pointer-events-none sg:disabled:opacity-50 sg:[&_svg]:pointer-events-none sg:shrink-0 sg:[&_svg]:shrink-0 sg:outline-none sg:group/button sg:select-none\",\n {\n variants: buttonVariants,\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariantsProps>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariantsProps({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariantsProps, buttonVariants };\n"],"mappings":";AAkDI;AAhDJ,SAAS,UAAU;AACnB,SAAS,UAAU,uBAAuB;AAC1C,SAAS,WAA8B;AAEvC,MAAM,iBAAiB;AAAA,EACrB,SAAS;AAAA,IACP,SAAS;AAAA,IACT,SACE;AAAA,IACF,WACE;AAAA,IACF,OACE;AAAA,IACF,aACE;AAAA,IACF,MAAM;AAAA,EACR;AAAA,EACA,MAAM;AAAA,IACJ,SACE;AAAA,IACF,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,EACb;AACF;AAEA,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,IACV,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACL,GAAqE;AACnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,oBAAoB,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MAC9D,GAAG;AAAA;AAAA,EACN;AAEJ;","names":[]}
@@ -1,34 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- import { Button } from './button.js';
3
- import 'react/jsx-runtime';
4
- import 'class-variance-authority/types';
5
- import '@base-ui/react/button';
6
- import 'class-variance-authority';
7
-
8
- declare const meta: {
9
- component: typeof Button;
10
- title: string;
11
- argTypes: {
12
- variant: {
13
- control: {
14
- type: "select";
15
- };
16
- options: string[];
17
- };
18
- size: {
19
- options: string[];
20
- };
21
- };
22
- };
23
-
24
- type Story = StoryObj<typeof meta>;
25
- declare const primary: Story;
26
- declare const secondary: Story;
27
- declare const destructive: Story;
28
- declare const outline: Story;
29
- declare const ghost: Story;
30
- declare const link: Story;
31
- declare const sm: Story;
32
- declare const lg: Story;
33
-
34
- export { meta as default, destructive, ghost, lg, link, outline, primary, secondary, sm };
@@ -1,74 +0,0 @@
1
- import { Button, buttonVariants } from "./button";
2
- const meta = {
3
- component: Button,
4
- title: "Button",
5
- argTypes: {
6
- variant: {
7
- control: { type: "select" },
8
- options: Object.keys(buttonVariants.variant)
9
- },
10
- size: {
11
- options: Object.keys(buttonVariants.size)
12
- }
13
- }
14
- };
15
- var button_stories_default = meta;
16
- const primary = {
17
- args: {
18
- children: "primary"
19
- }
20
- };
21
- const secondary = {
22
- args: {
23
- children: "secondary",
24
- variant: "secondary"
25
- }
26
- };
27
- const destructive = {
28
- args: {
29
- children: "destructive",
30
- variant: "destructive"
31
- }
32
- };
33
- const outline = {
34
- args: {
35
- children: "outline",
36
- variant: "outline"
37
- }
38
- };
39
- const ghost = {
40
- args: {
41
- children: "ghost",
42
- variant: "ghost"
43
- }
44
- };
45
- const link = {
46
- args: {
47
- children: "link",
48
- variant: "link"
49
- }
50
- };
51
- const sm = {
52
- args: {
53
- children: "sm",
54
- size: "sm"
55
- }
56
- };
57
- const lg = {
58
- args: {
59
- children: "lg",
60
- size: "lg"
61
- }
62
- };
63
- export {
64
- button_stories_default as default,
65
- destructive,
66
- ghost,
67
- lg,
68
- link,
69
- outline,
70
- primary,
71
- secondary,
72
- sm
73
- };
74
- //# sourceMappingURL=button.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/primitives/button/button.stories.ts"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\r\nimport { Button, buttonVariants } from \"./button\";\r\n\r\nconst meta = {\r\n component: Button,\r\n title: \"Button\",\r\n argTypes: {\r\n variant: {\r\n control: { type: \"select\" },\r\n options: Object.keys(buttonVariants.variant),\r\n },\r\n size: {\r\n options: Object.keys(buttonVariants.size),\r\n },\r\n },\r\n} satisfies Meta<typeof Button>;\r\nexport default meta;\r\n\r\ntype Story = StoryObj<typeof meta>;\r\n\r\nexport const primary: Story = {\r\n args: {\r\n children: \"primary\",\r\n },\r\n};\r\n\r\nexport const secondary: Story = {\r\n args: {\r\n children: \"secondary\",\r\n variant: \"secondary\",\r\n },\r\n};\r\n\r\nexport const destructive: Story = {\r\n args: {\r\n children: \"destructive\",\r\n variant: \"destructive\",\r\n },\r\n};\r\n\r\nexport const outline: Story = {\r\n args: {\r\n children: \"outline\",\r\n variant: \"outline\",\r\n },\r\n};\r\n\r\nexport const ghost: Story = {\r\n args: {\r\n children: \"ghost\",\r\n variant: \"ghost\",\r\n },\r\n};\r\n\r\nexport const link: Story = {\r\n args: {\r\n children: \"link\",\r\n variant: \"link\",\r\n },\r\n};\r\n\r\nexport const sm: Story = {\r\n args: {\r\n children: \"sm\",\r\n size: \"sm\",\r\n },\r\n};\r\n\r\nexport const lg: Story = {\r\n args: {\r\n children: \"lg\",\r\n size: \"lg\",\r\n },\r\n};\r\n\r\n// export const icon: Story = {\r\n// args: { iconStart: \"PcCase\", size: \"icon\" },\r\n// };\r\n\r\n// export const icons: Story = {\r\n// args: {\r\n// children: \"icons\",\r\n// iconStart: \"Loader\",\r\n// iconStartAnimate: true,\r\n// iconEnd: \"ShieldCheck\",\r\n// },\r\n// };\r\n"],"mappings":"AACA,SAAS,QAAQ,sBAAsB;AAEvC,MAAM,OAAO;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS,EAAE,MAAM,SAAS;AAAA,MAC1B,SAAS,OAAO,KAAK,eAAe,OAAO;AAAA,IAC7C;AAAA,IACA,MAAM;AAAA,MACJ,SAAS,OAAO,KAAK,eAAe,IAAI;AAAA,IAC1C;AAAA,EACF;AACF;AACA,IAAO,yBAAQ;AAIR,MAAM,UAAiB;AAAA,EAC5B,MAAM;AAAA,IACJ,UAAU;AAAA,EACZ;AACF;AAEO,MAAM,YAAmB;AAAA,EAC9B,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,cAAqB;AAAA,EAChC,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,UAAiB;AAAA,EAC5B,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,QAAe;AAAA,EAC1B,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,OAAc;AAAA,EACzB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,MAAM,KAAY;AAAA,EACvB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;AAEO,MAAM,KAAY;AAAA,EACvB,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AACF;","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=button_with_icon_variant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,27 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- import { Icon } from './icon.js';
3
- import 'react/jsx-runtime';
4
- import 'class-variance-authority/types';
5
- import 'react';
6
- import 'class-variance-authority';
7
- import 'lucide-react';
8
-
9
- declare const meta: {
10
- component: typeof Icon;
11
- title: string;
12
- argTypes: {
13
- size: {
14
- options: string[];
15
- };
16
- color: {
17
- options: string[];
18
- };
19
- };
20
- };
21
-
22
- type Story = StoryObj<typeof meta>;
23
- declare const small: Story;
24
- declare const medium: Story;
25
- declare const large_spinner: Story;
26
-
27
- export { meta as default, large_spinner, medium, small };
@@ -1,30 +0,0 @@
1
- import { Icon, iconVariants } from "..";
2
- const meta = {
3
- component: Icon,
4
- title: "Icon",
5
- argTypes: {
6
- size: {
7
- options: Object.keys(iconVariants.size)
8
- },
9
- color: {
10
- options: Object.keys(iconVariants.color)
11
- }
12
- }
13
- };
14
- var icon_stories_default = meta;
15
- const small = {
16
- args: { icon: "Loader", size: "sm" }
17
- };
18
- const medium = {
19
- args: { icon: "Loader", size: "md" }
20
- };
21
- const large_spinner = {
22
- args: { icon: "Loader", size: "lg", color: "primary", spin: true }
23
- };
24
- export {
25
- icon_stories_default as default,
26
- large_spinner,
27
- medium,
28
- small
29
- };
30
- //# sourceMappingURL=icon.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/primitives/icon/icon.stories.ts"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Icon, iconVariants } from \"..\";\n\nconst meta = {\n component: Icon,\n title: \"Icon\",\n argTypes: {\n size: {\n options: Object.keys(iconVariants.size),\n },\n color: {\n options: Object.keys(iconVariants.color),\n },\n },\n} satisfies Meta<typeof Icon>;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const small: Story = {\n args: { icon: \"Loader\", size: \"sm\" },\n};\n\nexport const medium: Story = {\n args: { icon: \"Loader\", size: \"md\" },\n};\n\nexport const large_spinner: Story = {\n args: { icon: \"Loader\", size: \"lg\", color: \"primary\", spin: true },\n};\n"],"mappings":"AACA,SAAS,MAAM,oBAAoB;AAEnC,MAAM,OAAO;AAAA,EACX,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,SAAS,OAAO,KAAK,aAAa,IAAI;AAAA,IACxC;AAAA,IACA,OAAO;AAAA,MACL,SAAS,OAAO,KAAK,aAAa,KAAK;AAAA,IACzC;AAAA,EACF;AACF;AACA,IAAO,uBAAQ;AAIR,MAAM,QAAe;AAAA,EAC1B,MAAM,EAAE,MAAM,UAAU,MAAM,KAAK;AACrC;AAEO,MAAM,SAAgB;AAAA,EAC3B,MAAM,EAAE,MAAM,UAAU,MAAM,KAAK;AACrC;AAEO,MAAM,gBAAuB;AAAA,EAClC,MAAM,EAAE,MAAM,UAAU,MAAM,MAAM,OAAO,WAAW,MAAM,KAAK;AACnE;","names":[]}
@@ -1,32 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- import { Layout } from './layout.js';
3
- import 'react/jsx-runtime';
4
- import 'class-variance-authority/types';
5
- import 'react';
6
- import 'class-variance-authority';
7
-
8
- declare const meta: {
9
- component: typeof Layout;
10
- title: string;
11
- argTypes: {
12
- bgColor: {
13
- options: string[];
14
- };
15
- type: {
16
- options: string[];
17
- };
18
- cols: {
19
- options: string[];
20
- };
21
- };
22
- };
23
-
24
- type Story = StoryObj<typeof meta>;
25
- declare const Empty: Story;
26
- declare const Layout_100: Story;
27
- declare const Layout_Wide_100: Story;
28
- declare const Layout_Full_100: Story;
29
- declare const Layout_66_33: Story;
30
- declare const Layout_50_50: Story;
31
-
32
- export { Empty, Layout_100, Layout_50_50, Layout_66_33, Layout_Full_100, Layout_Wide_100, meta as default };