@rkosafo/cai.components 0.0.75 → 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 +57 -1
  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 -39
  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 -396
  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,172 +1,172 @@
1
- <script lang="ts">
2
- import { clickOutsideAction, DropdownItem } from '../../index.js';
3
- import { Avatar } from '../../ui/avatar/index.js';
4
- import { IconifyIcon } from '../../ui/icons/index.js';
5
- import { slide } from 'svelte/transition';
6
- import type { ChatHeaderProps } from './index.js';
7
-
8
- let {
9
- caseTitle = '',
10
- user = { name: '', profileImageUrl: '', initials: '' },
11
- caseTypes = '',
12
- assignedTo = '',
13
- showAssignedTo = false,
14
- showFollowCaseButton = false,
15
- showBackArrow = false,
16
- isFollowingCase = false,
17
- overflowActionsList = [],
18
- showOverflowActionButton = true,
19
- caseStatus = '',
20
- logoUrl = '',
21
- showFollowOverflowAction = true,
22
- showCloseOverflowAction = true,
23
- onOverflowActionClicked,
24
- onToggleFollowCase,
25
- leadingWidget,
26
- trailingWidget,
27
- caseDetailsWidget,
28
- onBackArrowClicked,
29
- onCloseCase
30
- }: ChatHeaderProps = $props();
31
-
32
- let showMenu = $state(false);
33
- </script>
34
-
35
- <div class="flex items-center justify-between">
36
- {#if caseDetailsWidget}
37
- {@render caseDetailsWidget?.()}
38
- {:else}
39
- <div class="flex w-full items-center gap-1.5">
40
- {@render leadingWidget?.()}
41
- {#if showBackArrow}
42
- <button aria-label="back" onclick={onBackArrowClicked}>
43
- <IconifyIcon
44
- icon="ep:back"
45
- class="block rounded-full p-2 hover:bg-gray-200 lg:hidden"
46
- style="font-size: 20px;"
47
- />
48
- </button>
49
- {/if}
50
- <div class="flex items-center gap-3">
51
- {#if user?.profileImageUrl}
52
- <Avatar
53
- src={user?.profileImageUrl}
54
- alt="pic"
55
- class="h-14 w-14 border text-lg font-medium"
56
- />
57
- {:else if user?.initials}
58
- <Avatar class="h-14 w-14 border bg-primary-500 text-lg font-medium text-white"
59
- >{user.initials}</Avatar
60
- >
61
- {:else}
62
- <Avatar src={logoUrl} alt="logo" class="h-14 w-14 border text-lg font-medium" />
63
- {/if}
64
- <div class="flex flex-col">
65
- <div class="font-medium capitalize">{user.name}</div>
66
- <div class="flex gap-2">
67
- <div class="max-w-xs truncate text-sm text-gray-500 capitalize">
68
- <span class=" font-medium text-black">Title:</span>
69
- <span title={caseTitle}>
70
- {caseTitle}
71
- </span>
72
- </div>
73
- <div class="text-sm text-gray-500 capitalize">
74
- <span class="font-medium text-black">status: </span>
75
- {caseStatus}
76
- </div>
77
- <div class="text-sm" class:hidden={!showAssignedTo}>
78
- <span>Assigned To :</span> <span class="text-gray-500">{assignedTo}</span>
79
- </div>
80
- </div>
81
- <div class="flex gap-2">
82
- <div class="max-w-xl truncate text-sm text-gray-500 capitalize">
83
- {caseTypes}
84
- </div>
85
- </div>
86
- {#if showFollowCaseButton}
87
- <div class="">
88
- <button
89
- onclick={() => onToggleFollowCase?.(isFollowingCase ? 'unfollow' : 'follow')}
90
- class="flex w-fit items-center gap-1 rounded bg-gray-200 px-2 py-0.5 text-xs hover:bg-gray-300"
91
- >
92
- <span>{isFollowingCase ? 'Unfollow' : 'Follow'}</span>
93
- <IconifyIcon icon={isFollowingCase ? 'mdi:eye-off' : 'mdi:eye'} />
94
- </button>
95
- </div>
96
- {/if}
97
- </div>
98
- </div>
99
- </div>
100
- {/if}
101
- {@render trailingWidget?.()}
102
- {#if showOverflowActionButton}
103
- <div class="w-10"></div>
104
- {/if}
105
-
106
- {#if showOverflowActionButton}
107
- <div
108
- class="relative space-y-2"
109
- use:clickOutsideAction
110
- onclickoutside={() => (showMenu = false)}
111
- >
112
- <button
113
- aria-label="toggle menu"
114
- class="grid place-content-center rounded-full p-1 text-gray-600 hover:bg-gray-200"
115
- onclick={() => (showMenu = !showMenu)}
116
- >
117
- <IconifyIcon icon="mdi:dots-vertical" style="font-size: 25px;" />
118
- </button>
119
- {#if showMenu}
120
- <div
121
- class="absolute right-3 z-10 flex w-44 flex-col divide-y rounded-md bg-white py-1 shadow-md shadow-gray-300"
122
- transition:slide
123
- use:clickOutsideAction
124
- >
125
- {#if showFollowOverflowAction}
126
- {#if !isFollowingCase}
127
- <DropdownItem
128
- class="flex w-full appearance-none items-center gap-1 whitespace-nowrap list-none"
129
- onclick={() => {
130
- onToggleFollowCase?.('follow');
131
- showMenu = false;
132
- }}><IconifyIcon icon="mdi:eye" style="font-size: 20px;" /> Follow Case</DropdownItem
133
- >
134
- {:else}
135
- <DropdownItem
136
- class="flex w-full appearance-none items-center gap-1 whitespace-nowrap list-none"
137
- onclick={() => {
138
- onToggleFollowCase?.('unfollow');
139
- showMenu = false;
140
- }}
141
- ><IconifyIcon icon="mdi:eye-off" style="font-size: 20px;" /> Unfollow Case</DropdownItem
142
- >
143
- {/if}
144
- {/if}
145
- {#if overflowActionsList.length > 0}
146
- {#each overflowActionsList as item}
147
- <DropdownItem
148
- class="flex w-full appearance-none items-center gap-1 whitespace-nowrap list-none"
149
- onclick={() => {
150
- onOverflowActionClicked?.(item);
151
- showMenu = false;
152
- }}
153
- ><IconifyIcon icon={item.icon} style="font-size: 20px;" />
154
- {item.label}</DropdownItem
155
- >
156
- {/each}
157
- {/if}
158
- {#if showCloseOverflowAction}
159
- <DropdownItem
160
- class="flex w-full appearance-none items-center gap-1 whitespace-nowrap text-red-600 list-none"
161
- onclick={() => {
162
- onCloseCase?.();
163
- showMenu = false;
164
- }}
165
- ><IconifyIcon icon="tabler:message-2-x" style="font-size: 20px;" /> Close Case</DropdownItem
166
- >
167
- {/if}
168
- </div>
169
- {/if}
170
- </div>
171
- {/if}
172
- </div>
1
+ <script lang="ts">
2
+ import { clickOutsideAction, DropdownItem } from '../../index.js';
3
+ import { Avatar } from '../../ui/avatar/index.js';
4
+ import { IconifyIcon } from '../../ui/icons/index.js';
5
+ import { slide } from 'svelte/transition';
6
+ import type { ChatHeaderProps } from './index.js';
7
+
8
+ let {
9
+ caseTitle = '',
10
+ user = { name: '', profileImageUrl: '', initials: '' },
11
+ caseTypes = '',
12
+ assignedTo = '',
13
+ showAssignedTo = false,
14
+ showFollowCaseButton = false,
15
+ showBackArrow = false,
16
+ isFollowingCase = false,
17
+ overflowActionsList = [],
18
+ showOverflowActionButton = true,
19
+ caseStatus = '',
20
+ logoUrl = '',
21
+ showFollowOverflowAction = true,
22
+ showCloseOverflowAction = true,
23
+ onOverflowActionClicked,
24
+ onToggleFollowCase,
25
+ leadingWidget,
26
+ trailingWidget,
27
+ caseDetailsWidget,
28
+ onBackArrowClicked,
29
+ onCloseCase
30
+ }: ChatHeaderProps = $props();
31
+
32
+ let showMenu = $state(false);
33
+ </script>
34
+
35
+ <div class="flex items-center justify-between">
36
+ {#if caseDetailsWidget}
37
+ {@render caseDetailsWidget?.()}
38
+ {:else}
39
+ <div class="flex w-full items-center gap-1.5">
40
+ {@render leadingWidget?.()}
41
+ {#if showBackArrow}
42
+ <button aria-label="back" onclick={onBackArrowClicked}>
43
+ <IconifyIcon
44
+ icon="ep:back"
45
+ class="block rounded-full p-2 hover:bg-gray-200 lg:hidden"
46
+ style="font-size: 20px;"
47
+ />
48
+ </button>
49
+ {/if}
50
+ <div class="flex items-center gap-3">
51
+ {#if user?.profileImageUrl}
52
+ <Avatar
53
+ src={user?.profileImageUrl}
54
+ alt="pic"
55
+ class="h-14 w-14 border text-lg font-medium"
56
+ />
57
+ {:else if user?.initials}
58
+ <Avatar class="h-14 w-14 border bg-primary-500 text-lg font-medium text-white"
59
+ >{user.initials}</Avatar
60
+ >
61
+ {:else}
62
+ <Avatar src={logoUrl} alt="logo" class="h-14 w-14 border text-lg font-medium" />
63
+ {/if}
64
+ <div class="flex flex-col">
65
+ <div class="font-medium capitalize">{user.name}</div>
66
+ <div class="flex gap-2">
67
+ <div class="max-w-xs truncate text-sm text-gray-500 capitalize">
68
+ <span class=" font-medium text-black">Title:</span>
69
+ <span title={caseTitle}>
70
+ {caseTitle}
71
+ </span>
72
+ </div>
73
+ <div class="text-sm text-gray-500 capitalize">
74
+ <span class="font-medium text-black">status: </span>
75
+ {caseStatus}
76
+ </div>
77
+ <div class="text-sm" class:hidden={!showAssignedTo}>
78
+ <span>Assigned To :</span> <span class="text-gray-500">{assignedTo}</span>
79
+ </div>
80
+ </div>
81
+ <div class="flex gap-2">
82
+ <div class="max-w-xl truncate text-sm text-gray-500 capitalize">
83
+ {caseTypes}
84
+ </div>
85
+ </div>
86
+ {#if showFollowCaseButton}
87
+ <div class="">
88
+ <button
89
+ onclick={() => onToggleFollowCase?.(isFollowingCase ? 'unfollow' : 'follow')}
90
+ class="flex w-fit items-center gap-1 rounded bg-gray-200 px-2 py-0.5 text-xs hover:bg-gray-300"
91
+ >
92
+ <span>{isFollowingCase ? 'Unfollow' : 'Follow'}</span>
93
+ <IconifyIcon icon={isFollowingCase ? 'mdi:eye-off' : 'mdi:eye'} />
94
+ </button>
95
+ </div>
96
+ {/if}
97
+ </div>
98
+ </div>
99
+ </div>
100
+ {/if}
101
+ {@render trailingWidget?.()}
102
+ {#if showOverflowActionButton}
103
+ <div class="w-10"></div>
104
+ {/if}
105
+
106
+ {#if showOverflowActionButton}
107
+ <div
108
+ class="relative space-y-2"
109
+ use:clickOutsideAction
110
+ onclickoutside={() => (showMenu = false)}
111
+ >
112
+ <button
113
+ aria-label="toggle menu"
114
+ class="grid place-content-center rounded-full p-1 text-gray-600 hover:bg-gray-200"
115
+ onclick={() => (showMenu = !showMenu)}
116
+ >
117
+ <IconifyIcon icon="mdi:dots-vertical" style="font-size: 25px;" />
118
+ </button>
119
+ {#if showMenu}
120
+ <div
121
+ class="absolute right-3 z-10 flex w-44 flex-col divide-y rounded-md bg-white py-1 shadow-md shadow-gray-300"
122
+ transition:slide
123
+ use:clickOutsideAction
124
+ >
125
+ {#if showFollowOverflowAction}
126
+ {#if !isFollowingCase}
127
+ <DropdownItem
128
+ class="flex w-full appearance-none items-center gap-1 whitespace-nowrap list-none"
129
+ onclick={() => {
130
+ onToggleFollowCase?.('follow');
131
+ showMenu = false;
132
+ }}><IconifyIcon icon="mdi:eye" style="font-size: 20px;" /> Follow Case</DropdownItem
133
+ >
134
+ {:else}
135
+ <DropdownItem
136
+ class="flex w-full appearance-none items-center gap-1 whitespace-nowrap list-none"
137
+ onclick={() => {
138
+ onToggleFollowCase?.('unfollow');
139
+ showMenu = false;
140
+ }}
141
+ ><IconifyIcon icon="mdi:eye-off" style="font-size: 20px;" /> Unfollow Case</DropdownItem
142
+ >
143
+ {/if}
144
+ {/if}
145
+ {#if overflowActionsList.length > 0}
146
+ {#each overflowActionsList as item}
147
+ <DropdownItem
148
+ class="flex w-full appearance-none items-center gap-1 whitespace-nowrap list-none"
149
+ onclick={() => {
150
+ onOverflowActionClicked?.(item);
151
+ showMenu = false;
152
+ }}
153
+ ><IconifyIcon icon={item.icon} style="font-size: 20px;" />
154
+ {item.label}</DropdownItem
155
+ >
156
+ {/each}
157
+ {/if}
158
+ {#if showCloseOverflowAction}
159
+ <DropdownItem
160
+ class="flex w-full appearance-none items-center gap-1 whitespace-nowrap text-red-600 list-none"
161
+ onclick={() => {
162
+ onCloseCase?.();
163
+ showMenu = false;
164
+ }}
165
+ ><IconifyIcon icon="tabler:message-2-x" style="font-size: 20px;" /> Close Case</DropdownItem
166
+ >
167
+ {/if}
168
+ </div>
169
+ {/if}
170
+ </div>
171
+ {/if}
172
+ </div>