@rkosafo/cai.components 0.0.75 → 0.0.79

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 (39) hide show
  1. package/dist/forms/button-toggle/ButtonToggle.svelte +119 -0
  2. package/dist/forms/button-toggle/ButtonToggle.svelte.d.ts +139 -0
  3. package/dist/forms/button-toggle/ButtonToggleGroup.svelte +0 -0
  4. package/dist/forms/button-toggle/ButtonToggleGroup.svelte.d.ts +26 -0
  5. package/dist/forms/button-toggle/CheckIcon.svelte +28 -0
  6. package/dist/forms/button-toggle/CheckIcon.svelte.d.ts +4 -0
  7. package/dist/forms/button-toggle/index.d.ts +4 -0
  8. package/dist/forms/button-toggle/index.js +4 -0
  9. package/dist/forms/button-toggle/theme.d.ts +347 -0
  10. package/dist/forms/button-toggle/theme.js +129 -0
  11. package/dist/forms/toggle/Toggle.svelte +70 -0
  12. package/dist/forms/toggle/Toggle.svelte.d.ts +3 -0
  13. package/dist/forms/toggle/index.d.ts +2 -0
  14. package/dist/forms/toggle/index.js +2 -0
  15. package/dist/forms/toggle/theme.d.ts +280 -0
  16. package/dist/forms/toggle/theme.js +97 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.js +3 -0
  19. package/dist/themes/themes.d.ts +3 -0
  20. package/dist/themes/themes.js +3 -0
  21. package/dist/types/index.d.ts +59 -1
  22. package/dist/ui/modal/theme.d.ts +26 -26
  23. package/dist/ui/modal/theme.js +25 -25
  24. package/dist/ui/speedDial/SpeedDial.svelte +77 -0
  25. package/dist/ui/speedDial/SpeedDial.svelte.d.ts +21 -0
  26. package/dist/ui/speedDial/SpeedDialButton.svelte +75 -0
  27. package/dist/ui/speedDial/SpeedDialButton.svelte.d.ts +20 -0
  28. package/dist/ui/speedDial/SpeedDialTrigger.svelte +79 -0
  29. package/dist/ui/speedDial/SpeedDialTrigger.svelte.d.ts +18 -0
  30. package/dist/ui/speedDial/index.d.ts +4 -0
  31. package/dist/ui/speedDial/index.js +4 -0
  32. package/dist/ui/speedDial/theme.d.ts +75 -0
  33. package/dist/ui/speedDial/theme.js +35 -0
  34. package/dist/ui/tab/Tab.svelte +45 -19
  35. package/dist/ui/toast/index.d.ts +1 -2
  36. package/dist/ui/toast/index.js +3 -1
  37. package/dist/utils/index.d.ts +1 -0
  38. package/dist/utils/index.js +10 -0
  39. package/package.json +2 -1
@@ -0,0 +1,35 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const speedDial = tv({
3
+ slots: {
4
+ base: 'group bg-transparent',
5
+ popper: 'flex items-center gap-2 bg-transparent text-inherit'
6
+ },
7
+ variants: {
8
+ vertical: {
9
+ true: { popper: 'flex-col' }
10
+ }
11
+ },
12
+ defaultVariants: {
13
+ vertical: false
14
+ }
15
+ });
16
+ export const speedDialButton = tv({
17
+ slots: {
18
+ base: 'w-[52px] h-[52px] shadow-xs p-0',
19
+ span: 'mb-px text-xs font-medium'
20
+ },
21
+ variants: {
22
+ noTooltip: {
23
+ false: {},
24
+ true: {}
25
+ },
26
+ textOutside: {
27
+ true: {
28
+ base: 'relative',
29
+ span: 'absolute -start-12 top-1/2 mb-px text-sm font-medium -translate-y-1/2'
30
+ }
31
+ }
32
+ },
33
+ compoundVariants: [{ noTooltip: true, textOutside: false, class: { base: 'flex flex-col' } }],
34
+ defaultVariants: {}
35
+ });
@@ -1,14 +1,31 @@
1
1
  <script lang="ts">
2
2
  import { CloseButton, type TabProps } from '../../index.js';
3
+ import clsx from 'clsx';
4
+ import { tabs as tabsTheme } from './theme.js';
3
5
 
4
6
  let {
5
7
  activeTab = $bindable(0),
6
8
  tabs = [],
9
+ tabColor = 'bg-primary-500',
10
+ tabClass,
11
+ tabActiveClass,
12
+ tabInactiveClass,
13
+ tabContentClass,
14
+ tabContentActiveClass,
15
+ tabContentInactiveClass,
16
+ tabStyle = 'none',
17
+ divider = true,
7
18
  onTabChange,
8
19
  onRemoveTab,
9
- onTabAdd
20
+ onTabAdd,
21
+ hideTabs = true
10
22
  }: TabProps = $props();
11
23
 
