@makolabs/ripple 0.0.1-dev.7 → 0.0.1-dev.8

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 (114) hide show
  1. package/README.md +393 -53
  2. package/dist/button/Button.svelte +5 -3
  3. package/dist/button/Button.svelte.d.ts +1 -1
  4. package/dist/button/button.d.ts +40 -63
  5. package/dist/button/button.js +15 -14
  6. package/dist/charts/Chart.svelte +533 -0
  7. package/dist/charts/Chart.svelte.d.ts +4 -0
  8. package/dist/drawer/Drawer.svelte +13 -2
  9. package/dist/drawer/Drawer.svelte.d.ts +1 -1
  10. package/dist/drawer/drawer.d.ts +0 -17
  11. package/dist/elements/alert/Alert.svelte +53 -0
  12. package/dist/elements/alert/Alert.svelte.d.ts +4 -0
  13. package/dist/elements/badge/Badge.svelte +13 -5
  14. package/dist/elements/badge/Badge.svelte.d.ts +1 -1
  15. package/dist/elements/badge/badge.d.ts +0 -12
  16. package/dist/elements/dropdown/Dropdown.svelte +32 -37
  17. package/dist/elements/dropdown/Dropdown.svelte.d.ts +1 -1
  18. package/dist/elements/dropdown/Select.svelte +143 -59
  19. package/dist/elements/dropdown/Select.svelte.d.ts +1 -1
  20. package/dist/elements/dropdown/dropdown.d.ts +34 -57
  21. package/dist/elements/dropdown/dropdown.js +10 -4
  22. package/dist/elements/dropdown/select.d.ts +34 -54
  23. package/dist/elements/dropdown/select.js +22 -14
  24. package/dist/elements/file-upload/FileUpload.svelte +213 -0
  25. package/dist/elements/file-upload/FileUpload.svelte.d.ts +4 -0
  26. package/dist/elements/progress/Progress.svelte +87 -0
  27. package/dist/elements/progress/Progress.svelte.d.ts +4 -0
  28. package/dist/elements/timeline/Timeline.svelte +92 -0
  29. package/dist/elements/timeline/Timeline.svelte.d.ts +7 -0
  30. package/dist/forms/Checkbox.svelte +54 -0
  31. package/dist/forms/Checkbox.svelte.d.ts +4 -0
  32. package/dist/forms/DateRange.svelte +493 -0
  33. package/dist/forms/DateRange.svelte.d.ts +4 -0
  34. package/dist/forms/Form.svelte +39 -0
  35. package/dist/forms/Form.svelte.d.ts +4 -0
  36. package/dist/forms/Input.svelte +86 -0
  37. package/dist/forms/Input.svelte.d.ts +4 -0
  38. package/dist/forms/NumberInput.svelte +159 -0
  39. package/dist/forms/NumberInput.svelte.d.ts +4 -0
  40. package/dist/forms/RadioInputs.svelte +64 -0
  41. package/dist/forms/RadioInputs.svelte.d.ts +4 -0
  42. package/dist/forms/RadioPill.svelte +66 -0
  43. package/dist/forms/RadioPill.svelte.d.ts +4 -0
  44. package/dist/forms/Slider.svelte +342 -0
  45. package/dist/forms/Slider.svelte.d.ts +4 -0
  46. package/dist/forms/Tags.svelte +181 -0
  47. package/dist/forms/Tags.svelte.d.ts +4 -0
  48. package/dist/forms/Toggle.svelte +132 -0
  49. package/dist/forms/Toggle.svelte.d.ts +4 -0
  50. package/dist/forms/slider.d.ts +143 -0
  51. package/dist/forms/slider.js +62 -0
  52. package/dist/header/Breadcrumbs.svelte +2 -1
  53. package/dist/header/Breadcrumbs.svelte.d.ts +1 -1
  54. package/dist/header/PageHeader.svelte +2 -2
  55. package/dist/header/PageHeader.svelte.d.ts +1 -1
  56. package/dist/header/breadcrumbs.d.ts +20 -14
  57. package/dist/header/breadcrumbs.js +6 -0
  58. package/dist/header/pageheaders.d.ts +1 -1
  59. package/dist/helper/date.d.ts +7 -0
  60. package/dist/helper/date.js +15 -0
  61. package/dist/index.d.ts +742 -9
  62. package/dist/index.js +59 -16
  63. package/dist/layout/card/Card.svelte +5 -8
  64. package/dist/layout/card/Card.svelte.d.ts +1 -1
  65. package/dist/layout/card/StatsCard.svelte +116 -87
  66. package/dist/layout/card/card.d.ts +22 -33
  67. package/dist/layout/card/card.js +9 -8
  68. package/dist/layout/card/stats-card.d.ts +23 -25
  69. package/dist/layout/card/stats-card.js +13 -13
  70. package/dist/layout/navbar/navbar.d.ts +0 -23
  71. package/dist/layout/sidebar/NavGroup.svelte +20 -44
  72. package/dist/layout/sidebar/NavGroup.svelte.d.ts +1 -1
  73. package/dist/layout/sidebar/NavItem.svelte +1 -1
  74. package/dist/layout/sidebar/NavItem.svelte.d.ts +1 -1
  75. package/dist/layout/sidebar/Sidebar.svelte +19 -25
  76. package/dist/layout/sidebar/Sidebar.svelte.d.ts +1 -1
  77. package/dist/layout/table/table.d.ts +1 -1
  78. package/dist/layout/tabs/tabs.d.ts +1 -1
  79. package/dist/modal/Modal.svelte +2 -1
  80. package/dist/modal/Modal.svelte.d.ts +1 -1
  81. package/dist/modal/modal.d.ts +0 -23
  82. package/dist/sonner/sonner.svelte +13 -0
  83. package/dist/sonner/sonner.svelte.d.ts +4 -0
  84. package/dist/types/variants.d.ts +1 -21
  85. package/dist/types/variants.js +1 -19
  86. package/dist/variants.d.ts +20 -0
  87. package/dist/variants.js +19 -0
  88. package/package.json +6 -2
  89. package/dist/button/index.d.ts +0 -1
  90. package/dist/button/index.js +0 -1
  91. package/dist/drawer/index.d.ts +0 -2
  92. package/dist/drawer/index.js +0 -1
  93. package/dist/elements/badge/index.d.ts +0 -2
  94. package/dist/elements/badge/index.js +0 -2
  95. package/dist/elements/dropdown/index.d.ts +0 -3
  96. package/dist/elements/dropdown/index.js +0 -2
  97. package/dist/header/index.d.ts +0 -4
  98. package/dist/header/index.js +0 -2
  99. package/dist/layout/card/index.d.ts +0 -4
  100. package/dist/layout/card/index.js +0 -2
  101. package/dist/layout/index.d.ts +0 -5
  102. package/dist/layout/index.js +0 -5
  103. package/dist/layout/navbar/index.d.ts +0 -2
  104. package/dist/layout/navbar/index.js +0 -2
  105. package/dist/layout/sidebar/index.d.ts +0 -2
  106. package/dist/layout/sidebar/index.js +0 -1
  107. package/dist/layout/sidebar/sidebar.d.ts +0 -46
  108. package/dist/layout/sidebar/sidebar.js +0 -1
  109. package/dist/layout/table/index.d.ts +0 -3
  110. package/dist/layout/table/index.js +0 -2
  111. package/dist/layout/tabs/index.d.ts +0 -3
  112. package/dist/layout/tabs/index.js +0 -3
  113. package/dist/modal/index.d.ts +0 -1
  114. package/dist/modal/index.js +0 -1
