@makolabs/ripple 0.0.1-dev.3 → 0.0.1-dev.31

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 (116) hide show
  1. package/README.md +571 -98
  2. package/dist/button/Button.svelte +48 -0
  3. package/dist/button/Button.svelte.d.ts +4 -0
  4. package/dist/button/button.d.ts +113 -0
  5. package/dist/button/button.js +168 -0
  6. package/dist/charts/Chart.svelte +543 -0
  7. package/dist/charts/Chart.svelte.d.ts +4 -0
  8. package/dist/drawer/Drawer.svelte +224 -0
  9. package/dist/drawer/Drawer.svelte.d.ts +4 -0
  10. package/dist/drawer/drawer.d.ts +160 -0
  11. package/dist/drawer/drawer.js +80 -0
  12. package/dist/elements/alert/Alert.svelte +57 -0
  13. package/dist/elements/alert/Alert.svelte.d.ts +4 -0
  14. package/dist/elements/badge/Badge.svelte +43 -0
  15. package/dist/elements/badge/Badge.svelte.d.ts +4 -0
  16. package/dist/elements/badge/badge.d.ts +181 -0
  17. package/dist/elements/badge/badge.js +65 -0
  18. package/dist/elements/dropdown/Dropdown.svelte +267 -0
  19. package/dist/elements/dropdown/Dropdown.svelte.d.ts +4 -0
  20. package/dist/elements/dropdown/Select.svelte +314 -0
  21. package/dist/elements/dropdown/Select.svelte.d.ts +4 -0
  22. package/dist/elements/dropdown/dropdown.d.ts +251 -0
  23. package/dist/elements/dropdown/dropdown.js +95 -0
  24. package/dist/elements/dropdown/select.d.ts +200 -0
  25. package/dist/elements/dropdown/select.js +82 -0
  26. package/dist/elements/file-upload/FileUpload.svelte +130 -0
  27. package/dist/elements/file-upload/FileUpload.svelte.d.ts +4 -0
  28. package/dist/elements/file-upload/FilesPreview.svelte +93 -0
  29. package/dist/elements/file-upload/FilesPreview.svelte.d.ts +4 -0
  30. package/dist/elements/progress/Progress.svelte +145 -0
  31. package/dist/elements/progress/Progress.svelte.d.ts +4 -0
  32. package/dist/elements/timeline/Timeline.svelte +92 -0
  33. package/dist/elements/timeline/Timeline.svelte.d.ts +7 -0
  34. package/dist/forms/Checkbox.svelte +54 -0
  35. package/dist/forms/Checkbox.svelte.d.ts +4 -0
  36. package/dist/forms/DateRange.svelte +493 -0
  37. package/dist/forms/DateRange.svelte.d.ts +4 -0
  38. package/dist/forms/Form.svelte +39 -0
  39. package/dist/forms/Form.svelte.d.ts +4 -0
  40. package/dist/forms/Input.svelte +86 -0
  41. package/dist/forms/Input.svelte.d.ts +4 -0
  42. package/dist/forms/NumberInput.svelte +159 -0
  43. package/dist/forms/NumberInput.svelte.d.ts +4 -0
  44. package/dist/forms/RadioInputs.svelte +64 -0
  45. package/dist/forms/RadioInputs.svelte.d.ts +4 -0
  46. package/dist/forms/RadioPill.svelte +66 -0
  47. package/dist/forms/RadioPill.svelte.d.ts +4 -0
  48. package/dist/forms/Slider.svelte +342 -0
  49. package/dist/forms/Slider.svelte.d.ts +4 -0
  50. package/dist/forms/Tags.svelte +181 -0
  51. package/dist/forms/Tags.svelte.d.ts +4 -0
  52. package/dist/forms/Toggle.svelte +132 -0
  53. package/dist/forms/Toggle.svelte.d.ts +4 -0
  54. package/dist/forms/slider.d.ts +143 -0
  55. package/dist/forms/slider.js +62 -0
  56. package/dist/header/Breadcrumbs.svelte +73 -0
  57. package/dist/header/Breadcrumbs.svelte.d.ts +4 -0
  58. package/dist/header/PageHeader.svelte +30 -0
  59. package/dist/header/PageHeader.svelte.d.ts +4 -0
  60. package/dist/header/breadcrumbs.d.ts +226 -0
  61. package/dist/header/breadcrumbs.js +87 -0
  62. package/dist/helper/cls.d.ts +1 -0
  63. package/dist/helper/cls.js +4 -0
  64. package/dist/helper/date.d.ts +7 -0
  65. package/dist/helper/date.js +15 -0
  66. package/dist/helper/nav.svelte.d.ts +6 -0
  67. package/dist/helper/nav.svelte.js +23 -0
  68. package/dist/index.d.ts +731 -1
  69. package/dist/index.js +70 -1
  70. package/dist/layout/card/Card.svelte +41 -0
  71. package/dist/layout/card/Card.svelte.d.ts +4 -0
  72. package/dist/layout/card/StatsCard.svelte +266 -0
  73. package/dist/layout/card/StatsCard.svelte.d.ts +4 -0
  74. package/dist/layout/card/card.d.ts +128 -0
  75. package/dist/layout/card/card.js +51 -0
  76. package/dist/layout/card/stats-card.d.ts +191 -0
  77. package/dist/layout/card/stats-card.js +73 -0
  78. package/dist/layout/navbar/Navbar.svelte +206 -0
  79. package/dist/layout/navbar/Navbar.svelte.d.ts +4 -0
  80. package/dist/layout/navbar/navbar.d.ts +205 -0
  81. package/dist/layout/navbar/navbar.js +98 -0
  82. package/dist/layout/sidebar/NavGroup.svelte +97 -0
  83. package/dist/layout/sidebar/NavGroup.svelte.d.ts +4 -0
  84. package/dist/layout/sidebar/NavItem.svelte +29 -0
  85. package/dist/layout/sidebar/NavItem.svelte.d.ts +4 -0
  86. package/dist/layout/sidebar/Sidebar.svelte +139 -0
  87. package/dist/layout/sidebar/Sidebar.svelte.d.ts +4 -0
  88. package/dist/layout/table/Cells.svelte +111 -0
  89. package/dist/layout/table/Cells.svelte.d.ts +27 -0
  90. package/dist/layout/table/Table.svelte +413 -0
  91. package/dist/layout/table/Table.svelte.d.ts +4 -0
  92. package/dist/layout/table/table.d.ts +284 -0
  93. package/dist/layout/table/table.js +141 -0
  94. package/dist/layout/tabs/Tab.svelte +57 -0
  95. package/dist/layout/tabs/Tab.svelte.d.ts +4 -0
  96. package/dist/layout/tabs/TabContent.svelte +31 -0
  97. package/dist/layout/tabs/TabContent.svelte.d.ts +4 -0
  98. package/dist/layout/tabs/TabGroup.svelte +57 -0
  99. package/dist/layout/tabs/TabGroup.svelte.d.ts +4 -0
  100. package/dist/layout/tabs/tabs.d.ts +155 -0
  101. package/dist/layout/tabs/tabs.js +156 -0
  102. package/dist/modal/Modal.svelte +207 -0
  103. package/dist/modal/Modal.svelte.d.ts +4 -0
  104. package/dist/modal/modal.d.ts +211 -0
  105. package/dist/modal/modal.js +81 -0
  106. package/dist/sonner/sonner.svelte +13 -0
  107. package/dist/sonner/sonner.svelte.d.ts +4 -0
  108. package/dist/types/variants.d.ts +1 -0
  109. package/dist/types/variants.js +1 -0
  110. package/dist/variants.d.ts +30 -0
  111. package/dist/variants.js +36 -0
  112. package/package.json +104 -102
  113. package/dist/layout/Card.svelte +0 -179
  114. package/dist/layout/Card.svelte.d.ts +0 -208
  115. package/dist/layout/index.d.ts +0 -1
  116. package/dist/layout/index.js +0 -1