24
+ const tabStyles = tabsTheme({
25
+ tabStyle,
26
+ hasDivider: divider
27
+ });
28
+
12
29
  function changeTab(id: number | string) {
13
30
  activeTab = id;
14
31
  onTabChange?.(id);
@@ -16,16 +33,18 @@
16
33
  </script>
17
34
 
18
35
  <div class="relative flex h-full w-full flex-col">
19
- <div class="mb-4 flex flex-wrap space-x-3 border-b border-gray-300">
36
+ <div
37
+ class:hidden={!hideTabs}
38
+ class={clsx('mb-4 flex flex-wrap border-b border-gray-300', tabStyles.base(), tabClass)}
39
+ >
20
40
  {#each tabs as tab}
21
41
  <button
22
- class="rounded-t-md border-b-2 px-4 py-2"
23
- class:bg-primary-500={activeTab === tab.id}
24
- class:text-white={activeTab === tab.id}
25
- class:text-gray-600={activeTab !== tab.id}
26
- class:hover:bg-gray-100={activeTab !== tab.id}
27
- class:border-transparent={activeTab !== tab.id}
28
- class:border-white={activeTab === tab.id}
42
+ class={clsx(
43
+ 'rounded-t-md border-b-2 px-4 py-2',
44
+ activeTab === tab.id
45
+ ? [tabStyles.active(), tabActiveClass, tabColor, 'text-white']
46
+ : [tabStyles.inactive(), tabInactiveClass]
47
+ )}
29
48
  onclick={() => changeTab(tab.id)}
30
49
  >
31
50
  <div class="flex items-center gap-2">
@@ -38,9 +57,11 @@
38
57
  {#if tab.isClosable}
39
58
  <CloseButton
40
59
  size="sm"
41
- class=" {activeTab === tab.id
42
- ? 'text-white hover:bg-white/20'
43
- : 'text-gray-600 hover:bg-gray-200'}"
60
+ class={clsx(
61
+ activeTab === tab.id
62
+ ? 'text-white hover:bg-white/20'
63
+ : 'text-gray-600 hover:bg-gray-200'
64
+ )}
44
65
  onclick={(e: any) => {
45
66
  onRemoveTab?.({ tabId: tab.id });
46
67
  e.stopPropagation();
@@ -50,16 +71,21 @@
50
71
  </div>
51
72
  </button>
52
73
  {/each}
74
+ {#if divider}
75
+ <div class={tabStyles.divider()}></div>
76
+ {/if}
53
77
  </div>
54
78
 
55
- <div class=" h-full w-full">
79
+ <div class="h-full w-full">
56
80
  {#each tabs as tab (tab.id)}
57
- <div class:hidden={activeTab !== tab.id} class="h-full w-full">
58
- <!-- {@render tab.children({
59
- ...tab,
60
- onTabAdd,
61
- onRemoveTab
62
- })} -->
81
+ <div
82
+ class:hidden={activeTab !== tab.id}
83
+ class={clsx(
84
+ 'h-full w-full',
85
+ tabContentClass,
86
+ activeTab === tab.id ? tabContentActiveClass : tabContentInactiveClass
87
+ )}
88
+ >
63
89
  <tab.children {...tab} {...tab.props} {onTabAdd} {onRemoveTab} />
64
90
  </div>
65
91
  {/each}
@@ -1,2 +1 @@
1
- export { default as Toaster, toast } from './Toast.svelte';
2
- export type { ToasterProps, ToastType, CustomToastOptions, ToastTheme } from './Toast.svelte';
1
+ export * from 'svelte-french-toast';
@@ -1 +1,3 @@
1
- export { default as Toaster, toast } from './Toast.svelte';
1
+ // export { default as Toaster, toast } from './Toast.svelte';
2
+ // export type { ToasterProps, ToastType, CustomToastOptions, ToastTheme } from './Toast.svelte';
3
+ export * from 'svelte-french-toast';
@@ -14,6 +14,7 @@ export declare const send: (node: any, params: import("svelte/transition").Cross
14
14
  key: any;
15
15
  }) => () => import("svelte/transition").TransitionConfig;
16
16
  export declare function getInitials(val?: string): string;
17
+ export declare function getInitials2(x: string): string;
17
18
  export declare function findTicketCategoryParents(selectedItem: ICaseCategory, data: ICaseCategory[]): string[] | null;
18
19
  export declare function formatTicketDate(x: any): string;
19
20
  export declare function formatTicketHeader(x: any): string;
@@ -61,6 +61,16 @@ export function getInitials(val) {
61
61
  .map((x) => x[0])
62
62
  .join('');
63
63
  }
64
+ export function getInitials2(x) {
65
+ if (!x)
66
+ return '';
67
+ var xs = x.trim().split(' ');
68
+ if (xs.length === 1)
69
+ return x[0].toUpperCase();
70
+ if (xs.length === 0)
71
+ return 'X';
72
+ return `${xs[0][0]}${xs[xs.length - 1][0]}`.toUpperCase();
73
+ }
64
74
  export function findTicketCategoryParents(selectedItem, data) {
65
75
  function findParentsRecursive(category, categories) {
66
76
  for (const item of categories) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rkosafo/cai.components",
3
- "version": "0.0.75",
3
+ "version": "0.0.79",
4
4
  "files": [
5
5
  "dist",
6
6
  "!dist/**/*.test.*",
@@ -49,6 +49,7 @@
49
49
  "dependencies": {
50
50
  "@felte/validator-zod": "^1.0.18",
51
51
  "@floating-ui/dom": "^1.7.3",
52
+ "@floating-ui/utils": "^0.2.10",
52
53
  "@tiptap/core": "^3.0.7",
53
54
  "@tiptap/extension-list": "^3.0.7",
54
55
  "@tiptap/extension-text-style": "^3.0.7",