package/dist/index.js CHANGED
@@ -1,18 +1,61 @@
1
- // Button components
2
- export * from './button/index.js';
3
- // Modal components
4
- export * from './modal/index.js';
5
- // Drawer components
6
- export * from './drawer/index.js';
7
- // Header components
8
- export * from './header/index.js';
9
- // Layout components
10
- export * from './layout/index.js';
11
- // Elements
12
- export * from './elements/dropdown/index.js';
13
- export * from './elements/badge/index.js';
14
- // Types
15
- export * from './types/variants.js';
1
+ import { Color } from './variants.js';
16
2
  // Helper utilities
17
3
  export { tv, cn } from './helper/cls.js';
18
- export * from './helper/nav.svelte.js';
4
+ export { isRouteActive } from './helper/nav.svelte.js';
5
+ // Direct Component Exports
6
+ // Button
7
+ export { default as Button } from './button/Button.svelte';
8
+ // Modal
9
+ export { default as Modal } from './modal/Modal.svelte';
10
+ // Drawer
11
+ export { default as Drawer } from './drawer/Drawer.svelte';
12
+ // Header
13
+ export { default as PageHeader } from './header/PageHeader.svelte';
14
+ export { default as Breadcrumbs } from './header/Breadcrumbs.svelte';
15
+ // Elements
16
+ export { default as Badge } from './elements/badge/Badge.svelte';
17
+ export { default as Dropdown } from './elements/dropdown/Dropdown.svelte';
18
+ export { default as Select } from './elements/dropdown/Select.svelte';
19
+ // Elements - Card
20
+ export { default as Card } from './layout/card/Card.svelte';
21
+ export { default as StatsCard } from './layout/card/StatsCard.svelte';
22
+ // Elements - Alert
23
+ export { default as Alert } from './elements/alert/Alert.svelte';
24
+ // Elements - Tabs
25
+ export { default as Tab } from './layout/tabs/Tab.svelte';
26
+ export { default as TabContent } from './layout/tabs/TabContent.svelte';
27
+ export { default as TabGroup } from './layout/tabs/TabGroup.svelte';
28
+ // Elements - Table
29
+ export { default as Table } from './layout/table/Table.svelte';
30
+ export { default as Cells } from './layout/table/Cells.svelte';
31
+ // Elements - Navbar
32
+ export { default as Navbar } from './layout/navbar/Navbar.svelte';
33
+ // Elements - Sidebar
34
+ export { default as Sidebar } from './layout/sidebar/Sidebar.svelte';
35
+ export { default as NavItem } from './layout/sidebar/NavItem.svelte';
36
+ export { default as NavGroup } from './layout/sidebar/NavGroup.svelte';
37
+ // Component Variant Utilities
38
+ export { dropdownMenu } from './elements/dropdown/dropdown.js';
39
+ export { badge } from './elements/badge/badge.js';
40
+ export { buttonVariants } from './button/button.js';
41
+ export { modal } from './modal/modal.js';
42
+ export { drawer } from './drawer/drawer.js';
43
+ export { selectTV } from './elements/dropdown/select.js';
44
+ export { breadcrumbs } from './header/breadcrumbs.js';
45
+ export { default as Chart } from './charts/Chart.svelte';
46
+ export { default as FileUpload } from './elements/file-upload/FileUpload.svelte';
47
+ // Toaster: Should be registered in +layout.svelte
48
+ export { default as Toaster } from './sonner/sonner.svelte';
49
+ // Form Component Exports
50
+ export { default as Form } from './forms/Form.svelte';
51
+ export { default as Input } from './forms/Input.svelte';
52
+ export { default as RadioInputs } from './forms/RadioInputs.svelte';
53
+ export { default as Checkbox } from './forms/Checkbox.svelte';
54
+ export { default as Toggle } from './forms/Toggle.svelte';
55
+ export { default as Slider } from './forms/Slider.svelte';
56
+ export { default as NumberInput } from './forms/NumberInput.svelte';
57
+ export { default as DateRange } from './forms/DateRange.svelte';
58
+ export { default as Tags } from './forms/Tags.svelte';
59
+ export { default as RadioPill } from './forms/RadioPill.svelte';
60
+ export { default as Progress } from './elements/progress/Progress.svelte';
61
+ export { default as Timeline } from './elements/timeline/Timeline.svelte';
@@ -1,27 +1,24 @@
1
1
  <script lang="ts">
