@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,100 @@
1
+ import type { Classes } from "../../themes/themeUtils.js";
2
+ import { type VariantProps } from "tailwind-variants";
3
+ export type TextareaVariants = VariantProps<typeof textarea> & Classes<typeof textarea>;
4
+ export declare const textarea: import("tailwind-variants").TVReturnType<{
5
+ wrapped: {
6
+ false: {
7
+ wrapper: string;
8
+ };
9
+ };
10
+ hasHeader: {
11
+ true: {
12
+ header: string;
13
+ };
14
+ false: {
15
+ inner: string;
16
+ };
17
+ };
18
+ hasFooter: {
19
+ true: {
20
+ footer: string;
21
+ };
22
+ false: {
23
+ inner: string;
24
+ };
25
+ };
26
+ }, {
27
+ div: string;
28
+ base: string;
29
+ wrapper: string;
30
+ inner: string;
31
+ header: string;
32
+ footer: string;
33
+ addon: string;
34
+ close: string;
35
+ svg: string;
36
+ }, undefined, {
37
+ wrapped: {
38
+ false: {
39
+ wrapper: string;
40
+ };
41
+ };
42
+ hasHeader: {
43
+ true: {
44
+ header: string;
45
+ };
46
+ false: {
47
+ inner: string;
48
+ };
49
+ };
50
+ hasFooter: {
51
+ true: {
52
+ footer: string;
53
+ };
54
+ false: {
55
+ inner: string;
56
+ };
57
+ };
58
+ }, {
59
+ div: string;
60
+ base: string;
61
+ wrapper: string;
62
+ inner: string;
63
+ header: string;
64
+ footer: string;
65
+ addon: string;
66
+ close: string;
67
+ svg: string;
68
+ }, import("tailwind-variants").TVReturnType<{
69
+ wrapped: {
70
+ false: {
71
+ wrapper: string;
72
+ };
73
+ };
74
+ hasHeader: {
75
+ true: {
76
+ header: string;
77
+ };
78
+ false: {
79
+ inner: string;
80
+ };
81
+ };
82
+ hasFooter: {
83
+ true: {
84
+ footer: string;
85
+ };
86
+ false: {
87
+ inner: string;
88
+ };
89
+ };
90
+ }, {
91
+ div: string;
92
+ base: string;
93
+ wrapper: string;
94
+ inner: string;
95
+ header: string;
96
+ footer: string;
97
+ addon: string;
98
+ close: string;
99
+ svg: string;
100
+ }, undefined, unknown, unknown, undefined>>;
@@ -0,0 +1,35 @@
1
+ import { tv } from "tailwind-variants";
2
+ export const textarea = tv({
3
+ slots: {
4
+ div: "relative",
5
+ base: "block w-full text-sm border-0 px-0 bg-inherit dark:bg-inherit focus:outline-hidden focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50",
6
+ wrapper: "text-sm rounded-lg dark:bg-gray-600 text-gray-900 dark:placeholder-gray-400 dark:text-white border border-gray-200 dark:border-gray-500",
7
+ inner: "py-2 px-4 bg-white dark:bg-gray-800",
8
+ header: "py-2 px-3 border-gray-200 dark:border-gray-500",
9
+ footer: "py-2 px-3 border-gray-200 dark:border-gray-500",
10
+ addon: "absolute top-2 right-2 z-10",
11
+ close: "absolute right-2 top-5 -translate-y-1/2 text-gray-400 hover:text-black",
12
+ svg: ""
13
+ },
14
+ variants: {
15
+ wrapped: {
16
+ false: { wrapper: "p-2.5 text-sm focus:outline-hidden focus:ring-primary-500 border-gray-300 focus:border-primary-500 dark:focus:ring-primary-500 dark:focus:border-primary-500 disabled:cursor-not-allowed disabled:opacity-50" }
17
+ },
18
+ hasHeader: {
19
+ true: {
20
+ header: "border-b"
21
+ },
22
+ false: {
23
+ inner: "rounded-t-lg"
24
+ }
25
+ },
26
+ hasFooter: {
27
+ true: {
28
+ footer: "border-t"
29
+ },
30
+ false: {
31
+ inner: "rounded-b-lg"
32
+ }
33
+ }
34
+ }
35
+ });
package/dist/index.d.ts CHANGED
@@ -1,2 +1,42 @@
1
- import YouTube from "./youtube/index.svelte";
2
- export { YouTube };
1
+ export { getTheme } from './themes/themeUtils.js';
2
+ export { default as ThemeProvider } from './themes/ThemeProvider.svelte';
3
+ import YouTube from './youtube/index.svelte';
4
+ import BaseEditor from './baseEditor/index.svelte';
5
+ export * from './layout/TF/index.js';
6
+ export * from './ui/dropdown/index.js';
7
+ export * from './ui/buttons/index.js';
8
+ export * from './ui/avatar/index.js';
9
+ export * from './ui/indicator/index.js';
10
+ export * from './ui/footer/index.js';
11
+ export * from './typography/heading/index.js';
12
+ export * from './ui/notificationList/index.js';
13
+ export * from './ui/pageLoader/index.js';
14
+ export * from './ui/alert/index.js';
15
+ export * from './ui/modal/index.js';
16
+ export * from './ui/toolbar/index.js';
17
+ export * from './ui/drawer/index.js';
18
+ export * from './ui/table/index.js';
19
+ export * from './ui/datatable/index.js';
20
+ export * from './ui/paginate/index.js';
21
+ export * from './ui/tableLoader/index.js';
22
+ export * from './ui/alertDialog/index.js';
23
+ export * from './ui/accordion/index.js';
24
+ export * from './ui/tab/index.js';
25
+ export * from './forms/input/index.js';
26
+ export * from './forms/label/index.js';
27
+ export * from './forms/datepicker/index.js';
28
+ export * from './forms/textarea/index.js';
29
+ export * from './forms/select/index.js';
30
+ export * from './forms/radio/index.js';
31
+ export * from './forms/checkbox/index.js';
32
+ export * from './forms/form/index.js';
33
+ export * from './forms/FormInput/index.js';
34
+ export * from './forms/FormDatepicker/index.js';
35
+ export * from './forms/FormSelect/index.js';
36
+ export * from './forms/FormTextarea/index.js';
37
+ export * from './forms/FormCheckbox/index.js';
38
+ export * from './forms/FormRadio/index.js';
39
+ export * from './builders/filters/index.js';
40
+ export * from './types/index.js';
41
+ export * from './utils/index.js';
42
+ export { YouTube, BaseEditor };
package/dist/index.js CHANGED
@@ -1,3 +1,43 @@
1
+ export { getTheme } from './themes/themeUtils.js';
2
+ export { default as ThemeProvider } from './themes/ThemeProvider.svelte';
1
3
  // Reexport your entry components here
