@rkosafo/cai.components 0.0.1 → 0.0.3

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 (255) hide show
  1. package/dist/baseEditor/index.svelte +32 -0
  2. package/dist/baseEditor/index.svelte.d.ts +18 -0
  3. package/dist/builders/filters/FilterBuilder.svelte +638 -0
  4. package/dist/builders/filters/FilterBuilder.svelte.d.ts +4 -0
  5. package/dist/builders/filters/index.d.ts +1 -0
  6. package/dist/builders/filters/index.js +1 -0
  7. package/dist/forms/FormCheckbox/FormCheckbox.svelte +53 -0
  8. package/dist/forms/FormCheckbox/FormCheckbox.svelte.d.ts +4 -0
  9. package/dist/forms/FormCheckbox/index.d.ts +1 -0
  10. package/dist/forms/FormCheckbox/index.js +1 -0
  11. package/dist/forms/FormDatepicker/FormDatepicker.svelte +159 -0
  12. package/dist/forms/FormDatepicker/FormDatepicker.svelte.d.ts +13 -0
  13. package/dist/forms/FormDatepicker/index.d.ts +1 -0
  14. package/dist/forms/FormDatepicker/index.js +1 -0
  15. package/dist/forms/FormInput/FormInput.svelte +87 -0
  16. package/dist/forms/FormInput/FormInput.svelte.d.ts +4 -0
  17. package/dist/forms/FormInput/index.d.ts +1 -0
  18. package/dist/forms/FormInput/index.js +1 -0
  19. package/dist/forms/FormRadio/FormRadio.svelte +53 -0
  20. package/dist/forms/FormRadio/FormRadio.svelte.d.ts +4 -0
  21. package/dist/forms/FormRadio/index.d.ts +1 -0
  22. package/dist/forms/FormRadio/index.js +1 -0
  23. package/dist/forms/FormSelect/FormSelect.svelte +86 -0
  24. package/dist/forms/FormSelect/FormSelect.svelte.d.ts +4 -0
  25. package/dist/forms/FormSelect/index.d.ts +1 -0
  26. package/dist/forms/FormSelect/index.js +1 -0
  27. package/dist/forms/FormTextarea/FormTextarea.svelte +77 -0
  28. package/dist/forms/FormTextarea/FormTextarea.svelte.d.ts +4 -0
  29. package/dist/forms/FormTextarea/index.d.ts +1 -0
  30. package/dist/forms/FormTextarea/index.js +1 -0
  31. package/dist/forms/checkbox/Checkbox.svelte +82 -0
  32. package/dist/forms/checkbox/Checkbox.svelte.d.ts +4 -0
  33. package/dist/forms/checkbox/CheckboxButton.svelte +92 -0
  34. package/dist/forms/checkbox/CheckboxButton.svelte.d.ts +18 -0
  35. package/dist/forms/checkbox/index.d.ts +3 -0
  36. package/dist/forms/checkbox/index.js +3 -0
  37. package/dist/forms/checkbox/theme.d.ts +317 -0
  38. package/dist/forms/checkbox/theme.js +113 -0
  39. package/dist/forms/datepicker/Datepicker.svelte +706 -0
  40. package/dist/forms/datepicker/Datepicker.svelte.d.ts +41 -0
  41. package/dist/forms/datepicker/index.d.ts +2 -0
  42. package/dist/forms/datepicker/index.js +2 -0
  43. package/dist/forms/datepicker/theme.d.ts +385 -0
  44. package/dist/forms/datepicker/theme.js +56 -0
  45. package/dist/forms/form/Form.svelte +69 -0
  46. package/dist/forms/form/Form.svelte.d.ts +6 -0
  47. package/dist/forms/form/index.d.ts +2 -0
  48. package/dist/forms/form/index.js +2 -0
  49. package/dist/forms/input/Input.svelte +363 -0
  50. package/dist/forms/input/Input.svelte.d.ts +4 -0
  51. package/dist/forms/input/index.d.ts +4 -0
  52. package/dist/forms/input/index.js +5 -0
  53. package/dist/forms/input/theme.d.ts +301 -0
  54. package/dist/forms/input/theme.js +100 -0
  55. package/dist/forms/label/Label.svelte +38 -0
  56. package/dist/forms/label/Label.svelte.d.ts +15 -0
  57. package/dist/forms/label/index.d.ts +2 -0
  58. package/dist/forms/label/index.js +2 -0
  59. package/dist/forms/label/theme.d.ts +75 -0
  60. package/dist/forms/label/theme.js +29 -0
  61. package/dist/forms/radio/Radio.svelte +48 -0
  62. package/dist/forms/radio/Radio.svelte.d.ts +25 -0
  63. package/dist/forms/radio/RadioButton.svelte +22 -0
  64. package/dist/forms/radio/RadioButton.svelte.d.ts +25 -0
  65. package/dist/forms/radio/index.d.ts +3 -0
  66. package/dist/forms/radio/index.js +3 -0
  67. package/dist/forms/radio/theme.d.ts +290 -0
  68. package/dist/forms/radio/theme.js +95 -0
  69. package/dist/forms/select/Select.svelte +50 -0
  70. package/dist/forms/select/Select.svelte.d.ts +4 -0
  71. package/dist/forms/select/index.d.ts +1 -0
  72. package/dist/forms/select/index.js +1 -0
  73. package/dist/forms/textarea/Textarea.svelte +165 -0
  74. package/dist/forms/textarea/Textarea.svelte.d.ts +4 -0
  75. package/dist/forms/textarea/index.d.ts +2 -0
  76. package/dist/forms/textarea/index.js +2 -0
  77. package/dist/forms/textarea/theme.d.ts +100 -0
  78. package/dist/forms/textarea/theme.js +35 -0
  79. package/dist/index.d.ts +42 -2
  80. package/dist/index.js +42 -2
  81. package/dist/layout/TF/Content/Content.svelte +28 -0
  82. package/dist/layout/TF/Content/Content.svelte.d.ts +8 -0
  83. package/dist/layout/TF/Content/index.d.ts +1 -0
  84. package/dist/layout/TF/Content/index.js +1 -0
  85. package/dist/layout/TF/Header/Header.svelte +159 -0
  86. package/dist/layout/TF/Header/Header.svelte.d.ts +21 -0
  87. package/dist/layout/TF/Header/index.d.ts +1 -0
  88. package/dist/layout/TF/Header/index.js +1 -0
  89. package/dist/layout/TF/Sidebar/Sidebar.svelte +74 -0
  90. package/dist/layout/TF/Sidebar/Sidebar.svelte.d.ts +23 -0
  91. package/dist/layout/TF/Sidebar/index.d.ts +1 -0
  92. package/dist/layout/TF/Sidebar/index.js +1 -0
  93. package/dist/layout/TF/Wrapper/Wrapper.svelte +17 -0
  94. package/dist/layout/TF/Wrapper/Wrapper.svelte.d.ts +8 -0
  95. package/dist/layout/TF/Wrapper/index.d.ts +1 -0
  96. package/dist/layout/TF/Wrapper/index.js +1 -0
  97. package/dist/layout/TF/index.d.ts +5 -0
  98. package/dist/layout/TF/index.js +5 -0
  99. package/dist/themes/ThemeProvider.svelte +20 -0
  100. package/dist/themes/ThemeProvider.svelte.d.ts +9 -0
  101. package/dist/themes/index.d.ts +7 -0
  102. package/dist/themes/index.js +1 -0
  103. package/dist/themes/themeUtils.d.ts +24 -0
  104. package/dist/themes/themeUtils.js +74 -0
  105. package/dist/themes/themes.d.ts +18 -0
  106. package/dist/themes/themes.js +18 -0
  107. package/dist/types/index.d.ts +755 -0
  108. package/dist/types/index.js +1 -0
  109. package/dist/typography/heading/Heading.svelte +35 -0
  110. package/dist/typography/heading/Heading.svelte.d.ts +10 -0
  111. package/dist/typography/heading/index.d.ts +2 -0
  112. package/dist/typography/heading/index.js +2 -0
  113. package/dist/typography/heading/theme.d.ts +30 -0
  114. package/dist/typography/heading/theme.js +17 -0
  115. package/dist/ui/accordion/Accordion.svelte +49 -0
  116. package/dist/ui/accordion/Accordion.svelte.d.ts +4 -0
  117. package/dist/ui/accordion/AccordionItem.svelte +173 -0
  118. package/dist/ui/accordion/AccordionItem.svelte.d.ts +4 -0
  119. package/dist/ui/accordion/index.d.ts +3 -0
  120. package/dist/ui/accordion/index.js +3 -0
  121. package/dist/ui/accordion/theme.d.ts +96 -0
  122. package/dist/ui/accordion/theme.js +59 -0
  123. package/dist/ui/alert/Alert.svelte +83 -0
  124. package/dist/ui/alert/Alert.svelte.d.ts +5 -0
  125. package/dist/ui/alert/index.d.ts +2 -0
  126. package/dist/ui/alert/index.js +2 -0
  127. package/dist/ui/alert/theme.d.ts +108 -0
  128. package/dist/ui/alert/theme.js +149 -0
  129. package/dist/ui/alertDialog/AlertDialog.svelte +40 -0
  130. package/dist/ui/alertDialog/AlertDialog.svelte.d.ts +4 -0
  131. package/dist/ui/alertDialog/index.d.ts +1 -0
  132. package/dist/ui/alertDialog/index.js +1 -0
  133. package/dist/ui/avatar/Avatar.svelte +77 -0
  134. package/dist/ui/avatar/Avatar.svelte.d.ts +4 -0
  135. package/dist/ui/avatar/index.d.ts +2 -0
  136. package/dist/ui/avatar/index.js +2 -0
  137. package/dist/ui/avatar/theme.d.ts +63 -0
  138. package/dist/ui/avatar/theme.js +31 -0
  139. package/dist/ui/buttons/Button.svelte +102 -0
  140. package/dist/ui/buttons/Button.svelte.d.ts +4 -0
  141. package/dist/ui/buttons/GradientButton.svelte +59 -0
  142. package/dist/ui/buttons/GradientButton.svelte.d.ts +4 -0
  143. package/dist/ui/buttons/index.d.ts +3 -0
  144. package/dist/ui/buttons/index.js +3 -0
  145. package/dist/ui/buttons/theme.d.ts +704 -0
  146. package/dist/ui/buttons/theme.js +332 -0
  147. package/dist/ui/datatable/Datatable.svelte +516 -0
  148. package/dist/ui/datatable/Datatable.svelte.d.ts +5 -0
  149. package/dist/ui/datatable/index.d.ts +2 -0
  150. package/dist/ui/datatable/index.js +2 -0
  151. package/dist/ui/drawer/Drawer.svelte +280 -0
  152. package/dist/ui/drawer/Drawer.svelte.d.ts +37 -0
  153. package/dist/ui/drawer/index.d.ts +2 -0
  154. package/dist/ui/drawer/index.js +2 -0
  155. package/dist/ui/drawer/theme.d.ts +211 -0
  156. package/dist/ui/drawer/theme.js +46 -0
  157. package/dist/ui/dropdown/Dropdown.svelte +36 -0
  158. package/dist/ui/dropdown/Dropdown.svelte.d.ts +4 -0
  159. package/dist/ui/dropdown/DropdownDivider.svelte +11 -0
  160. package/dist/ui/dropdown/DropdownDivider.svelte.d.ts +4 -0
  161. package/dist/ui/dropdown/DropdownGroup.svelte +14 -0
  162. package/dist/ui/dropdown/DropdownGroup.svelte.d.ts +4 -0
  163. package/dist/ui/dropdown/DropdownHeader.svelte +14 -0
  164. package/dist/ui/dropdown/DropdownHeader.svelte.d.ts +4 -0
  165. package/dist/ui/dropdown/DropdownItem.svelte +52 -0
  166. package/dist/ui/dropdown/DropdownItem.svelte.d.ts +4 -0
  167. package/dist/ui/dropdown/index.d.ts +6 -0
  168. package/dist/ui/dropdown/index.js +6 -0
  169. package/dist/ui/dropdown/theme.d.ts +55 -0
  170. package/dist/ui/dropdown/theme.js +20 -0
  171. package/dist/ui/footer/Footer.svelte +15 -0
  172. package/dist/ui/footer/Footer.svelte.d.ts +4 -0
  173. package/dist/ui/footer/FooterBrand.svelte +37 -0
  174. package/dist/ui/footer/FooterBrand.svelte.d.ts +4 -0
  175. package/dist/ui/footer/FooterCopyright.svelte +45 -0
  176. package/dist/ui/footer/FooterCopyright.svelte.d.ts +4 -0
  177. package/dist/ui/footer/FooterIcon.svelte +22 -0
  178. package/dist/ui/footer/FooterIcon.svelte.d.ts +4 -0
  179. package/dist/ui/footer/FooterLink.svelte +33 -0
  180. package/dist/ui/footer/FooterLink.svelte.d.ts +4 -0
  181. package/dist/ui/footer/FooterLinkGroup.svelte +13 -0
  182. package/dist/ui/footer/FooterLinkGroup.svelte.d.ts +4 -0
  183. package/dist/ui/footer/index.d.ts +7 -0
  184. package/dist/ui/footer/index.js +7 -0
  185. package/dist/ui/footer/theme.d.ts +137 -0
  186. package/dist/ui/footer/theme.js +39 -0
  187. package/dist/ui/indicator/Indicator.svelte +42 -0
  188. package/dist/ui/indicator/Indicator.svelte.d.ts +4 -0
  189. package/dist/ui/indicator/index.d.ts +2 -0
  190. package/dist/ui/indicator/index.js +2 -0
  191. package/dist/ui/indicator/theme.d.ts +177 -0
  192. package/dist/ui/indicator/theme.js +114 -0
  193. package/dist/ui/modal/Modal.svelte +265 -0
  194. package/dist/ui/modal/Modal.svelte.d.ts +38 -0
  195. package/dist/ui/modal/index.d.ts +2 -0
  196. package/dist/ui/modal/index.js +2 -0
  197. package/dist/ui/modal/theme.d.ts +190 -0
  198. package/dist/ui/modal/theme.js +41 -0
  199. package/dist/ui/notificationList/NotificationList.svelte +123 -0
  200. package/dist/ui/notificationList/NotificationList.svelte.d.ts +25 -0
  201. package/dist/ui/notificationList/index.d.ts +1 -0
  202. package/dist/ui/notificationList/index.js +1 -0
  203. package/dist/ui/pageLoader/PageLoader.svelte +10 -0
  204. package/dist/ui/pageLoader/PageLoader.svelte.d.ts +4 -0
  205. package/dist/ui/pageLoader/index.d.ts +1 -0
  206. package/dist/ui/pageLoader/index.js +1 -0
  207. package/dist/ui/paginate/Paginate.svelte +96 -0
  208. package/dist/ui/paginate/Paginate.svelte.d.ts +4 -0
  209. package/dist/ui/paginate/index.d.ts +1 -0
  210. package/dist/ui/paginate/index.js +1 -0
  211. package/dist/ui/tab/Tab.svelte +65 -0
  212. package/dist/ui/tab/Tab.svelte.d.ts +4 -0
  213. package/dist/ui/tab/index.d.ts +2 -0
  214. package/dist/ui/tab/index.js +2 -0
  215. package/dist/ui/tab/theme.d.ts +135 -0
  216. package/dist/ui/tab/theme.js +83 -0
  217. package/dist/ui/table/Table.svelte +385 -0
  218. package/dist/ui/table/Table.svelte.d.ts +4 -0
  219. package/dist/ui/table/index.d.ts +1 -0
  220. package/dist/ui/table/index.js +1 -0
  221. package/dist/ui/tableLoader/TableLoader.svelte +24 -0
  222. package/dist/ui/tableLoader/TableLoader.svelte.d.ts +13 -0
  223. package/dist/ui/tableLoader/index.d.ts +1 -0
  224. package/dist/ui/tableLoader/index.js +1 -0
  225. package/dist/ui/toolbar/Toolbar.svelte +59 -0
  226. package/dist/ui/toolbar/Toolbar.svelte.d.ts +17 -0
  227. package/dist/ui/toolbar/ToolbarButton.svelte +56 -0
  228. package/dist/ui/toolbar/ToolbarButton.svelte.d.ts +17 -0
  229. package/dist/ui/toolbar/ToolbarGroup.svelte +43 -0
  230. package/dist/ui/toolbar/ToolbarGroup.svelte.d.ts +16 -0
  231. package/dist/ui/toolbar/index.d.ts +4 -0
  232. package/dist/ui/toolbar/index.js +4 -0
  233. package/dist/ui/toolbar/theme.d.ts +320 -0
  234. package/dist/ui/toolbar/theme.js +155 -0
  235. package/dist/utils/Popper.svelte +257 -0
  236. package/dist/utils/Popper.svelte.d.ts +4 -0
  237. package/dist/utils/action.d.ts +16 -0
  238. package/dist/utils/action.js +107 -0
  239. package/dist/utils/closeButton/CloseButton.svelte +88 -0
  240. package/dist/utils/closeButton/CloseButton.svelte.d.ts +12 -0
  241. package/dist/utils/closeButton/index.d.ts +2 -0
  242. package/dist/utils/closeButton/index.js +2 -0
  243. package/dist/utils/closeButton/theme.d.ts +100 -0
  244. package/dist/utils/closeButton/theme.js +69 -0
  245. package/dist/utils/dismissable.d.ts +9 -0
  246. package/dist/utils/dismissable.js +16 -0
  247. package/dist/utils/index.d.ts +8 -0
  248. package/dist/utils/index.js +35 -0
  249. package/dist/utils/paginate.svelte.d.ts +22 -0
  250. package/dist/utils/paginate.svelte.js +167 -0
  251. package/dist/utils/singleSelection.svelte.d.ts +15 -0
  252. package/dist/utils/singleSelection.svelte.js +49 -0
  253. package/dist/utils/svelte-legos.d.ts +7 -0
  254. package/dist/utils/svelte-legos.js +14 -0
  255. package/package.json +24 -2
