@invergent/ui-sdk 0.0.0-stage → 2.19.1
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 +70 -2
- package/dist/accordion.cjs +97 -0
- package/dist/accordion.cjs.map +1 -0
- package/dist/accordion.d.cts +10 -0
- package/dist/accordion.d.ts +10 -0
- package/dist/accordion.js +92 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.cjs +82 -0
- package/dist/alert.cjs.map +1 -0
- package/dist/alert.d.cts +14 -0
- package/dist/alert.d.ts +14 -0
- package/dist/alert.js +77 -0
- package/dist/alert.js.map +1 -0
- package/dist/avatar.cjs +110 -0
- package/dist/avatar.cjs.map +1 -0
- package/dist/avatar.d.cts +14 -0
- package/dist/avatar.d.ts +14 -0
- package/dist/avatar.js +103 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.cjs +47 -0
- package/dist/badge.cjs.map +1 -0
- package/dist/badge.d.cts +13 -0
- package/dist/badge.d.ts +13 -0
- package/dist/badge.js +44 -0
- package/dist/badge.js.map +1 -0
- package/dist/brand-beam.cjs +2303 -0
- package/dist/brand-beam.cjs.map +1 -0
- package/dist/brand-beam.d.cts +36 -0
- package/dist/brand-beam.d.ts +36 -0
- package/dist/brand-beam.js +2301 -0
- package/dist/brand-beam.js.map +1 -0
- package/dist/button-group.cjs +80 -0
- package/dist/button-group.cjs.map +1 -0
- package/dist/button-group.d.cts +17 -0
- package/dist/button-group.d.ts +17 -0
- package/dist/button-group.js +75 -0
- package/dist/button-group.js.map +1 -0
- package/dist/button.cjs +17 -0
- package/dist/button.cjs.map +1 -0
- package/dist/button.d.cts +14 -0
- package/dist/button.d.ts +14 -0
- package/dist/button.js +4 -0
- package/dist/button.js.map +1 -0
- package/dist/card.cjs +109 -0
- package/dist/card.cjs.map +1 -0
- package/dist/card.d.cts +14 -0
- package/dist/card.d.ts +14 -0
- package/dist/card.js +101 -0
- package/dist/card.js.map +1 -0
- package/dist/chart.cjs +275 -0
- package/dist/chart.cjs.map +1 -0
- package/dist/chart.d.cts +47 -0
- package/dist/chart.d.ts +47 -0
- package/dist/chart.js +247 -0
- package/dist/chart.js.map +1 -0
- package/dist/checkbox.cjs +41 -0
- package/dist/checkbox.cjs.map +1 -0
- package/dist/checkbox.d.cts +7 -0
- package/dist/checkbox.d.ts +7 -0
- package/dist/checkbox.js +39 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.cjs +92 -0
- package/dist/chip.cjs.map +1 -0
- package/dist/chip.d.cts +33 -0
- package/dist/chip.d.ts +33 -0
- package/dist/chip.js +86 -0
- package/dist/chip.js.map +1 -0
- package/dist/choice-card.cjs +127 -0
- package/dist/choice-card.cjs.map +1 -0
- package/dist/choice-card.d.cts +20 -0
- package/dist/choice-card.d.ts +20 -0
- package/dist/choice-card.js +124 -0
- package/dist/choice-card.js.map +1 -0
- package/dist/chunk-2UHRDVPT.cjs +183 -0
- package/dist/chunk-2UHRDVPT.cjs.map +1 -0
- package/dist/chunk-5CRE35VX.js +20 -0
- package/dist/chunk-5CRE35VX.js.map +1 -0
- package/dist/chunk-6ARYCL4L.cjs +30 -0
- package/dist/chunk-6ARYCL4L.cjs.map +1 -0
- package/dist/chunk-6JCVTRUK.js +21 -0
- package/dist/chunk-6JCVTRUK.js.map +1 -0
- package/dist/chunk-6YHDDRIM.cjs +13 -0
- package/dist/chunk-6YHDDRIM.cjs.map +1 -0
- package/dist/chunk-A44JJ6NH.js +58 -0
- package/dist/chunk-A44JJ6NH.js.map +1 -0
- package/dist/chunk-CPAFEXKR.js +63 -0
- package/dist/chunk-CPAFEXKR.js.map +1 -0
- package/dist/chunk-CTIEUG5L.js +28 -0
- package/dist/chunk-CTIEUG5L.js.map +1 -0
- package/dist/chunk-DSDDDYG3.cjs +60 -0
- package/dist/chunk-DSDDDYG3.cjs.map +1 -0
- package/dist/chunk-IB7LTHEQ.js +55 -0
- package/dist/chunk-IB7LTHEQ.js.map +1 -0
- package/dist/chunk-ID7MWMJO.cjs +162 -0
- package/dist/chunk-ID7MWMJO.cjs.map +1 -0
- package/dist/chunk-IVMZANP7.cjs +67 -0
- package/dist/chunk-IVMZANP7.cjs.map +1 -0
- package/dist/chunk-L73QIINW.js +157 -0
- package/dist/chunk-L73QIINW.js.map +1 -0
- package/dist/chunk-LZGII7SX.js +11 -0
- package/dist/chunk-LZGII7SX.js.map +1 -0
- package/dist/chunk-M677T75H.js +24 -0
- package/dist/chunk-M677T75H.js.map +1 -0
- package/dist/chunk-NSK344BJ.js +80 -0
- package/dist/chunk-NSK344BJ.js.map +1 -0
- package/dist/chunk-OAVCB3MR.cjs +26 -0
- package/dist/chunk-OAVCB3MR.cjs.map +1 -0
- package/dist/chunk-PH733KDD.js +141 -0
- package/dist/chunk-PH733KDD.js.map +1 -0
- package/dist/chunk-QEBQ5NUN.cjs +148 -0
- package/dist/chunk-QEBQ5NUN.cjs.map +1 -0
- package/dist/chunk-RVX6SN4U.cjs +23 -0
- package/dist/chunk-RVX6SN4U.cjs.map +1 -0
- package/dist/chunk-T74Z3WTK.js +151 -0
- package/dist/chunk-T74Z3WTK.js.map +1 -0
- package/dist/chunk-UOUXW63J.cjs +22 -0
- package/dist/chunk-UOUXW63J.cjs.map +1 -0
- package/dist/chunk-UXSDDJXM.cjs +88 -0
- package/dist/chunk-UXSDDJXM.cjs.map +1 -0
- package/dist/chunk-VBICNC43.cjs +61 -0
- package/dist/chunk-VBICNC43.cjs.map +1 -0
- package/dist/collapsible-header.cjs +66 -0
- package/dist/collapsible-header.cjs.map +1 -0
- package/dist/collapsible-header.d.cts +15 -0
- package/dist/collapsible-header.d.ts +15 -0
- package/dist/collapsible-header.js +63 -0
- package/dist/collapsible-header.js.map +1 -0
- package/dist/collapsible.cjs +38 -0
- package/dist/collapsible.cjs.map +1 -0
- package/dist/collapsible.d.cts +8 -0
- package/dist/collapsible.d.ts +8 -0
- package/dist/collapsible.js +34 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/color-picker.cjs +60 -0
- package/dist/color-picker.cjs.map +1 -0
- package/dist/color-picker.d.cts +12 -0
- package/dist/color-picker.d.ts +12 -0
- package/dist/color-picker.js +57 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/command.cjs +177 -0
- package/dist/command.cjs.map +1 -0
- package/dist/command.d.cts +22 -0
- package/dist/command.d.ts +22 -0
- package/dist/command.js +167 -0
- package/dist/command.js.map +1 -0
- package/dist/confirm-dialog.cjs +72 -0
- package/dist/confirm-dialog.cjs.map +1 -0
- package/dist/confirm-dialog.d.cts +19 -0
- package/dist/confirm-dialog.d.ts +19 -0
- package/dist/confirm-dialog.js +70 -0
- package/dist/confirm-dialog.js.map +1 -0
- package/dist/control-styles.cjs +16 -0
- package/dist/control-styles.cjs.map +1 -0
- package/dist/control-styles.d.cts +7 -0
- package/dist/control-styles.d.ts +7 -0
- package/dist/control-styles.js +10 -0
- package/dist/control-styles.js.map +1 -0
- package/dist/dialog.cjs +50 -0
- package/dist/dialog.cjs.map +1 -0
- package/dist/dialog.d.cts +20 -0
- package/dist/dialog.d.ts +20 -0
- package/dist/dialog.js +5 -0
- package/dist/dialog.js.map +1 -0
- package/dist/dropdown-menu.cjs +265 -0
- package/dist/dropdown-menu.cjs.map +1 -0
- package/dist/dropdown-menu.d.cts +32 -0
- package/dist/dropdown-menu.d.ts +32 -0
- package/dist/dropdown-menu.js +249 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/empty-state.cjs +50 -0
- package/dist/empty-state.cjs.map +1 -0
- package/dist/empty-state.d.cts +23 -0
- package/dist/empty-state.d.ts +23 -0
- package/dist/empty-state.js +47 -0
- package/dist/empty-state.js.map +1 -0
- package/dist/field.cjs +221 -0
- package/dist/field.cjs.map +1 -0
- package/dist/field.d.cts +30 -0
- package/dist/field.d.ts +30 -0
- package/dist/field.js +210 -0
- package/dist/field.js.map +1 -0
- package/dist/hover-card.cjs +43 -0
- package/dist/hover-card.cjs.map +1 -0
- package/dist/hover-card.d.cts +9 -0
- package/dist/hover-card.d.ts +9 -0
- package/dist/hover-card.js +39 -0
- package/dist/hover-card.js.map +1 -0
- package/dist/input-group.cjs +36 -0
- package/dist/input-group.cjs.map +1 -0
- package/dist/input-group.d.cts +20 -0
- package/dist/input-group.d.ts +20 -0
- package/dist/input-group.js +7 -0
- package/dist/input-group.js.map +1 -0
- package/dist/input.cjs +13 -0
- package/dist/input.cjs.map +1 -0
- package/dist/input.d.cts +6 -0
- package/dist/input.d.ts +6 -0
- package/dist/input.js +4 -0
- package/dist/input.js.map +1 -0
- package/dist/item.cjs +196 -0
- package/dist/item.cjs.map +1 -0
- package/dist/item.d.cts +28 -0
- package/dist/item.d.ts +28 -0
- package/dist/item.js +185 -0
- package/dist/item.js.map +1 -0
- package/dist/label.cjs +13 -0
- package/dist/label.cjs.map +1 -0
- package/dist/label.d.cts +7 -0
- package/dist/label.d.ts +7 -0
- package/dist/label.js +4 -0
- package/dist/label.js.map +1 -0
- package/dist/lib/utils.cjs +12 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/list-row.cjs +188 -0
- package/dist/list-row.cjs.map +1 -0
- package/dist/list-row.d.cts +51 -0
- package/dist/list-row.d.ts +51 -0
- package/dist/list-row.js +164 -0
- package/dist/list-row.js.map +1 -0
- package/dist/pill-tabs.cjs +109 -0
- package/dist/pill-tabs.cjs.map +1 -0
- package/dist/pill-tabs.d.cts +24 -0
- package/dist/pill-tabs.d.ts +24 -0
- package/dist/pill-tabs.js +107 -0
- package/dist/pill-tabs.js.map +1 -0
- package/dist/popover.cjs +37 -0
- package/dist/popover.cjs.map +1 -0
- package/dist/popover.d.cts +13 -0
- package/dist/popover.d.ts +13 -0
- package/dist/popover.js +4 -0
- package/dist/popover.js.map +1 -0
- package/dist/progress-bar.cjs +40 -0
- package/dist/progress-bar.cjs.map +1 -0
- package/dist/progress-bar.d.cts +12 -0
- package/dist/progress-bar.d.ts +12 -0
- package/dist/progress-bar.js +38 -0
- package/dist/progress-bar.js.map +1 -0
- package/dist/rabbit-mark.cjs +30 -0
- package/dist/rabbit-mark.cjs.map +1 -0
- package/dist/rabbit-mark.d.cts +16 -0
- package/dist/rabbit-mark.d.ts +16 -0
- package/dist/rabbit-mark.js +26 -0
- package/dist/rabbit-mark.js.map +1 -0
- package/dist/responsive-panel.cjs +85 -0
- package/dist/responsive-panel.cjs.map +1 -0
- package/dist/responsive-panel.d.cts +33 -0
- package/dist/responsive-panel.d.ts +33 -0
- package/dist/responsive-panel.js +83 -0
- package/dist/responsive-panel.js.map +1 -0
- package/dist/scroll-area.cjs +63 -0
- package/dist/scroll-area.cjs.map +1 -0
- package/dist/scroll-area.d.cts +8 -0
- package/dist/scroll-area.d.ts +8 -0
- package/dist/scroll-area.js +60 -0
- package/dist/scroll-area.js.map +1 -0
- package/dist/section-label.cjs +30 -0
- package/dist/section-label.cjs.map +1 -0
- package/dist/section-label.d.cts +13 -0
- package/dist/section-label.d.ts +13 -0
- package/dist/section-label.js +28 -0
- package/dist/section-label.js.map +1 -0
- package/dist/segmented-control.cjs +75 -0
- package/dist/segmented-control.cjs.map +1 -0
- package/dist/segmented-control.d.cts +26 -0
- package/dist/segmented-control.d.ts +26 -0
- package/dist/segmented-control.js +53 -0
- package/dist/segmented-control.js.map +1 -0
- package/dist/select.cjs +193 -0
- package/dist/select.cjs.map +1 -0
- package/dist/select.d.cts +18 -0
- package/dist/select.d.ts +18 -0
- package/dist/select.js +182 -0
- package/dist/select.js.map +1 -0
- package/dist/separator.cjs +13 -0
- package/dist/separator.cjs.map +1 -0
- package/dist/separator.d.cts +7 -0
- package/dist/separator.d.ts +7 -0
- package/dist/separator.js +4 -0
- package/dist/separator.js.map +1 -0
- package/dist/sidebar.cjs +29 -0
- package/dist/sidebar.cjs.map +1 -0
- package/dist/sidebar.d.cts +58 -0
- package/dist/sidebar.d.ts +58 -0
- package/dist/sidebar.js +4 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/skeleton.cjs +19 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.d.cts +5 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +17 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/sonner.cjs +40 -0
- package/dist/sonner.cjs.map +1 -0
- package/dist/sonner.d.cts +6 -0
- package/dist/sonner.d.ts +6 -0
- package/dist/sonner.js +38 -0
- package/dist/sonner.js.map +1 -0
- package/dist/sparkline.cjs +44 -0
- package/dist/sparkline.cjs.map +1 -0
- package/dist/sparkline.d.cts +12 -0
- package/dist/sparkline.d.ts +12 -0
- package/dist/sparkline.js +42 -0
- package/dist/sparkline.js.map +1 -0
- package/dist/spinner.cjs +13 -0
- package/dist/spinner.cjs.map +1 -0
- package/dist/spinner.d.cts +5 -0
- package/dist/spinner.d.ts +5 -0
- package/dist/spinner.js +11 -0
- package/dist/spinner.js.map +1 -0
- package/dist/stat-card.cjs +65 -0
- package/dist/stat-card.cjs.map +1 -0
- package/dist/stat-card.d.cts +22 -0
- package/dist/stat-card.d.ts +22 -0
- package/dist/stat-card.js +61 -0
- package/dist/stat-card.js.map +1 -0
- package/dist/status-dot.cjs +32 -0
- package/dist/status-dot.cjs.map +1 -0
- package/dist/status-dot.d.cts +11 -0
- package/dist/status-dot.d.ts +11 -0
- package/dist/status-dot.js +29 -0
- package/dist/status-dot.js.map +1 -0
- package/dist/switch.cjs +38 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.d.cts +9 -0
- package/dist/switch.d.ts +9 -0
- package/dist/switch.js +36 -0
- package/dist/switch.js.map +1 -0
- package/dist/table.cjs +118 -0
- package/dist/table.cjs.map +1 -0
- package/dist/table.d.cts +13 -0
- package/dist/table.d.ts +13 -0
- package/dist/table.js +109 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.cjs +124 -0
- package/dist/tabs.cjs.map +1 -0
- package/dist/tabs.d.cts +15 -0
- package/dist/tabs.d.ts +15 -0
- package/dist/tabs.js +118 -0
- package/dist/tabs.js.map +1 -0
- package/dist/text-link.cjs +51 -0
- package/dist/text-link.cjs.map +1 -0
- package/dist/text-link.d.cts +15 -0
- package/dist/text-link.d.ts +15 -0
- package/dist/text-link.js +48 -0
- package/dist/text-link.js.map +1 -0
- package/dist/textarea.cjs +13 -0
- package/dist/textarea.cjs.map +1 -0
- package/dist/textarea.d.cts +6 -0
- package/dist/textarea.d.ts +6 -0
- package/dist/textarea.js +4 -0
- package/dist/textarea.js.map +1 -0
- package/dist/theme.css +109 -0
- package/dist/timeline.cjs +171 -0
- package/dist/timeline.cjs.map +1 -0
- package/dist/timeline.d.cts +28 -0
- package/dist/timeline.d.ts +28 -0
- package/dist/timeline.js +162 -0
- package/dist/timeline.js.map +1 -0
- package/dist/toggle-group.cjs +155 -0
- package/dist/toggle-group.cjs.map +1 -0
- package/dist/toggle-group.d.cts +31 -0
- package/dist/toggle-group.d.ts +31 -0
- package/dist/toggle-group.js +130 -0
- package/dist/toggle-group.js.map +1 -0
- package/dist/toggle.cjs +21 -0
- package/dist/toggle.cjs.map +1 -0
- package/dist/toggle.d.cts +23 -0
- package/dist/toggle.d.ts +23 -0
- package/dist/toggle.js +4 -0
- package/dist/toggle.js.map +1 -0
- package/dist/tokens.css +77 -0
- package/dist/tooltip.cjs +25 -0
- package/dist/tooltip.cjs.map +1 -0
- package/dist/tooltip.d.cts +10 -0
- package/dist/tooltip.d.ts +10 -0
- package/dist/tooltip.js +4 -0
- package/dist/tooltip.js.map +1 -0
- package/package.json +61 -4
package/dist/sidebar.cjs
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk2UHRDVPT_cjs = require('./chunk-2UHRDVPT.cjs');
|
|
4
|
+
require('./chunk-6YHDDRIM.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "Sidebar", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunk2UHRDVPT_cjs.Sidebar; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "SidebarAction", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunk2UHRDVPT_cjs.SidebarAction; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "SidebarBrand", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunk2UHRDVPT_cjs.SidebarBrand; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "SidebarUserBar", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunk2UHRDVPT_cjs.SidebarUserBar; }
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "useSidebar", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return chunk2UHRDVPT_cjs.useSidebar; }
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=sidebar.cjs.map
|
|
29
|
+
//# sourceMappingURL=sidebar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"sidebar.cjs"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Whether the enclosing rail is collapsed to its icons. Outside a `Sidebar`
|
|
6
|
+
* (a phone drawer, a page) nothing is collapsed, so the same parts draw open
|
|
7
|
+
* there.
|
|
8
|
+
*/
|
|
9
|
+
declare function useSidebar(): {
|
|
10
|
+
collapsed: boolean;
|
|
11
|
+
};
|
|
12
|
+
type SidebarProps = Omit<React.ComponentProps<"aside">, "onMouseEnter" | "onMouseLeave"> & {
|
|
13
|
+
/** Pinned, the sidebar stays open; unpinned, it is an icon rail that opens
|
|
14
|
+
* while the pointer is over it. Kept here when not passed. */
|
|
15
|
+
pinned?: boolean;
|
|
16
|
+
onPinnedChange?: (pinned: boolean) => void;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The ops console's desktop sidebar: 295px open, a 50px icon rail collapsed,
|
|
20
|
+
* with the pin toggle along its bottom. Hidden below `md`, where navigation
|
|
21
|
+
* belongs in a drawer: render the same parts there, outside a `Sidebar`.
|
|
22
|
+
* `ListRow` and `SectionLabel` inside it shrink to their icon and rule.
|
|
23
|
+
*/
|
|
24
|
+
declare function Sidebar({ pinned: pinnedProp, onPinnedChange, className, children, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
|
|
25
|
+
type SidebarBrandProps = Omit<React.ComponentProps<"div">, "title"> & {
|
|
26
|
+
title: string;
|
|
27
|
+
subtitle?: React.ReactNode;
|
|
28
|
+
imageSrc?: string;
|
|
29
|
+
/** What the mark and title link through (a router `Link`); they are placed
|
|
30
|
+
* inside it. */
|
|
31
|
+
link?: React.ReactElement;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The sidebar's brand strip: the mark, a title and a muted subtitle; in the
|
|
35
|
+
* rail the mark alone, centred. Children (a mode switch) follow it.
|
|
36
|
+
*/
|
|
37
|
+
declare function SidebarBrand({ title, subtitle, imageSrc, link, className, children, ...props }: SidebarBrandProps): react_jsx_runtime.JSX.Element;
|
|
38
|
+
type SidebarUserBarProps = Omit<React.ComponentProps<"div">, "children"> & {
|
|
39
|
+
avatar: React.ReactNode;
|
|
40
|
+
name: React.ReactNode;
|
|
41
|
+
/** The bar's `SidebarAction`s: theme, settings, sign out. */
|
|
42
|
+
children?: React.ReactNode;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The sidebar's bottom bar: the user's avatar and name, then the global
|
|
46
|
+
* controls. In the rail the avatar alone.
|
|
47
|
+
*/
|
|
48
|
+
declare function SidebarUserBar({ avatar, name, className, children, ...props }: SidebarUserBarProps): react_jsx_runtime.JSX.Element;
|
|
49
|
+
/**
|
|
50
|
+
* An icon control in the user bar. 26px with a cursor, the 44px floor on
|
|
51
|
+
* touch. A button, or a router link via `asChild`.
|
|
52
|
+
*/
|
|
53
|
+
declare function SidebarAction({ label, asChild, className, ...props }: React.ComponentProps<"button"> & {
|
|
54
|
+
label: string;
|
|
55
|
+
asChild?: boolean;
|
|
56
|
+
}): react_jsx_runtime.JSX.Element;
|
|
57
|
+
|
|
58
|
+
export { Sidebar, SidebarAction, SidebarBrand, SidebarUserBar, useSidebar };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Whether the enclosing rail is collapsed to its icons. Outside a `Sidebar`
|
|
6
|
+
* (a phone drawer, a page) nothing is collapsed, so the same parts draw open
|
|
7
|
+
* there.
|
|
8
|
+
*/
|
|
9
|
+
declare function useSidebar(): {
|
|
10
|
+
collapsed: boolean;
|
|
11
|
+
};
|
|
12
|
+
type SidebarProps = Omit<React.ComponentProps<"aside">, "onMouseEnter" | "onMouseLeave"> & {
|
|
13
|
+
/** Pinned, the sidebar stays open; unpinned, it is an icon rail that opens
|
|
14
|
+
* while the pointer is over it. Kept here when not passed. */
|
|
15
|
+
pinned?: boolean;
|
|
16
|
+
onPinnedChange?: (pinned: boolean) => void;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* The ops console's desktop sidebar: 295px open, a 50px icon rail collapsed,
|
|
20
|
+
* with the pin toggle along its bottom. Hidden below `md`, where navigation
|
|
21
|
+
* belongs in a drawer: render the same parts there, outside a `Sidebar`.
|
|
22
|
+
* `ListRow` and `SectionLabel` inside it shrink to their icon and rule.
|
|
23
|
+
*/
|
|
24
|
+
declare function Sidebar({ pinned: pinnedProp, onPinnedChange, className, children, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
|
|
25
|
+
type SidebarBrandProps = Omit<React.ComponentProps<"div">, "title"> & {
|
|
26
|
+
title: string;
|
|
27
|
+
subtitle?: React.ReactNode;
|
|
28
|
+
imageSrc?: string;
|
|
29
|
+
/** What the mark and title link through (a router `Link`); they are placed
|
|
30
|
+
* inside it. */
|
|
31
|
+
link?: React.ReactElement;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* The sidebar's brand strip: the mark, a title and a muted subtitle; in the
|
|
35
|
+
* rail the mark alone, centred. Children (a mode switch) follow it.
|
|
36
|
+
*/
|
|
37
|
+
declare function SidebarBrand({ title, subtitle, imageSrc, link, className, children, ...props }: SidebarBrandProps): react_jsx_runtime.JSX.Element;
|
|
38
|
+
type SidebarUserBarProps = Omit<React.ComponentProps<"div">, "children"> & {
|
|
39
|
+
avatar: React.ReactNode;
|
|
40
|
+
name: React.ReactNode;
|
|
41
|
+
/** The bar's `SidebarAction`s: theme, settings, sign out. */
|
|
42
|
+
children?: React.ReactNode;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The sidebar's bottom bar: the user's avatar and name, then the global
|
|
46
|
+
* controls. In the rail the avatar alone.
|
|
47
|
+
*/
|
|
48
|
+
declare function SidebarUserBar({ avatar, name, className, children, ...props }: SidebarUserBarProps): react_jsx_runtime.JSX.Element;
|
|
49
|
+
/**
|
|
50
|
+
* An icon control in the user bar. 26px with a cursor, the 44px floor on
|
|
51
|
+
* touch. A button, or a router link via `asChild`.
|
|
52
|
+
*/
|
|
53
|
+
declare function SidebarAction({ label, asChild, className, ...props }: React.ComponentProps<"button"> & {
|
|
54
|
+
label: string;
|
|
55
|
+
asChild?: boolean;
|
|
56
|
+
}): react_jsx_runtime.JSX.Element;
|
|
57
|
+
|
|
58
|
+
export { Sidebar, SidebarAction, SidebarBrand, SidebarUserBar, useSidebar };
|
package/dist/sidebar.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"sidebar.js"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk6YHDDRIM_cjs = require('./chunk-6YHDDRIM.cjs');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
function Skeleton({ className, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8
|
+
"div",
|
|
9
|
+
{
|
|
10
|
+
"data-slot": "skeleton",
|
|
11
|
+
className: chunk6YHDDRIM_cjs.cn("animate-pulse bg-muted", className),
|
|
12
|
+
...props
|
|
13
|
+
}
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.Skeleton = Skeleton;
|
|
18
|
+
//# sourceMappingURL=skeleton.cjs.map
|
|
19
|
+
//# sourceMappingURL=skeleton.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/skeleton.tsx"],"names":["jsx","cn"],"mappings":";;;;;AAEA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACtE,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAWC,oBAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MAChD,GAAG;AAAA;AAAA,GACN;AAEJ","file":"skeleton.cjs","sourcesContent":["import { cn } from \"./lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"]}
|
package/dist/skeleton.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { cn } from './chunk-LZGII7SX.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function Skeleton({ className, ...props }) {
|
|
5
|
+
return /* @__PURE__ */ jsx(
|
|
6
|
+
"div",
|
|
7
|
+
{
|
|
8
|
+
"data-slot": "skeleton",
|
|
9
|
+
className: cn("animate-pulse bg-muted", className),
|
|
10
|
+
...props
|
|
11
|
+
}
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { Skeleton };
|
|
16
|
+
//# sourceMappingURL=skeleton.js.map
|
|
17
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/skeleton.tsx"],"names":[],"mappings":";;;AAEA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACtE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MAChD,GAAG;AAAA;AAAA,GACN;AAEJ","file":"skeleton.js","sourcesContent":["import { cn } from \"./lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"]}
|
package/dist/sonner.cjs
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var nextThemes = require('next-themes');
|
|
4
|
+
var sonner = require('sonner');
|
|
5
|
+
var lucideReact = require('lucide-react');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
var Toaster = ({ ...props }) => {
|
|
9
|
+
const { theme = "system" } = nextThemes.useTheme();
|
|
10
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
11
|
+
sonner.Toaster,
|
|
12
|
+
{
|
|
13
|
+
theme,
|
|
14
|
+
className: "toaster group",
|
|
15
|
+
icons: {
|
|
16
|
+
success: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheckIcon, { className: "size-4" }),
|
|
17
|
+
info: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.InfoIcon, { className: "size-4" }),
|
|
18
|
+
warning: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.TriangleAlertIcon, { className: "size-4" }),
|
|
19
|
+
error: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.OctagonXIcon, { className: "size-4" }),
|
|
20
|
+
loading: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { className: "size-4 animate-spin" })
|
|
21
|
+
},
|
|
22
|
+
style: {
|
|
23
|
+
"--normal-bg": "var(--popover)",
|
|
24
|
+
"--normal-text": "var(--popover-foreground)",
|
|
25
|
+
"--normal-border": "var(--border)",
|
|
26
|
+
"--border-radius": "var(--radius)"
|
|
27
|
+
},
|
|
28
|
+
toastOptions: {
|
|
29
|
+
classNames: {
|
|
30
|
+
toast: "cn-toast"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
...props
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.Toaster = Toaster;
|
|
39
|
+
//# sourceMappingURL=sonner.cjs.map
|
|
40
|
+
//# sourceMappingURL=sonner.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sonner.tsx"],"names":["useTheme","jsx","Sonner","CircleCheckIcon","InfoIcon","TriangleAlertIcon","OctagonXIcon","Loader2Icon"],"mappings":";;;;;;;AAMA,IAAM,OAAA,GAAU,CAAC,EAAE,GAAG,OAAM,KAAoB;AAC9C,EAAA,MAAM,EAAE,KAAA,GAAQ,QAAA,EAAS,GAAIA,mBAAA,EAAS;AAEtC,EAAA,uBACEC,cAAA;AAAA,IAACC,cAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA,EAAU,eAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,OAAA,kBACED,cAAA,CAACE,2BAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAEtC,IAAA,kBACEF,cAAA,CAACG,oBAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAE/B,OAAA,kBACEH,cAAA,CAACI,6BAAA,EAAA,EAAkB,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAExC,KAAA,kBACEJ,cAAA,CAACK,wBAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAEnC,OAAA,kBACEL,cAAA,CAACM,uBAAA,EAAA,EAAY,SAAA,EAAU,qBAAA,EAAsB;AAAA,OAEjD;AAAA,MACA,KAAA,EACE;AAAA,QACE,aAAA,EAAe,gBAAA;AAAA,QACf,eAAA,EAAiB,2BAAA;AAAA,QACjB,iBAAA,EAAmB,eAAA;AAAA,QACnB,iBAAA,EAAmB;AAAA,OACrB;AAAA,MAEF,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,KAAA,EAAO;AAAA;AACT,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"sonner.cjs","sourcesContent":["\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\nimport { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from \"lucide-react\"\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: (\n <CircleCheckIcon className=\"size-4\" />\n ),\n info: (\n <InfoIcon className=\"size-4\" />\n ),\n warning: (\n <TriangleAlertIcon className=\"size-4\" />\n ),\n error: (\n <OctagonXIcon className=\"size-4\" />\n ),\n loading: (\n <Loader2Icon className=\"size-4 animate-spin\" />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n"]}
|
package/dist/sonner.d.ts
ADDED
package/dist/sonner.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useTheme } from 'next-themes';
|
|
2
|
+
import { Toaster as Toaster$1 } from 'sonner';
|
|
3
|
+
import { Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var Toaster = ({ ...props }) => {
|
|
7
|
+
const { theme = "system" } = useTheme();
|
|
8
|
+
return /* @__PURE__ */ jsx(
|
|
9
|
+
Toaster$1,
|
|
10
|
+
{
|
|
11
|
+
theme,
|
|
12
|
+
className: "toaster group",
|
|
13
|
+
icons: {
|
|
14
|
+
success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
|
|
15
|
+
info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
|
|
16
|
+
warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
|
|
17
|
+
error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
|
|
18
|
+
loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
|
|
19
|
+
},
|
|
20
|
+
style: {
|
|
21
|
+
"--normal-bg": "var(--popover)",
|
|
22
|
+
"--normal-text": "var(--popover-foreground)",
|
|
23
|
+
"--normal-border": "var(--border)",
|
|
24
|
+
"--border-radius": "var(--radius)"
|
|
25
|
+
},
|
|
26
|
+
toastOptions: {
|
|
27
|
+
classNames: {
|
|
28
|
+
toast: "cn-toast"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
...props
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export { Toaster };
|
|
37
|
+
//# sourceMappingURL=sonner.js.map
|
|
38
|
+
//# sourceMappingURL=sonner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sonner.tsx"],"names":["Sonner"],"mappings":";;;;;AAMA,IAAM,OAAA,GAAU,CAAC,EAAE,GAAG,OAAM,KAAoB;AAC9C,EAAA,MAAM,EAAE,KAAA,GAAQ,QAAA,EAAS,GAAI,QAAA,EAAS;AAEtC,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA,EAAU,eAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACL,OAAA,kBACE,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAEtC,IAAA,kBACE,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAE/B,OAAA,kBACE,GAAA,CAAC,iBAAA,EAAA,EAAkB,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAExC,KAAA,kBACE,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,QAEnC,OAAA,kBACE,GAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,qBAAA,EAAsB;AAAA,OAEjD;AAAA,MACA,KAAA,EACE;AAAA,QACE,aAAA,EAAe,gBAAA;AAAA,QACf,eAAA,EAAiB,2BAAA;AAAA,QACjB,iBAAA,EAAmB,eAAA;AAAA,QACnB,iBAAA,EAAmB;AAAA,OACrB;AAAA,MAEF,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,KAAA,EAAO;AAAA;AACT,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"sonner.js","sourcesContent":["\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\nimport { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from \"lucide-react\"\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: (\n <CircleCheckIcon className=\"size-4\" />\n ),\n info: (\n <InfoIcon className=\"size-4\" />\n ),\n warning: (\n <TriangleAlertIcon className=\"size-4\" />\n ),\n error: (\n <OctagonXIcon className=\"size-4\" />\n ),\n loading: (\n <Loader2Icon className=\"size-4 animate-spin\" />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
|
|
5
|
+
// src/sparkline.tsx
|
|
6
|
+
function Sparkline({
|
|
7
|
+
data,
|
|
8
|
+
color = "var(--primary)",
|
|
9
|
+
height = 28,
|
|
10
|
+
width = 80,
|
|
11
|
+
className
|
|
12
|
+
}) {
|
|
13
|
+
const max = Math.max(...data);
|
|
14
|
+
const min = Math.min(...data);
|
|
15
|
+
const range = max - min || 1;
|
|
16
|
+
const points = data.map(
|
|
17
|
+
(v, i) => `${i / (data.length - 1) * width},${height - (v - min) / range * (height - 4) - 2}`
|
|
18
|
+
).join(" ");
|
|
19
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20
|
+
"svg",
|
|
21
|
+
{
|
|
22
|
+
viewBox: `0 0 ${width} ${height}`,
|
|
23
|
+
width: className ? void 0 : width,
|
|
24
|
+
height,
|
|
25
|
+
preserveAspectRatio: "none",
|
|
26
|
+
className: className ?? "block",
|
|
27
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
28
|
+
"polyline",
|
|
29
|
+
{
|
|
30
|
+
points,
|
|
31
|
+
fill: "none",
|
|
32
|
+
stroke: color,
|
|
33
|
+
strokeWidth: "1.5",
|
|
34
|
+
strokeLinecap: "round",
|
|
35
|
+
strokeLinejoin: "round"
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
exports.Sparkline = Sparkline;
|
|
43
|
+
//# sourceMappingURL=sparkline.cjs.map
|
|
44
|
+
//# sourceMappingURL=sparkline.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sparkline.tsx"],"names":["jsx"],"mappings":";;;;;AAYO,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA;AAAA,EACA,KAAA,GAAQ,gBAAA;AAAA,EACR,MAAA,GAAS,EAAA;AAAA,EACT,KAAA,GAAQ,EAAA;AAAA,EACR;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,IAAI,CAAA;AAC5B,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQ,MAAM,GAAA,IAAO,CAAA;AAC3B,EAAA,MAAM,SAAS,IAAA,CACZ,GAAA;AAAA,IACC,CAAC,CAAA,EAAG,CAAA,KACF,CAAA,EAAI,CAAA,IAAK,KAAK,MAAA,GAAS,CAAA,CAAA,GAAM,KAAK,CAAA,CAAA,EAAI,UAAW,CAAA,GAAI,GAAA,IAAO,KAAA,IAAU,MAAA,GAAS,KAAK,CAAC,CAAA;AAAA,GACzF,CACC,KAAK,GAAG,CAAA;AAEX,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,MAC/B,KAAA,EAAO,YAAY,MAAA,GAAY,KAAA;AAAA,MAC/B,MAAA;AAAA,MACA,mBAAA,EAAoB,MAAA;AAAA,MACpB,WAAW,SAAA,IAAa,OAAA;AAAA,MAExB,QAAA,kBAAAA,cAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,MAAA;AAAA,UACA,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAQ,KAAA;AAAA,UACR,WAAA,EAAY,KAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,cAAA,EAAe;AAAA;AAAA;AACjB;AAAA,GACF;AAEJ","file":"sparkline.cjs","sourcesContent":["// Copyright (c) 2026, Invergent SA, developed by Flavius Burca\n// SPDX-License-Identifier: AGPL-3.0-only\n//\n\ninterface SparklineProps {\n data: number[];\n color?: string;\n height?: number;\n width?: number;\n className?: string;\n}\n\nexport function Sparkline({\n data,\n color = \"var(--primary)\",\n height = 28,\n width = 80,\n className,\n}: SparklineProps) {\n const max = Math.max(...data);\n const min = Math.min(...data);\n const range = max - min || 1;\n const points = data\n .map(\n (v, i) =>\n `${(i / (data.length - 1)) * width},${height - ((v - min) / range) * (height - 4) - 2}`,\n )\n .join(\" \");\n\n return (\n <svg\n viewBox={`0 0 ${width} ${height}`}\n width={className ? undefined : width}\n height={height}\n preserveAspectRatio=\"none\"\n className={className ?? \"block\"}\n >\n <polyline\n points={points}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface SparklineProps {
|
|
4
|
+
data: number[];
|
|
5
|
+
color?: string;
|
|
6
|
+
height?: number;
|
|
7
|
+
width?: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function Sparkline({ data, color, height, width, className, }: SparklineProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
export { Sparkline };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface SparklineProps {
|
|
4
|
+
data: number[];
|
|
5
|
+
color?: string;
|
|
6
|
+
height?: number;
|
|
7
|
+
width?: number;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
declare function Sparkline({ data, color, height, width, className, }: SparklineProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
|
|
12
|
+
export { Sparkline };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/sparkline.tsx
|
|
4
|
+
function Sparkline({
|
|
5
|
+
data,
|
|
6
|
+
color = "var(--primary)",
|
|
7
|
+
height = 28,
|
|
8
|
+
width = 80,
|
|
9
|
+
className
|
|
10
|
+
}) {
|
|
11
|
+
const max = Math.max(...data);
|
|
12
|
+
const min = Math.min(...data);
|
|
13
|
+
const range = max - min || 1;
|
|
14
|
+
const points = data.map(
|
|
15
|
+
(v, i) => `${i / (data.length - 1) * width},${height - (v - min) / range * (height - 4) - 2}`
|
|
16
|
+
).join(" ");
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
"svg",
|
|
19
|
+
{
|
|
20
|
+
viewBox: `0 0 ${width} ${height}`,
|
|
21
|
+
width: className ? void 0 : width,
|
|
22
|
+
height,
|
|
23
|
+
preserveAspectRatio: "none",
|
|
24
|
+
className: className ?? "block",
|
|
25
|
+
children: /* @__PURE__ */ jsx(
|
|
26
|
+
"polyline",
|
|
27
|
+
{
|
|
28
|
+
points,
|
|
29
|
+
fill: "none",
|
|
30
|
+
stroke: color,
|
|
31
|
+
strokeWidth: "1.5",
|
|
32
|
+
strokeLinecap: "round",
|
|
33
|
+
strokeLinejoin: "round"
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { Sparkline };
|
|
41
|
+
//# sourceMappingURL=sparkline.js.map
|
|
42
|
+
//# sourceMappingURL=sparkline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sparkline.tsx"],"names":[],"mappings":";;;AAYO,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA;AAAA,EACA,KAAA,GAAQ,gBAAA;AAAA,EACR,MAAA,GAAS,EAAA;AAAA,EACT,KAAA,GAAQ,EAAA;AAAA,EACR;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,IAAI,CAAA;AAC5B,EAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,GAAG,IAAI,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQ,MAAM,GAAA,IAAO,CAAA;AAC3B,EAAA,MAAM,SAAS,IAAA,CACZ,GAAA;AAAA,IACC,CAAC,CAAA,EAAG,CAAA,KACF,CAAA,EAAI,CAAA,IAAK,KAAK,MAAA,GAAS,CAAA,CAAA,GAAM,KAAK,CAAA,CAAA,EAAI,UAAW,CAAA,GAAI,GAAA,IAAO,KAAA,IAAU,MAAA,GAAS,KAAK,CAAC,CAAA;AAAA,GACzF,CACC,KAAK,GAAG,CAAA;AAEX,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA;AAAA,MAC/B,KAAA,EAAO,YAAY,MAAA,GAAY,KAAA;AAAA,MAC/B,MAAA;AAAA,MACA,mBAAA,EAAoB,MAAA;AAAA,MACpB,WAAW,SAAA,IAAa,OAAA;AAAA,MAExB,QAAA,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,MAAA;AAAA,UACA,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAQ,KAAA;AAAA,UACR,WAAA,EAAY,KAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,cAAA,EAAe;AAAA;AAAA;AACjB;AAAA,GACF;AAEJ","file":"sparkline.js","sourcesContent":["// Copyright (c) 2026, Invergent SA, developed by Flavius Burca\n// SPDX-License-Identifier: AGPL-3.0-only\n//\n\ninterface SparklineProps {\n data: number[];\n color?: string;\n height?: number;\n width?: number;\n className?: string;\n}\n\nexport function Sparkline({\n data,\n color = \"var(--primary)\",\n height = 28,\n width = 80,\n className,\n}: SparklineProps) {\n const max = Math.max(...data);\n const min = Math.min(...data);\n const range = max - min || 1;\n const points = data\n .map(\n (v, i) =>\n `${(i / (data.length - 1)) * width},${height - ((v - min) / range) * (height - 4) - 2}`,\n )\n .join(\" \");\n\n return (\n <svg\n viewBox={`0 0 ${width} ${height}`}\n width={className ? undefined : width}\n height={height}\n preserveAspectRatio=\"none\"\n className={className ?? \"block\"}\n >\n <polyline\n points={points}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n"]}
|
package/dist/spinner.cjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk6YHDDRIM_cjs = require('./chunk-6YHDDRIM.cjs');
|
|
4
|
+
var lucideReact = require('lucide-react');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function Spinner({ className, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2Icon, { role: "status", "aria-label": "Loading", className: chunk6YHDDRIM_cjs.cn("size-4 animate-spin", className), ...props });
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
exports.Spinner = Spinner;
|
|
12
|
+
//# sourceMappingURL=spinner.cjs.map
|
|
13
|
+
//# sourceMappingURL=spinner.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/spinner.tsx"],"names":["jsx","Loader2Icon","cn"],"mappings":";;;;;;AAGA,SAAS,OAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACrE,EAAA,uBACEA,cAAA,CAACC,uBAAA,EAAA,EAAY,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,SAAA,EAAU,SAAA,EAAWC,oBAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAEhH","file":"spinner.cjs","sourcesContent":["import { cn } from \"./lib/utils\"\nimport { Loader2Icon } from \"lucide-react\"\n\nfunction Spinner({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <Loader2Icon role=\"status\" aria-label=\"Loading\" className={cn(\"size-4 animate-spin\", className)} {...props} />\n )\n}\n\nexport { Spinner }\n"]}
|
package/dist/spinner.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { cn } from './chunk-LZGII7SX.js';
|
|
2
|
+
import { Loader2Icon } from 'lucide-react';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function Spinner({ className, ...props }) {
|
|
6
|
+
return /* @__PURE__ */ jsx(Loader2Icon, { role: "status", "aria-label": "Loading", className: cn("size-4 animate-spin", className), ...props });
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { Spinner };
|
|
10
|
+
//# sourceMappingURL=spinner.js.map
|
|
11
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/spinner.tsx"],"names":[],"mappings":";;;;AAGA,SAAS,OAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACrE,EAAA,uBACE,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,SAAA,EAAU,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAEhH","file":"spinner.js","sourcesContent":["import { cn } from \"./lib/utils\"\nimport { Loader2Icon } from \"lucide-react\"\n\nfunction Spinner({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <Loader2Icon role=\"status\" aria-label=\"Loading\" className={cn(\"size-4 animate-spin\", className)} {...props} />\n )\n}\n\nexport { Spinner }\n"]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkDSDDDYG3_cjs = require('./chunk-DSDDDYG3.cjs');
|
|
4
|
+
var chunk6YHDDRIM_cjs = require('./chunk-6YHDDRIM.cjs');
|
|
5
|
+
var lucideReact = require('lucide-react');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function InfoHint({ text }) {
|
|
9
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkDSDDDYG3_cjs.TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkDSDDDYG3_cjs.Tooltip, { children: [
|
|
10
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkDSDDDYG3_cjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
11
|
+
"span",
|
|
12
|
+
{
|
|
13
|
+
"aria-label": "More info",
|
|
14
|
+
tabIndex: 0,
|
|
15
|
+
className: "inline-flex cursor-help text-muted-foreground/60",
|
|
16
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "size-3.5" })
|
|
17
|
+
}
|
|
18
|
+
) }),
|
|
19
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkDSDDDYG3_cjs.TooltipContent, { className: "max-w-72 text-[12px] leading-relaxed", children: text })
|
|
20
|
+
] }) });
|
|
21
|
+
}
|
|
22
|
+
function StatCard({
|
|
23
|
+
label,
|
|
24
|
+
info,
|
|
25
|
+
value,
|
|
26
|
+
hint,
|
|
27
|
+
detail,
|
|
28
|
+
className,
|
|
29
|
+
children
|
|
30
|
+
}) {
|
|
31
|
+
return (
|
|
32
|
+
// Label above value, always. Putting them on one line to save height
|
|
33
|
+
// only works while the tile is full-width; inside the 2-up phone grid
|
|
34
|
+
// the label wraps and the value collides with the info icon, which is
|
|
35
|
+
// how this tile ended up looking broken on the Metrics tab.
|
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "stat-card", className: chunk6YHDDRIM_cjs.cn("flex h-full flex-col", className), children: [
|
|
37
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11.5px] font-medium uppercase leading-tight tracking-wide text-muted-foreground/80", children: label }),
|
|
39
|
+
info && /* @__PURE__ */ jsxRuntime.jsx(InfoHint, { text: info })
|
|
40
|
+
] }),
|
|
41
|
+
value !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1.5 flex items-baseline gap-2", children: [
|
|
42
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[22px] font-semibold leading-tight text-foreground", children: value }),
|
|
43
|
+
hint && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12px] text-muted-foreground", children: hint })
|
|
44
|
+
] }),
|
|
45
|
+
children,
|
|
46
|
+
detail && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto pt-1.5 text-[12px] leading-snug text-muted-foreground", children: detail })
|
|
47
|
+
] })
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function ChannelChip({ label }) {
|
|
51
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
52
|
+
"span",
|
|
53
|
+
{
|
|
54
|
+
"data-slot": "channel-chip",
|
|
55
|
+
className: "inline-flex items-center rounded-[6px] bg-foreground/[0.07] px-1.5 py-0.5 text-[10.5px] font-medium uppercase tracking-wide text-muted-foreground",
|
|
56
|
+
children: label
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
exports.ChannelChip = ChannelChip;
|
|
62
|
+
exports.InfoHint = InfoHint;
|
|
63
|
+
exports.StatCard = StatCard;
|
|
64
|
+
//# sourceMappingURL=stat-card.cjs.map
|
|
65
|
+
//# sourceMappingURL=stat-card.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/stat-card.tsx"],"names":["jsx","TooltipProvider","Tooltip","TooltipTrigger","Info","TooltipContent","jsxs","cn"],"mappings":";;;;;;;AAkBO,SAAS,QAAA,CAAS,EAAE,IAAA,EAAK,EAAwB;AACtD,EAAA,uBACEA,cAAA,CAACC,iCAAA,EAAA,EAAgB,aAAA,EAAe,GAAA,EAC9B,0CAACC,yBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAF,cAAA,CAACG,gCAAA,EAAA,EAAe,SAAO,IAAA,EACrB,QAAA,kBAAAH,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAW,WAAA;AAAA,QACX,QAAA,EAAU,CAAA;AAAA,QACV,SAAA,EAAU,kDAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAACI,gBAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAW;AAAA;AAAA,KAC7B,EACF,CAAA;AAAA,oBACAJ,cAAA,CAACK,gCAAA,EAAA,EAAe,SAAA,EAAU,sCAAA,EACvB,QAAA,EAAA,IAAA,EACH;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEO,SAAS,QAAA,CAAS;AAAA,EACvB,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAUG;AACD,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKEC,eAAA,CAAC,SAAI,WAAA,EAAU,WAAA,EAAY,WAAWC,oBAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EACxE,QAAA,EAAA;AAAA,sBAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2BAAA,EACb,QAAA,EAAA;AAAA,wBAAAN,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0FAAA,EACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QACC,IAAA,oBAAQA,cAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAM,IAAA,EAAM;AAAA,OAAA,EACjC,CAAA;AAAA,MACC,KAAA,KAAU,MAAA,oBACTM,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kCAAA,EACb,QAAA,EAAA;AAAA,wBAAAN,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yDAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,QACC,IAAA,oBACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAqC,QAAA,EAAA,IAAA,EAAK;AAAA,OAAA,EAE9D,CAAA;AAAA,MAED,QAAA;AAAA,MACA,MAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEACZ,QAAA,EAAA,MAAA,EACH;AAAA,KAAA,EAEJ;AAAA;AAEJ;AAEO,SAAS,WAAA,CAAY,EAAE,KAAA,EAAM,EAAsB;AACxD,EAAA,uBACEA,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAU,mJAAA;AAAA,MAET,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ","file":"stat-card.cjs","sourcesContent":["// Copyright (c) 2026, Invergent SA, developed by Flavius Burca\n// SPDX-License-Identifier: AGPL-3.0-only\n//\n// Shared stat-tile primitives used by the agent Metrics tab and the\n// agent Users page: label / big value / baseline hint / bottom-pinned\n// detail, with an optional info tooltip on the label.\n\nimport { Info } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\n\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./tooltip\";\nimport { cn } from \"./lib/utils\";\n\nexport function InfoHint({ text }: { text: ReactNode }) {\n return (\n <TooltipProvider delayDuration={200}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n aria-label=\"More info\"\n tabIndex={0}\n className=\"inline-flex cursor-help text-muted-foreground/60\"\n >\n <Info className=\"size-3.5\" />\n </span>\n </TooltipTrigger>\n <TooltipContent className=\"max-w-72 text-[12px] leading-relaxed\">\n {text}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n\nexport function StatCard({\n label,\n info,\n value,\n hint,\n detail,\n className,\n children,\n}: {\n label: string;\n info?: ReactNode;\n value?: ReactNode;\n hint?: ReactNode;\n detail?: ReactNode;\n /** Card-shell classes (border, background, padding). Omit to render\n * the bare tile inside an existing card. */\n className?: string;\n children?: ReactNode;\n}) {\n return (\n // Label above value, always. Putting them on one line to save height\n // only works while the tile is full-width; inside the 2-up phone grid\n // the label wraps and the value collides with the info icon, which is\n // how this tile ended up looking broken on the Metrics tab.\n <div data-slot=\"stat-card\" className={cn(\"flex h-full flex-col\", className)}>\n <div className=\"flex items-center gap-1.5\">\n <p className=\"text-[11.5px] font-medium uppercase leading-tight tracking-wide text-muted-foreground/80\">\n {label}\n </p>\n {info && <InfoHint text={info} />}\n </div>\n {value !== undefined && (\n <div className=\"mt-1.5 flex items-baseline gap-2\">\n <span className=\"text-[22px] font-semibold leading-tight text-foreground\">\n {value}\n </span>\n {hint && (\n <span className=\"text-[12px] text-muted-foreground\">{hint}</span>\n )}\n </div>\n )}\n {children}\n {detail && (\n <div className=\"mt-auto pt-1.5 text-[12px] leading-snug text-muted-foreground\">\n {detail}\n </div>\n )}\n </div>\n );\n}\n\nexport function ChannelChip({ label }: { label: string }) {\n return (\n <span\n data-slot=\"channel-chip\"\n className=\"inline-flex items-center rounded-[6px] bg-foreground/[0.07] px-1.5 py-0.5 text-[10.5px] font-medium uppercase tracking-wide text-muted-foreground\"\n >\n {label}\n </span>\n );\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
declare function InfoHint({ text }: {
|
|
5
|
+
text: ReactNode;
|
|
6
|
+
}): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function StatCard({ label, info, value, hint, detail, className, children, }: {
|
|
8
|
+
label: string;
|
|
9
|
+
info?: ReactNode;
|
|
10
|
+
value?: ReactNode;
|
|
11
|
+
hint?: ReactNode;
|
|
12
|
+
detail?: ReactNode;
|
|
13
|
+
/** Card-shell classes (border, background, padding). Omit to render
|
|
14
|
+
* the bare tile inside an existing card. */
|
|
15
|
+
className?: string;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function ChannelChip({ label }: {
|
|
19
|
+
label: string;
|
|
20
|
+
}): react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
export { ChannelChip, InfoHint, StatCard };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
declare function InfoHint({ text }: {
|
|
5
|
+
text: ReactNode;
|
|
6
|
+
}): react_jsx_runtime.JSX.Element;
|
|
7
|
+
declare function StatCard({ label, info, value, hint, detail, className, children, }: {
|
|
8
|
+
label: string;
|
|
9
|
+
info?: ReactNode;
|
|
10
|
+
value?: ReactNode;
|
|
11
|
+
hint?: ReactNode;
|
|
12
|
+
detail?: ReactNode;
|
|
13
|
+
/** Card-shell classes (border, background, padding). Omit to render
|
|
14
|
+
* the bare tile inside an existing card. */
|
|
15
|
+
className?: string;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function ChannelChip({ label }: {
|
|
19
|
+
label: string;
|
|
20
|
+
}): react_jsx_runtime.JSX.Element;
|
|
21
|
+
|
|
22
|
+
export { ChannelChip, InfoHint, StatCard };
|