@rkosafo/cai.components 0.0.74 → 0.0.78

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 (127) hide show
  1. package/README.md +8 -8
  2. package/dist/baseEditor/index.svelte +32 -32
  3. package/dist/builders/filters/FilterBuilder.svelte +641 -641
  4. package/dist/forms/FormCheckbox/FormCheckbox.svelte +53 -53
  5. package/dist/forms/FormClEditor/ClEdito.svelte +68 -68
  6. package/dist/forms/FormDatepicker/FormDatepicker.svelte +159 -159
  7. package/dist/forms/FormFileUpload/FormFileUplad.svelte +134 -134
  8. package/dist/forms/FormInput/FormInput.svelte +87 -87
  9. package/dist/forms/FormRadio/FormRadio.svelte +53 -53
  10. package/dist/forms/FormSelect/FormSelect.svelte +88 -88
  11. package/dist/forms/FormTextarea/FormTextarea.svelte +78 -78
  12. package/dist/forms/button-toggle/ButtonToggle.svelte +119 -0
  13. package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +139 -0
  14. package/dist/forms/button-toggle/ButtonToggleGroup.svelte +0 -0
  15. package/dist/forms/button-toggle/ButtonToggleGroup.svelte.d.ts +26 -0
  16. package/dist/forms/button-toggle/CheckIcon.svelte +28 -0
  17. package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +4 -0
  18. package/dist/forms/button-toggle/index.d.ts +4 -0
  19. package/dist/forms/button-toggle/index.js +4 -0
  20. package/dist/forms/button-toggle/theme.d.ts +347 -0
  21. package/dist/forms/button-toggle/theme.js +129 -0
  22. package/dist/forms/checkbox/Checkbox.svelte +82 -82
  23. package/dist/forms/checkbox/CheckboxButton.svelte +92 -92
  24. package/dist/forms/datepicker/Datepicker.svelte +707 -707
  25. package/dist/forms/form/Form.svelte +69 -69
  26. package/dist/forms/input/Input.svelte +363 -363
  27. package/dist/forms/label/Label.svelte +38 -38
  28. package/dist/forms/radio/Radio.svelte +48 -48
  29. package/dist/forms/radio/RadioButton.svelte +22 -22
  30. package/dist/forms/select/Select.svelte +56 -56
  31. package/dist/forms/textarea/Textarea.svelte +165 -165
  32. package/dist/forms/toggle/Toggle.svelte +70 -0
  33. package/dist/forms/toggle/Toggle.svelte.d.ts +3 -0
  34. package/dist/forms/toggle/index.d.ts +2 -0
  35. package/dist/forms/toggle/index.js +2 -0
  36. package/dist/forms/toggle/theme.d.ts +280 -0
  37. package/dist/forms/toggle/theme.js +97 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.js +3 -0
  40. package/dist/layout/Chat/CategorySelector.svelte +52 -52
  41. package/dist/layout/Chat/ChatEntry.svelte +246 -246
  42. package/dist/layout/Chat/ChatEntrySkeleton.svelte +81 -81
  43. package/dist/layout/Chat/ChatHeader.svelte +172 -172
  44. package/dist/layout/Chat/ChatInput.svelte +207 -207
  45. package/dist/layout/Chat/DraggableWindow.svelte +230 -230
  46. package/dist/layout/Chat/PreviewPage.svelte +182 -182
  47. package/dist/layout/Chat/RichText.svelte +216 -216
  48. package/dist/layout/ComponentCanvas/Canvas.svelte +40 -40
  49. package/dist/layout/ComponentCanvas/ComponentRenderer.svelte +85 -85
  50. package/dist/layout/TF/Content/Content.svelte +21 -21
  51. package/dist/layout/TF/Header/Header.svelte +166 -166
  52. package/dist/layout/TF/Sidebar/Sidebar.svelte +148 -148
  53. package/dist/layout/TF/Wrapper/Wrapper.svelte +17 -17
  54. package/dist/layout/mailing/MailPaginator.svelte +36 -36
  55. package/dist/layout/mailing/MailSidebar.svelte +39 -39
  56. package/dist/layout/mailing/MailToolBar.svelte +174 -174
  57. package/dist/layout/mailing/MailingContent.svelte +10 -10
  58. package/dist/layout/mailing/MailingHeader.svelte +55 -55
  59. package/dist/layout/mailing/MailingMessageCard.svelte +112 -112
  60. package/dist/layout/mailing/MailingMessageViewer.svelte +87 -87
  61. package/dist/layout/mailing/MailingModule.svelte +448 -448
  62. package/dist/styles/docs.css +615 -615
  63. package/dist/styles/tf-layout.css +185 -185
  64. package/dist/themes/ThemeProvider.svelte +20 -20
  65. package/dist/themes/themes.d.ts +3 -0
  66. package/dist/themes/themes.js +3 -0
  67. package/dist/types/index.d.ts +59 -2
  68. package/dist/typography/heading/Heading.svelte +35 -35
  69. package/dist/ui/accordion/Accordion.svelte +49 -49
  70. package/dist/ui/accordion/AccordionItem.svelte +173 -173
  71. package/dist/ui/alert/Alert.svelte +83 -83
  72. package/dist/ui/alertDialog/AlertDialog.svelte +40 -40
  73. package/dist/ui/avatar/Avatar.svelte +77 -77
  74. package/dist/ui/box/Box.svelte +28 -28
  75. package/dist/ui/breadcrumb/Breadcrumb.svelte +39 -28
  76. package/dist/ui/buttons/ActionButton.svelte +234 -234
  77. package/dist/ui/buttons/Button.svelte +102 -102
  78. package/dist/ui/buttons/GradientButton.svelte +59 -59
  79. package/dist/ui/datatable/Datatable.svelte +525 -525
  80. package/dist/ui/drawer/Drawer.svelte +300 -300
  81. package/dist/ui/dropdown/Dropdown.svelte +36 -36
  82. package/dist/ui/dropdown/DropdownDivider.svelte +11 -11
  83. package/dist/ui/dropdown/DropdownGroup.svelte +14 -14
  84. package/dist/ui/dropdown/DropdownHeader.svelte +14 -14
  85. package/dist/ui/dropdown/DropdownItem.svelte +52 -52
  86. package/dist/ui/footer/Footer.svelte +15 -15
  87. package/dist/ui/footer/FooterBrand.svelte +37 -37
  88. package/dist/ui/footer/FooterCopyright.svelte +45 -45
  89. package/dist/ui/footer/FooterIcon.svelte +22 -22
  90. package/dist/ui/footer/FooterLink.svelte +33 -33
  91. package/dist/ui/footer/FooterLinkGroup.svelte +13 -13
  92. package/dist/ui/icons/IconifyIcon.svelte +7 -7
  93. package/dist/ui/indicator/Indicator.svelte +42 -42
  94. package/dist/ui/modal/Modal.svelte +265 -265
  95. package/dist/ui/modal/theme.d.ts +26 -26
  96. package/dist/ui/modal/theme.js +25 -25
  97. package/dist/ui/notificationList/NotificationList.svelte +123 -123
  98. package/dist/ui/pageLoader/PageLoader.svelte +14 -14
  99. package/dist/ui/paginate/Paginate.svelte +96 -96
  100. package/dist/ui/speedDial/SpeedDial.svelte +77 -0
  101. package/dist/ui/speedDial/SpeedDial.svelte.d.ts +21 -0
  102. package/dist/ui/speedDial/SpeedDialButton.svelte +75 -0
  103. package/dist/ui/speedDial/SpeedDialButton.svelte.d.ts +20 -0
  104. package/dist/ui/speedDial/SpeedDialTrigger.svelte +79 -0
  105. package/dist/ui/speedDial/SpeedDialTrigger.svelte.d.ts +18 -0
  106. package/dist/ui/speedDial/index.d.ts +4 -0
  107. package/dist/ui/speedDial/index.js +4 -0
  108. package/dist/ui/speedDial/theme.d.ts +75 -0
  109. package/dist/ui/speedDial/theme.js +35 -0
  110. package/dist/ui/tab/Tab.svelte +67 -67
  111. package/dist/ui/table/Table.svelte +396 -394
  112. package/dist/ui/tableLoader/TableLoader.svelte +24 -24
  113. package/dist/ui/toast/Toast.svelte +337 -337
  114. package/dist/ui/toast/Toast.svelte.d.ts +10 -10
  115. package/dist/ui/toast/index.d.ts +1 -2
  116. package/dist/ui/toast/index.js +3 -1
  117. package/dist/ui/toolbar/Toolbar.svelte +59 -59
  118. package/dist/ui/toolbar/ToolbarButton.svelte +56 -56
  119. package/dist/ui/toolbar/ToolbarGroup.svelte +43 -43
  120. package/dist/ui/tooltip/Tooltip.svelte +51 -51
  121. package/dist/utils/Popper.svelte +257 -257
  122. package/dist/utils/closeButton/CloseButton.svelte +88 -88
  123. package/dist/utils/index.d.ts +3 -2
  124. package/dist/utils/index.js +13 -3
  125. package/dist/utils/singleSelection.svelte.js +48 -48
  126. package/dist/youtube/index.svelte +12 -12
  127. package/package.json +2 -1