@@ -0,0 +1,108 @@
1
+ import { type VariantProps } from "tailwind-variants";
2
+ export type AlertVariants = VariantProps<typeof alert>;
3
+ export declare const alert: import("tailwind-variants").TVReturnType<{
4
+ color: {
5
+ primary: string;
6
+ secondary: string;
7
+ gray: string;
8
+ red: string;
9
+ orange: string;
10
+ amber: string;
11
+ yellow: string;
12
+ lime: string;
13
+ green: string;
14
+ emerald: string;
15
+ teal: string;
16
+ cyan: string;
17
+ sky: string;
18
+ blue: string;
19
+ indigo: string;
20
+ violet: string;
21
+ purple: string;
22
+ fuchsia: string;
23
+ pink: string;
24
+ rose: string;
25
+ };
26
+ rounded: {
27
+ true: string;
28
+ };
29
+ border: {
30
+ true: string;
31
+ };
32
+ icon: {
33
+ true: string;
34
+ };
35
+ dismissable: {
36
+ true: string;
37
+ };
38
+ }, undefined, "p-4 gap-3 text-sm", {
39
+ color: {
40
+ primary: string;
41
+ secondary: string;
42
+ gray: string;
43
+ red: string;
44
+ orange: string;
45
+ amber: string;
46
+ yellow: string;
47
+ lime: string;
48
+ green: string;
49
+ emerald: string;
50
+ teal: string;
51
+ cyan: string;
52
+ sky: string;
53
+ blue: string;
54
+ indigo: string;
55
+ violet: string;
56
+ purple: string;
57
+ fuchsia: string;
58
+ pink: string;
59
+ rose: string;
60
+ };
61
+ rounded: {
62
+ true: string;
63
+ };
64
+ border: {
65
+ true: string;
66
+ };
67
+ icon: {
68
+ true: string;
69
+ };
70
+ dismissable: {
71
+ true: string;
72
+ };
73
+ }, undefined, import("tailwind-variants").TVReturnType<{
74
+ color: {
75
+ primary: string;
76
+ secondary: string;
77
+ gray: string;
78
+ red: string;
79
+ orange: string;
80
+ amber: string;
81
+ yellow: string;
82
+ lime: string;
83
+ green: string;
84
+ emerald: string;
85
+ teal: string;
86
+ cyan: string;
87
+ sky: string;
88
+ blue: string;
89
+ indigo: string;
90
+ violet: string;
91
+ purple: string;
92
+ fuchsia: string;
93
+ pink: string;
94
+ rose: string;
95
+ };
96
+ rounded: {
97
+ true: string;
98
+ };
99
+ border: {
100
+ true: string;
101
+ };
102
+ icon: {
103
+ true: string;
104
+ };
105
+ dismissable: {
106
+ true: string;
107
+ };
108
+ }, undefined, "p-4 gap-3 text-sm", unknown, unknown, undefined>>;
@@ -0,0 +1,149 @@
1
+ import { tv } from "tailwind-variants";
2
+ export const alert = tv({
3
+ base: "p-4 gap-3 text-sm",
4
+ variants: {
5
+ color: {
6
+ // primary, secondary, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose
7
+ primary: "bg-primary-50 dark:bg-gray-800 text-primary-800 dark:text-primary-400",
8
+ secondary: "bg-secondary-50 dark:bg-secondary-800 text-secondary-800 dark:text-secondary-400",
9
+ gray: "bg-gray-100 text-gray-500 focus:ring-gray-400 dark:bg-gray-700 dark:text-gray-300",
10
+ red: "bg-red-100 text-red-500 focus:ring-red-400 dark:bg-red-200 dark:text-red-600",
11
+ orange: "bg-orange-100 text-orange-500 focus:ring-orange-400 dark:bg-orange-200 dark:text-orange-600",
12
+ amber: "bg-amber-100 text-amber-500 focus:ring-amber-400 dark:bg-amber-200 dark:text-amber-600",
13
+ yellow: "bg-yellow-100 text-yellow-500 focus:ring-yellow-400 dark:bg-yellow-200 dark:text-yellow-600",
14
+ lime: "bg-lime-100 text-lime-500 focus:ring-lime-400 dark:bg-lime-200 dark:text-lime-600",
15
+ green: "bg-green-100 text-green-500 focus:ring-green-400 dark:bg-green-200 dark:text-green-600",
16
+ emerald: "bg-emerald-100 text-emerald-500 focus:ring-emerald-400 dark:bg-emerald-200 dark:text-emerald-600",
17
+ teal: "bg-teal-100 text-teal-500 focus:ring-teal-400 dark:bg-teal-200 dark:text-teal-600",
18
+ cyan: "bg-cyan-100 text-cyan-500 focus:ring-cyan-400 dark:bg-cyan-200 dark:text-cyan-600",
19
+ sky: "bg-sky-100 text-sky-500 focus:ring-sky-400 dark:bg-sky-200 dark:text-sky-600",
20
+ blue: "bg-blue-100 text-blue-500 focus:ring-blue-400 dark:bg-blue-200 dark:text-blue-600",
21
+ indigo: "bg-indigo-100 text-indigo-500 focus:ring-indigo-400 dark:bg-indigo-200 dark:text-indigo-600",
22
+ violet: "bg-violet-100 text-violet-500 focus:ring-violet-400 dark:bg-violet-200 dark:text-violet-600",
23
+ purple: "bg-purple-100 text-purple-500 focus:ring-purple-400 dark:bg-purple-200 dark:text-purple-600",
24
+ fuchsia: "bg-fuchsia-100 text-fuchsia-500 focus:ring-fuchsia-400 dark:bg-fuchsia-200 dark:text-fuchsia-600",
25
+ pink: "bg-pink-100 text-pink-500 focus:ring-pink-400 dark:bg-pink-200 dark:text-pink-600",
26
+ rose: "bg-rose-100 text-rose-500 focus:ring-rose-400 dark:bg-rose-200 dark:text-rose-600"
27
+ },
28
+ rounded: {
29
+ true: "rounded-lg"
30
+ },
31
+ border: {
32
+ true: "border"
33
+ },
34
+ icon: {
35
+ true: "flex items-center"
36
+ },
37
+ dismissable: {
38
+ true: "flex items-center"
39
+ }
40
+ },
41
+ compoundVariants: [
42
+ // primary, secondary, gray, red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose
43
+ {
44
+ border: true,
45
+ color: "primary",
46
+ class: "border-primary-500 dark:border-primary-200 divide-primary-500 dark:divide-primary-200"
47
+ },
48
+ {
49
+ border: true,
50
+ color: "secondary",
51
+ class: "border-secondary-500 dark:border-secondary-200 divide-secondary-500 dark:divide-secondary-200"
52
+ },
53
+ {
54
+ border: true,
55
+ color: "gray",
56
+ class: "border-gray-300 dark:border-gray-800 divide-gray-300 dark:divide-gray-800"
57
+ },
58
+ {
59
+ border: true,
60
+ color: "red",
61
+ class: "border-red-300 dark:border-red-800 divide-red-300 dark:divide-red-800"
62
+ },
63
+ {
64
+ border: true,
65
+ color: "orange",
66
+ class: "border-orange-300 dark:border-orange-800 divide-orange-300 dark:divide-orange-800"
67
+ },
68
+ {
69
+ border: true,
70
+ color: "amber",
71
+ class: "border-amber-300 dark:border-amber-800 divide-amber-300 dark:divide-amber-800"
72
+ },
73
+ {
74
+ border: true,
75
+ color: "yellow",
76
+ class: "border-yellow-300 dark:border-yellow-800 divide-yellow-300 dark:divide-yellow-800"
77
+ },
78
+ {
79
+ border: true,
80
+ color: "lime",
81
+ class: "border-lime-300 dark:border-lime-800 divide-lime-300 dark:divide-lime-800"
82
+ },
83
+ {
84
+ border: true,
85
+ color: "green",
86
+ class: "border-green-300 dark:border-green-800 divide-green-300 dark:divide-green-800"
87
+ },
88
+ {
89
+ border: true,
90
+ color: "emerald",
91
+ class: "border-emerald-300 dark:border-emerald-800 divide-emerald-300 dark:divide-emerald-800"
92
+ },
93
+ {
94
+ border: true,
95
+ color: "teal",
96
+ class: "border-teal-300 dark:border-teal-800 divide-teal-300 dark:divide-teal-800"
97
+ },
98
+ {
99
+ border: true,
100
+ color: "cyan",
101
+ class: "border-cyan-300 dark:border-cyan-800 divide-cyan-300 dark:divide-cyan-800"
102
+ },
103
+ {
104
+ border: true,
105
+ color: "sky",
106
+ class: "border-sky-300 dark:border-sky-800 divide-sky-300 dark:divide-sky-800"
107
+ },
108
+ {
109
+ border: true,
110
+ color: "blue",
111
+ class: "border-blue-300 dark:border-blue-800 divide-blue-300 dark:divide-blue-800"
112
+ },
113
+ {
114
+ border: true,
115
+ color: "indigo",
116
+ class: "border-indigo-300 dark:border-indigo-800 divide-indigo-300 dark:divide-indigo-800"
117
+ },
118
+ // violet, purple, fuchsia, pink, rose
119
+ {
120
+ border: true,
121
+ color: "violet",
122
+ class: "border-violet-300 dark:border-violet-800 divide-violet-300 dark:divide-violet-800"
123
+ },
124
+ {
125
+ border: true,
126
+ color: "purple",
127
+ class: "border-purple-300 dark:border-purple-800 divide-purple-300 dark:divide-purple-800"
128
+ },
129
+ {
130
+ border: true,
131
+ color: "fuchsia",
132
+ class: "border-fuchsia-300 dark:border-fuchsia-800 divide-fuchsia-300 dark:divide-fuchsia-800"
133
+ },
134
+ {
135
+ border: true,
136
+ color: "pink",
137
+ class: "border-pink-300 dark:border-pink-800 divide-pink-300 dark:divide-pink-800"
138
+ },
139
+ {
140
+ border: true,
141
+ color: "rose",
142
+ class: "border-rose-300 dark:border-rose-800 divide-rose-300 dark:divide-rose-800"
143
+ }
144
+ ],
145
+ defaultVariants: {
146
+ color: "primary",
147
+ rounded: true
148
+ }
149
+ });
@@ -0,0 +1,40 @@
1
+ <script lang="ts">
2
+ import { Modal, Button, type AlertDialogProps } from '../../index.js';
3
+
4
+ let {
5
+ open = $bindable(false),
6
+ message = '',
7
+ icon = 'line-md:alert-circle',
8
+ disableYes = false,
9
+ busy = false,
10
+ iconColor = '',
11
+ confirmText = "Yes, I'm sure",
12
+ buttonType = 'button',
13
+ dismissable = true,
14
+ onCancel,
15
+ onYes
16
+ }: AlertDialogProps = $props();
17
+ </script>
18
+
19
+ <div class="fixed z-[2000]">
20
+ <Modal bind:open size="xs" {dismissable}>
21
+ <div class="text-center">
22
+ <iconify-icon {icon} style="font-size: 100px;" class={iconColor}></iconify-icon>
23
+ <h3 class="mb-5 text-lg font-normal text-gray-500 dark:text-gray-400">{message}</h3>
24
+ <Button
25
+ type={buttonType}
26
+ disabled={disableYes || busy}
27
+ color="red"
28
+ class="mr-2"
29
+ onclick={onYes}
30
+ ><div class="flex items-center gap-1">
31
+ {confirmText}
32
+ {#if busy}
33
+ <iconify-icon icon="svg-spinners:180-ring-with-bg" class="text-pink-600"></iconify-icon>
34
+ {/if}
35
+ </div></Button
36
+ >
37
+ <Button color="alternative" onclick={onCancel} disabled={busy}>No, cancel</Button>
38
+ </div>
39
+ </Modal>
40
+ </div>
@@ -0,0 +1,4 @@
1
+ import { type AlertDialogProps } from '../../index.js';
2
+ declare const AlertDialog: import("svelte").Component<AlertDialogProps, {}, "open">;
3
+ type AlertDialog = ReturnType<typeof AlertDialog>;
4
+ export default AlertDialog;
@@ -0,0 +1 @@
1
+ export { default as AlertDialog } from "./AlertDialog.svelte";
@@ -0,0 +1 @@
1
+ export { default as AlertDialog } from "./AlertDialog.svelte";
@@ -0,0 +1,77 @@
1
+ <script lang="ts">
2
+ import clsx from 'clsx';
3
+ import { avatar } from './theme.js';
4
+ import { Indicator } from '../indicator/index.js';
5
+ import { getTheme } from '../../themes/themeUtils.js';
6
+ import type { AvatarProps } from '../../index.js';
7
+
8
+ let {
9
+ children,
10
+ indicator,
11
+ src,
12
+ href,
13
+ target,
14
+ cornerStyle = 'circular',
15
+ border = false,
16
+ stacked = false,
17
+ dot,
18
+ class: className,
19
+ alt,
20
+ size = 'md',
21
+ onclick,
22
+ ...restProps
23
+ }: AvatarProps = $props();
24
+
25
+ dot = dot && { placement: 'top-right', color: 'gray', size: 'lg', ...dot };
26
+
27
+ const theme = getTheme('avatar');
28
+
29
+ let avatarClass = $derived(
30
+ avatar({
31
+ cornerStyle,
32
+ border,
33
+ stacked,
34
+ size,
35
+ class: clsx(theme, className)
36
+ })
37
+ );
38
+ </script>
39
+
40
+ {#if !src || !!href || children || dot || indicator}
41
+ <svelte:element
42
+ this={href ? 'a' : 'div'}
43
+ role={href ? undefined : 'button'}
44
+ {onclick}
45
+ {href}
46
+ {target}
47
+ {...restProps}
48
+ class={avatarClass}
49
+ >
50
+ {#if src}
51
+ <img {alt} {src} class={cornerStyle === 'circular' ? 'rounded-full' : 'rounded-sm'} />
52
+ {:else if children}
53
+ {@render children()}
54
+ {:else}
55
+ <svg
56
+ class="h-full w-full {cornerStyle === 'circular' ? 'rounded-full' : 'rounded-sm'}"
57
+ fill="currentColor"
58
+ viewBox="0 0 16 16"
59
+ xmlns="http://www.w3.org/2000/svg"
60
+ >
61
+ <path
62
+ fill-rule="evenodd"
63
+ d="M8 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z"
64
+ clip-rule="evenodd"
65
+ ></path>
66
+ </svg>
67
+ {/if}
68
+ {#if dot}
69
+ <Indicator border offset={cornerStyle === 'circular' ? true : false} {...dot} />
70
+ {/if}
71
+ {#if indicator}
72
+ {@render indicator()}
73
+ {/if}
74
+ </svelte:element>
75
+ {:else}
76
+ <img {alt} {src} {...restProps} {onclick} class={avatarClass} />
77
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { AvatarProps } from '../../index.js';
2
+ declare const Avatar: import("svelte").Component<AvatarProps, {}, "">;
3
+ type Avatar = ReturnType<typeof Avatar>;
4
+ export default Avatar;
@@ -0,0 +1,2 @@
1
+ export { default as Avatar } from './Avatar.svelte';
2
+ export { avatar } from './theme.js';
@@ -0,0 +1,2 @@
1
+ export { default as Avatar } from './Avatar.svelte';
2
+ export { avatar } from './theme.js';
@@ -0,0 +1,63 @@
1
+ import { type VariantProps } from "tailwind-variants";
2
+ export type AvatarVariants = VariantProps<typeof avatar>;
3
+ export declare const avatar: import("tailwind-variants").TVReturnType<{
4
+ cornerStyle: {
5
+ rounded: string;
6
+ circular: string;
7
+ };
8
+ border: {
9
+ true: string;
10
+ false: string;
11
+ };
12
+ stacked: {
13
+ true: string;
14
+ false: string;
15
+ };
16
+ size: {
17
+ xs: string;
18
+ sm: string;
19
+ md: string;
20
+ lg: string;
21
+ xl: string;
22
+ };
23
+ }, undefined, "relative flex items-center justify-center bg-gray-100 dark:bg-gray-600 text-gray-600 dark:text-gray-300", {
24
+ cornerStyle: {
25
+ rounded: string;
26
+ circular: string;
27
+ };
28
+ border: {
29
+ true: string;
30
+ false: string;
31
+ };
32
+ stacked: {
33
+ true: string;
34
+ false: string;
35
+ };
36
+ size: {
37
+ xs: string;
38
+ sm: string;
39
+ md: string;
40
+ lg: string;
41
+ xl: string;
42
+ };
43
+ }, undefined, import("tailwind-variants").TVReturnType<{
44
+ cornerStyle: {
45
+ rounded: string;
46
+ circular: string;
47
+ };
48
+ border: {
49
+ true: string;
50
+ false: string;
51
+ };
52
+ stacked: {
53
+ true: string;
54
+ false: string;
55
+ };
56
+ size: {
57
+ xs: string;
58
+ sm: string;
59
+ md: string;
60
+ lg: string;
61
+ xl: string;
62
+ };
63
+ }, undefined, "relative flex items-center justify-center bg-gray-100 dark:bg-gray-600 text-gray-600 dark:text-gray-300", unknown, unknown, undefined>>;
@@ -0,0 +1,31 @@
1
+ import { tv } from "tailwind-variants";
2
+ export const avatar = tv({
3
+ base: "relative flex items-center justify-center bg-gray-100 dark:bg-gray-600 text-gray-600 dark:text-gray-300",
4
+ variants: {
5
+ cornerStyle: {
6
+ rounded: "rounded-sm",
7
+ circular: "rounded-full"
8
+ },
9
+ border: {
10
+ true: "p-1 ring-2 ring-gray-300 dark:ring-gray-500",
11
+ false: ""
12
+ },
13
+ stacked: {
14
+ true: "border-2 -ms-4 border-white dark:border-gray-800",
15
+ false: ""
16
+ },
17
+ size: {
18
+ xs: "w-6 h-6",
19
+ sm: "w-8 h-8",
20
+ md: "w-10 h-10",
21
+ lg: "w-20 h-20",
22
+ xl: "w-36 h-36"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ cornerStyle: "circular",
27
+ border: false,
28
+ stacked: false,
29
+ size: "md"
30
+ }
31
+ });
@@ -0,0 +1,102 @@
1
+
2
+
3
+ <script lang="ts">
4
+ import { getContext, type Snippet } from 'svelte';
5
+ import clsx from 'clsx';
6
+ import { button, getTheme, type ButtonProps, type SizeType } from '../../index.js';
7
+
8
+ const group: SizeType = getContext('group');
9
+ const ctxDisabled: boolean | undefined = getContext('disabled');
10
+
11
+ let {
12
+ children,
13
+ pill,
14
+ outline = false,
15
+ size = 'md',
16
+ color,
17
+ shadow = false,
18
+ tag = 'button',
19
+ disabled,
20
+ loading = false,
21
+ class: className,
22
+ leadingIcon,
23
+ trailingIcon,
24
+ ripple = true,
25
+ ...restProps
26
+ }: ButtonProps = $props();
27
+
28
+ const theme = getTheme('button');
29
+
30
+ let actualSize = $derived(group ? 'sm' : size);
31
+ let actualColor = $derived(color ?? (group ? (outline ? 'dark' : 'alternative') : 'primary'));
32
+ let isDisabled = $derived(Boolean(ctxDisabled) || Boolean(disabled) || loading);
33
+
34
+ const {
35
+ base,
36
+ outline: outline_,
37
+ shadow: shadow_
38
+ } = $derived(
39
+ button({ color: actualColor, size: actualSize, disabled: isDisabled, pill, group: !!group })
40
+ );
41
+ let btnCls = $derived(
42
+ base({ class: clsx(outline && outline_(), shadow && shadow_(), theme?.base, className) })
43
+ );
44
+
45
+ function createRipple(event: MouseEvent) {
46
+ if (!ripple || isDisabled) {
47
+ // onclick?.(event as any);
48
+ return;
49
+ }
50
+
51
+ const button = event.currentTarget as HTMLElement;
52
+ const diameter = Math.max(button.clientWidth, button.clientHeight);
53
+ const radius = diameter / 2;
54
+
55
+ const rippleSpan = document.createElement('span');
56
+ rippleSpan.style.width = rippleSpan.style.height = `${diameter}px`;
57
+ rippleSpan.style.left = `${event.clientX - button.getBoundingClientRect().left - radius}px`;
58
+ rippleSpan.style.top = `${event.clientY - button.getBoundingClientRect().top - radius}px`;
59
+ rippleSpan.classList.add('ripple', 'opacity-70');
60
+
61
+ rippleSpan.addEventListener('animationend', () => {
62
+ {
63
+ // onclick?.(event as any);
64
+ rippleSpan.remove();
65
+ }
66
+ });
67
+ button.appendChild(rippleSpan);
68
+ }
69
+ </script>
70
+
71
+ {#if restProps.href === undefined}
72
+ <button type="button" {...restProps} class={btnCls} disabled={isDisabled}>
73
+ {@render leadingIcon?.()}
74
+ {@render children?.()}
75
+ {@render trailingIcon?.()}
76
+
77
+ {#if loading}
78
+ <svg
79
+ class="ml-2 h-4 w-4 animate-spin text-white"
80
+ fill="none"
81
+ viewBox="0 0 24 24"
82
+ xmlns="http://www.w3.org/2000/svg"
83
+ aria-hidden="true"
84
+ >
85
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" />
86
+ <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z" />
87
+ </svg>
88
+ {/if}
89
+ </button>
90
+ {:else if restProps.href}
91
+ <a {...restProps} class={btnCls} role="button">
92
+ {@render leadingIcon?.()}
93
+ {@render children?.()}
94
+ {@render trailingIcon?.()}
95
+ </a>
96
+ {:else}
97
+ <svelte:element this={tag} {...restProps} class={btnCls}>
98
+ {@render leadingIcon?.()}
99
+ {@render children?.()}
100
+ {@render trailingIcon?.()}
101
+ </svelte:element>
102
+ {/if}
@@ -0,0 +1,4 @@
1
+ import { type ButtonProps } from '../../index.js';
2
+ declare const Button: import("svelte").Component<ButtonProps, {}, "">;
3
+ type Button = ReturnType<typeof Button>;
4
+ export default Button;
@@ -0,0 +1,59 @@
1
+
2
+
3
+ <script lang="ts">
4
+ import { getContext, type Snippet } from 'svelte';
5
+ import clsx from 'clsx';
6
+ import {
7
+ Button,
8
+ getTheme,
9
+ gradientButton,
10
+ type GradientButtonProps,
11
+ type SizeType
12
+ } from '../../index.js';
13
+
14
+ const group: SizeType = getContext('group');
15
+
16
+ let {
17
+ children,
18
+ outline,
19
+ pill,
20
+ color = 'blue',
21
+ shadow,
22
+ class: className,
23
+ href,
24
+ disabled,
25
+ size,
26
+ btnClass,
27
+ ...restProps
28
+ }: GradientButtonProps = $props();
29
+
30
+ const theme = getTheme('gradientButton');
31
+
32
+ const { base, outlineWrapper } = $derived(
33
+ gradientButton({ color, outline, pill, shadow, disabled, size, group: !!group })
34
+ );
35
+ </script>
36
+
37
+ {#if outline}
38
+ <div class={base({ class: clsx(theme?.base, className) })}>
39
+ <Button
40
+ {...restProps}
41
+ class={outlineWrapper({ class: clsx(theme?.outlineWrapper, btnClass) })}
42
+ {disabled}
43
+ {href}
44
+ {size}
45
+ >
46
+ {@render children?.()}
47
+ </Button>
48
+ </div>
49
+ {:else}
50
+ <Button
51
+ {...restProps}
52
+ class={base({ class: clsx(theme?.base, className) })}
53
+ {disabled}
54
+ {href}
55
+ {size}
56
+ >
57
+ {@render children?.()}
58
+ </Button>
59
+ {/if}
@@ -0,0 +1,4 @@
1
+ import { type GradientButtonProps } from '../../index.js';
2
+ declare const GradientButton: import("svelte").Component<GradientButtonProps, {}, "">;
3
+ type GradientButton = ReturnType<typeof GradientButton>;
4
+ export default GradientButton;
@@ -0,0 +1,3 @@
1
+ export { default as Button } from './Button.svelte';
2
+ export { default as GradientButton } from './GradientButton.svelte';
3
+ export { button, gradientButton } from './theme.js';
@@ -0,0 +1,3 @@
1
+ export { default as Button } from './Button.svelte';
2
+ export { default as GradientButton } from './GradientButton.svelte';
3
+ export { button, gradientButton } from './theme.js';