2
2
  import { cn } from '../../helper/cls.js';
3
- import { card, type CardProps } from './card.js';
3
+ import { card } from './card.js';
4
+ import type { CardProps } from '../../index.js';
5
+ import { Color } from '../../variants.js';
4
6
 
5
7
  let {
6
8
  children,
7
9
  custom,
8
10
  title,
9
- color = 'default',
11
+ color = Color.DEFAULT,
10
12
  class: className = '',
11
13
  titleclass: titleClass = '',
12
14
  bodyclass: bodyClass = ''
13
15
  }: CardProps = $props();
14
16
 
15
- // Get the slots from the card with fixed default settings
16
17
  const {
17
18
  base,
18
19
  title: titleSlot,
19
20
  body: bodySlot
20
- } = $derived(
21
- card({
22
- color
23
- })
24
- );
21
+ } = $derived(card({ color }));
25
22
 
26
23
  const baseClass = $derived(cn(base(), className));
27
24
  const titleClasses = $derived(cn(titleSlot(), titleClass));
@@ -1,4 +1,4 @@
1
- import { type CardProps } from './card.js';
1
+ import type { CardProps } from '../../index.js';
2
2
  declare const Card: import("svelte").Component<CardProps, {}, "">;
3
3
  type Card = ReturnType<typeof Card>;
