@rkosafo/cai.components 0.0.78 → 0.0.80

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 (103) 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 -119
  13. package/dist/forms/button-toggle/CheckIcon.svelte +28 -28
  14. package/dist/forms/checkbox/Checkbox.svelte +82 -82
  15. package/dist/forms/checkbox/CheckboxButton.svelte +92 -92
  16. package/dist/forms/datepicker/Datepicker.svelte +707 -707
  17. package/dist/forms/form/Form.svelte +69 -69
  18. package/dist/forms/input/Input.svelte +363 -363
  19. package/dist/forms/label/Label.svelte +38 -38
  20. package/dist/forms/radio/Radio.svelte +48 -48
  21. package/dist/forms/radio/RadioButton.svelte +22 -22
  22. package/dist/forms/select/Select.svelte +56 -56
  23. package/dist/forms/textarea/Textarea.svelte +165 -165
  24. package/dist/forms/toggle/Toggle.svelte +70 -70
  25. package/dist/layout/Chat/CategorySelector.svelte +52 -52
  26. package/dist/layout/Chat/ChatEntry.svelte +246 -246
  27. package/dist/layout/Chat/ChatEntrySkeleton.svelte +81 -81
  28. package/dist/layout/Chat/ChatHeader.svelte +172 -172
  29. package/dist/layout/Chat/ChatInput.svelte +207 -207
  30. package/dist/layout/Chat/DraggableWindow.svelte +230 -230
  31. package/dist/layout/Chat/PreviewPage.svelte +182 -182
  32. package/dist/layout/Chat/RichText.svelte +216 -216
  33. package/dist/layout/ComponentCanvas/Canvas.svelte +40 -40
  34. package/dist/layout/ComponentCanvas/ComponentRenderer.svelte +85 -85
  35. package/dist/layout/TF/Content/Content.svelte +21 -21
  36. package/dist/layout/TF/Header/Header.svelte +166 -166
  37. package/dist/layout/TF/Sidebar/Sidebar.svelte +148 -148
  38. package/dist/layout/TF/Wrapper/Wrapper.svelte +17 -17
  39. package/dist/layout/mailing/MailPaginator.svelte +36 -36
  40. package/dist/layout/mailing/MailSidebar.svelte +39 -39
  41. package/dist/layout/mailing/MailToolBar.svelte +174 -174
  42. package/dist/layout/mailing/MailingContent.svelte +10 -10
  43. package/dist/layout/mailing/MailingHeader.svelte +55 -55
  44. package/dist/layout/mailing/MailingMessageCard.svelte +112 -112
  45. package/dist/layout/mailing/MailingMessageViewer.svelte +87 -87
  46. package/dist/layout/mailing/MailingModule.svelte +448 -448
  47. package/dist/styles/docs.css +615 -615
  48. package/dist/styles/tf-layout.css +185 -185
  49. package/dist/themes/ThemeProvider.svelte +20 -20
  50. package/dist/types/index.d.ts +2 -0
  51. package/dist/typography/heading/Heading.svelte +35 -35
  52. package/dist/ui/accordion/Accordion.svelte +49 -49
  53. package/dist/ui/accordion/AccordionItem.svelte +173 -173
  54. package/dist/ui/alert/Alert.svelte +83 -83
  55. package/dist/ui/alertDialog/AlertDialog.svelte +40 -40
  56. package/dist/ui/avatar/Avatar.svelte +77 -77
  57. package/dist/ui/box/Box.svelte +28 -28
  58. package/dist/ui/breadcrumb/Breadcrumb.svelte +39 -39
  59. package/dist/ui/buttons/ActionButton.svelte +234 -234
  60. package/dist/ui/buttons/Button.svelte +102 -102
  61. package/dist/ui/buttons/GradientButton.svelte +59 -59
  62. package/dist/ui/datatable/Datatable.svelte +525 -525
  63. package/dist/ui/drawer/Drawer.svelte +300 -300
  64. package/dist/ui/dropdown/Dropdown.svelte +36 -36
  65. package/dist/ui/dropdown/DropdownDivider.svelte +11 -11
  66. package/dist/ui/dropdown/DropdownGroup.svelte +14 -14
  67. package/dist/ui/dropdown/DropdownHeader.svelte +14 -14
  68. package/dist/ui/dropdown/DropdownItem.svelte +52 -52
  69. package/dist/ui/footer/Footer.svelte +15 -15
  70. package/dist/ui/footer/FooterBrand.svelte +37 -37
  71. package/dist/ui/footer/FooterCopyright.svelte +45 -45
  72. package/dist/ui/footer/FooterIcon.svelte +22 -22
  73. package/dist/ui/footer/FooterLink.svelte +33 -33
  74. package/dist/ui/footer/FooterLinkGroup.svelte +13 -13
  75. package/dist/ui/icons/IconifyIcon.svelte +7 -7
  76. package/dist/ui/indicator/Indicator.svelte +42 -42
  77. package/dist/ui/modal/Modal.svelte +265 -265
  78. package/dist/ui/notificationList/NotificationList.svelte +123 -123
  79. package/dist/ui/pageLoader/PageLoader.svelte +14 -14
  80. package/dist/ui/pageLoader/PageLoader2.svelte +99 -0
  81. package/dist/ui/pageLoader/PageLoader2.svelte.d.ts +24 -0
  82. package/dist/ui/pageLoader/index.d.ts +2 -1
  83. package/dist/ui/pageLoader/index.js +2 -1
  84. package/dist/ui/paginate/Paginate.svelte +96 -96
  85. package/dist/ui/speedDial/SpeedDial.svelte +77 -77
  86. package/dist/ui/speedDial/SpeedDialButton.svelte +75 -75
  87. package/dist/ui/speedDial/SpeedDialTrigger.svelte +79 -79
  88. package/dist/ui/tab/Tab.svelte +93 -67
  89. package/dist/ui/table/Table.svelte +396 -396
  90. package/dist/ui/tableLoader/TableLoader.svelte +24 -24
  91. package/dist/ui/toast/Toast.svelte +337 -337
  92. package/dist/ui/toast/Toast.svelte.d.ts +10 -10
  93. package/dist/ui/toolbar/Toolbar.svelte +59 -59
  94. package/dist/ui/toolbar/ToolbarButton.svelte +56 -56
  95. package/dist/ui/toolbar/ToolbarGroup.svelte +43 -43
  96. package/dist/ui/tooltip/Tooltip.svelte +51 -51
  97. package/dist/utils/Popper.svelte +257 -257
  98. package/dist/utils/closeButton/CloseButton.svelte +88 -88
  99. package/dist/utils/index.d.ts +2 -2
  100. package/dist/utils/index.js +3 -3
  101. package/dist/utils/singleSelection.svelte.js +48 -48
  102. package/dist/youtube/index.svelte +12 -12
  103. package/package.json +1 -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>