@@ -0,0 +1,141 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const table = tv({
3
+ slots: {
4
+ base: 'w-full',
5
+ wrapper: 'overflow-x-auto',
6
+ table: 'min-w-full divide-y divide-default-200',
7
+ thead: '',
8
+ tbody: 'divide-y divide-default-200',
9
+ tr: 'transition-colors hover:bg-default-50',
10
+ th: 'font-semibold whitespace-nowrap',
11
+ td: 'whitespace-nowrap',
12
+ footer: 'p-4',
13
+ pagination: 'flex items-center justify-between',
14
+ emptyState: 'p-8 text-center text-default-500',
15
+ sortButton: 'inline-flex gap-1 items-center cursor-pointer focus:outline-none',
16
+ sortIcon: 'h-4 w-4'
17
+ },
18
+ variants: {
19
+ size: {
20
+ xs: {
21
+ th: 'px-2 py-1.5 text-xs',
22
+ td: 'px-2 py-1.5 text-xs'
23
+ },
24
+ sm: {
25
+ th: 'px-3 py-2 text-xs',
26
+ td: 'px-3 py-2 text-sm'
27
+ },
28
+ base: {
29
+ th: 'px-4 py-3 text-sm',
30
+ td: 'px-4 py-3 text-sm'
31
+ },
32
+ lg: {
33
+ th: 'px-6 py-4 text-sm',
34
+ td: 'px-6 py-4 text-base'
35
+ },
36
+ xl: {
37
+ th: 'px-8 py-5 text-base',
38
+ td: 'px-8 py-5 text-base'
39
+ },
40
+ '2xl': {
41
+ th: 'px-10 py-6 text-lg',
42
+ td: 'px-10 py-6 text-lg'
43
+ }
44
+ },
45
+ color: {
46
+ default: {
47
+ th: 'text-default-700 bg-default-50'
48
+ },
49
+ primary: {
50
+ th: 'text-primary-700 bg-primary-50',
51
+ tr: 'hover:bg-primary-50'
52
+ },
53
+ secondary: {
54
+ th: 'text-secondary-700 bg-secondary-50',
55
+ tr: 'hover:bg-secondary-50'
56
+ },
57
+ info: {
58
+ th: 'text-info-700 bg-info-50',
59
+ tr: 'hover:bg-info-50'
60
+ },
61
+ success: {
62
+ th: 'text-success-700 bg-success-50',
63
+ tr: 'hover:bg-success-50'
64
+ },
65
+ warning: {
66
+ th: 'text-warning-700 bg-warning-50',
67
+ tr: 'hover:bg-warning-50'
68
+ },
69
+ danger: {
70
+ th: 'text-danger-700 bg-danger-50',
71
+ tr: 'hover:bg-danger-50'
72
+ }
73
+ },
74
+ bordered: {
75
+ true: {
76
+ table: 'border-separate border-spacing-0 border border-default-200 rounded-md overflow-hidden',
77
+ th: 'border-b border-default-200',
78
+ td: 'border-b border-default-200'
79
+ },
80
+ false: {
81
+ table: 'border-none'
82
+ }
83
+ },
84
+ striped: {
85
+ true: {
86
+ tr: 'even:bg-default-50'
87
+ }
88
+ }
89
+ },
90
+ compoundVariants: [
91
+ // Add compound variants for striped + color combinations
92
+ {
93
+ striped: true,
94
+ color: 'primary',
95
+ class: {
96
+ tr: 'even:bg-primary-50'
97
+ }
98
+ },
99
+ {
100
+ striped: true,
101
+ color: 'secondary',
102
+ class: {
103
+ tr: 'even:bg-secondary-50'
104
+ }
105
+ },
106
+ {
107
+ striped: true,
108
+ color: 'info',
109
+ class: {
110
+ tr: 'even:bg-info-50'
111
+ }
112
+ },
113
+ {
114
+ striped: true,
115
+ color: 'success',
116
+ class: {
117
+ tr: 'even:bg-success-50'
118
+ }
119
+ },
120
+ {
121
+ striped: true,
122
+ color: 'warning',
123
+ class: {
124
+ tr: 'even:bg-warning-50'
125
+ }
126
+ },
127
+ {
128
+ striped: true,
129
+ color: 'danger',
130
+ class: {
131
+ tr: 'even:bg-danger-50'
132
+ }
133
+ }
134
+ ],
135
+ defaultVariants: {
136
+ size: 'base',
137
+ color: 'default',
138
+ bordered: true,
139
+ striped: false
140
+ }
141
+ });
@@ -0,0 +1,57 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../helper/cls.js';
3
+ import { tabs, type TabProps } from './tabs.js';
4
+
5
+ let {
6
+ value = '',
7
+ label = '',
8
+ icon: Icon = undefined,
9
+ selected = false,
10
+ disabled = false,
11
+ color = 'primary',
12
+ size = 'base',
13
+ onclick = () => {}
14
+ }: TabProps = $props();
15
+
16
+ function handleClick(event: Event & { currentTarget: EventTarget & HTMLButtonElement }) {
17
+ event.preventDefault();
18
+ if (!disabled) {
19
+ onclick(event);
20
+ }
21
+ }
22
+
23
+ const { trigger } = $derived(
24
+ tabs({
25
+ selected,
26
+ color,
27
+ size
28
+ })
29
+ );
30
+
31
+ const triggerClass = $derived(cn(trigger()));
32
+ </script>
33
+
34
+ <button
35
+ class={triggerClass}
36
+ aria-current={selected ? 'page' : undefined}
37
+ aria-disabled={disabled ? 'true' : undefined}
38
+ tabindex={disabled ? -1 : 0}
39
+ role="tab"
40
+ id={`tab-${value}`}
41
+ aria-controls={`panel-${value}`}
42
+ aria-selected={selected ? 'true' : 'false'}
43
+ onclick={handleClick}
44
+ onkeydown={(e) => {
45
+ if (e.key === 'Enter' || e.key === ' ') {
46
+ e.preventDefault();
47
+ handleClick(e);
48
+ }
49
+ }}
50
+ >
51
+ {#if Icon}
52
+ <span class="mr-2">
53
+ <Icon aria-hidden="true" class="size-5" />
54
+ </span>
55
+ {/if}
56
+ <span>{label}</span>
57
+ </button>
@@ -0,0 +1,4 @@
1
+ import { type TabProps } from './tabs.js';
2
+ declare const Tab: import("svelte").Component<TabProps, {}, "">;
3
+ type Tab = ReturnType<typeof Tab>;
4
+ export default Tab;
@@ -0,0 +1,31 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../helper/cls.js';
3
+ import type { TabContentProps } from './tabs.js';
4
+ import { getContext } from 'svelte';
5
+ import type { HTMLAttributes } from 'svelte/elements';
6
+
7
+ let { value = '', persisted = false, panelClass = '', children }: TabContentProps = $props();
8
+
9
+ const getSelected = getContext('getSelected') as () => string;
10
+ const selected = $derived(getSelected());
11
+ const tabPanelClass = $derived(cn(panelClass));
12
+ const active = $derived(selected === value);
13
+
14
+ let divProps: HTMLAttributes<HTMLDivElement> = $derived({
15
+ id: `panel-${value}`,
16
+ role: 'tabpanel',
17
+ class: tabPanelClass,
18
+ 'aria-labelledby': `tab-${value}`,
19
+ tabindex: 0
20
+ });
21
+ </script>
22
+
23
+ {#if persisted}
24
+ <div {...divProps} style={active ? 'display: block' : 'display: none'}>
25
+ {@render children?.(value)}
26
+ </div>
27
+ {:else if active}
28
+ <div {...divProps}>
29
+ {@render children?.(value)}
30
+ </div>
31
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { TabContentProps } from './tabs.js';
2
+ declare const TabContent: import("svelte").Component<TabContentProps, {}, "">;
3
+ type TabContent = ReturnType<typeof TabContent>;
4
+ export default TabContent;
@@ -0,0 +1,57 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../helper/cls.js';
3
+ import Tab from './Tab.svelte';
4
+ import { tabs, type TabsGroupProps } from './tabs.js';
5
+ import { setContext } from 'svelte';
6
+
7
+ let {
8
+ tabs: tabItems = [],
9
+ selected = $bindable(''),
10
+ color = 'primary',
11
+ size = 'base',
12
+ class: className = '',
13
+ listClass = '',
14
+ panelClass = '',
15
+ onchange = () => {},
16
+ children
17
+ }: TabsGroupProps = $props();
18
+
19
+ const { base, list, panel } = $derived(
20
+ tabs({
21
+ color,
22
+ size
23
+ })
24
+ );
25
+
26
+ const baseClass = $derived(cn(base(), className));
27
+ const listClass_ = $derived(cn(list(), listClass));
28
+ const panelClass_ = $derived(cn(panel(), panelClass));
29
+
30
+ function handleTabClick(value: string) {
31
+ selected = value;
32
+ onchange(value);
33
+ }
34
+
35
+ setContext('getSelected', () => selected);
36
+ </script>
37
+
38
+ <div class={baseClass}>
39
+ <div class={listClass_} role="tablist">
40
+ {#each tabItems as tab (tab.value)}
41
+ <Tab
42
+ value={tab.value}
43
+ label={tab.label}
44
+ icon={tab.icon}
45
+ selected={tab.value === selected}
46
+ disabled={tab.disabled}
47
+ {color}
48
+ {size}
49
+ onclick={() => handleTabClick(tab.value)}
50
+ />
51
+ {/each}
52
+ </div>
53
+
54
+ <div class={panelClass_}>
55
+ {@render children?.(selected)}
56
+ </div>
57
+ </div>
@@ -0,0 +1,4 @@
1
+ import { type TabsGroupProps } from './tabs.js';
2
+ declare const TabGroup: import("svelte").Component<TabsGroupProps, {}, "selected">;
3
+ type TabGroup = ReturnType<typeof TabGroup>;
4
+ export default TabGroup;
@@ -0,0 +1,155 @@
1
+ import type { ClassValue } from 'tailwind-variants';
2
+ import type { Component, Snippet } from 'svelte';
3
+ import type { VariantColors, VariantSizes } from '../../index.js';
4
+ export type TabItem = {
5
+ value: string;
6
+ label: string;
7
+ icon?: Component;
8
+ disabled?: boolean;
9
+ };
10
+ export type TabProps = {
11
+ value: string;
12
+ label: string;
13
+ icon?: Component;
14
+ selected?: boolean;
15
+ disabled?: boolean;
16
+ color?: VariantColors;
17
+ size?: VariantSizes;
18
+ onclick?: (event: Event) => void;
19
+ };
20
+ export type TabsGroupProps = {
21
+ tabs: TabItem[];
22
+ selected?: string;
23
+ color?: VariantColors;
24
+ size?: VariantSizes;
25
+ class?: ClassValue;
26
+ listClass?: ClassValue;
27
+ triggerClass?: ClassValue;
28
+ panelClass?: ClassValue;
29
+ children?: Snippet<[active: string]>;
30
+ onchange?: (value: string) => void;
31
+ };
32
+ export type TabContentProps = {
33
+ value: string;
34
+ persisted?: boolean;
35
+ panelClass?: ClassValue;
36
+ children?: Snippet<[value: string]>;
37
+ };
38
+ export declare const tabs: import("tailwind-variants").TVReturnType<{
39
+ color: {
40
+ primary: {};
41
+ secondary: {};
42
+ success: {};
43
+ warning: {};
44
+ danger: {};
45
+ info: {};
46
+ default: {};
47
+ };
48
+ size: {
49
+ xs: {
50
+ trigger: string;
51
+ };
52
+ sm: {
53
+ trigger: string;
54
+ };
55
+ base: {
56
+ trigger: string;
57
+ };
58
+ lg: {
59
+ trigger: string;
60
+ };
61
+ xl: {
62
+ trigger: string;
63
+ };
64
+ '2xl': {
65
+ trigger: string;
66
+ };
67
+ };
68
+ selected: {
69
+ true: {};
70
+ false: {};
71
+ };
72
+ }, {
73
+ base: string;
74
+ list: string;
75
+ trigger: string;
76
+ panel: string;
77
+ }, undefined, {
78
+ color: {
79
+ primary: {};
80
+ secondary: {};
81
+ success: {};
82
+ warning: {};
83
+ danger: {};
84
+ info: {};
85
+ default: {};
86
+ };
87
+ size: {
88
+ xs: {
89
+ trigger: string;
90
+ };
91
+ sm: {
92
+ trigger: string;
93
+ };
94
+ base: {
95
+ trigger: string;
96
+ };
97
+ lg: {
98
+ trigger: string;
99
+ };
100
+ xl: {
101
+ trigger: string;
102
+ };
103
+ '2xl': {
104
+ trigger: string;
105
+ };
106
+ };
107
+ selected: {
108
+ true: {};
109
+ false: {};
110
+ };
111
+ }, {
112
+ base: string;
113
+ list: string;
114
+ trigger: string;
115
+ panel: string;
116
+ }, import("tailwind-variants").TVReturnType<{
117
+ color: {
118
+ primary: {};
119
+ secondary: {};
120
+ success: {};
121
+ warning: {};
122
+ danger: {};
123
+ info: {};
124
+ default: {};
125
+ };
126
+ size: {
127
+ xs: {
128
+ trigger: string;
129
+ };
130
+ sm: {
131
+ trigger: string;
132
+ };
133
+ base: {
134
+ trigger: string;
135
+ };
136
+ lg: {
137
+ trigger: string;
138
+ };
139
+ xl: {
140
+ trigger: string;
141
+ };
142
+ '2xl': {
143
+ trigger: string;
144
+ };
145
+ };
146
+ selected: {
147
+ true: {};
148
+ false: {};
149
+ };
150
+ }, {
151
+ base: string;
152
+ list: string;
153
+ trigger: string;
154
+ panel: string;
155
+ }, undefined, unknown, unknown, undefined>>;
@@ -0,0 +1,156 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const tabs = tv({
3
+ slots: {
4
+ base: 'w-full',
5
+ list: 'flex border-b border-default-200',
6
+ trigger: 'inline-flex items-center px-3 py-2 text-sm transition-all duration-200 ease-in-out cursor-pointer -mb-px border-b-2 border-transparent',
7
+ panel: 'mt-4 px-3'
8
+ },
9
+ variants: {
10
+ color: {
11
+ primary: {},
12
+ secondary: {},
13
+ success: {},
14
+ warning: {},
15
+ danger: {},
16
+ info: {},
17
+ default: {}
18
+ },
19
+ size: {
20
+ xs: {
21
+ trigger: 'px-2 py-1 text-xs'
22
+ },
23
+ sm: {
24
+ trigger: 'px-2 py-1 text-xs'
25
+ },
26
+ base: {
27
+ trigger: 'px-3 py-2 text-sm'
28
+ },
29
+ lg: {
30
+ trigger: 'px-4 py-2.5 text-base'
31
+ },
32
+ xl: {
33
+ trigger: 'px-5 py-3 text-lg'
34
+ },
35
+ '2xl': {
36
+ trigger: 'px-6 py-4 text-xl'
37
+ }
38
+ },
39
+ selected: {
40
+ true: {},
41
+ false: {}
42
+ }
43
+ },
44
+ compoundVariants: [
45
+ // LINE VARIANT - PRIMARY
46
+ {
47
+ color: 'primary',
48
+ selected: true,
49
+ class: {
50
+ trigger: 'text-primary-600 border-b-2 border-primary-500'
51
+ }
52
+ },
53
+ {
54
+ color: 'primary',
55
+ selected: false,
56
+ class: {
57
+ trigger: 'text-default-500 hover:text-primary-500'
58
+ }
59
+ },
60
+ // LINE VARIANT - SECONDARY
61
+ {
62
+ color: 'secondary',
63
+ selected: true,
64
+ class: {
65
+ trigger: 'text-secondary-600 border-b-2 border-secondary-500'
66
+ }
67
+ },
68
+ {
69
+ color: 'secondary',
70
+ selected: false,
71
+ class: {
72
+ trigger: 'text-default-500 hover:text-secondary-500'
73
+ }
74
+ },
75
+ // LINE VARIANT - SUCCESS
76
+ {
77
+ color: 'success',
78
+ selected: true,
79
+ class: {
80
+ trigger: 'text-success-600 border-b-2 border-success-500'
81
+ }
82
+ },
83
+ {
84
+ color: 'success',
85
+ selected: false,
86
+ class: {
87
+ trigger: 'text-default-500 hover:text-success-500'
88
+ }
89
+ },
90
+ // LINE VARIANT - WARNING
91
+ {
92
+ color: 'warning',
93
+ selected: true,
94
+ class: {
95
+ trigger: 'text-warning-600 border-b-2 border-warning-500'
96
+ }
97
+ },
98
+ {
99
+ color: 'warning',
100
+ selected: false,
101
+ class: {
102
+ trigger: 'text-default-500 hover:text-warning-500'
103
+ }
104
+ },
105
+ // LINE VARIANT - DANGER
106
+ {
107
+ color: 'danger',
108
+ selected: true,
109
+ class: {
110
+ trigger: 'text-danger-600 border-b-2 border-danger-500'
111
+ }
112
+ },
113
+ {
114
+ color: 'danger',
115
+ selected: false,
116
+ class: {
117
+ trigger: 'text-default-500 hover:text-danger-500'
118
+ }
119
+ },
120
+ // LINE VARIANT - INFO
121
+ {
122
+ color: 'info',
123
+ selected: true,
124
+ class: {
125
+ trigger: 'text-info-600 border-b-2 border-info-500'
126
+ }
127
+ },
128
+ {
129
+ color: 'info',
130
+ selected: false,
131
+ class: {
132
+ trigger: 'text-default-500 hover:text-info-500'
133
+ }
134
+ },
135
+ // LINE VARIANT - DEFAULT
136
+ {
137
+ color: 'default',
138
+ selected: true,
139
+ class: {
140
+ trigger: 'text-default-600 border-b-2 border-default-500'
141
+ }
142
+ },
143
+ {
144
+ color: 'default',
145
+ selected: false,
146
+ class: {
147
+ trigger: 'text-default-500 hover:text-default-700'
148
+ }
149
+ }
150
+ ],
151
+ defaultVariants: {
152
+ color: 'primary',
153
+ size: 'base',
154
+ selected: false
155
+ }
156
+ });