4
4
  export default Card;
@@ -11,6 +11,7 @@
11
11
  import { GridComponent } from 'echarts/components';
12
12
  // @ts-expect-error - ECharts types are not available
13
13
  import { SVGRenderer } from 'echarts/renderers';
14
+ import { Color } from '../../variants.js';
14
15
 
15
16
  // @ts-expect-error - ECharts types are not available
16
17
  echarts.use([LineChart, GridComponent, SVGRenderer]);
@@ -21,11 +22,11 @@
21
22
  previousValue,
22
23
  previousValuePrefix = 'from',
23
24
  trend,
24
- color = 'default',
25
+ color = Color.PRIMARY,
25
26
  chartData,
26
27
  children,
27
28
  class: className = '',
28
- formatLargeNumbers = true,
29
+ formatLargeNumbers = true
29
30
  }: StatsCardProps = $props();
30
31
 
31
32
  // Chart container reference
@@ -37,8 +38,7 @@
37
38
  if (trendX === undefined || trendX === null) return 'neutral';
38
39
  if (trendX > 0) {
39
40
  return 'up';
40
- }
41
- else if (trendX < 0) {
41
+ } else if (trendX < 0) {
42
42
  return 'down';
43
43
  }
44
44
  return 'neutral';
@@ -46,56 +46,84 @@
46
46
 