@@ -1,182 +1,182 @@
1
- <script lang="ts">
2
- import { fade } from 'svelte/transition';
3
- import type { PreviewPageProps } from './index.js';
4
- import { cubicIn, elasticInOut } from 'svelte/easing';
5
- import IconifyIcon from '../../ui/icons/IconifyIcon.svelte';
6
- import { isImage, isPdf } from '../../index.js';
7
-
8
- let {
9
- open = $bindable(true),
10
- fullImage = false,
11
- showActions = true,
12
- title = '',
13
- onGetImage,
14
- src = {
15
- name: '',
16
- content: '',
17
- file: ''
18
- }
19
- }: PreviewPageProps = $props();
20
-
21
- let scale = $state(1);
22
- const maxScale = $state(3);
23
- const minScale = $state(1);
24
-
25
- function zoomin() {
26
- if (scale < maxScale) {
27
- scale += 0.1;
28
- }
29
- }
30
-
31
- function zoomout() {
32
- if (scale > minScale) {
33
- scale -= 0.1;
34
- }
35
- }
36
- </script>
37
-
38
- {#if open}
39
- <div class=" relative p-0 md:p-5 lg:p-10">
40
- <div
41
- class="bg-opacity-60 fixed inset-0 z-[3000] mx-auto bg-gray-500 transition-opacity"
42
- in:fade={{ duration: 300, easing: cubicIn }}
43
- out:fade={{ duration: 200, easing: elasticInOut }}
44
- ></div>
45
- </div>
46
- {/if}
47
-
48
- {#if open}
49
- {#if fullImage}
50
- <div
51
- class="bg-opacity-75 fixed inset-0 z-[3000] mx-auto h-12 overflow-y-auto bg-gray-900 shadow-sm shadow-gray-50"
52
- >
53
- <div class="mx-4 flex h-full items-center justify-between p-2">
54
- <span class="font-semiblod tracking-wider text-white">{title}</span>
55
- <div class="flex items-center gap-4 text-white">
56
- <!-- <button on:click={zoomin} type="button"
57
- ><iconify-icon icon="ri:zoom-in-fill" class="hover:fill-red-600" /></button
58
- >
59
- <button on:click={zoomout} type="button"
60
- ><iconify-icon icon="mingcute:zoom-out-fill" class="hover:fill-green-600" /></button
61
- >
62
- <button class="grid place-content-center p-[1px]" type="button"
63
- ><iconify-icon
64
- icon="line-md:cloud-download-loop"
65
- class="hover:text-purple-600"
66
- style="font-size: 27px;"
67
- /></button
68
- > -->
69
- <button
70
- type="button"
71
- onclick={() => (open = false)}
72
- class="grid place-content-center rounded-full bg-red-500 p-[1px] hover:bg-red-600"
73
- >
74
- <IconifyIcon icon="ic:round-close" style="font-size: 25px;" />
75
- </button>
76
- </div>
77
- </div>
78
- </div>
79
- {/if}
80
-
81
- <div
82
- aria-live="assertive"
83
- class="pointer-events-none fixed inset-0 z-[3100] flex place-content-center items-center sm:items-start"
84
- >
85
- <div
86
- class="pointer-events-none flex h-full max-w-7xl flex-grow flex-col"
87
- in:fade={{ duration: 300, easing: cubicIn }}
88
- out:fade={{ duration: 200, easing: elasticInOut }}
89
- >
90
- <div class="h-16" style="line-height: 4rem">&nbsp;</div>
91
- <div class=" bg-opacity-75 pointer-events-auto flex-grow border-gray-200 transition-opacity">
92
- <div class=" grid h-full w-full">
93
- <div class="relative transform overflow-hidden transition-all sm:my-6">
94
- {#if ('content' in src && src?.content
95
- .substr(5, 10)
96
- .includes('image/')) || isImage(src?.content)}
97
- <div class="flex h-full w-full flex-col items-center justify-center gap-1">
98
- <div class="zoomed-image" style="transform: scale({scale});">
99
- <img
100
- id="map"
101
- src={src?.content}
102
- alt=""
103
- class="object-cover"
104
- class:w-96={!fullImage}
105
- />
106
- </div>
107
- {#if src?.name}
108
- <p class="text-center text-white">{src?.name}</p>
109
- {/if}
110
- </div>
111
- {:else if isPdf(src?.content)}
112
- <div class="h-full w-full items-center justify-center">
113
- <iframe src={src.content} title="attachment" class="h-full w-full"></iframe>
114
- {#if src?.name}
115
- <p class="text-center text-white">{src?.name}</p>
116
- {/if}
117
- </div>
118
- {:else}
119
- <div class="flex h-full flex-col items-center justify-center gap-1">
120
- <div class="">
121
- <IconifyIcon
122
- icon={'name' in src && src?.name.includes('.pdf')
123
- ? 'vscode-icons:file-type-pdf2'
124
- : src?.name.includes('.docx')
125
- ? 'vscode-icons:file-type-word'
126
- : src?.name.includes('.pptx')
127
- ? 'vscode-icons:file-type-powerpoint2'
128
- : src?.name.includes('.xlsx') || src?.name.includes('.cv')
129
- ? 'vscode-icons:file-type-excel'
130
- : 'bxs:file'}
131
- style="font-size: 150px;"
132
- />
133
- </div>
134
- {#if src?.name}
135
- <p class="text-center text-white">{src?.name}</p>
136
- {/if}
137
- </div>
138
- {/if}
139
- </div>
140
- {#if showActions}
141
- <div class="flex justify-center">
142
- <div class=" flex gap-6">
143
- <button
144
- type="button"
145
- aria-label="toggle modal"
146
- onclick={() => (open = false)}
147
- class="flex h-8 w-8 items-center justify-center rounded-full bg-red-500 text-white ring-8 ring-white hover:bg-red-800"
148
- >
149
- <IconifyIcon icon="ic:round-close" style="font-size: 24px;" />
150
- </button>
151
- <button
152
- type="button"
153
- aria-label="get image"
154
- onclick={(_) => {
155
- onGetImage?.(src);
156
- }}
157
- class="flex h-8 w-8 items-center justify-center rounded-full bg-green-500 text-white ring-8 ring-white hover:bg-green-800"
158
- >
159
- <IconifyIcon icon="majesticons:send" style="font-size: 20px;" />
160
- </button>
161
- </div>
162
- </div>
163
- {/if}
164
- </div>
165
- </div>
166
- </div>
167
- </div>
168
- {/if}
169
-
170
- <style>
171
- .image-container {
172
- overflow: hidden;
173
- width: 100%;
174
- max-width: 600px; /* Adjust as needed */
175
- height: auto;
176
- }
177
-
178
- .zoomed-image {
179
- transform-origin: center;
180
- transition: transform 0.2s ease;
181
- }
182
- </style>
1
+ <script lang="ts">
2
+ import { fade } from 'svelte/transition';
3
+ import type { PreviewPageProps } from './index.js';
4
+ import { cubicIn, elasticInOut } from 'svelte/easing';
5
+ import IconifyIcon from '../../ui/icons/IconifyIcon.svelte';
6
+ import { isImage, isPdf } from '../../index.js';
7
+
8
+ let {
9
+ open = $bindable(true),
10
+ fullImage = false,
11
+ showActions = true,
12
+ title = '',
13
+ onGetImage,
14
+ src = {
15
+ name: '',
16
+ content: '',
17
+ file: ''
18
+ }
19
+ }: PreviewPageProps = $props();
20
+
21
+ let scale = $state(1);
22
+ const maxScale = $state(3);
23
+ const minScale = $state(1);
24
+
25
+ function zoomin() {
26
+ if (scale < maxScale) {
27
+ scale += 0.1;
28
+ }
29
+ }
30
+
31
+ function zoomout() {
32
+ if (scale > minScale) {
33
+ scale -= 0.1;
34
+ }
35
+ }
36
+ </script>
37
+
38
+ {#if open}
39
+ <div class=" relative p-0 md:p-5 lg:p-10">
40
+ <div
41
+ class="bg-opacity-60 fixed inset-0 z-[3000] mx-auto bg-gray-500 transition-opacity"
42
+ in:fade={{ duration: 300, easing: cubicIn }}
43
+ out:fade={{ duration: 200, easing: elasticInOut }}
44
+ ></div>
45
+ </div>
46
+ {/if}
47
+
48
+ {#if open}
49
+ {#if fullImage}
50
+ <div
51
+ class="bg-opacity-75 fixed inset-0 z-[3000] mx-auto h-12 overflow-y-auto bg-gray-900 shadow-sm shadow-gray-50"
52
+ >
53
+ <div class="mx-4 flex h-full items-center justify-between p-2">
54
+ <span class="font-semiblod tracking-wider text-white">{title}</span>
55
+ <div class="flex items-center gap-4 text-white">
56
+ <!-- <button on:click={zoomin} type="button"
57
+ ><iconify-icon icon="ri:zoom-in-fill" class="hover:fill-red-600" /></button
58
+ >
59
+ <button on:click={zoomout} type="button"
60
+ ><iconify-icon icon="mingcute:zoom-out-fill" class="hover:fill-green-600" /></button
61
+ >
62
+ <button class="grid place-content-center p-[1px]" type="button"
63
+ ><iconify-icon
64
+ icon="line-md:cloud-download-loop"
65
+ class="hover:text-purple-600"
66
+ style="font-size: 27px;"
67
+ /></button
68
+ > -->
69
+ <button
70
+ type="button"
71
+ onclick={() => (open = false)}
72
+ class="grid place-content-center rounded-full bg-red-500 p-[1px] hover:bg-red-600"
73
+ >
74
+ <IconifyIcon icon="ic:round-close" style="font-size: 25px;" />
75
+ </button>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ {/if}
80
+
81
+ <div
82
+ aria-live="assertive"
83
+ class="pointer-events-none fixed inset-0 z-[3100] flex place-content-center items-center sm:items-start"
84
+ >
85
+ <div
86
+ class="pointer-events-none flex h-full max-w-7xl flex-grow flex-col"
87
+ in:fade={{ duration: 300, easing: cubicIn }}
88
+ out:fade={{ duration: 200, easing: elasticInOut }}
89
+ >
90
+ <div class="h-16" style="line-height: 4rem">&nbsp;</div>
91
+ <div class=" bg-opacity-75 pointer-events-auto flex-grow border-gray-200 transition-opacity">
92
+ <div class=" grid h-full w-full">
93
+ <div class="relative transform overflow-hidden transition-all sm:my-6">
94
+ {#if ('content' in src && src?.content
95
+ .substr(5, 10)
96
+ .includes('image/')) || isImage(src?.content)}
97
+ <div class="flex h-full w-full flex-col items-center justify-center gap-1">
98
+ <div class="zoomed-image" style="transform: scale({scale});">
99
+ <img
100
+ id="map"
101
+ src={src?.content}
102
+ alt=""
103
+ class="object-cover"
104
+ class:w-96={!fullImage}
105
+ />
106
+ </div>
107
+ {#if src?.name}
108
+ <p class="text-center text-white">{src?.name}</p>
109
+ {/if}
110
+ </div>
111
+ {:else if isPdf(src?.content)}
112
+ <div class="h-full w-full items-center justify-center">
113
+ <iframe src={src.content} title="attachment" class="h-full w-full"></iframe>
114
+ {#if src?.name}
115
+ <p class="text-center text-white">{src?.name}</p>
116
+ {/if}
117
+ </div>
118
+ {:else}
119
+ <div class="flex h-full flex-col items-center justify-center gap-1">
120
+ <div class="">
121
+ <IconifyIcon
122
+ icon={'name' in src && src?.name.includes('.pdf')
123
+ ? 'vscode-icons:file-type-pdf2'
124
+ : src?.name.includes('.docx')
125
+ ? 'vscode-icons:file-type-word'
126
+ : src?.name.includes('.pptx')
127
+ ? 'vscode-icons:file-type-powerpoint2'
128
+ : src?.name.includes('.xlsx') || src?.name.includes('.cv')
129
+ ? 'vscode-icons:file-type-excel'
130
+ : 'bxs:file'}
131
+ style="font-size: 150px;"
132
+ />
133
+ </div>
134
+ {#if src?.name}
135
+ <p class="text-center text-white">{src?.name}</p>
136
+ {/if}
137
+ </div>
138
+ {/if}
139
+ </div>
140
+ {#if showActions}
141
+ <div class="flex justify-center">
142
+ <div class=" flex gap-6">
143
+ <button
144
+ type="button"
145
+ aria-label="toggle modal"
146
+ onclick={() => (open = false)}
147
+ class="flex h-8 w-8 items-center justify-center rounded-full bg-red-500 text-white ring-8 ring-white hover:bg-red-800"
148
+ >
149
+ <IconifyIcon icon="ic:round-close" style="font-size: 24px;" />
150
+ </button>
151
+ <button
152
+ type="button"
153
+ aria-label="get image"
154
+ onclick={(_) => {
155
+ onGetImage?.(src);
156
+ }}
157
+ class="flex h-8 w-8 items-center justify-center rounded-full bg-green-500 text-white ring-8 ring-white hover:bg-green-800"
158
+ >
159
+ <IconifyIcon icon="majesticons:send" style="font-size: 20px;" />
160
+ </button>
161
+ </div>
162
+ </div>
163
+ {/if}
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ {/if}
169
+
170
+ <style>
171
+ .image-container {
172
+ overflow: hidden;
173
+ width: 100%;
174
+ max-width: 600px; /* Adjust as needed */
175
+ height: auto;
176
+ }
177
+
178
+ .zoomed-image {
179
+ transform-origin: center;
180
+ transition: transform 0.2s ease;
181
+ }
182
+ </style>