2
- import YouTube from "./youtube/index.svelte";
3
- export { YouTube };
4
+ import YouTube from './youtube/index.svelte';
5
+ import BaseEditor from './baseEditor/index.svelte';
6
+ export * from './layout/TF/index.js';
7
+ export * from './ui/dropdown/index.js';
8
+ export * from './ui/buttons/index.js';
9
+ export * from './ui/avatar/index.js';
10
+ export * from './ui/indicator/index.js';
11
+ export * from './ui/footer/index.js';
12
+ export * from './typography/heading/index.js';
13
+ export * from './ui/notificationList/index.js';
14
+ export * from './ui/pageLoader/index.js';
15
+ export * from './ui/alert/index.js';
16
+ export * from './ui/modal/index.js';
17
+ export * from './ui/toolbar/index.js';
18
+ export * from './ui/drawer/index.js';
19
+ export * from './ui/table/index.js';
20
+ export * from './ui/datatable/index.js';
21
+ export * from './ui/paginate/index.js';
22
+ export * from './ui/tableLoader/index.js';
23
+ export * from './ui/alertDialog/index.js';
24
+ export * from './ui/accordion/index.js';
25
+ export * from './ui/tab/index.js';
26
+ export * from './forms/input/index.js';
27
+ export * from './forms/label/index.js';
28
+ export * from './forms/datepicker/index.js';
29
+ export * from './forms/textarea/index.js';
30
+ export * from './forms/select/index.js';
31
+ export * from './forms/radio/index.js';
32
+ export * from './forms/checkbox/index.js';
33
+ export * from './forms/form/index.js';
34
+ export * from './forms/FormInput/index.js';
35
+ export * from './forms/FormDatepicker/index.js';
36
+ export * from './forms/FormSelect/index.js';
37
+ export * from './forms/FormTextarea/index.js';
38
+ export * from './forms/FormCheckbox/index.js';
39
+ export * from './forms/FormRadio/index.js';
40
+ export * from './builders/filters/index.js';
41
+ export * from './types/index.js';
42
+ export * from './utils/index.js';
43
+ export { YouTube, BaseEditor };
@@ -0,0 +1,28 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+
4
+ export interface TFContentWrapperProps {
5
+ topBar?: Snippet;
6
+ children: any;
7
+ }
8
+ </script>
9
+
10
+ <script lang="ts">
11
+ let { topBar, children }: TFContentWrapperProps = $props();
12
+ </script>
13
+
14
+ <section id="tf-content" class="h-full w-full">
15
+ {@render topBar?.()}
16
+ <section class="flex h-full w-full flex-col rounded-tl-lg bg-[#f4f3ef]">
17
+ <!-- {#if $activePage.showBreadCrumb}
18
+ <div class="head-title pt-3 pl-6">
19
+ <div class="left">
20
+ <BreadCrumb options={$breadCrumb} {activeBreadCrumb} on:click={optionClicked} />
21
+ </div>
22
+ </div>
23
+ {/if} -->
24
+ <div class=" h-full w-full flex-grow overflow-hidden">
25
+ {@render children()}
26
+ </div>
27
+ </section>
28
+ </section>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ export interface TFContentWrapperProps {
3
+ topBar?: Snippet;
4
+ children: any;
5
+ }
6
+ declare const Content: import("svelte").Component<TFContentWrapperProps, {}, "">;
7
+ type Content = ReturnType<typeof Content>;
8
+ export default Content;
@@ -0,0 +1 @@
1
+ export { default as TFContentWrapper } from './Content.svelte';
@@ -0,0 +1 @@
1
+ export { default as TFContentWrapper } from './Content.svelte';
@@ -0,0 +1,159 @@
1
+ <script lang="ts" module>
2
+ interface UserData {
3
+ firstName?: string;
4
+ lastName?: string;
5
+ fullName?: string;
6
+ role?: string;
7
+ username?: string;
8
+ initials?: string;
9
+ }
10
+
11
+ export interface TFHeaderProps {
12
+ user?: UserData;
13
+ hideSidebar?: boolean;
14
+ title?: string;
15
+ onsignout?: () => void;
16
+ notificationCount?: number;
17
+ showNotifications?: boolean;
18
+ // readNotifications?: () => Promise<any[]> | any[];
19
+ notificationList?: Snippet;
20
+ }
21
+ </script>
22
+
23
+ <script lang="ts">
24
+ import { Avatar } from '../../../ui/avatar/index.js';
25
+ import Button from '../../../ui/buttons/Button.svelte';
26
+ import { slide } from 'svelte/transition';
27
+
28
+ import { clickOutsideAction } from '../../../utils/svelte-legos.js';
29
+ import { DropdownDivider } from '../../../ui/dropdown/index.js';
30
+ import { Indicator } from '../../../ui/indicator/index.js';
31
+ // import NotificationList from '../../../ui/notificationList/NotificationList.svelte';
32
+ import type { Snippet } from 'svelte';
33
+ let {
34
+ user,
35
+ hideSidebar = $bindable(false),
36
+ title,
37
+ onsignout,
38
+ notificationCount = 0,
39
+ showNotifications = true,
40
+ notificationList
41
+ }: TFHeaderProps = $props();
42
+ let showUser = $state(false);
43
+ let openNotification = $state(false);
44
+ </script>
45
+
46
+ <nav class="flex items-center">
47
+ <button
48
+ class="grid place-content-center rounded-full p-2 hover:bg-gray-200"
49
+ onclick={() => (hideSidebar = !hideSidebar)}
50
+ aria-label="toggle"
51
+ >
52
+ <iconify-icon
53
+ icon={hideSidebar ? 'mdi:menu-close' : 'ic:round-menu-open'}
54
+ style="font-size: 20px;"
55
+ ></iconify-icon>
56
+ </button>
57
+ <div class="hidden flex-grow items-center gap-4 sm:flex">
58
+ <div class="font-semibold text-teal-800">
59
+ {title}
60
+ </div>
61
+ </div>
62
+ <div class="flex flex-grow sm:hidden"></div>
63
+ {#if showNotifications}
64
+ <div
65
+ class="flex items-center gap-4"
66
+ use:clickOutsideAction
67
+ onclickoutside={() => (openNotification = false)}
68
+ >
69
+ <button
70
+ class="notifications relative grid cursor-pointer place-content-center hover:text-teal-400"
71
+ use:clickOutsideAction
72
+ onclick={() => (openNotification = !openNotification)}
73
+ >
74
+ <iconify-icon icon="charm:bell" class="blue-red-600 text-2xl"></iconify-icon>
75
+ <Indicator
76
+ color="red"
77
+ border
78
+ size="xl"
79
+ placement="top-right"
80
+ class="font- text-xs text-white {!notificationCount && 'hidden'}"
81
+ >{notificationCount && notificationCount > 10 ? '10+' : notificationCount}</Indicator
82
+ >
83
+ </button>
84
+
85
+ {@render notificationList?.()}
86
+ </div>
87
+ {/if}
88
+
89
+ <div class="flex items-center gap-4">
90
+ <div
91
+ class="user grid place-content-center"
92
+ use:clickOutsideAction
93
+ onclickoutside={() => (showUser = false)}
94
+ >
95
+ <Button
96
+ color="light"
97
+ pill
98
+ class="h-10 max-w-[150px] border-gray-300 !p-0 sm:!p-1"
99
+ ripple={false}
100
+ onclick={() => (showUser = !showUser)}
101
+ >
102
+ <Avatar class="h-9 w-9 bg-sky-300 text-sm sm:mr-2">
103
+ {user?.initials}
104
+ </Avatar>
105
+ <div class="hidden text-left text-xs sm:block sm:pr-2">
106
+ <div class="w-20 truncate">
107
+ <span class="font-semibold text-black">{user?.firstName}</span>
108
+ </div>
109
+ {#if user?.role}
110
+ <div class="w-20 truncate text-gray-500">
111
+ <span>{user.role}</span>
112
+ </div>
113
+ {:else}
114
+ <p class="flex w-20 truncate text-gray-500">{user?.username}</p>
115
+ {/if}
116
+ </div>
117
+ </Button>
118
+ {#if showUser}
119
+ <div class="relative">
120
+ <div
121
+ class="absolute right-0 z-10 mt-2 rounded-md bg-white
122
+ py-2 shadow-md shadow-gray-300
123
+ "
124
+ transition:slide
125
+ use:clickOutsideAction
126
+ >
127
+ <div class="space-y-2 px-4 py-2">
128
+ <span class="block truncate text-sm font-bold">{user?.fullName}</span>
129
+ <div class="block truncate text-sm">
130
+ <span class="font-light text-gray-500">Role:</span>
131
+ <span class="font-bold">{user?.role}</span>
132
+ </div>
133
+ <div class="block truncate text-sm">
134
+ <span class="font-light text-gray-500">Username:</span>
135
+ <span class="font-bold">{user?.username}</span>
136
+ </div>
137
+ </div>
138
+ <DropdownDivider />
139
+ <div class="grid">
140
+ <Button
141
+ ripple={false}
142
+ class="mx-0.5 flex gap-1 justify-start border bg-red-50 text-red-600 hover:bg-red-100"
143
+ onclick={() => {
144
+ showUser = false;
145
+ onsignout?.();
146
+ }}
147
+ >
148
+ {#snippet leadingIcon()}
149
+ <iconify-icon icon="stash:signout" style="font-size: 20px;"></iconify-icon>
150
+ {/snippet}
151
+ Sign Out
152
+ </Button>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ {/if}
157
+ </div>
158
+ </div>
159
+ </nav>
@@ -0,0 +1,21 @@
1
+ interface UserData {
2
+ firstName?: string;
3
+ lastName?: string;
4
+ fullName?: string;
5
+ role?: string;
6
+ username?: string;
7
+ initials?: string;
8
+ }
9
+ export interface TFHeaderProps {
10
+ user?: UserData;
11
+ hideSidebar?: boolean;
12
+ title?: string;
13
+ onsignout?: () => void;
14
+ notificationCount?: number;
15
+ showNotifications?: boolean;
16
+ notificationList?: Snippet;
17
+ }
18
+ import type { Snippet } from 'svelte';
19
+ declare const Header: import("svelte").Component<TFHeaderProps, {}, "hideSidebar">;
20
+ type Header = ReturnType<typeof Header>;
21
+ export default Header;
@@ -0,0 +1 @@
1
+ export { default as TFHeader } from './Header.svelte';
@@ -0,0 +1 @@
1
+ export { default as TFHeader } from './Header.svelte';
@@ -0,0 +1,74 @@
1
+ <script lang="ts" module>
2
+ export interface TFSidebarProps {
3
+ homeUrl: string;
4
+ logoUrl: string;
5
+ appShortName: string;
6
+ appName: string;
7
+ hideSidebar?: boolean;
8
+ menuItems: IMenuItem[];
9
+ logo?: Snippet;
10
+ }
11
+
12
+ export interface IMenuItem {
13
+ title: string;
14
+ icon?: string;
15
+ path?: string;
16
+ items?: IMenuItem[] | null;
17
+ description?: string;
18
+ iconBg?: string;
19
+ iconColor?: string;
20
+ iconSize?: number;
21
+ }
22
+ </script>
23
+
24
+ <script lang="ts">
25
+ import { cn } from '../../../utils/index.js';
26
+ import { page } from '$app/state';
27
+ import type { Snippet } from 'svelte';
28
+
29
+ let {
30
+ homeUrl,
31
+ logoUrl,
32
+ appName,
33
+ appShortName,
34
+ hideSidebar = false,
35
+ menuItems = [],
36
+ logo
37
+ }: TFSidebarProps = $props();
38
+
39
+ let activeUrl = $state('');
40
+ $effect(() => {
41
+ activeUrl = page.url.pathname;
42
+ });
43
+ </script>
44
+
45
+ {#snippet menuItemSnippet(item: IMenuItem, active: boolean)}
46
+ <li class:active class="relative">
47
+ <a class="space-x-3 pl-3" href={item.path}>
48
+ <iconify-icon icon={item.icon}></iconify-icon>
49
+
50
+ <span class="text hidden md:block">{item.title}</span>
51
+ </a>
52
+ </li>
53
+ {/snippet}
54
+ <section id="tf-sidebar" class={cn('relative')} class:hide={hideSidebar}>
55
+ <a href={homeUrl} class="brand flex flex-col pt-4">
56
+ {#if logo}
57
+ {@render logo()}
58
+ {:else}
59
+ <img src={logoUrl} alt="Logo" class={hideSidebar ? 'w-12' : 'w-12 md:w-24'} loading="lazy" />
60
+ {/if}
61
+ <span class="text-base font-thin {hideSidebar ? 'block' : 'md:hidden'}">{appShortName}</span>
62
+ <p class="text-center text-lg font-medium {hideSidebar ? 'hidden' : 'hidden md:block'}">
63
+ {appName}
64
+ </p>
65
+ </a>
66
+ {#if menuItems.length > 0}
67
+ <ul class="side-menu top relative pt-4">
68
+ {#each menuItems as item}
69
+ {@const active = activeUrl === item.path}
70
+ {@render menuItemSnippet(item, active)}
71
+ {/each}
72
+ </ul>
73
+ {/if}
74
+ </section>
@@ -0,0 +1,23 @@
1
+ export interface TFSidebarProps {
2
+ homeUrl: string;
3
+ logoUrl: string;
4
+ appShortName: string;
5
+ appName: string;
6
+ hideSidebar?: boolean;
7
+ menuItems: IMenuItem[];
8
+ logo?: Snippet;
9
+ }
10
+ export interface IMenuItem {
11
+ title: string;
12
+ icon?: string;
13
+ path?: string;
14
+ items?: IMenuItem[] | null;
15
+ description?: string;
16
+ iconBg?: string;
17
+ iconColor?: string;
18
+ iconSize?: number;
19
+ }
20
+ import type { Snippet } from 'svelte';
21
+ declare const Sidebar: import("svelte").Component<TFSidebarProps, {}, "">;
22
+ type Sidebar = ReturnType<typeof Sidebar>;
23
+ export default Sidebar;
@@ -0,0 +1 @@
1
+ export { default as TFSidebar } from "./Sidebar.svelte";
@@ -0,0 +1 @@
1
+ export { default as TFSidebar } from "./Sidebar.svelte";
@@ -0,0 +1,17 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+
4
+ export interface TFLayoutWrapperProps {
5
+ sidebar: Snippet;
6
+ content: Snippet;
7
+ }
8
+ </script>
9
+
10
+ <script lang="ts">
11
+ let { sidebar, content }: TFLayoutWrapperProps = $props();
12
+ </script>
13
+
14
+ <div class="h-full w-full overflow-hidden">
15
+ {@render sidebar()}
16
+ {@render content()}
17
+ </div>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ export interface TFLayoutWrapperProps {
3
+ sidebar: Snippet;
4
+ content: Snippet;
5
+ }
6
+ declare const Wrapper: import("svelte").Component<TFLayoutWrapperProps, {}, "">;
7
+ type Wrapper = ReturnType<typeof Wrapper>;
8
+ export default Wrapper;
@@ -0,0 +1 @@
1
+ export { default as TFLayoutWrapper } from "./Wrapper.svelte";
@@ -0,0 +1 @@
1
+ export { default as TFLayoutWrapper } from "./Wrapper.svelte";
@@ -0,0 +1,5 @@
1
+ import { TFSidebar } from './Sidebar/index.js';
2
+ import { TFLayoutWrapper } from './Wrapper/index.js';
3
+ import { TFHeader } from './Header/index.js';
4
+ import { TFContentWrapper } from './Content/index.js';
5
+ export { TFLayoutWrapper, TFSidebar, TFHeader, TFContentWrapper };
@@ -0,0 +1,5 @@
1
+ import { TFSidebar } from './Sidebar/index.js';
2
+ import { TFLayoutWrapper } from './Wrapper/index.js';
3
+ import { TFHeader } from './Header/index.js';
4
+ import { TFContentWrapper } from './Content/index.js';
5
+ export { TFLayoutWrapper, TFSidebar, TFHeader, TFContentWrapper };
@@ -0,0 +1,20 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { setContext } from 'svelte';
4
+ import type { ThemeConfig } from './index.js';
5
+
6
+ interface ThemeProviderProps {
7
+ children: Snippet;
8
+ theme?: ThemeConfig;
9
+ }
10
+
11
+ let { children, theme }: ThemeProviderProps = $props();
12
+
13
+ if (theme) {
14
+ setContext('theme', theme);
15
+ } else {
16
+ console.log('ThemeProvider: No theme provided');
17
+ }
18
+ </script>
19
+
20
+ {@render children()}
@@ -0,0 +1,9 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { ThemeConfig } from './index.js';
3
+ interface ThemeProviderProps {
4
+ children: Snippet;
5
+ theme?: ThemeConfig;
6
+ }
7
+ declare const ThemeProvider: import("svelte").Component<ThemeProviderProps, {}, "">;
8
+ type ThemeProvider = ReturnType<typeof ThemeProvider>;
9
+ export default ThemeProvider;
@@ -0,0 +1,7 @@
1
+ import type { ClassValue } from "clsx";
2
+ import * as themes from "./themes.js";
3
+ export type ThemeConfig = {
4
+ [K in keyof typeof themes]?: (typeof themes)[K]["slots"] extends undefined ? ClassValue : Partial<{
5
+ [L in keyof (typeof themes)[K]["slots"]]: ClassValue;
6
+ }>;
7
+ };
@@ -0,0 +1 @@
1
+ import * as themes from "./themes.js";