47
47
  function formatValue(val?: string | number): string {
48
48
  if (val === undefined || val === null) return '';
49
+
50
+ let numValue: number;
51
+ let currencySymbol: string | null = null;
52
+
53
+ // Handle string inputs
49
54
  if (typeof val === 'string') {
50
- const cleanedStr = val.replace(/,/g, '');
55
+ // Check for currency symbols
56
+ const currencyMatch = val.match(/^(\$|€|£|¥)/);
57
+ if (currencyMatch) {
58
+ currencySymbol = currencyMatch[0];
59
+ }
60
+
61
+ // Extract the numeric value
62
+ const cleanedStr = val.replace(/[^0-9.-]/g, '');
51
63
  if (/^-?\d+(\.\d+)?$/.test(cleanedStr)) {
52
- const numValue = parseFloat(cleanedStr);
53
- return formatValue(numValue);
64
+ numValue = parseFloat(cleanedStr);
65
+ } else {
66
+ // Not a number we can format
67
+ return val;
54
68
  }
55
- return val;
69
+ } else {
70
+ // Already a number
71
+ numValue = val;
56
72
  }
57
73
 
58
- if (!formatLargeNumbers) return val.toString();
59
-
60
- if (Math.abs(val) >= 1_000_000) {
61
- return (val / 1_000_000).toFixed(1).replace(/\.0$/, '') + 'M';
62
- } else if (Math.abs(val) >= 1_000) {
63
- return (val / 1_000).toFixed(1).replace(/\.0$/, '') + 'K';
74
+ // Format based on whether it's currency and size
75
+ if (currencySymbol) {
76
+ // Currency formatting with compact notation if needed
77
+ return new Intl.NumberFormat('en-US', {
78
+ style: 'currency',
79
+ currency: currencySymbolToCode(currencySymbol),
80
+ notation: formatLargeNumbers ? 'compact' : 'standard',
81
+ compactDisplay: 'short',
82
+ maximumFractionDigits: 1
83
+ }).format(numValue);
84
+ } else {
85
+ // Regular number formatting with compact notation if needed
86
+ return new Intl.NumberFormat('en-US', {
87
+ notation: formatLargeNumbers ? 'compact' : 'standard',
88
+ compactDisplay: 'short',
89
+ maximumFractionDigits: 1
90
+ }).format(numValue);
64
91
  }
65
-
66
- return val.toString();
67
92
  }
68
93
 
69
- function getChartColor() {
70
- switch (color) {
71
- case 'primary':
72
- return '#4F46E5';
73
- case 'secondary':
74
- return '#6B7280';
75
- case 'info':
76
- return '#3B82F6';
77
- case 'success':
78
- return '#10B981';
79
- case 'warning':
80
- return '#F59E0B';
81
- case 'danger':
82
- return '#EF4444';
83
- default:
84
- return '#6B7280';
85
- }
94
+ // Helper function to convert currency symbols to ISO codes
95
+ function currencySymbolToCode(symbol: string): string {
96
+ const map: Record<string, string> = {
97
+ $: 'USD',
98
+ '€': 'EUR',
99
+ '£': 'GBP',
100
+ '¥': 'JPY'
101
+ };
102
+ return map[symbol] || 'USD';
86
103
  }
87
104
 
105
+ const chartColorMap = {
106
+ [Color.PRIMARY]: '#4F46E5',
107
+ [Color.SECONDARY]: '#6B7280',
108
+ [Color.INFO]: '#3B82F6',
109
+ [Color.SUCCESS]: '#10B981',
110
+ [Color.WARNING]: '#F59E0B',
111
+ [Color.DANGER]: '#EF4444',
112
+ [Color.DEFAULT]: '#6B7280'
113
+ };
114
+
88
115
  const trendDirection = $derived(getTrendDirection(trend));
89
116
  const formattedValue = $derived(formatValue(value));
90
- const formattedPreviousValue = $derived(previousValue !== undefined ? formatValue(previousValue) : undefined);
117
+ const formattedPreviousValue = $derived(
118
+ previousValue !== undefined ? formatValue(previousValue) : undefined
119
+ );
91
120
 
92
121
  const {
93
122
  base,
94
123
  label: labelSlot,
95
124
  value: valueSlot,
96
125
  trend: trendSlot,
97
- previousValue: previousValueSlot,
98
- chartContainer: chartContainerSlot
126
+ previousValue: previousValueSlot
99
127
  } = $derived(
100
128
  statsCard({
101
129
  color,
@@ -103,12 +131,10 @@
103
131
  })
104
132
  );
105
133
 
106
- const baseClass = $derived(cn(base(), 'flex flex-col p-6 rounded-lg border border-gray-200 bg-white shadow-sm', className));
107
134
  const labelClasses = $derived(cn(labelSlot(), 'text-sm font-medium mb-1'));
108
135
  const valueClasses = $derived(cn(valueSlot(), 'text-4xl font-bold'));
109
136
  const trendClasses = $derived(cn(trendSlot(), 'text-sm font-medium ml-2'));
110
137
  const previousValueClasses = $derived(cn(previousValueSlot(), 'text-sm text-gray-500 mt-1'));
111
- const chartContainerClasses = $derived(cn(chartContainerSlot(), 'ml-auto h-10 w-32'));
112
138
 
113
139
  const trendFormatted = $derived.by(() => {
114
140
  if (trend === undefined || trend === null) return '';
@@ -117,8 +143,7 @@
117
143
  return trend >= 0 ? `+${formattedValue}%` : `-${formattedValue}%`;
118
144
  });
119
145
 
120
- // Chart color based on card color
121
- const chartColor = $derived(getChartColor());
146
+ const chartColor = $derived(chartColorMap[color] || chartColorMap[Color.DEFAULT]);
122
147
 
123
148
  onMount(() => {
124
149
  if (!chartData || chartData.length < 2 || !chartContainer) return;
@@ -143,41 +168,43 @@
143
168
  type: 'value',
144
169
  show: false
145
170
  },
146
- series: [{
147
- data: chartData,
148
- type: 'line',
149
- symbol: 'none',
150
- lineStyle: {
151
- color: chartColor,
152
- width: 2
153
- },
154
- areaStyle: {
155
- color: {
156
- type: 'linear',
157
- x: 0,
158
- y: 0,
159
- x2: 0,
160
- y2: 1,
161
- colorStops: [
162
- {
163
- offset: 0,
164
- color: chartColor + '40' // 25% opacity
165
- },
166
- {
167
- offset: 1,
168
- color: chartColor + '00' // 0% opacity
169
- }
170
- ]
171
- }
172
- },
173
- smooth: true
174
- }],
175
- animation: false
171
+ series: [
172
+ {
173
+ data: chartData,
174
+ type: 'line',
175
+ symbol: 'none',
176
+ lineStyle: {
177
+ color: chartColor,
178
+ width: 2
179
+ },
180
+ areaStyle: {
181
+ color: {
182
+ type: 'linear',
183
+ x: 0,
184
+ y: 0,
185
+ x2: 0,
186
+ y2: 1,
187
+ colorStops: [
188
+ {
189
+ offset: 0,
190
+ color: chartColor + '40' // 25% opacity
191
+ },
192
+ {
193
+ offset: 1,
194
+ color: chartColor + '00' // 0% opacity
195
+ }
196
+ ]
197
+ }
198
+ },
199
+ smooth: true
200
+ }
201
+ ],
202
+ animation: false,
203
+ animationDuration: 1000
176
204
  };
177
205
 
178
206
  chart.setOption(options);
179
207
 
180
- // Handle resize
181
208
  const resizeObserver = new ResizeObserver(() => {
182
209
  chart && chart.resize();
183
210
  });
@@ -191,40 +218,42 @@
191
218
  });
