@shipfox/react-ui 0.13.0 → 0.15.0
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/.storybook/preview.tsx +7 -0
- package/.turbo/turbo-build.log +7 -7
- package/.turbo/turbo-check.log +2 -2
- package/.turbo/turbo-type.log +1 -1
- package/CHANGELOG.md +16 -0
- package/dist/components/avatar/avatar.js +1 -1
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/button-group/button-group.d.ts +17 -0
- package/dist/components/button-group/button-group.d.ts.map +1 -0
- package/dist/components/button-group/button-group.js +74 -0
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/button-group/button-group.stories.js +644 -0
- package/dist/components/button-group/button-group.stories.js.map +1 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/button-group/index.d.ts.map +1 -0
- package/dist/components/button-group/index.js +3 -0
- package/dist/components/button-group/index.js.map +1 -0
- package/dist/components/code-block/code-block-footer.d.ts.map +1 -1
- package/dist/components/code-block/code-block-footer.js +13 -5
- package/dist/components/code-block/code-block-footer.js.map +1 -1
- package/dist/components/command/command.d.ts +28 -0
- package/dist/components/command/command.d.ts.map +1 -0
- package/dist/components/command/command.js +190 -0
- package/dist/components/command/command.js.map +1 -0
- package/dist/components/command/command.stories.js +228 -0
- package/dist/components/command/command.stories.js.map +1 -0
- package/dist/components/command/index.d.ts +2 -0
- package/dist/components/command/index.d.ts.map +1 -0
- package/dist/components/command/index.js +3 -0
- package/dist/components/command/index.js.map +1 -0
- package/dist/components/confetti/confetti.d.ts +21 -0
- package/dist/components/confetti/confetti.d.ts.map +1 -0
- package/dist/components/confetti/confetti.js +101 -0
- package/dist/components/confetti/confetti.js.map +1 -0
- package/dist/components/confetti/confetti.stories.js +41 -0
- package/dist/components/confetti/confetti.stories.js.map +1 -0
- package/dist/components/confetti/index.d.ts +2 -0
- package/dist/components/confetti/index.d.ts.map +1 -0
- package/dist/components/confetti/index.js +3 -0
- package/dist/components/confetti/index.js.map +1 -0
- package/dist/components/dashboard/components/analytics-content.d.ts +2 -0
- package/dist/components/dashboard/components/analytics-content.d.ts.map +1 -0
- package/dist/components/dashboard/components/analytics-content.js +180 -0
- package/dist/components/dashboard/components/analytics-content.js.map +1 -0
- package/dist/components/dashboard/components/animated-logo.d.ts +4 -0
- package/dist/components/dashboard/components/animated-logo.d.ts.map +1 -0
- package/dist/components/dashboard/components/animated-logo.js +23 -0
- package/dist/components/dashboard/components/animated-logo.js.map +1 -0
- package/dist/components/dashboard/components/complete-setup-button.d.ts +4 -0
- package/dist/components/dashboard/components/complete-setup-button.d.ts.map +1 -0
- package/dist/components/dashboard/components/complete-setup-button.js +28 -0
- package/dist/components/dashboard/components/complete-setup-button.js.map +1 -0
- package/dist/components/dashboard/components/jobs-content.d.ts +2 -0
- package/dist/components/dashboard/components/jobs-content.d.ts.map +1 -0
- package/dist/components/dashboard/components/jobs-content.js +69 -0
- package/dist/components/dashboard/components/jobs-content.js.map +1 -0
- package/dist/components/dashboard/components/mobile-menu.d.ts +2 -0
- package/dist/components/dashboard/components/mobile-menu.d.ts.map +1 -0
- package/dist/components/dashboard/components/mobile-menu.js +65 -0
- package/dist/components/dashboard/components/mobile-menu.js.map +1 -0
- package/dist/components/dashboard/components/organization-selector.d.ts +2 -0
- package/dist/components/dashboard/components/organization-selector.d.ts.map +1 -0
- package/dist/components/dashboard/components/organization-selector.js +92 -0
- package/dist/components/dashboard/components/organization-selector.js.map +1 -0
- package/dist/components/dashboard/components/top-menu.d.ts +5 -0
- package/dist/components/dashboard/components/top-menu.d.ts.map +1 -0
- package/dist/components/dashboard/components/top-menu.js +31 -0
- package/dist/components/dashboard/components/top-menu.js.map +1 -0
- package/dist/components/dashboard/components/topbar-button.d.ts +7 -0
- package/dist/components/dashboard/components/topbar-button.d.ts.map +1 -0
- package/dist/components/dashboard/components/topbar-button.js +18 -0
- package/dist/components/dashboard/components/topbar-button.js.map +1 -0
- package/dist/components/dashboard/components/topbar.d.ts +4 -0
- package/dist/components/dashboard/components/topbar.d.ts.map +1 -0
- package/dist/components/dashboard/components/topbar.js +62 -0
- package/dist/components/dashboard/components/topbar.js.map +1 -0
- package/dist/components/dashboard/components/user-profile.d.ts +2 -0
- package/dist/components/dashboard/components/user-profile.d.ts.map +1 -0
- package/dist/components/dashboard/components/user-profile.js +146 -0
- package/dist/components/dashboard/components/user-profile.js.map +1 -0
- package/dist/components/dashboard/dashboard.d.ts +2 -0
- package/dist/components/dashboard/dashboard.d.ts.map +1 -0
- package/dist/components/dashboard/dashboard.js +70 -0
- package/dist/components/dashboard/dashboard.js.map +1 -0
- package/dist/components/dashboard/dashboard.stories.js +23 -0
- package/dist/components/dashboard/dashboard.stories.js.map +1 -0
- package/dist/components/dashboard/index.d.ts +2 -0
- package/dist/components/dashboard/index.d.ts.map +1 -0
- package/dist/components/dashboard/index.js +3 -0
- package/dist/components/dashboard/index.js.map +1 -0
- package/dist/components/form/form.stories.js +6 -1
- package/dist/components/form/form.stories.js.map +1 -1
- package/dist/components/icon/icon.d.ts +3 -2
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/icon.js +7 -2
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/kbd/index.d.ts +2 -0
- package/dist/components/kbd/index.d.ts.map +1 -0
- package/dist/components/kbd/index.js +3 -0
- package/dist/components/kbd/index.js.map +1 -0
- package/dist/components/kbd/kbd.d.ts +7 -0
- package/dist/components/kbd/kbd.d.ts.map +1 -0
- package/dist/components/kbd/kbd.js +18 -0
- package/dist/components/kbd/kbd.js.map +1 -0
- package/dist/components/kbd/kbd.stories.js +119 -0
- package/dist/components/kbd/kbd.stories.js.map +1 -0
- package/dist/components/modal/modal.stories.js +227 -168
- package/dist/components/modal/modal.stories.js.map +1 -1
- package/dist/components/search/index.d.ts +7 -0
- package/dist/components/search/index.d.ts.map +1 -0
- package/dist/components/search/index.js +8 -0
- package/dist/components/search/index.js.map +1 -0
- package/dist/components/search/search-context.d.ts +11 -0
- package/dist/components/search/search-context.d.ts.map +1 -0
- package/dist/components/search/search-context.js +56 -0
- package/dist/components/search/search-context.js.map +1 -0
- package/dist/components/search/search-inline.d.ts +9 -0
- package/dist/components/search/search-inline.d.ts.map +1 -0
- package/dist/components/search/search-inline.js +85 -0
- package/dist/components/search/search-inline.js.map +1 -0
- package/dist/components/search/search-modal.d.ts +25 -0
- package/dist/components/search/search-modal.d.ts.map +1 -0
- package/dist/components/search/search-modal.js +162 -0
- package/dist/components/search/search-modal.js.map +1 -0
- package/dist/components/search/search-trigger.d.ts +9 -0
- package/dist/components/search/search-trigger.d.ts.map +1 -0
- package/dist/components/search/search-trigger.js +37 -0
- package/dist/components/search/search-trigger.js.map +1 -0
- package/dist/components/search/search-variants.d.ts +14 -0
- package/dist/components/search/search-variants.d.ts.map +1 -0
- package/dist/components/search/search-variants.js +90 -0
- package/dist/components/search/search-variants.js.map +1 -0
- package/dist/components/search/search.d.ts +11 -0
- package/dist/components/search/search.d.ts.map +1 -0
- package/dist/components/search/search.js +35 -0
- package/dist/components/search/search.js.map +1 -0
- package/dist/components/search/search.stories.js +630 -0
- package/dist/components/search/search.stories.js.map +1 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +3 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.d.ts +25 -0
- package/dist/components/select/select.d.ts.map +1 -0
- package/dist/components/select/select.js +153 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/select/select.stories.js +393 -0
- package/dist/components/select/select.stories.js.map +1 -0
- package/dist/components/shiny-text/index.d.ts +2 -0
- package/dist/components/shiny-text/index.d.ts.map +1 -0
- package/dist/components/shiny-text/index.js +3 -0
- package/dist/components/shiny-text/index.js.map +1 -0
- package/dist/components/shiny-text/shiny-text.d.ts +10 -0
- package/dist/components/shiny-text/shiny-text.d.ts.map +1 -0
- package/dist/components/shiny-text/shiny-text.js +17 -0
- package/dist/components/shiny-text/shiny-text.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +3 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +5 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.js +11 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/skeleton/skeleton.stories.js +345 -0
- package/dist/components/skeleton/skeleton.stories.js.map +1 -0
- package/dist/components/table/data-table.d.ts +70 -0
- package/dist/components/table/data-table.d.ts.map +1 -0
- package/dist/components/table/data-table.js +159 -0
- package/dist/components/table/data-table.js.map +1 -0
- package/dist/components/table/index.d.ts +6 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +6 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table-column-header.d.ts +79 -0
- package/dist/components/table/table-column-header.d.ts.map +1 -0
- package/dist/components/table/table-column-header.js +99 -0
- package/dist/components/table/table-column-header.js.map +1 -0
- package/dist/components/table/table-pagination.d.ts +53 -0
- package/dist/components/table/table-pagination.d.ts.map +1 -0
- package/dist/components/table/table-pagination.js +139 -0
- package/dist/components/table/table-pagination.js.map +1 -0
- package/dist/components/table/table.d.ts +11 -0
- package/dist/components/table/table.d.ts.map +1 -0
- package/dist/components/table/table.js +64 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/table/table.stories.columns.d.ts +24 -0
- package/dist/components/table/table.stories.columns.d.ts.map +1 -0
- package/dist/components/table/table.stories.columns.js +310 -0
- package/dist/components/table/table.stories.columns.js.map +1 -0
- package/dist/components/table/table.stories.components.d.ts +14 -0
- package/dist/components/table/table.stories.components.d.ts.map +1 -0
- package/dist/components/table/table.stories.components.js +107 -0
- package/dist/components/table/table.stories.components.js.map +1 -0
- package/dist/components/table/table.stories.data.d.ts +54 -0
- package/dist/components/table/table.stories.data.d.ts.map +1 -0
- package/dist/components/table/table.stories.data.js +122 -0
- package/dist/components/table/table.stories.data.js.map +1 -0
- package/dist/components/table/table.stories.js +302 -0
- package/dist/components/table/table.stories.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/index.css +79 -0
- package/package.json +6 -2
- package/src/components/avatar/avatar.tsx +1 -1
- package/src/components/button-group/button-group.stories.tsx +361 -0
- package/src/components/button-group/button-group.tsx +111 -0
- package/src/components/button-group/index.ts +1 -0
- package/src/components/code-block/code-block-footer.tsx +19 -2
- package/src/components/command/command.stories.tsx +133 -0
- package/src/components/command/command.tsx +265 -0
- package/src/components/command/index.ts +1 -0
- package/src/components/confetti/confetti.stories.tsx +38 -0
- package/src/components/confetti/confetti.tsx +140 -0
- package/src/components/confetti/index.ts +1 -0
- package/src/components/dashboard/components/analytics-content.tsx +102 -0
- package/src/components/dashboard/components/animated-logo.tsx +25 -0
- package/src/components/dashboard/components/complete-setup-button.tsx +30 -0
- package/src/components/dashboard/components/jobs-content.tsx +51 -0
- package/src/components/dashboard/components/mobile-menu.tsx +50 -0
- package/src/components/dashboard/components/organization-selector.tsx +51 -0
- package/src/components/dashboard/components/top-menu.tsx +26 -0
- package/src/components/dashboard/components/topbar-button.tsx +27 -0
- package/src/components/dashboard/components/topbar.tsx +40 -0
- package/src/components/dashboard/components/user-profile.tsx +90 -0
- package/src/components/dashboard/dashboard.stories.tsx +25 -0
- package/src/components/dashboard/dashboard.tsx +61 -0
- package/src/components/dashboard/index.ts +1 -0
- package/src/components/form/form.stories.tsx +5 -0
- package/src/components/icon/icon.tsx +7 -3
- package/src/components/index.ts +9 -0
- package/src/components/kbd/index.ts +1 -0
- package/src/components/kbd/kbd.stories.tsx +64 -0
- package/src/components/kbd/kbd.tsx +32 -0
- package/src/components/modal/modal.stories.tsx +58 -4
- package/src/components/search/index.ts +28 -0
- package/src/components/search/search-context.tsx +78 -0
- package/src/components/search/search-inline.tsx +107 -0
- package/src/components/search/search-modal.tsx +198 -0
- package/src/components/search/search-trigger.tsx +47 -0
- package/src/components/search/search-variants.ts +88 -0
- package/src/components/search/search.stories.tsx +392 -0
- package/src/components/search/search.tsx +47 -0
- package/src/components/select/index.ts +1 -0
- package/src/components/select/select.stories.tsx +207 -0
- package/src/components/select/select.tsx +220 -0
- package/src/components/shiny-text/index.ts +1 -0
- package/src/components/shiny-text/shiny-text.tsx +21 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/skeleton/skeleton.stories.tsx +178 -0
- package/src/components/skeleton/skeleton.tsx +14 -0
- package/src/components/table/data-table.tsx +254 -0
- package/src/components/table/index.ts +5 -0
- package/src/components/table/table-column-header.tsx +141 -0
- package/src/components/table/table-pagination.tsx +161 -0
- package/src/components/table/table.stories.columns.tsx +198 -0
- package/src/components/table/table.stories.components.tsx +104 -0
- package/src/components/table/table.stories.data.ts +117 -0
- package/src/components/table/table.stories.tsx +256 -0
- package/src/components/table/table.tsx +95 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Icon } from '../../../components/icon/index.js';
|
|
3
|
+
import { Skeleton } from '../../../components/skeleton/index.js';
|
|
4
|
+
import { Text } from '../../../components/typography/index.js';
|
|
5
|
+
export function AnalyticsContent() {
|
|
6
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
7
|
+
className: "min-h-[calc(100vh-48px)] p-12 md:p-24 space-y-16 md:space-y-20 bg-background-neutral-base",
|
|
8
|
+
children: [
|
|
9
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
10
|
+
className: "flex flex-col md:flex-row items-start md:items-center justify-between gap-12 md:gap-0",
|
|
11
|
+
children: [
|
|
12
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
13
|
+
className: "h-28 md:h-32 w-120 md:w-160"
|
|
14
|
+
}),
|
|
15
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
16
|
+
className: "flex items-center gap-8 md:gap-16",
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
19
|
+
className: "h-28 md:h-32 w-80 md:w-100"
|
|
20
|
+
}),
|
|
21
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
22
|
+
className: "h-28 md:h-32 w-100 md:w-160"
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
})
|
|
26
|
+
]
|
|
27
|
+
}),
|
|
28
|
+
/*#__PURE__*/ _jsx("div", {
|
|
29
|
+
className: "flex gap-12 md:gap-16 overflow-x-auto scrollbar pb-4 md:pb-0 -mx-12 px-12 md:mx-0 md:px-0",
|
|
30
|
+
children: [
|
|
31
|
+
'Total',
|
|
32
|
+
'Success',
|
|
33
|
+
'Failed',
|
|
34
|
+
'Neutral',
|
|
35
|
+
'Failure rate'
|
|
36
|
+
].map((label)=>/*#__PURE__*/ _jsxs("div", {
|
|
37
|
+
className: "shrink-0 w-100 md:w-auto md:flex-1 p-12 rounded-8 bg-background-neutral-base border border-border-neutral-base",
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ _jsx("p", {
|
|
40
|
+
className: "text-xs text-foreground-neutral-subtle mb-4",
|
|
41
|
+
children: label
|
|
42
|
+
}),
|
|
43
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
44
|
+
className: "h-20 w-40"
|
|
45
|
+
})
|
|
46
|
+
]
|
|
47
|
+
}, label))
|
|
48
|
+
}),
|
|
49
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
50
|
+
className: "flex flex-col md:flex-row gap-16 md:gap-20",
|
|
51
|
+
children: [
|
|
52
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
53
|
+
className: "flex-1 p-12 rounded-8 bg-background-neutral-base border border-border-neutral-base",
|
|
54
|
+
children: [
|
|
55
|
+
/*#__PURE__*/ _jsx("p", {
|
|
56
|
+
className: "text-sm font-medium text-foreground-neutral-base mb-12",
|
|
57
|
+
children: "Performance over time"
|
|
58
|
+
}),
|
|
59
|
+
/*#__PURE__*/ _jsx("div", {
|
|
60
|
+
className: "h-120 md:h-160 flex items-center justify-center",
|
|
61
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
62
|
+
className: "text-center",
|
|
63
|
+
children: [
|
|
64
|
+
/*#__PURE__*/ _jsx(Icon, {
|
|
65
|
+
name: "fileChartLine",
|
|
66
|
+
className: "size-24 text-foreground-neutral-muted mx-auto mb-8"
|
|
67
|
+
}),
|
|
68
|
+
/*#__PURE__*/ _jsx("p", {
|
|
69
|
+
className: "text-sm text-foreground-neutral-subtle",
|
|
70
|
+
children: "Nothing here yet."
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
}),
|
|
77
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
78
|
+
className: "flex-1 p-12 rounded-8 bg-background-neutral-base border border-border-neutral-base",
|
|
79
|
+
children: [
|
|
80
|
+
/*#__PURE__*/ _jsx("p", {
|
|
81
|
+
className: "text-sm font-medium text-foreground-neutral-base mb-12",
|
|
82
|
+
children: "Duration distribution"
|
|
83
|
+
}),
|
|
84
|
+
/*#__PURE__*/ _jsx("div", {
|
|
85
|
+
className: "h-120 md:h-160 flex items-center justify-center",
|
|
86
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
87
|
+
className: "text-center",
|
|
88
|
+
children: [
|
|
89
|
+
/*#__PURE__*/ _jsx(Icon, {
|
|
90
|
+
name: "barChartBoxLine",
|
|
91
|
+
className: "size-24 text-foreground-neutral-muted mx-auto mb-8"
|
|
92
|
+
}),
|
|
93
|
+
/*#__PURE__*/ _jsx("p", {
|
|
94
|
+
className: "text-sm text-foreground-neutral-subtle",
|
|
95
|
+
children: "Nothing here yet."
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
]
|
|
101
|
+
})
|
|
102
|
+
]
|
|
103
|
+
}),
|
|
104
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
105
|
+
className: "rounded-8 bg-background-neutral-base border border-border-neutral-base overflow-hidden",
|
|
106
|
+
children: [
|
|
107
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
108
|
+
className: "flex flex-col md:flex-row items-start md:items-center justify-between p-12 gap-12 md:gap-0 border-b border-border-neutral-strong",
|
|
109
|
+
children: [
|
|
110
|
+
/*#__PURE__*/ _jsx("p", {
|
|
111
|
+
className: "text-sm font-medium text-foreground-neutral-base",
|
|
112
|
+
children: "Jobs breakdown"
|
|
113
|
+
}),
|
|
114
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
115
|
+
className: "flex items-center gap-8 md:gap-16 w-full md:w-auto",
|
|
116
|
+
children: [
|
|
117
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
118
|
+
className: "h-28 flex-1 md:flex-none md:w-200"
|
|
119
|
+
}),
|
|
120
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
121
|
+
className: "h-28 w-28 shrink-0"
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
})
|
|
125
|
+
]
|
|
126
|
+
}),
|
|
127
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
128
|
+
className: "py-48 md:py-64 flex flex-col items-center justify-center gap-12",
|
|
129
|
+
children: [
|
|
130
|
+
/*#__PURE__*/ _jsx("div", {
|
|
131
|
+
className: "size-32 rounded-6 bg-transparent border border-border-neutral-strong flex items-center justify-center",
|
|
132
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
133
|
+
name: "shipfox",
|
|
134
|
+
className: "size-16 text-foreground-neutral-subtle",
|
|
135
|
+
color: "var(--foreground-neutral-subtle, #a1a1aa)"
|
|
136
|
+
})
|
|
137
|
+
}),
|
|
138
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
139
|
+
className: "text-center space-y-4 px-16",
|
|
140
|
+
children: [
|
|
141
|
+
/*#__PURE__*/ _jsx(Text, {
|
|
142
|
+
size: "sm",
|
|
143
|
+
className: "text-foreground-neutral-base",
|
|
144
|
+
children: "No jobs yet"
|
|
145
|
+
}),
|
|
146
|
+
/*#__PURE__*/ _jsx(Text, {
|
|
147
|
+
size: "xs",
|
|
148
|
+
className: "text-foreground-neutral-muted",
|
|
149
|
+
children: "Import past runs or start a runner."
|
|
150
|
+
})
|
|
151
|
+
]
|
|
152
|
+
})
|
|
153
|
+
]
|
|
154
|
+
})
|
|
155
|
+
]
|
|
156
|
+
}),
|
|
157
|
+
/*#__PURE__*/ _jsx("div", {
|
|
158
|
+
className: "space-y-16",
|
|
159
|
+
children: Array.from({
|
|
160
|
+
length: 3
|
|
161
|
+
}).map((_, i)=>{
|
|
162
|
+
const blockId = `analytics-extra-block-${i}`;
|
|
163
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
164
|
+
className: "p-12 md:p-16 rounded-8 bg-background-subtle-base border border-border-neutral-strong",
|
|
165
|
+
children: [
|
|
166
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
167
|
+
className: "h-16 w-full max-w-400 mb-8"
|
|
168
|
+
}),
|
|
169
|
+
/*#__PURE__*/ _jsx(Skeleton, {
|
|
170
|
+
className: "h-12 w-full max-w-600"
|
|
171
|
+
})
|
|
172
|
+
]
|
|
173
|
+
}, blockId);
|
|
174
|
+
})
|
|
175
|
+
})
|
|
176
|
+
]
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//# sourceMappingURL=analytics-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/analytics-content.tsx"],"sourcesContent":["import {Icon} from 'components/icon';\nimport {Skeleton} from 'components/skeleton';\nimport {Text} from 'components/typography';\n\nexport function AnalyticsContent() {\n return (\n <div className=\"min-h-[calc(100vh-48px)] p-12 md:p-24 space-y-16 md:space-y-20 bg-background-neutral-base\">\n <div className=\"flex flex-col md:flex-row items-start md:items-center justify-between gap-12 md:gap-0\">\n <Skeleton className=\"h-28 md:h-32 w-120 md:w-160\" />\n <div className=\"flex items-center gap-8 md:gap-16\">\n <Skeleton className=\"h-28 md:h-32 w-80 md:w-100\" />\n <Skeleton className=\"h-28 md:h-32 w-100 md:w-160\" />\n </div>\n </div>\n\n <div className=\"flex gap-12 md:gap-16 overflow-x-auto scrollbar pb-4 md:pb-0 -mx-12 px-12 md:mx-0 md:px-0\">\n {['Total', 'Success', 'Failed', 'Neutral', 'Failure rate'].map((label) => (\n <div\n key={label}\n className=\"shrink-0 w-100 md:w-auto md:flex-1 p-12 rounded-8 bg-background-neutral-base border border-border-neutral-base\"\n >\n <p className=\"text-xs text-foreground-neutral-subtle mb-4\">{label}</p>\n <Skeleton className=\"h-20 w-40\" />\n </div>\n ))}\n </div>\n\n <div className=\"flex flex-col md:flex-row gap-16 md:gap-20\">\n <div className=\"flex-1 p-12 rounded-8 bg-background-neutral-base border border-border-neutral-base\">\n <p className=\"text-sm font-medium text-foreground-neutral-base mb-12\">\n Performance over time\n </p>\n <div className=\"h-120 md:h-160 flex items-center justify-center\">\n <div className=\"text-center\">\n <Icon\n name=\"fileChartLine\"\n className=\"size-24 text-foreground-neutral-muted mx-auto mb-8\"\n />\n <p className=\"text-sm text-foreground-neutral-subtle\">Nothing here yet.</p>\n </div>\n </div>\n </div>\n <div className=\"flex-1 p-12 rounded-8 bg-background-neutral-base border border-border-neutral-base\">\n <p className=\"text-sm font-medium text-foreground-neutral-base mb-12\">\n Duration distribution\n </p>\n <div className=\"h-120 md:h-160 flex items-center justify-center\">\n <div className=\"text-center\">\n <Icon\n name=\"barChartBoxLine\"\n className=\"size-24 text-foreground-neutral-muted mx-auto mb-8\"\n />\n <p className=\"text-sm text-foreground-neutral-subtle\">Nothing here yet.</p>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"rounded-8 bg-background-neutral-base border border-border-neutral-base overflow-hidden\">\n <div className=\"flex flex-col md:flex-row items-start md:items-center justify-between p-12 gap-12 md:gap-0 border-b border-border-neutral-strong\">\n <p className=\"text-sm font-medium text-foreground-neutral-base\">Jobs breakdown</p>\n <div className=\"flex items-center gap-8 md:gap-16 w-full md:w-auto\">\n <Skeleton className=\"h-28 flex-1 md:flex-none md:w-200\" />\n <Skeleton className=\"h-28 w-28 shrink-0\" />\n </div>\n </div>\n <div className=\"py-48 md:py-64 flex flex-col items-center justify-center gap-12\">\n <div className=\"size-32 rounded-6 bg-transparent border border-border-neutral-strong flex items-center justify-center\">\n <Icon\n name=\"shipfox\"\n className=\"size-16 text-foreground-neutral-subtle\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </div>\n <div className=\"text-center space-y-4 px-16\">\n <Text size=\"sm\" className=\"text-foreground-neutral-base\">\n No jobs yet\n </Text>\n <Text size=\"xs\" className=\"text-foreground-neutral-muted\">\n Import past runs or start a runner.\n </Text>\n </div>\n </div>\n </div>\n\n <div className=\"space-y-16\">\n {Array.from({length: 3}).map((_, i) => {\n const blockId = `analytics-extra-block-${i}`;\n return (\n <div\n key={blockId}\n className=\"p-12 md:p-16 rounded-8 bg-background-subtle-base border border-border-neutral-strong\"\n >\n <Skeleton className=\"h-16 w-full max-w-400 mb-8\" />\n <Skeleton className=\"h-12 w-full max-w-600\" />\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n"],"names":["Icon","Skeleton","Text","AnalyticsContent","div","className","map","label","p","name","color","size","Array","from","length","_","i","blockId"],"mappings":";AAAA,SAAQA,IAAI,QAAO,kBAAkB;AACrC,SAAQC,QAAQ,QAAO,sBAAsB;AAC7C,SAAQC,IAAI,QAAO,wBAAwB;AAE3C,OAAO,SAASC;IACd,qBACE,MAACC;QAAIC,WAAU;;0BACb,MAACD;gBAAIC,WAAU;;kCACb,KAACJ;wBAASI,WAAU;;kCACpB,MAACD;wBAAIC,WAAU;;0CACb,KAACJ;gCAASI,WAAU;;0CACpB,KAACJ;gCAASI,WAAU;;;;;;0BAIxB,KAACD;gBAAIC,WAAU;0BACZ;oBAAC;oBAAS;oBAAW;oBAAU;oBAAW;iBAAe,CAACC,GAAG,CAAC,CAACC,sBAC9D,MAACH;wBAECC,WAAU;;0CAEV,KAACG;gCAAEH,WAAU;0CAA+CE;;0CAC5D,KAACN;gCAASI,WAAU;;;uBAJfE;;0BASX,MAACH;gBAAIC,WAAU;;kCACb,MAACD;wBAAIC,WAAU;;0CACb,KAACG;gCAAEH,WAAU;0CAAyD;;0CAGtE,KAACD;gCAAIC,WAAU;0CACb,cAAA,MAACD;oCAAIC,WAAU;;sDACb,KAACL;4CACCS,MAAK;4CACLJ,WAAU;;sDAEZ,KAACG;4CAAEH,WAAU;sDAAyC;;;;;;;kCAI5D,MAACD;wBAAIC,WAAU;;0CACb,KAACG;gCAAEH,WAAU;0CAAyD;;0CAGtE,KAACD;gCAAIC,WAAU;0CACb,cAAA,MAACD;oCAAIC,WAAU;;sDACb,KAACL;4CACCS,MAAK;4CACLJ,WAAU;;sDAEZ,KAACG;4CAAEH,WAAU;sDAAyC;;;;;;;;;0BAM9D,MAACD;gBAAIC,WAAU;;kCACb,MAACD;wBAAIC,WAAU;;0CACb,KAACG;gCAAEH,WAAU;0CAAmD;;0CAChE,MAACD;gCAAIC,WAAU;;kDACb,KAACJ;wCAASI,WAAU;;kDACpB,KAACJ;wCAASI,WAAU;;;;;;kCAGxB,MAACD;wBAAIC,WAAU;;0CACb,KAACD;gCAAIC,WAAU;0CACb,cAAA,KAACL;oCACCS,MAAK;oCACLJ,WAAU;oCACVK,OAAM;;;0CAGV,MAACN;gCAAIC,WAAU;;kDACb,KAACH;wCAAKS,MAAK;wCAAKN,WAAU;kDAA+B;;kDAGzD,KAACH;wCAAKS,MAAK;wCAAKN,WAAU;kDAAgC;;;;;;;;0BAOhE,KAACD;gBAAIC,WAAU;0BACZO,MAAMC,IAAI,CAAC;oBAACC,QAAQ;gBAAC,GAAGR,GAAG,CAAC,CAACS,GAAGC;oBAC/B,MAAMC,UAAU,CAAC,sBAAsB,EAAED,GAAG;oBAC5C,qBACE,MAACZ;wBAECC,WAAU;;0CAEV,KAACJ;gCAASI,WAAU;;0CACpB,KAACJ;gCAASI,WAAU;;;uBAJfY;gBAOX;;;;AAIR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animated-logo.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/components/animated-logo.tsx"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,EAAC,cAAc,EAAC,EAAE;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,kDAmBtE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Icon } from '../../../components/icon/index.js';
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
const LOGO_HEIGHT = 48;
|
|
5
|
+
export function AnimatedLogo({ scrollProgress }) {
|
|
6
|
+
const isVisible = scrollProgress > 0;
|
|
7
|
+
if (!isVisible) return null;
|
|
8
|
+
const easedProgress = 1 - (1 - scrollProgress) ** 3;
|
|
9
|
+
return /*#__PURE__*/ _jsx(motion.div, {
|
|
10
|
+
className: "fixed top-0 left-0 z-50 flex items-center justify-center shrink-0 w-48 h-48 bg-background-neutral-base",
|
|
11
|
+
style: {
|
|
12
|
+
opacity: easedProgress,
|
|
13
|
+
transform: `translateY(${-LOGO_HEIGHT + easedProgress * LOGO_HEIGHT}px)`
|
|
14
|
+
},
|
|
15
|
+
initial: false,
|
|
16
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
17
|
+
name: "shipfox",
|
|
18
|
+
className: "size-20 text-foreground-neutral-subtle"
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=animated-logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/animated-logo.tsx"],"sourcesContent":["import {Icon} from 'components/icon';\nimport {motion} from 'framer-motion';\n\nconst LOGO_HEIGHT = 48;\n\nexport function AnimatedLogo({scrollProgress}: {scrollProgress: number}) {\n const isVisible = scrollProgress > 0;\n\n if (!isVisible) return null;\n\n const easedProgress = 1 - (1 - scrollProgress) ** 3;\n\n return (\n <motion.div\n className=\"fixed top-0 left-0 z-50 flex items-center justify-center shrink-0 w-48 h-48 bg-background-neutral-base\"\n style={{\n opacity: easedProgress,\n transform: `translateY(${-LOGO_HEIGHT + easedProgress * LOGO_HEIGHT}px)`,\n }}\n initial={false}\n >\n <Icon name=\"shipfox\" className=\"size-20 text-foreground-neutral-subtle\" />\n </motion.div>\n );\n}\n"],"names":["Icon","motion","LOGO_HEIGHT","AnimatedLogo","scrollProgress","isVisible","easedProgress","div","className","style","opacity","transform","initial","name"],"mappings":";AAAA,SAAQA,IAAI,QAAO,kBAAkB;AACrC,SAAQC,MAAM,QAAO,gBAAgB;AAErC,MAAMC,cAAc;AAEpB,OAAO,SAASC,aAAa,EAACC,cAAc,EAA2B;IACrE,MAAMC,YAAYD,iBAAiB;IAEnC,IAAI,CAACC,WAAW,OAAO;IAEvB,MAAMC,gBAAgB,IAAI,AAAC,CAAA,IAAIF,cAAa,KAAM;IAElD,qBACE,KAACH,OAAOM,GAAG;QACTC,WAAU;QACVC,OAAO;YACLC,SAASJ;YACTK,WAAW,CAAC,WAAW,EAAE,CAACT,cAAcI,gBAAgBJ,YAAY,GAAG,CAAC;QAC1E;QACAU,SAAS;kBAET,cAAA,KAACZ;YAAKa,MAAK;YAAUL,WAAU;;;AAGrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete-setup-button.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/components/complete-setup-button.tsx"],"names":[],"mappings":"AAMA,wBAAgB,mBAAmB,CAAC,EAAC,SAAS,EAAC,EAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,2CAuBpE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from '../../../components/button/index.js';
|
|
3
|
+
import { ShinyText } from '../../../components/shiny-text/index.js';
|
|
4
|
+
import { useResolvedTheme } from '../../../hooks/useResolvedTheme.js';
|
|
5
|
+
import { ShipfoxLoader } from 'shipfox-loader-react';
|
|
6
|
+
import { cn } from '../../../utils/cn.js';
|
|
7
|
+
export function CompleteSetupButton({ className }) {
|
|
8
|
+
const resolvedTheme = useResolvedTheme();
|
|
9
|
+
return /*#__PURE__*/ _jsxs(Button, {
|
|
10
|
+
type: "button",
|
|
11
|
+
variant: "transparent",
|
|
12
|
+
className: cn('flex items-center gap-8 min-w-124 max-w-280 overflow-hidden px-12 py-10 transition-colors rounded-none h-40 border-l border-border-neutral-strong', className),
|
|
13
|
+
children: [
|
|
14
|
+
/*#__PURE__*/ _jsx(ShipfoxLoader, {
|
|
15
|
+
size: 13,
|
|
16
|
+
animation: "circular",
|
|
17
|
+
color: resolvedTheme === 'dark' ? 'white' : 'orange',
|
|
18
|
+
background: resolvedTheme === 'dark' ? 'dark' : 'light'
|
|
19
|
+
}),
|
|
20
|
+
/*#__PURE__*/ _jsx(ShinyText, {
|
|
21
|
+
text: "Complete setup",
|
|
22
|
+
className: "flex-1 text-sm font-medium leading-20 text-foreground-neutral-base truncate text-left"
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=complete-setup-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/complete-setup-button.tsx"],"sourcesContent":["import {Button} from 'components/button';\nimport {ShinyText} from 'components/shiny-text';\nimport {useResolvedTheme} from 'hooks/useResolvedTheme';\nimport {ShipfoxLoader} from 'shipfox-loader-react';\nimport {cn} from 'utils/cn';\n\nexport function CompleteSetupButton({className}: {className?: string}) {\n const resolvedTheme = useResolvedTheme();\n return (\n <Button\n type=\"button\"\n variant=\"transparent\"\n className={cn(\n 'flex items-center gap-8 min-w-124 max-w-280 overflow-hidden px-12 py-10 transition-colors rounded-none h-40 border-l border-border-neutral-strong',\n className,\n )}\n >\n <ShipfoxLoader\n size={13}\n animation=\"circular\"\n color={resolvedTheme === 'dark' ? 'white' : 'orange'}\n background={resolvedTheme === 'dark' ? 'dark' : 'light'}\n />\n <ShinyText\n text=\"Complete setup\"\n className=\"flex-1 text-sm font-medium leading-20 text-foreground-neutral-base truncate text-left\"\n />\n </Button>\n );\n}\n"],"names":["Button","ShinyText","useResolvedTheme","ShipfoxLoader","cn","CompleteSetupButton","className","resolvedTheme","type","variant","size","animation","color","background","text"],"mappings":";AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SAAQC,SAAS,QAAO,wBAAwB;AAChD,SAAQC,gBAAgB,QAAO,yBAAyB;AACxD,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,EAAE,QAAO,WAAW;AAE5B,OAAO,SAASC,oBAAoB,EAACC,SAAS,EAAuB;IACnE,MAAMC,gBAAgBL;IACtB,qBACE,MAACF;QACCQ,MAAK;QACLC,SAAQ;QACRH,WAAWF,GACT,qJACAE;;0BAGF,KAACH;gBACCO,MAAM;gBACNC,WAAU;gBACVC,OAAOL,kBAAkB,SAAS,UAAU;gBAC5CM,YAAYN,kBAAkB,SAAS,SAAS;;0BAElD,KAACN;gBACCa,MAAK;gBACLR,WAAU;;;;AAIlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs-content.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/components/jobs-content.tsx"],"names":[],"mappings":"AASA,wBAAgB,WAAW,4CAyC1B"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from '../../../components/button/index.js';
|
|
3
|
+
import { Icon } from '../../../components/icon/index.js';
|
|
4
|
+
import { SearchInline } from '../../../components/search/search-inline.js';
|
|
5
|
+
import { DataTable } from '../../../components/table/data-table.js';
|
|
6
|
+
import { jobColumns } from '../../../components/table/table.stories.columns.js';
|
|
7
|
+
import { jobsData } from '../../../components/table/table.stories.data.js';
|
|
8
|
+
import { Header as TypographyHeader } from '../../../components/typography/index.js';
|
|
9
|
+
import { useMemo, useState } from 'react';
|
|
10
|
+
export function JobsContent() {
|
|
11
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
12
|
+
const filteredData = useMemo(()=>jobsData.filter((job)=>job.name.toLowerCase().includes(searchQuery.toLowerCase())), [
|
|
13
|
+
searchQuery
|
|
14
|
+
]);
|
|
15
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
16
|
+
className: "min-h-[calc(100vh-48px)] p-12 md:p-24 bg-background-neutral-base",
|
|
17
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
18
|
+
className: "rounded-t-8 overflow-hidden",
|
|
19
|
+
children: [
|
|
20
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
21
|
+
className: "flex flex-col md:flex-row md:items-center md:justify-between gap-12 md:gap-0 p-12 border-t border-x border-border-neutral-base rounded-t-8 bg-background-neutral-base",
|
|
22
|
+
children: [
|
|
23
|
+
/*#__PURE__*/ _jsx(TypographyHeader, {
|
|
24
|
+
variant: "h3",
|
|
25
|
+
className: "text-foreground-neutral-base",
|
|
26
|
+
children: "Jobs breakdown"
|
|
27
|
+
}),
|
|
28
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
29
|
+
className: "flex items-center gap-8 md:gap-16 w-full md:w-auto",
|
|
30
|
+
children: [
|
|
31
|
+
/*#__PURE__*/ _jsx(SearchInline, {
|
|
32
|
+
placeholder: "Search...",
|
|
33
|
+
value: searchQuery,
|
|
34
|
+
onChange: (e)=>setSearchQuery(e.target.value),
|
|
35
|
+
onClear: ()=>setSearchQuery(''),
|
|
36
|
+
className: "flex-1 md:w-240"
|
|
37
|
+
}),
|
|
38
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
39
|
+
variant: "secondary",
|
|
40
|
+
"aria-label": "Insert column left",
|
|
41
|
+
className: "shrink-0",
|
|
42
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
43
|
+
name: "insertColumnLeft",
|
|
44
|
+
className: "size-16 text-foreground-neutral-subtle"
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
}),
|
|
51
|
+
/*#__PURE__*/ _jsx(DataTable, {
|
|
52
|
+
columns: jobColumns,
|
|
53
|
+
data: filteredData,
|
|
54
|
+
pagination: true,
|
|
55
|
+
pageSize: 10,
|
|
56
|
+
pageSizeOptions: [
|
|
57
|
+
10,
|
|
58
|
+
20,
|
|
59
|
+
50,
|
|
60
|
+
100
|
|
61
|
+
],
|
|
62
|
+
className: "rounded-t-none"
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=jobs-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/jobs-content.tsx"],"sourcesContent":["import {Button} from 'components/button';\nimport {Icon} from 'components/icon';\nimport {SearchInline} from 'components/search/search-inline';\nimport {DataTable} from 'components/table/data-table';\nimport {jobColumns} from 'components/table/table.stories.columns';\nimport {jobsData} from 'components/table/table.stories.data';\nimport {Header as TypographyHeader} from 'components/typography';\nimport {useMemo, useState} from 'react';\n\nexport function JobsContent() {\n const [searchQuery, setSearchQuery] = useState('');\n\n const filteredData = useMemo(\n () => jobsData.filter((job) => job.name.toLowerCase().includes(searchQuery.toLowerCase())),\n [searchQuery],\n );\n\n return (\n <div className=\"min-h-[calc(100vh-48px)] p-12 md:p-24 bg-background-neutral-base\">\n <div className=\"rounded-t-8 overflow-hidden\">\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-12 md:gap-0 p-12 border-t border-x border-border-neutral-base rounded-t-8 bg-background-neutral-base\">\n <TypographyHeader variant=\"h3\" className=\"text-foreground-neutral-base\">\n Jobs breakdown\n </TypographyHeader>\n\n <div className=\"flex items-center gap-8 md:gap-16 w-full md:w-auto\">\n <SearchInline\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n onClear={() => setSearchQuery('')}\n className=\"flex-1 md:w-240\"\n />\n <Button variant=\"secondary\" aria-label=\"Insert column left\" className=\"shrink-0\">\n <Icon name=\"insertColumnLeft\" className=\"size-16 text-foreground-neutral-subtle\" />\n </Button>\n </div>\n </div>\n\n <DataTable\n columns={jobColumns}\n data={filteredData}\n pagination={true}\n pageSize={10}\n pageSizeOptions={[10, 20, 50, 100]}\n className=\"rounded-t-none\"\n />\n </div>\n </div>\n );\n}\n"],"names":["Button","Icon","SearchInline","DataTable","jobColumns","jobsData","Header","TypographyHeader","useMemo","useState","JobsContent","searchQuery","setSearchQuery","filteredData","filter","job","name","toLowerCase","includes","div","className","variant","placeholder","value","onChange","e","target","onClear","aria-label","columns","data","pagination","pageSize","pageSizeOptions"],"mappings":";AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SAAQC,IAAI,QAAO,kBAAkB;AACrC,SAAQC,YAAY,QAAO,kCAAkC;AAC7D,SAAQC,SAAS,QAAO,8BAA8B;AACtD,SAAQC,UAAU,QAAO,yCAAyC;AAClE,SAAQC,QAAQ,QAAO,sCAAsC;AAC7D,SAAQC,UAAUC,gBAAgB,QAAO,wBAAwB;AACjE,SAAQC,OAAO,EAAEC,QAAQ,QAAO,QAAQ;AAExC,OAAO,SAASC;IACd,MAAM,CAACC,aAAaC,eAAe,GAAGH,SAAS;IAE/C,MAAMI,eAAeL,QACnB,IAAMH,SAASS,MAAM,CAAC,CAACC,MAAQA,IAAIC,IAAI,CAACC,WAAW,GAAGC,QAAQ,CAACP,YAAYM,WAAW,MACtF;QAACN;KAAY;IAGf,qBACE,KAACQ;QAAIC,WAAU;kBACb,cAAA,MAACD;YAAIC,WAAU;;8BACb,MAACD;oBAAIC,WAAU;;sCACb,KAACb;4BAAiBc,SAAQ;4BAAKD,WAAU;sCAA+B;;sCAIxE,MAACD;4BAAIC,WAAU;;8CACb,KAAClB;oCACCoB,aAAY;oCACZC,OAAOZ;oCACPa,UAAU,CAACC,IAAMb,eAAea,EAAEC,MAAM,CAACH,KAAK;oCAC9CI,SAAS,IAAMf,eAAe;oCAC9BQ,WAAU;;8CAEZ,KAACpB;oCAAOqB,SAAQ;oCAAYO,cAAW;oCAAqBR,WAAU;8CACpE,cAAA,KAACnB;wCAAKe,MAAK;wCAAmBI,WAAU;;;;;;;8BAK9C,KAACjB;oBACC0B,SAASzB;oBACT0B,MAAMjB;oBACNkB,YAAY;oBACZC,UAAU;oBACVC,iBAAiB;wBAAC;wBAAI;wBAAI;wBAAI;qBAAI;oBAClCb,WAAU;;;;;AAKpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mobile-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/components/mobile-menu.tsx"],"names":[],"mappings":"AAaA,wBAAgB,UAAU,4CAoCzB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from '../../../components/button/index.js';
|
|
3
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from '../../../components/dropdown-menu/index.js';
|
|
4
|
+
import { Icon } from '../../../components/icon/index.js';
|
|
5
|
+
import { ShinyText } from '../../../components/shiny-text/index.js';
|
|
6
|
+
import { useResolvedTheme } from '../../../hooks/useResolvedTheme.js';
|
|
7
|
+
import { ShipfoxLoader } from 'shipfox-loader-react';
|
|
8
|
+
export function MobileMenu() {
|
|
9
|
+
const resolvedTheme = useResolvedTheme();
|
|
10
|
+
return /*#__PURE__*/ _jsxs(DropdownMenu, {
|
|
11
|
+
children: [
|
|
12
|
+
/*#__PURE__*/ _jsx(DropdownMenuTrigger, {
|
|
13
|
+
asChild: true,
|
|
14
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
15
|
+
type: "button",
|
|
16
|
+
variant: "transparent",
|
|
17
|
+
className: "flex md:hidden items-center justify-center shrink-0 w-40 h-40 bg-background-subtle-base hover:bg-background-neutral-hover transition-colors rounded-none border-l border-border-neutral-strong",
|
|
18
|
+
"aria-label": "Menu",
|
|
19
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
20
|
+
name: "menuLine",
|
|
21
|
+
className: "size-18 text-foreground-neutral-subtle"
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
}),
|
|
25
|
+
/*#__PURE__*/ _jsxs(DropdownMenuContent, {
|
|
26
|
+
align: "end",
|
|
27
|
+
className: "w-200",
|
|
28
|
+
children: [
|
|
29
|
+
/*#__PURE__*/ _jsx(DropdownMenuItem, {
|
|
30
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
31
|
+
className: "flex items-center gap-8",
|
|
32
|
+
children: [
|
|
33
|
+
/*#__PURE__*/ _jsx(ShipfoxLoader, {
|
|
34
|
+
size: 13,
|
|
35
|
+
animation: "circular",
|
|
36
|
+
color: resolvedTheme === 'dark' ? 'white' : 'orange',
|
|
37
|
+
background: resolvedTheme === 'dark' ? 'dark' : 'light'
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ _jsx(ShinyText, {
|
|
40
|
+
text: "Complete setup",
|
|
41
|
+
className: "flex-1 text-sm font-medium leading-20 text-foreground-neutral-base truncate text-left"
|
|
42
|
+
})
|
|
43
|
+
]
|
|
44
|
+
})
|
|
45
|
+
}),
|
|
46
|
+
/*#__PURE__*/ _jsx(DropdownMenuSeparator, {}),
|
|
47
|
+
/*#__PURE__*/ _jsx(DropdownMenuItem, {
|
|
48
|
+
icon: "searchLine",
|
|
49
|
+
children: "Search"
|
|
50
|
+
}),
|
|
51
|
+
/*#__PURE__*/ _jsx(DropdownMenuItem, {
|
|
52
|
+
icon: "questionLine",
|
|
53
|
+
children: "Help"
|
|
54
|
+
}),
|
|
55
|
+
/*#__PURE__*/ _jsx(DropdownMenuItem, {
|
|
56
|
+
icon: "notification3Line",
|
|
57
|
+
children: "Notifications"
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=mobile-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/mobile-menu.tsx"],"sourcesContent":["import {Button} from 'components/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from 'components/dropdown-menu';\nimport {Icon} from 'components/icon';\nimport {ShinyText} from 'components/shiny-text';\nimport {useResolvedTheme} from 'hooks/useResolvedTheme';\nimport {ShipfoxLoader} from 'shipfox-loader-react';\n\nexport function MobileMenu() {\n const resolvedTheme = useResolvedTheme();\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"transparent\"\n className=\"flex md:hidden items-center justify-center shrink-0 w-40 h-40 bg-background-subtle-base hover:bg-background-neutral-hover transition-colors rounded-none border-l border-border-neutral-strong\"\n aria-label=\"Menu\"\n >\n <Icon name=\"menuLine\" className=\"size-18 text-foreground-neutral-subtle\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-200\">\n <DropdownMenuItem>\n <div className=\"flex items-center gap-8\">\n <ShipfoxLoader\n size={13}\n animation=\"circular\"\n color={resolvedTheme === 'dark' ? 'white' : 'orange'}\n background={resolvedTheme === 'dark' ? 'dark' : 'light'}\n />\n <ShinyText\n text=\"Complete setup\"\n className=\"flex-1 text-sm font-medium leading-20 text-foreground-neutral-base truncate text-left\"\n />\n </div>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem icon=\"searchLine\">Search</DropdownMenuItem>\n <DropdownMenuItem icon=\"questionLine\">Help</DropdownMenuItem>\n <DropdownMenuItem icon=\"notification3Line\">Notifications</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n"],"names":["Button","DropdownMenu","DropdownMenuContent","DropdownMenuItem","DropdownMenuSeparator","DropdownMenuTrigger","Icon","ShinyText","useResolvedTheme","ShipfoxLoader","MobileMenu","resolvedTheme","asChild","type","variant","className","aria-label","name","align","div","size","animation","color","background","text","icon"],"mappings":";AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SACEC,YAAY,EACZC,mBAAmB,EACnBC,gBAAgB,EAChBC,qBAAqB,EACrBC,mBAAmB,QACd,2BAA2B;AAClC,SAAQC,IAAI,QAAO,kBAAkB;AACrC,SAAQC,SAAS,QAAO,wBAAwB;AAChD,SAAQC,gBAAgB,QAAO,yBAAyB;AACxD,SAAQC,aAAa,QAAO,uBAAuB;AAEnD,OAAO,SAASC;IACd,MAAMC,gBAAgBH;IACtB,qBACE,MAACP;;0BACC,KAACI;gBAAoBO,OAAO;0BAC1B,cAAA,KAACZ;oBACCa,MAAK;oBACLC,SAAQ;oBACRC,WAAU;oBACVC,cAAW;8BAEX,cAAA,KAACV;wBAAKW,MAAK;wBAAWF,WAAU;;;;0BAGpC,MAACb;gBAAoBgB,OAAM;gBAAMH,WAAU;;kCACzC,KAACZ;kCACC,cAAA,MAACgB;4BAAIJ,WAAU;;8CACb,KAACN;oCACCW,MAAM;oCACNC,WAAU;oCACVC,OAAOX,kBAAkB,SAAS,UAAU;oCAC5CY,YAAYZ,kBAAkB,SAAS,SAAS;;8CAElD,KAACJ;oCACCiB,MAAK;oCACLT,WAAU;;;;;kCAIhB,KAACX;kCACD,KAACD;wBAAiBsB,MAAK;kCAAa;;kCACpC,KAACtB;wBAAiBsB,MAAK;kCAAe;;kCACtC,KAACtB;wBAAiBsB,MAAK;kCAAoB;;;;;;AAInD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-selector.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/components/organization-selector.tsx"],"names":[],"mappings":"AAYA,wBAAgB,oBAAoB,4CAsCnC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar } from '../../../components/avatar/index.js';
|
|
3
|
+
import { Button } from '../../../components/button/index.js';
|
|
4
|
+
import { Icon } from '../../../components/icon/index.js';
|
|
5
|
+
import { Select, SelectContent, SelectItem, SelectSeparator, SelectTrigger, SelectValue } from '../../../components/select/index.js';
|
|
6
|
+
export function OrganizationSelector() {
|
|
7
|
+
return /*#__PURE__*/ _jsxs(Select, {
|
|
8
|
+
defaultValue: "stripe",
|
|
9
|
+
children: [
|
|
10
|
+
/*#__PURE__*/ _jsx(SelectTrigger, {
|
|
11
|
+
className: "w-200 h-40 shadow-none bg-background-neutral-base hover:bg-background-neutral-hover rounded-none gap-8 pl-12 border-l min-[321px]:border-r border-border-neutral-strong",
|
|
12
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
13
|
+
className: "flex items-center gap-8 flex-1 min-w-0",
|
|
14
|
+
children: /*#__PURE__*/ _jsx(SelectValue, {
|
|
15
|
+
placeholder: "Select organization"
|
|
16
|
+
})
|
|
17
|
+
})
|
|
18
|
+
}),
|
|
19
|
+
/*#__PURE__*/ _jsxs(SelectContent, {
|
|
20
|
+
children: [
|
|
21
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
22
|
+
value: "stripe",
|
|
23
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
24
|
+
className: "flex items-center gap-8",
|
|
25
|
+
children: [
|
|
26
|
+
/*#__PURE__*/ _jsx(Avatar, {
|
|
27
|
+
size: "3xs",
|
|
28
|
+
content: "logo",
|
|
29
|
+
logoName: "stripe",
|
|
30
|
+
radius: "rounded"
|
|
31
|
+
}),
|
|
32
|
+
/*#__PURE__*/ _jsx("span", {
|
|
33
|
+
children: "Stripe"
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
})
|
|
37
|
+
}),
|
|
38
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
39
|
+
value: "shipfox",
|
|
40
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
41
|
+
className: "flex items-center gap-8",
|
|
42
|
+
children: [
|
|
43
|
+
/*#__PURE__*/ _jsx(Avatar, {
|
|
44
|
+
size: "3xs",
|
|
45
|
+
content: "logo",
|
|
46
|
+
logoName: "shipfox",
|
|
47
|
+
radius: "rounded"
|
|
48
|
+
}),
|
|
49
|
+
/*#__PURE__*/ _jsx("span", {
|
|
50
|
+
children: "Shipfox"
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
})
|
|
54
|
+
}),
|
|
55
|
+
/*#__PURE__*/ _jsx(SelectItem, {
|
|
56
|
+
value: "github",
|
|
57
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
58
|
+
className: "flex items-center gap-8",
|
|
59
|
+
children: [
|
|
60
|
+
/*#__PURE__*/ _jsx(Avatar, {
|
|
61
|
+
size: "3xs",
|
|
62
|
+
content: "logo",
|
|
63
|
+
logoName: "github",
|
|
64
|
+
radius: "rounded"
|
|
65
|
+
}),
|
|
66
|
+
/*#__PURE__*/ _jsx("span", {
|
|
67
|
+
children: "GitHub"
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
}),
|
|
72
|
+
/*#__PURE__*/ _jsx(SelectSeparator, {}),
|
|
73
|
+
/*#__PURE__*/ _jsxs(Button, {
|
|
74
|
+
variant: "transparent",
|
|
75
|
+
className: "w-full justify-start text-foreground-neutral-subtle",
|
|
76
|
+
children: [
|
|
77
|
+
/*#__PURE__*/ _jsx(Icon, {
|
|
78
|
+
name: "addLine",
|
|
79
|
+
className: "size-16 shrink-0"
|
|
80
|
+
}),
|
|
81
|
+
/*#__PURE__*/ _jsx("span", {
|
|
82
|
+
children: "New organization"
|
|
83
|
+
})
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
})
|
|
88
|
+
]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=organization-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/organization-selector.tsx"],"sourcesContent":["import {Avatar} from 'components/avatar';\nimport {Button} from 'components/button';\nimport {Icon} from 'components/icon';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n} from 'components/select';\n\nexport function OrganizationSelector() {\n return (\n <Select defaultValue=\"stripe\">\n <SelectTrigger className=\"w-200 h-40 shadow-none bg-background-neutral-base hover:bg-background-neutral-hover rounded-none gap-8 pl-12 border-l min-[321px]:border-r border-border-neutral-strong\">\n <div className=\"flex items-center gap-8 flex-1 min-w-0\">\n <SelectValue placeholder=\"Select organization\" />\n </div>\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"stripe\">\n <div className=\"flex items-center gap-8\">\n <Avatar size=\"3xs\" content=\"logo\" logoName=\"stripe\" radius=\"rounded\" />\n <span>Stripe</span>\n </div>\n </SelectItem>\n <SelectItem value=\"shipfox\">\n <div className=\"flex items-center gap-8\">\n <Avatar size=\"3xs\" content=\"logo\" logoName=\"shipfox\" radius=\"rounded\" />\n <span>Shipfox</span>\n </div>\n </SelectItem>\n <SelectItem value=\"github\">\n <div className=\"flex items-center gap-8\">\n <Avatar size=\"3xs\" content=\"logo\" logoName=\"github\" radius=\"rounded\" />\n <span>GitHub</span>\n </div>\n </SelectItem>\n <SelectSeparator />\n <Button\n variant=\"transparent\"\n className=\"w-full justify-start text-foreground-neutral-subtle\"\n >\n <Icon name=\"addLine\" className=\"size-16 shrink-0\" />\n <span>New organization</span>\n </Button>\n </SelectContent>\n </Select>\n );\n}\n"],"names":["Avatar","Button","Icon","Select","SelectContent","SelectItem","SelectSeparator","SelectTrigger","SelectValue","OrganizationSelector","defaultValue","className","div","placeholder","value","size","content","logoName","radius","span","variant","name"],"mappings":";AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SAAQC,MAAM,QAAO,oBAAoB;AACzC,SAAQC,IAAI,QAAO,kBAAkB;AACrC,SACEC,MAAM,EACNC,aAAa,EACbC,UAAU,EACVC,eAAe,EACfC,aAAa,EACbC,WAAW,QACN,oBAAoB;AAE3B,OAAO,SAASC;IACd,qBACE,MAACN;QAAOO,cAAa;;0BACnB,KAACH;gBAAcI,WAAU;0BACvB,cAAA,KAACC;oBAAID,WAAU;8BACb,cAAA,KAACH;wBAAYK,aAAY;;;;0BAG7B,MAACT;;kCACC,KAACC;wBAAWS,OAAM;kCAChB,cAAA,MAACF;4BAAID,WAAU;;8CACb,KAACX;oCAAOe,MAAK;oCAAMC,SAAQ;oCAAOC,UAAS;oCAASC,QAAO;;8CAC3D,KAACC;8CAAK;;;;;kCAGV,KAACd;wBAAWS,OAAM;kCAChB,cAAA,MAACF;4BAAID,WAAU;;8CACb,KAACX;oCAAOe,MAAK;oCAAMC,SAAQ;oCAAOC,UAAS;oCAAUC,QAAO;;8CAC5D,KAACC;8CAAK;;;;;kCAGV,KAACd;wBAAWS,OAAM;kCAChB,cAAA,MAACF;4BAAID,WAAU;;8CACb,KAACX;oCAAOe,MAAK;oCAAMC,SAAQ;oCAAOC,UAAS;oCAASC,QAAO;;8CAC3D,KAACC;8CAAK;;;;;kCAGV,KAACb;kCACD,MAACL;wBACCmB,SAAQ;wBACRT,WAAU;;0CAEV,KAACT;gCAAKmB,MAAK;gCAAUV,WAAU;;0CAC/B,KAACQ;0CAAK;;;;;;;;AAKhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"top-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/components/top-menu.tsx"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,WAAW,GACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,2CAiBA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Tabs, TabsList, TabsTrigger } from '../../../components/tabs/index.js';
|
|
3
|
+
export function TopMenu({ activeTab, onTabChange }) {
|
|
4
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
5
|
+
className: "flex items-center justify-between w-full",
|
|
6
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
7
|
+
className: "flex items-center flex-1 min-w-0 pl-12 md:pl-20 pr-8",
|
|
8
|
+
children: /*#__PURE__*/ _jsx(Tabs, {
|
|
9
|
+
value: activeTab,
|
|
10
|
+
onValueChange: onTabChange,
|
|
11
|
+
children: /*#__PURE__*/ _jsxs(TabsList, {
|
|
12
|
+
className: "h-48 gap-8 md:gap-12",
|
|
13
|
+
children: [
|
|
14
|
+
/*#__PURE__*/ _jsx(TabsTrigger, {
|
|
15
|
+
value: "analytics",
|
|
16
|
+
className: "text-sm font-medium",
|
|
17
|
+
children: "Analytics"
|
|
18
|
+
}),
|
|
19
|
+
/*#__PURE__*/ _jsx(TabsTrigger, {
|
|
20
|
+
value: "jobs",
|
|
21
|
+
className: "text-sm font-medium",
|
|
22
|
+
children: "Jobs"
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
})
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=top-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/dashboard/components/top-menu.tsx"],"sourcesContent":["import {Tabs, TabsList, TabsTrigger} from 'components/tabs';\n\nexport function TopMenu({\n activeTab,\n onTabChange,\n}: {\n activeTab: string;\n onTabChange: (tab: string) => void;\n}) {\n return (\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex items-center flex-1 min-w-0 pl-12 md:pl-20 pr-8\">\n <Tabs value={activeTab} onValueChange={onTabChange}>\n <TabsList className=\"h-48 gap-8 md:gap-12\">\n <TabsTrigger value=\"analytics\" className=\"text-sm font-medium\">\n Analytics\n </TabsTrigger>\n <TabsTrigger value=\"jobs\" className=\"text-sm font-medium\">\n Jobs\n </TabsTrigger>\n </TabsList>\n </Tabs>\n </div>\n </div>\n );\n}\n"],"names":["Tabs","TabsList","TabsTrigger","TopMenu","activeTab","onTabChange","div","className","value","onValueChange"],"mappings":";AAAA,SAAQA,IAAI,EAAEC,QAAQ,EAAEC,WAAW,QAAO,kBAAkB;AAE5D,OAAO,SAASC,QAAQ,EACtBC,SAAS,EACTC,WAAW,EAIZ;IACC,qBACE,KAACC;QAAIC,WAAU;kBACb,cAAA,KAACD;YAAIC,WAAU;sBACb,cAAA,KAACP;gBAAKQ,OAAOJ;gBAAWK,eAAeJ;0BACrC,cAAA,MAACJ;oBAASM,WAAU;;sCAClB,KAACL;4BAAYM,OAAM;4BAAYD,WAAU;sCAAsB;;sCAG/D,KAACL;4BAAYM,OAAM;4BAAOD,WAAU;sCAAsB;;;;;;;AAQtE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type IconName } from '../../../components/icon';
|
|
2
|
+
export declare function TopbarButton({ className, icon, label, }: {
|
|
3
|
+
className?: string;
|
|
4
|
+
icon: IconName;
|
|
5
|
+
label?: string;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=topbar-button.d.ts.map
|