@makolabs/ripple 1.2.2 → 1.2.4
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.
- package/README.md +77 -0
- package/dist/adapters/ai/OpenAIAdapter.js +16 -11
- package/dist/adapters/ai/types.d.ts +3 -3
- package/dist/adapters/storage/BaseAdapter.d.ts +1 -1
- package/dist/adapters/storage/BaseAdapter.js +1 -1
- package/dist/adapters/storage/S3Adapter.js +2 -2
- package/dist/ai/AIChatInterface.svelte +32 -34
- package/dist/ai/AIChatInterface.svelte.d.ts +0 -1
- package/dist/ai/AIChatInterfaceTestWrapper.svelte +26 -0
- package/dist/ai/AIChatInterfaceTestWrapper.svelte.d.ts +17 -0
- package/dist/ai/ChatInput.svelte +7 -15
- package/dist/ai/ChatInput.svelte.d.ts +0 -2
- package/dist/ai/CodeRenderer.svelte +25 -12
- package/dist/ai/ComposeDropdown.svelte +17 -14
- package/dist/ai/MermaidRenderer.svelte +21 -17
- package/dist/ai/MermaidRenderer.svelte.d.ts +0 -1
- package/dist/ai/MessageBox.svelte +10 -7
- package/dist/ai/ThinkingDisplay.svelte +67 -43
- package/dist/ai/ai-chat-interface.d.ts +22 -21
- package/dist/ai/ai-chat-interface.js +8 -7
- package/dist/ai/content-detector.js +2 -2
- package/dist/button/ButtonTestWrapper.svelte +10 -0
- package/dist/button/ButtonTestWrapper.svelte.d.ts +7 -0
- package/dist/charts/Chart.svelte +6 -1
- package/dist/config/ai.js +1 -0
- package/dist/drawer/DrawerTestWrapper.svelte +19 -0
- package/dist/drawer/DrawerTestWrapper.svelte.d.ts +9 -0
- package/dist/drawer/drawer.d.ts +19 -18
- package/dist/drawer/drawer.js +7 -6
- package/dist/elements/accordion/Accordion.svelte +1 -1
- package/dist/elements/accordion/Accordion.svelte.d.ts +1 -1
- package/dist/elements/accordion/AccordionTestWrapper.svelte +21 -0
- package/dist/elements/accordion/AccordionTestWrapper.svelte.d.ts +10 -0
- package/dist/elements/badge/Badge.svelte +5 -4
- package/dist/elements/badge/BadgeTestWrapper.svelte +14 -0
- package/dist/elements/badge/BadgeTestWrapper.svelte.d.ts +9 -0
- package/dist/elements/badge/badge.d.ts +40 -39
- package/dist/elements/badge/badge.js +14 -13
- package/dist/elements/dropdown/Dropdown.svelte +0 -1
- package/dist/elements/pagination/Pagination.svelte +458 -0
- package/dist/elements/pagination/Pagination.svelte.d.ts +57 -0
- package/dist/elements/progress/Progress.svelte +3 -3
- package/dist/elements/timeline/Timeline.svelte +1 -1
- package/dist/file-browser/FileBrowser.svelte +7 -10
- package/dist/filters/CompactFilters.svelte +3 -3
- package/dist/forms/Checkbox.svelte +0 -1
- package/dist/forms/CheckboxTestWrapper.svelte +8 -0
- package/dist/forms/CheckboxTestWrapper.svelte.d.ts +4 -0
- package/dist/forms/DateRange.svelte +186 -198
- package/dist/forms/Form.svelte +1 -0
- package/dist/forms/Input.svelte +14 -5
- package/dist/forms/InputTestWrapper.svelte +8 -0
- package/dist/forms/InputTestWrapper.svelte.d.ts +4 -0
- package/dist/forms/NumberInput.svelte +2 -2
- package/dist/forms/RadioInputs.svelte +1 -1
- package/dist/forms/RadioPill.svelte +1 -1
- package/dist/forms/Slider.svelte +2 -2
- package/dist/forms/Tags.svelte +3 -3
- package/dist/forms/ToggleTestWrapper.svelte +8 -0
- package/dist/forms/ToggleTestWrapper.svelte.d.ts +7 -0
- package/dist/forms/slider.js +1 -1
- package/dist/header/PageHeader.svelte +2 -1
- package/dist/header/breadcrumbs.d.ts +47 -33
- package/dist/header/breadcrumbs.js +12 -11
- package/dist/index.d.ts +8 -2
- package/dist/index.js +3 -0
- package/dist/layout/activity-list/ActivityList.svelte +9 -11
- package/dist/layout/card/CardTestWrapper.svelte +15 -0
- package/dist/layout/card/CardTestWrapper.svelte.d.ts +7 -0
- package/dist/layout/card/RankedCard.svelte +2 -3
- package/dist/layout/navbar/navbar.d.ts +19 -18
- package/dist/layout/navbar/navbar.js +7 -6
- package/dist/layout/sidebar/NavGroup.svelte +1 -0
- package/dist/layout/table/Cells.svelte +5 -5
- package/dist/layout/table/Table.svelte +477 -594
- package/dist/layout/table/table.d.ts +28 -24
- package/dist/layout/table/table.js +9 -8
- package/dist/modal/Modal.svelte +1 -1
- package/dist/modal/ModalTestWrapper.svelte +20 -0
- package/dist/modal/ModalTestWrapper.svelte.d.ts +8 -0
- package/dist/modal/modal.d.ts +1 -20
- package/dist/pipeline/Pipeline.svelte +29 -17
- package/dist/user-management/README.md +417 -0
- package/dist/user-management/UserManagement.svelte +184 -0
- package/dist/user-management/UserManagement.svelte.d.ts +4 -0
- package/dist/user-management/UserManagementTestWrapper.svelte +47 -0
- package/dist/user-management/UserManagementTestWrapper.svelte.d.ts +7 -0
- package/dist/user-management/UserModal.svelte +303 -0
- package/dist/user-management/UserModal.svelte.d.ts +4 -0
- package/dist/user-management/UserModalTestWrapper.svelte +22 -0
- package/dist/user-management/UserModalTestWrapper.svelte.d.ts +7 -0
- package/dist/user-management/UserTable.svelte +219 -0
- package/dist/user-management/UserTable.svelte.d.ts +4 -0
- package/dist/user-management/UserTableTestWrapper.svelte +41 -0
- package/dist/user-management/UserTableTestWrapper.svelte.d.ts +7 -0
- package/dist/user-management/UserViewModal.svelte +282 -0
- package/dist/user-management/UserViewModal.svelte.d.ts +4 -0
- package/dist/user-management/UserViewModalTestWrapper.svelte +22 -0
- package/dist/user-management/UserViewModalTestWrapper.svelte.d.ts +7 -0
- package/dist/user-management/index.d.ts +10 -0
- package/dist/user-management/index.js +11 -0
- package/dist/user-management/user-management.d.ts +99 -0
- package/dist/user-management/user-management.js +42 -0
- package/package.json +3 -1
- package/dist/types/markdown.d.ts +0 -14
- package/dist/types/variants.d.ts +0 -1
- package/dist/types/variants.js +0 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Component } from 'svelte';
|
|
2
|
+
import { Size, Color } from '../variants.js';
|
|
1
3
|
type BreadcrumbItem = {
|
|
2
4
|
label: string;
|
|
3
5
|
href: string;
|
|
@@ -5,16 +7,16 @@ type BreadcrumbItem = {
|
|
|
5
7
|
};
|
|
6
8
|
export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
7
9
|
size: {
|
|
8
|
-
|
|
10
|
+
[Size.XS]: {
|
|
9
11
|
base: string;
|
|
10
12
|
};
|
|
11
|
-
|
|
13
|
+
[Size.SM]: {
|
|
12
14
|
base: string;
|
|
13
15
|
};
|
|
14
|
-
|
|
16
|
+
[Size.BASE]: {
|
|
15
17
|
base: string;
|
|
16
18
|
};
|
|
17
|
-
|
|
19
|
+
[Size.LG]: {
|
|
18
20
|
base: string;
|
|
19
21
|
};
|
|
20
22
|
};
|
|
@@ -33,31 +35,31 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
33
35
|
};
|
|
34
36
|
};
|
|
35
37
|
color: {
|
|
36
|
-
|
|
38
|
+
[Color.DEFAULT]: {
|
|
37
39
|
item: string;
|
|
38
40
|
wrapper: string;
|
|
39
41
|
};
|
|
40
|
-
|
|
42
|
+
[Color.PRIMARY]: {
|
|
41
43
|
item: string;
|
|
42
44
|
wrapper: string;
|
|
43
45
|
};
|
|
44
|
-
|
|
46
|
+
[Color.SECONDARY]: {
|
|
45
47
|
item: string;
|
|
46
48
|
wrapper: string;
|
|
47
49
|
};
|
|
48
|
-
|
|
50
|
+
[Color.INFO]: {
|
|
49
51
|
item: string;
|
|
50
52
|
wrapper: string;
|
|
51
53
|
};
|
|
52
|
-
|
|
54
|
+
[Color.SUCCESS]: {
|
|
53
55
|
item: string;
|
|
54
56
|
wrapper: string;
|
|
55
57
|
};
|
|
56
|
-
|
|
58
|
+
[Color.WARNING]: {
|
|
57
59
|
item: string;
|
|
58
60
|
wrapper: string;
|
|
59
61
|
};
|
|
60
|
-
|
|
62
|
+
[Color.DANGER]: {
|
|
61
63
|
item: string;
|
|
62
64
|
wrapper: string;
|
|
63
65
|
};
|
|
@@ -78,16 +80,16 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
78
80
|
wrapper: string;
|
|
79
81
|
}, undefined, {
|
|
80
82
|
size: {
|
|
81
|
-
|
|
83
|
+
[Size.XS]: {
|
|
82
84
|
base: string;
|
|
83
85
|
};
|
|
84
|
-
|
|
86
|
+
[Size.SM]: {
|
|
85
87
|
base: string;
|
|
86
88
|
};
|
|
87
|
-
|
|
89
|
+
[Size.BASE]: {
|
|
88
90
|
base: string;
|
|
89
91
|
};
|
|
90
|
-
|
|
92
|
+
[Size.LG]: {
|
|
91
93
|
base: string;
|
|
92
94
|
};
|
|
93
95
|
};
|
|
@@ -106,31 +108,31 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
106
108
|
};
|
|
107
109
|
};
|
|
108
110
|
color: {
|
|
109
|
-
|
|
111
|
+
[Color.DEFAULT]: {
|
|
110
112
|
item: string;
|
|
111
113
|
wrapper: string;
|
|
112
114
|
};
|
|
113
|
-
|
|
115
|
+
[Color.PRIMARY]: {
|
|
114
116
|
item: string;
|
|
115
117
|
wrapper: string;
|
|
116
118
|
};
|
|
117
|
-
|
|
119
|
+
[Color.SECONDARY]: {
|
|
118
120
|
item: string;
|
|
119
121
|
wrapper: string;
|
|
120
122
|
};
|
|
121
|
-
|
|
123
|
+
[Color.INFO]: {
|
|
122
124
|
item: string;
|
|
123
125
|
wrapper: string;
|
|
124
126
|
};
|
|
125
|
-
|
|
127
|
+
[Color.SUCCESS]: {
|
|
126
128
|
item: string;
|
|
127
129
|
wrapper: string;
|
|
128
130
|
};
|
|
129
|
-
|
|
131
|
+
[Color.WARNING]: {
|
|
130
132
|
item: string;
|
|
131
133
|
wrapper: string;
|
|
132
134
|
};
|
|
133
|
-
|
|
135
|
+
[Color.DANGER]: {
|
|
134
136
|
item: string;
|
|
135
137
|
wrapper: string;
|
|
136
138
|
};
|
|
@@ -151,16 +153,16 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
151
153
|
wrapper: string;
|
|
152
154
|
}, import("tailwind-variants").TVReturnType<{
|
|
153
155
|
size: {
|
|
154
|
-
|
|
156
|
+
[Size.XS]: {
|
|
155
157
|
base: string;
|
|
156
158
|
};
|
|
157
|
-
|
|
159
|
+
[Size.SM]: {
|
|
158
160
|
base: string;
|
|
159
161
|
};
|
|
160
|
-
|
|
162
|
+
[Size.BASE]: {
|
|
161
163
|
base: string;
|
|
162
164
|
};
|
|
163
|
-
|
|
165
|
+
[Size.LG]: {
|
|
164
166
|
base: string;
|
|
165
167
|
};
|
|
166
168
|
};
|
|
@@ -179,31 +181,31 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
179
181
|
};
|
|
180
182
|
};
|
|
181
183
|
color: {
|
|
182
|
-
|
|
184
|
+
[Color.DEFAULT]: {
|
|
183
185
|
item: string;
|
|
184
186
|
wrapper: string;
|
|
185
187
|
};
|
|
186
|
-
|
|
188
|
+
[Color.PRIMARY]: {
|
|
187
189
|
item: string;
|
|
188
190
|
wrapper: string;
|
|
189
191
|
};
|
|
190
|
-
|
|
192
|
+
[Color.SECONDARY]: {
|
|
191
193
|
item: string;
|
|
192
194
|
wrapper: string;
|
|
193
195
|
};
|
|
194
|
-
|
|
196
|
+
[Color.INFO]: {
|
|
195
197
|
item: string;
|
|
196
198
|
wrapper: string;
|
|
197
199
|
};
|
|
198
|
-
|
|
200
|
+
[Color.SUCCESS]: {
|
|
199
201
|
item: string;
|
|
200
202
|
wrapper: string;
|
|
201
203
|
};
|
|
202
|
-
|
|
204
|
+
[Color.WARNING]: {
|
|
203
205
|
item: string;
|
|
204
206
|
wrapper: string;
|
|
205
207
|
};
|
|
206
|
-
|
|
208
|
+
[Color.DANGER]: {
|
|
207
209
|
item: string;
|
|
208
210
|
wrapper: string;
|
|
209
211
|
};
|
|
@@ -223,4 +225,16 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
223
225
|
separator: string;
|
|
224
226
|
wrapper: string;
|
|
225
227
|
}, undefined, unknown, unknown, undefined>>;
|
|
228
|
+
export type BreadcrumbsProps = {
|
|
229
|
+
items: BreadcrumbItem[];
|
|
230
|
+
size?: keyof typeof breadcrumbs.variants.size;
|
|
231
|
+
weight?: keyof typeof breadcrumbs.variants.weight;
|
|
232
|
+
color?: keyof typeof breadcrumbs.variants.color;
|
|
233
|
+
icon?: Component;
|
|
234
|
+
class?: string;
|
|
235
|
+
listclass?: string;
|
|
236
|
+
itemclass?: string;
|
|
237
|
+
separatorclass?: string;
|
|
238
|
+
wrapperclass?: string;
|
|
239
|
+
};
|
|
226
240
|
export type { BreadcrumbItem };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { tv } from 'tailwind-variants';
|
|
2
|
+
import { Size, Color } from '../variants.js';
|
|
2
3
|
export const breadcrumbs = tv({
|
|
3
4
|
slots: {
|
|
4
5
|
base: 'flex',
|
|
@@ -9,16 +10,16 @@ export const breadcrumbs = tv({
|
|
|
9
10
|
},
|
|
10
11
|
variants: {
|
|
11
12
|
size: {
|
|
12
|
-
|
|
13
|
+
[Size.XS]: {
|
|
13
14
|
base: 'items-center text-xs'
|
|
14
15
|
},
|
|
15
|
-
|
|
16
|
+
[Size.SM]: {
|
|
16
17
|
base: 'items-center text-sm'
|
|
17
18
|
},
|
|
18
|
-
|
|
19
|
+
[Size.BASE]: {
|
|
19
20
|
base: 'items-center text-base'
|
|
20
21
|
},
|
|
21
|
-
|
|
22
|
+
[Size.LG]: {
|
|
22
23
|
base: 'items-center text-lg'
|
|
23
24
|
}
|
|
24
25
|
},
|
|
@@ -37,31 +38,31 @@ export const breadcrumbs = tv({
|
|
|
37
38
|
}
|
|
38
39
|
},
|
|
39
40
|
color: {
|
|
40
|
-
|
|
41
|
+
[Color.DEFAULT]: {
|
|
41
42
|
item: 'hover:text-default-700',
|
|
42
43
|
wrapper: 'text-default-500'
|
|
43
44
|
},
|
|
44
|
-
|
|
45
|
+
[Color.PRIMARY]: {
|
|
45
46
|
item: 'hover:text-primary-700',
|
|
46
47
|
wrapper: 'text-primary-500'
|
|
47
48
|
},
|
|
48
|
-
|
|
49
|
+
[Color.SECONDARY]: {
|
|
49
50
|
item: 'hover:text-secondary-700',
|
|
50
51
|
wrapper: 'text-secondary-500'
|
|
51
52
|
},
|
|
52
|
-
|
|
53
|
+
[Color.INFO]: {
|
|
53
54
|
item: 'hover:text-info-700',
|
|
54
55
|
wrapper: 'text-info-500'
|
|
55
56
|
},
|
|
56
|
-
|
|
57
|
+
[Color.SUCCESS]: {
|
|
57
58
|
item: 'hover:text-success-700',
|
|
58
59
|
wrapper: 'text-success-500'
|
|
59
60
|
},
|
|
60
|
-
|
|
61
|
+
[Color.WARNING]: {
|
|
61
62
|
item: 'hover:text-warning-700',
|
|
62
63
|
wrapper: 'text-warning-500'
|
|
63
64
|
},
|
|
64
|
-
|
|
65
|
+
[Color.DANGER]: {
|
|
65
66
|
item: 'hover:text-danger-700',
|
|
66
67
|
wrapper: 'text-danger-500'
|
|
67
68
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -229,6 +229,9 @@ export type TableProps<T extends DataRow = any> = {
|
|
|
229
229
|
onpagesizechange?: (pageSize: number) => void;
|
|
230
230
|
paginationPosition?: 'top' | 'bottom' | 'both';
|
|
231
231
|
paginationTemplate?: 'simple' | 'full';
|
|
232
|
+
title?: string;
|
|
233
|
+
subtitle?: string;
|
|
234
|
+
headerActions?: Snippet;
|
|
232
235
|
};
|
|
233
236
|
export type BreadcrumbItem = {
|
|
234
237
|
label: string;
|
|
@@ -347,6 +350,8 @@ export { default as Card } from './layout/card/Card.svelte';
|
|
|
347
350
|
export { default as MetricCard } from './layout/card/MetricCard.svelte';
|
|
348
351
|
export { default as RankedCard } from './layout/card/RankedCard.svelte';
|
|
349
352
|
export { default as Alert } from './elements/alert/Alert.svelte';
|
|
353
|
+
export { default as Pagination } from './elements/pagination/Pagination.svelte';
|
|
354
|
+
export type { PaginationProps } from './elements/pagination/Pagination.svelte';
|
|
350
355
|
export type TabProps = {
|
|
351
356
|
value: string;
|
|
352
357
|
label: string;
|
|
@@ -667,7 +672,7 @@ export interface ToggleProps {
|
|
|
667
672
|
}
|
|
668
673
|
export type CurrencyOption = {
|
|
669
674
|
value: string;
|
|
670
|
-
icon?:
|
|
675
|
+
icon?: Component;
|
|
671
676
|
};
|
|
672
677
|
export type NumberInputProps = {
|
|
673
678
|
value?: number;
|
|
@@ -680,7 +685,7 @@ export type NumberInputProps = {
|
|
|
680
685
|
units?: CurrencyOption[];
|
|
681
686
|
errors?: string[];
|
|
682
687
|
disabled?: boolean;
|
|
683
|
-
dropdownicon?:
|
|
688
|
+
dropdownicon?: Component;
|
|
684
689
|
onunitchange?: (prevUnit: string, newUnit: string) => void;
|
|
685
690
|
};
|
|
686
691
|
export interface DateRangeProps {
|
|
@@ -906,3 +911,4 @@ export interface FileBrowserProps {
|
|
|
906
911
|
navToFileFolder: (fileKey: string) => void;
|
|
907
912
|
}) => any;
|
|
908
913
|
}
|
|
914
|
+
export * from './user-management/index.js';
|
package/dist/index.js
CHANGED
|
@@ -33,6 +33,7 @@ export { default as MetricCard } from './layout/card/MetricCard.svelte';
|
|
|
33
33
|
export { default as RankedCard } from './layout/card/RankedCard.svelte';
|
|
34
34
|
// Elements - Alert
|
|
35
35
|
export { default as Alert } from './elements/alert/Alert.svelte';
|
|
36
|
+
export { default as Pagination } from './elements/pagination/Pagination.svelte';
|
|
36
37
|
export { default as Tab } from './layout/tabs/Tab.svelte';
|
|
37
38
|
export { default as TabContent } from './layout/tabs/TabContent.svelte';
|
|
38
39
|
export { default as TabGroup } from './layout/tabs/TabGroup.svelte';
|
|
@@ -90,3 +91,5 @@ export * from './file-browser/index.js';
|
|
|
90
91
|
export * from './adapters/storage/index.js';
|
|
91
92
|
// AI Adapters
|
|
92
93
|
export * from './adapters/ai/index.js';
|
|
94
|
+
// User Management
|
|
95
|
+
export * from './user-management/index.js';
|
|
@@ -43,25 +43,24 @@
|
|
|
43
43
|
<h2 class={titleClasses}>{title}</h2>
|
|
44
44
|
</div>
|
|
45
45
|
{/if}
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
<div class={contentClasses}>
|
|
48
48
|
{#if children}
|
|
49
49
|
{@render children()}
|
|
50
50
|
{:else}
|
|
51
|
-
{#each items as activityItem, index}
|
|
51
|
+
{#each items as activityItem, index (activityItem.title + index)}
|
|
52
52
|
<div class={cn(item(), itemClass)} role="button" tabindex="0">
|
|
53
53
|
<div class={itemContent()}>
|
|
54
54
|
<div class={itemMain()}>
|
|
55
55
|
<div class={itemHeader()}>
|
|
56
|
-
<button
|
|
57
|
-
class={itemTitle()}
|
|
58
|
-
onclick={() => onItemClick?.(activityItem, index)}
|
|
59
|
-
>
|
|
56
|
+
<button class={itemTitle()} onclick={() => onItemClick?.(activityItem, index)}>
|
|
60
57
|
{activityItem.title}
|
|
61
58
|
</button>
|
|
62
59
|
{#if activityItem.badges}
|
|
63
|
-
{#each activityItem.badges as badge}
|
|
64
|
-
<span
|
|
60
|
+
{#each activityItem.badges as badge (badge.text)}
|
|
61
|
+
<span
|
|
62
|
+
class="ml-3 inline-flex rounded-full px-2 py-1 text-xs font-medium {badge.class}"
|
|
63
|
+
>
|
|
65
64
|
{badge.text}
|
|
66
65
|
</span>
|
|
67
66
|
{/each}
|
|
@@ -75,9 +74,9 @@
|
|
|
75
74
|
</div>
|
|
76
75
|
{#if activityItem.actions}
|
|
77
76
|
<div class={itemActions()}>
|
|
78
|
-
{#each activityItem.actions as action}
|
|
77
|
+
{#each activityItem.actions as action (action.label)}
|
|
79
78
|
<button
|
|
80
|
-
class="inline-flex items-center rounded-md border border-gray-300 bg-white px-3 py-1.5 text-xs font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:
|
|
79
|
+
class="inline-flex items-center rounded-md border border-gray-300 bg-white px-3 py-1.5 text-xs font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:outline-none"
|
|
81
80
|
onclick={() => action.onClick?.()}
|
|
82
81
|
>
|
|
83
82
|
{action.label}
|
|
@@ -91,4 +90,3 @@
|
|
|
91
90
|
{/if}
|
|
92
91
|
</div>
|
|
93
92
|
</div>
|
|
94
|
-
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
</script>
|
|
24
24
|
|
|
25
25
|
<div class={containerClass}>
|
|
26
|
-
{#each items as item}
|
|
26
|
+
{#each items as item (item.rank)}
|
|
27
27
|
<div class={card()}>
|
|
28
28
|
<!-- Header with Rank and Title -->
|
|
29
29
|
<div class={header()}>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
<!-- Metrics -->
|
|
35
35
|
<div class={metricsContainer()}>
|
|
36
|
-
{#each item.metrics as metric}
|
|
36
|
+
{#each item.metrics as metric (metric.label)}
|
|
37
37
|
<div class={metricRow()}>
|
|
38
38
|
<span class={metricLabel()}>{metric.label}:</span>
|
|
39
39
|
<span class={cn(metricValue(), metric.color || '')}>{metric.value}</span>
|
|
@@ -53,4 +53,3 @@
|
|
|
53
53
|
</div>
|
|
54
54
|
{/each}
|
|
55
55
|
</div>
|
|
56
|
-
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ClassValue } from 'tailwind-variants';
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
3
|
import type { Component } from 'svelte';
|
|
4
|
+
import { Size, Color } from '../../variants.js';
|
|
4
5
|
export type NavbarLinkItem = {
|
|
5
6
|
label: string;
|
|
6
7
|
href: string;
|
|
@@ -10,21 +11,21 @@ export type NavbarLinkItem = {
|
|
|
10
11
|
};
|
|
11
12
|
export declare const navbar: import("tailwind-variants").TVReturnType<{
|
|
12
13
|
color: {
|
|
13
|
-
|
|
14
|
+
[Color.DEFAULT]: {
|
|
14
15
|
base: string;
|
|
15
16
|
mobileMenuButton: string;
|
|
16
17
|
link: string;
|
|
17
18
|
mobileLink: string;
|
|
18
19
|
selectItem: string;
|
|
19
20
|
};
|
|
20
|
-
|
|
21
|
+
[Color.PRIMARY]: {
|
|
21
22
|
base: string;
|
|
22
23
|
mobileMenuButton: string;
|
|
23
24
|
link: string;
|
|
24
25
|
mobileLink: string;
|
|
25
26
|
selectItem: string;
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
+
[Color.SECONDARY]: {
|
|
28
29
|
base: string;
|
|
29
30
|
mobileMenuButton: string;
|
|
30
31
|
link: string;
|
|
@@ -33,17 +34,17 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
|
|
|
33
34
|
};
|
|
34
35
|
};
|
|
35
36
|
size: {
|
|
36
|
-
|
|
37
|
+
[Size.SM]: {
|
|
37
38
|
container: string;
|
|
38
39
|
link: string;
|
|
39
40
|
mobileLink: string;
|
|
40
41
|
};
|
|
41
|
-
|
|
42
|
+
[Size.BASE]: {
|
|
42
43
|
container: string;
|
|
43
44
|
link: string;
|
|
44
45
|
mobileLink: string;
|
|
45
46
|
};
|
|
46
|
-
|
|
47
|
+
[Size.LG]: {
|
|
47
48
|
container: string;
|
|
48
49
|
link: string;
|
|
49
50
|
mobileLink: string;
|
|
@@ -72,21 +73,21 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
|
|
|
72
73
|
divider: string;
|
|
73
74
|
}, undefined, {
|
|
74
75
|
color: {
|
|
75
|
-
|
|
76
|
+
[Color.DEFAULT]: {
|
|
76
77
|
base: string;
|
|
77
78
|
mobileMenuButton: string;
|
|
78
79
|
link: string;
|
|
79
80
|
mobileLink: string;
|
|
80
81
|
selectItem: string;
|
|
81
82
|
};
|
|
82
|
-
|
|
83
|
+
[Color.PRIMARY]: {
|
|
83
84
|
base: string;
|
|
84
85
|
mobileMenuButton: string;
|
|
85
86
|
link: string;
|
|
86
87
|
mobileLink: string;
|
|
87
88
|
selectItem: string;
|
|
88
89
|
};
|
|
89
|
-
|
|
90
|
+
[Color.SECONDARY]: {
|
|
90
91
|
base: string;
|
|
91
92
|
mobileMenuButton: string;
|
|
92
93
|
link: string;
|
|
@@ -95,17 +96,17 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
|
|
|
95
96
|
};
|
|
96
97
|
};
|
|
97
98
|
size: {
|
|
98
|
-
|
|
99
|
+
[Size.SM]: {
|
|
99
100
|
container: string;
|
|
100
101
|
link: string;
|
|
101
102
|
mobileLink: string;
|
|
102
103
|
};
|
|
103
|
-
|
|
104
|
+
[Size.BASE]: {
|
|
104
105
|
container: string;
|
|
105
106
|
link: string;
|
|
106
107
|
mobileLink: string;
|
|
107
108
|
};
|
|
108
|
-
|
|
109
|
+
[Size.LG]: {
|
|
109
110
|
container: string;
|
|
110
111
|
link: string;
|
|
111
112
|
mobileLink: string;
|
|
@@ -134,21 +135,21 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
|
|
|
134
135
|
divider: string;
|
|
135
136
|
}, import("tailwind-variants").TVReturnType<{
|
|
136
137
|
color: {
|
|
137
|
-
|
|
138
|
+
[Color.DEFAULT]: {
|
|
138
139
|
base: string;
|
|
139
140
|
mobileMenuButton: string;
|
|
140
141
|
link: string;
|
|
141
142
|
mobileLink: string;
|
|
142
143
|
selectItem: string;
|
|
143
144
|
};
|
|
144
|
-
|
|
145
|
+
[Color.PRIMARY]: {
|
|
145
146
|
base: string;
|
|
146
147
|
mobileMenuButton: string;
|
|
147
148
|
link: string;
|
|
148
149
|
mobileLink: string;
|
|
149
150
|
selectItem: string;
|
|
150
151
|
};
|
|
151
|
-
|
|
152
|
+
[Color.SECONDARY]: {
|
|
152
153
|
base: string;
|
|
153
154
|
mobileMenuButton: string;
|
|
154
155
|
link: string;
|
|
@@ -157,17 +158,17 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
|
|
|
157
158
|
};
|
|
158
159
|
};
|
|
159
160
|
size: {
|
|
160
|
-
|
|
161
|
+
[Size.SM]: {
|
|
161
162
|
container: string;
|
|
162
163
|
link: string;
|
|
163
164
|
mobileLink: string;
|
|
164
165
|
};
|
|
165
|
-
|
|
166
|
+
[Size.BASE]: {
|
|
166
167
|
container: string;
|
|
167
168
|
link: string;
|
|
168
169
|
mobileLink: string;
|
|
169
170
|
};
|
|
170
|
-
|
|
171
|
+
[Size.LG]: {
|
|
171
172
|
container: string;
|
|
172
173
|
link: string;
|
|
173
174
|
mobileLink: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { tv } from 'tailwind-variants';
|
|
2
|
+
import { Size, Color } from '../../variants.js';
|
|
2
3
|
export const navbar = tv({
|
|
3
4
|
slots: {
|
|
4
5
|
base: 'sticky top-0 z-40 w-full backdrop-blur',
|
|
@@ -21,21 +22,21 @@ export const navbar = tv({
|
|
|
21
22
|
},
|
|
22
23
|
variants: {
|
|
23
24
|
color: {
|
|
24
|
-
|
|
25
|
+
[Color.DEFAULT]: {
|
|
25
26
|
base: 'bg-white/80 border-b border-default-200',
|
|
26
27
|
mobileMenuButton: 'text-default-500 hover:bg-default-100 focus:outline-none',
|
|
27
28
|
link: 'text-default-500 hover:text-default-900 border-transparent hover:border-default-300',
|
|
28
29
|
mobileLink: 'text-default-600 hover:bg-default-50 border-transparent',
|
|
29
30
|
selectItem: 'text-default-700 hover:bg-default-100'
|
|
30
31
|
},
|
|
31
|
-
|
|
32
|
+
[Color.PRIMARY]: {
|
|
32
33
|
base: 'bg-primary-50/80 border-b border-primary-200',
|
|
33
34
|
mobileMenuButton: 'text-primary-500 hover:bg-primary-100 focus:outline-none',
|
|
34
35
|
link: 'text-primary-500 hover:text-primary-900 border-transparent hover:border-primary-300',
|
|
35
36
|
mobileLink: 'text-primary-600 hover:bg-primary-50 border-transparent',
|
|
36
37
|
selectItem: 'text-primary-700 hover:bg-primary-100'
|
|
37
38
|
},
|
|
38
|
-
|
|
39
|
+
[Color.SECONDARY]: {
|
|
39
40
|
base: 'bg-secondary-50/80 border-b border-secondary-200',
|
|
40
41
|
mobileMenuButton: 'text-secondary-500 hover:bg-secondary-100 focus:outline-none',
|
|
41
42
|
link: 'text-secondary-500 hover:text-secondary-900 border-transparent hover:border-secondary-300',
|
|
@@ -44,17 +45,17 @@ export const navbar = tv({
|
|
|
44
45
|
}
|
|
45
46
|
},
|
|
46
47
|
size: {
|
|
47
|
-
|
|
48
|
+
[Size.SM]: {
|
|
48
49
|
container: 'h-12',
|
|
49
50
|
link: 'text-xs',
|
|
50
51
|
mobileLink: 'text-xs'
|
|
51
52
|
},
|
|
52
|
-
|
|
53
|
+
[Size.BASE]: {
|
|
53
54
|
container: 'h-16',
|
|
54
55
|
link: 'text-sm',
|
|
55
56
|
mobileLink: 'text-sm'
|
|
56
57
|
},
|
|
57
|
-
|
|
58
|
+
[Size.LG]: {
|
|
58
59
|
container: 'h-20',
|
|
59
60
|
link: 'text-base',
|
|
60
61
|
mobileLink: 'text-base'
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
{#snippet DateCell(row: DataRow, key: KeyType)}
|
|
47
47
|
{#if row[key] !== undefined && row[key] !== null}
|
|
48
|
-
{new Date(row[key]).toLocaleDateString('en-US')}
|
|
48
|
+
{new Date(row[key] as string | number | Date).toLocaleDateString('en-US')}
|
|
49
49
|
{:else}
|
|
50
50
|
<span class="text-default-300">—</span>
|
|
51
51
|
{/if}
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
|
|
54
54
|
{#snippet Currency(row: DataRow, key: KeyType)}
|
|
55
55
|
{#if row[key] !== undefined && row[key] !== null}
|
|
56
|
-
{formatCurrency(row[key])}
|
|
56
|
+
{formatCurrency(row[key] as number)}
|
|
57
57
|
{:else}
|
|
58
58
|
<span class="text-default-300">—</span>
|
|
59
59
|
{/if}
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
|
|
62
62
|
{#snippet Percentage(row: DataRow, key: KeyType)}
|
|
63
63
|
{#if row[key] !== undefined && row[key] !== null}
|
|
64
|
-
{formatPercentage(row[key])}
|
|
64
|
+
{formatPercentage(row[key] as number)}
|
|
65
65
|
{:else}
|
|
66
66
|
<span class="text-default-300">—</span>
|
|
67
67
|
{/if}
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
{#snippet PhoneNumber(row: DataRow, key: KeyType)}
|
|
71
71
|
{#if row[key] !== undefined && row[key] !== null}
|
|
72
|
-
{formatPhoneNumber(row[key])}
|
|
72
|
+
{formatPhoneNumber(row[key] as string | number | null | undefined)}
|
|
73
73
|
{:else}
|
|
74
74
|
<span class="text-default-300">—</span>
|
|
75
75
|
{/if}
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
|
|
99
99
|
{#snippet Time(row: DataRow, key: KeyType)}
|
|
100
100
|
{#if row[key] !== undefined && row[key] !== null}
|
|
101
|
-
{formatTime(row[key])}
|
|
101
|
+
{formatTime(row[key] as string | number | Date)}
|
|
102
102
|
{:else}
|
|
103
103
|
<span class="text-default-300">—</span>
|
|
104
104
|
{/if}
|