192
219
  </script>
193
220
 
194
- <div class={baseClass}>
195
- <!-- Header with label and trend -->
196
- <div class="flex justify-between items-center">
221
+ <div
222
+ class={cn(
223
+ base(),
224
+ '@container flex flex-col rounded-lg border border-gray-200 bg-white p-6 shadow-sm',
225
+ className
226
+ )}
227
+ >
228
+ <div class="flex items-center justify-between">
197
229
  {#if label}
198
230
  <dt class={labelClasses}>{label}</dt>
199
231
  {/if}
200
232
  {#if trend !== undefined && trend !== null}
201
- <span class={trendClasses}>
202
- {trendFormatted}
203
- </span>
233
+ <span class={trendClasses}>
234
+ {trendFormatted}
235
+ </span>
204
236
  {/if}
205
237
  </div>
206
238
 
207
- <!-- Main content area with value and optional chart -->
208
- <div class="flex items-center mt-1">
209
- <!-- Value section -->
210
- <div class="flex-grow">
239
+ <div class="mt-1 flex flex-row items-center overflow-clip">
240
+ <div class="w-full flex-grow">
211
241
  {#if value !== undefined}
212
- <dd class={valueClasses}>
242
+ <dd class={valueClasses} title={value}>
213
243
  {formattedValue}
214
244
  </dd>
215
245
  {/if}
216
246
 
217
- <!-- Previous value or tagline underneath -->
218
247
  {#if previousValue !== undefined}
219
248
  <div class={previousValueClasses}>
220
- {previousValuePrefix} {formattedPreviousValue}
249
+ {previousValuePrefix}
250
+ {formattedPreviousValue}
221
251
  </div>
222
252
  {/if}
223
253
  </div>
224
254
 
225
- <!-- ECharts chart -->
226
255
  {#if chartData && chartData.length > 1}
227
- <div class={chartContainerClasses} bind:this={chartContainer}></div>
256
+ <div class="h-10 w-full min-w-32 @max-[212.862px]:hidden" bind:this={chartContainer}></div>
228
257
  {/if}
229
258
  </div>
230
259
 
@@ -233,4 +262,4 @@
233
262
  {@render children()}
234
263
  </div>
235
264
  {/if}
236
- </div>
265
+ </div>
@@ -1,39 +1,37 @@
1
- import type { ClassValue } from 'tailwind-variants';
2
- import type { Snippet } from 'svelte';
3
- import type { VariantColors } from '../../types/variants.js';
1
+ import { Color } from '../../variants.js';
4
2
  export declare const card: import("tailwind-variants").TVReturnType<{
5
3
  color: {
6
- default: {
4
+ [Color.DEFAULT]: {
7
5
  base: string;
8
6
  title: string;
9
7
  body: string;
10
8
  };
11
- primary: {
9
+ [Color.PRIMARY]: {
12
10
  base: string;
13
11
  title: string;
14
12
  body: string;
15
13
  };
16
- secondary: {
14
+ [Color.SECONDARY]: {
17
15
  base: string;
18
16
  title: string;
19
17
  body: string;
20
18
  };
21
- info: {
19
+ [Color.INFO]: {
22
20
  base: string;
23
21
  title: string;
24
22
  body: string;
25
23
  };
26
- success: {
24
+ [Color.SUCCESS]: {
27
25
  base: string;
28
26
  title: string;
29
27
  body: string;
30
28
  };
31
- warning: {
29
+ [Color.WARNING]: {
32
30
  base: string;
33
31
  title: string;
34
32
  body: string;
35
33
  };
36
- danger: {
34
+ [Color.DANGER]: {
37
35
  base: string;
38
36
  title: string;
39
37
  body: string;
@@ -45,37 +43,37 @@ export declare const card: import("tailwind-variants").TVReturnType<{
45
43
  body: string;
46
44
  }, undefined, {
47
45
  color: {
48
- default: {
46
+ [Color.DEFAULT]: {
49
47
  base: string;
50
48
  title: string;
51
49
  body: string;
52
50
  };
53
- primary: {
51
+ [Color.PRIMARY]: {
54
52
  base: string;
55
53
  title: string;
56
54
  body: string;
57
55
  };
58
- secondary: {
56
+ [Color.SECONDARY]: {
59
57
  base: string;
60
58
  title: string;
61
59
  body: string;
62
60
  };
63
- info: {
61
+ [Color.INFO]: {
64
62
  base: string;
65
63
  title: string;
66
64
  body: string;
67
65
  };
68
- success: {
66
+ [Color.SUCCESS]: {
69
67
  base: string;
70
68
  title: string;
71
69
  body: string;
72
70
  };
73
- warning: {
71
+ [Color.WARNING]: {
74
72
  base: string;
75
73
  title: string;
76
74
  body: string;
77
75
  };
78
- danger: {
76
+ [Color.DANGER]: {
79
77
  base: string;
80
78
  title: string;
81
79
  body: string;
@@ -87,37 +85,37 @@ export declare const card: import("tailwind-variants").TVReturnType<{
87
85
  body: string;
88
86
  }, import("tailwind-variants").TVReturnType<{
89
87
  color: {
90
- default: {
88
+ [Color.DEFAULT]: {
91
89
  base: string;
92
90
  title: string;
93
91
  body: string;
94
92
  };
95
- primary: {
93
+ [Color.PRIMARY]: {
96
94
  base: string;
97
95
  title: string;
98
96
  body: string;
99
97
  };
100
- secondary: {
98
+ [Color.SECONDARY]: {
101
99
  base: string;
102
100
  title: string;
103
101
  body: string;
104
102
  };
105
- info: {
103
+ [Color.INFO]: {
106
104
  base: string;
107
105
  title: string;
108
106
  body: string;
109
107
  };
110
- success: {
108
+ [Color.SUCCESS]: {
111
109
  base: string;
112
110
  title: string;
113
111
  body: string;
114
112
  };
115
- warning: {
113
+ [Color.WARNING]: {
116
114
  base: string;
117
115
  title: string;
118
116
  body: string;
119
117
  };
120
- danger: {
118
+ [Color.DANGER]: {
121
119
  base: string;
122
120
  title: string;
123
121
  body: string;
@@ -128,12 +126,3 @@ export declare const card: import("tailwind-variants").TVReturnType<{
128
126
  title: string;
129
127
  body: string;
130
128
  }, undefined, unknown, unknown, undefined>>;
131
- export type CardProps = {
132
- color?: VariantColors;
133
- title?: string;
134
- class?: ClassValue;
135
- titleclass?: ClassValue;
136
- bodyclass?: ClassValue;
137
- children?: Snippet;
138
- custom?: Snippet;
139
- };
@@ -1,4 +1,5 @@
1
1
  import { tv } from 'tailwind-variants';
2
+ import { Color } from '../../variants.js';
2
3
  export const card = tv({
3
4
  slots: {
4
5
  base: 'flex flex-col p-4 gap-2 border rounded-md shadow-sm',
@@ -7,37 +8,37 @@ export const card = tv({
7
8
  },
8
9
  variants: {
9
10
  color: {
10
- default: {
11
+ [Color.DEFAULT]: {
11
12
  base: 'bg-default-50 border-default-200',
12
13
  title: 'text-default-900',
13
14
  body: 'text-default-700'
14
15
  },
15
- primary: {
16
+ [Color.PRIMARY]: {
16
17
  base: 'bg-primary-50 border-primary-200',
17
18
  title: 'text-primary-900',
18
19
  body: 'text-primary-700'
19
20
  },
20
- secondary: {
21
+ [Color.SECONDARY]: {
21
22
  base: 'bg-secondary-50 border-secondary-200',
22
23
  title: 'text-secondary-900',
23
24
  body: 'text-secondary-700'
24
25
  },
25
- info: {
26
+ [Color.INFO]: {
26
27
  base: 'bg-info-50 border-info-200',
27
28
  title: 'text-info-900',
28
29
  body: 'text-info-700'
29
30
  },
30
- success: {
31
+ [Color.SUCCESS]: {
31
32
  base: 'bg-success-50 border-success-200',
32
33
  title: 'text-success-900',
33
34
  body: 'text-success-700'
34
35
  },
35
- warning: {
36
+ [Color.WARNING]: {
36
37
  base: 'bg-warning-50 border-warning-200',
37
38
  title: 'text-warning-900',
38
39
  body: 'text-warning-700'
39
40
  },
40
- danger: {
41
+ [Color.DANGER]: {
41
42
  base: 'bg-danger-50 border-danger-200',
42
43
  title: 'text-danger-900',
43
44
  body: 'text-danger-700'
@@ -45,6 +46,6 @@ export const card = tv({
45
46
  }
46
47
  },
47
48
  defaultVariants: {
48
- color: 'default'
49
+ color: Color.DEFAULT
49
50
  }
50
51
  });