@mastra/playground-ui 52.0.1-alpha.0 → 53.0.0-alpha.2
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/dist/{command-C2XK36se.cjs → command-CUev1UxH.cjs} +2 -2
- package/dist/{command-C2XK36se.cjs.map → command-CUev1UxH.cjs.map} +1 -1
- package/dist/{command-ehL7-lrV.js → command-DWFd0d4c.js} +2 -2
- package/dist/{command-ehL7-lrV.js.map → command-DWFd0d4c.js.map} +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +2 -2
- package/dist/components/CommandPalette.es.js +2 -2
- package/dist/components/Composer.cjs.js +1 -1
- package/dist/components/Composer.es.js +1 -1
- package/dist/components/DataList.cjs.js +15 -14
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -4
- package/dist/components/EnvironmentVariablesEditor.cjs.js +12 -23
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +12 -23
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -4
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -4
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/ThemeToggle.cjs.js +36 -10
- package/dist/components/ThemeToggle.cjs.js.map +1 -1
- package/dist/components/ThemeToggle.es.js +36 -10
- package/dist/components/ThemeToggle.es.js.map +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/ai/task-list.cjs.js +1 -1
- package/dist/components/ai/task-list.es.js +1 -1
- package/dist/data-list-B5Wicaoc.cjs +131 -0
- package/dist/data-list-B5Wicaoc.cjs.map +1 -0
- package/dist/data-list-BUK_v9ax.js +127 -0
- package/dist/data-list-BUK_v9ax.js.map +1 -0
- package/dist/data-list-skeleton-BZR_Hkvj.cjs +38 -0
- package/dist/data-list-skeleton-BZR_Hkvj.cjs.map +1 -0
- package/dist/data-list-skeleton-BoaQlbOY.js +36 -0
- package/dist/data-list-skeleton-BoaQlbOY.js.map +1 -0
- package/dist/{data-list-CE6USbK0.cjs → data-list-top-cell-CIs1L8gy.cjs} +83 -216
- package/dist/data-list-top-cell-CIs1L8gy.cjs.map +1 -0
- package/dist/{data-list-Dvxj3Y3r.js → data-list-top-cell-D4-Hbz2H.js} +75 -214
- package/dist/data-list-top-cell-D4-Hbz2H.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +3 -4
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +3 -4
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/metrics-utils.cjs.js +1 -2
- package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
- package/dist/domains/metrics/components/metrics-utils.es.js +1 -2
- package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +4 -4
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +4 -4
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -2
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +2 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +2 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
- package/dist/hooks/use-debounced-value.cjs.js +17 -0
- package/dist/hooks/use-debounced-value.cjs.js.map +1 -0
- package/dist/hooks/use-debounced-value.d.ts +2 -0
- package/dist/hooks/use-debounced-value.es.js +13 -0
- package/dist/hooks/use-debounced-value.es.js.map +1 -0
- package/dist/{horizontal-bars-CV2XRu4w.cjs → horizontal-bars-CE1O-Y6G.cjs} +2 -2
- package/dist/{horizontal-bars-CV2XRu4w.cjs.map → horizontal-bars-CE1O-Y6G.cjs.map} +1 -1
- package/dist/{horizontal-bars-3vH3FLj3.js → horizontal-bars-DZ5J4TKv.js} +2 -2
- package/dist/{horizontal-bars-3vH3FLj3.js.map → horizontal-bars-DZ5J4TKv.js.map} +1 -1
- package/dist/{logs-data-list-DmpfI4NU.cjs → logs-data-list-PExVAYf3.cjs} +20 -20
- package/dist/{logs-data-list-DmpfI4NU.cjs.map → logs-data-list-PExVAYf3.cjs.map} +1 -1
- package/dist/{logs-data-list-ppn0Twn6.js → logs-data-list-VCTqogr3.js} +2 -2
- package/dist/{logs-data-list-ppn0Twn6.js.map → logs-data-list-VCTqogr3.js.map} +1 -1
- package/dist/{no-data-page-layout-CkhD1Xwb.js → no-data-page-layout-BB6l1JBu.js} +2 -2
- package/dist/no-data-page-layout-BB6l1JBu.js.map +1 -0
- package/dist/{no-data-page-layout-CBJ50ULk.cjs → no-data-page-layout-DxgToazD.cjs} +2 -2
- package/dist/no-data-page-layout-DxgToazD.cjs.map +1 -0
- package/dist/{scroll-area-D_-TyC0c.cjs → scroll-area-B1vdOFuC.cjs} +5 -5
- package/dist/{scroll-area-D_-TyC0c.cjs.map → scroll-area-B1vdOFuC.cjs.map} +1 -1
- package/dist/{scroll-area-DVSQTnjk.js → scroll-area-BiHnOfzg.js} +5 -5
- package/dist/{scroll-area-DVSQTnjk.js.map → scroll-area-BiHnOfzg.js.map} +1 -1
- package/dist/src/domains/metrics/components/metrics-utils.d.ts +0 -1
- package/dist/src/ds/components/Card/Card.d.ts +2 -2
- package/dist/src/ds/components/DataList/data-list-root.d.ts +10 -17
- package/dist/src/ds/components/DataList/data-list-skeleton.d.ts +7 -2
- package/dist/src/ds/components/DataList/data-list.d.ts +1 -1
- package/dist/src/ds/components/DataList/data-list.stories.d.ts +15 -41
- package/dist/src/ds/components/DataList/shared.d.ts +19 -24
- package/dist/src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.d.ts +1 -1
- package/dist/src/ds/components/LogsDataList/logs-data-list.stories.d.ts +0 -1
- package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +25 -1
- package/dist/src/ds/components/ThemeToggle/theme-toggle.stories.d.ts +3 -0
- package/dist/src/hooks/use-debounced-value.d.ts +1 -0
- package/dist/style.css +113 -130
- package/dist/{traces-data-list-Ccszs0fr.js → traces-data-list-BnK1mfZp.js} +3 -2
- package/dist/{traces-data-list-Ccszs0fr.js.map → traces-data-list-BnK1mfZp.js.map} +1 -1
- package/dist/{traces-data-list-C0GZNznu.cjs → traces-data-list-MX4shJfG.cjs} +17 -16
- package/dist/{traces-data-list-C0GZNznu.cjs.map → traces-data-list-MX4shJfG.cjs.map} +1 -1
- package/package.json +8 -8
- package/dist/data-list-CE6USbK0.cjs.map +0 -1
- package/dist/data-list-Dvxj3Y3r.js.map +0 -1
- package/dist/data-list-skeleton-5i8xvHk2.js +0 -34
- package/dist/data-list-skeleton-5i8xvHk2.js.map +0 -1
- package/dist/data-list-skeleton-DiQp8oTF.cjs +0 -36
- package/dist/data-list-skeleton-DiQp8oTF.cjs.map +0 -1
- package/dist/no-data-page-layout-CBJ50ULk.cjs.map +0 -1
- package/dist/no-data-page-layout-CkhD1Xwb.js.map +0 -1
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { c as cn } from '../cn-B4oPhFx9.js';
|
|
3
3
|
import { MenuIcon, PanelRightIcon } from 'lucide-react';
|
|
4
4
|
import React__default, { useRef, useEffect, useCallback, useId } from 'react';
|
|
5
|
-
import { S as ScrollArea } from '../scroll-area-
|
|
5
|
+
import { S as ScrollArea } from '../scroll-area-BiHnOfzg.js';
|
|
6
6
|
import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
|
|
7
7
|
import { c as cva } from '../index-DsNrjFJd.js';
|
|
8
8
|
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../tooltip-Bi0pDO5P.js';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const noDataPageLayout = require('../no-data-page-layout-
|
|
5
|
+
const noDataPageLayout = require('../no-data-page-layout-DxgToazD.cjs');
|
|
6
6
|
const pageHeadingContext = require('../page-heading-context-Du-CpxAx.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { N as NoDataPageLayout, P as PageLayout } from '../no-data-page-layout-
|
|
1
|
+
export { N as NoDataPageLayout, P as PageLayout } from '../no-data-page-layout-BB6l1JBu.js';
|
|
2
2
|
export { P as PageHeadingContext, u as usePageHeading } from '../page-heading-context-D3yjYoJE.js';
|
|
3
3
|
//# sourceMappingURL=PageLayout.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as ScrollArea, a as ScrollBar } from '../scroll-area-
|
|
1
|
+
export { S as ScrollArea, a as ScrollBar } from '../scroll-area-BiHnOfzg.js';
|
|
2
2
|
//# sourceMappingURL=ScrollArea.es.js.map
|
|
@@ -15,12 +15,34 @@ const DEFAULT_OPTIONS = [
|
|
|
15
15
|
{ value: "light", label: "Light", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sun, {}) },
|
|
16
16
|
{ value: "dark", label: "Dark", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Moon, {}) }
|
|
17
17
|
];
|
|
18
|
-
const
|
|
19
|
-
|
|
18
|
+
const SIZE_CONFIG = {
|
|
19
|
+
md: {
|
|
20
|
+
itemGap: 2,
|
|
21
|
+
itemWidth: 28,
|
|
22
|
+
root: "gap-0.5 p-0.5",
|
|
23
|
+
indicator: "inset-y-0.5 left-0.5",
|
|
24
|
+
item: "h-6 [&_svg]:size-3.5"
|
|
25
|
+
},
|
|
26
|
+
xs: {
|
|
27
|
+
itemGap: 1,
|
|
28
|
+
itemWidth: 20,
|
|
29
|
+
root: "gap-px p-px",
|
|
30
|
+
indicator: "inset-y-px left-px",
|
|
31
|
+
item: "h-4 [&_svg]:h-icon-sm [&_svg]:w-icon-sm"
|
|
32
|
+
},
|
|
33
|
+
sm: {
|
|
34
|
+
itemGap: 1,
|
|
35
|
+
itemWidth: 24,
|
|
36
|
+
root: "gap-px p-px",
|
|
37
|
+
indicator: "inset-y-px left-px",
|
|
38
|
+
item: "h-5 [&_svg]:h-icon-sm [&_svg]:w-icon-sm"
|
|
39
|
+
}
|
|
40
|
+
};
|
|
20
41
|
const ThemeToggle = ({
|
|
21
42
|
value,
|
|
22
43
|
onChange,
|
|
23
44
|
options = DEFAULT_OPTIONS,
|
|
45
|
+
size = "md",
|
|
24
46
|
className,
|
|
25
47
|
"aria-label": ariaLabel = "Theme",
|
|
26
48
|
...rest
|
|
@@ -37,7 +59,8 @@ const ThemeToggle = ({
|
|
|
37
59
|
0,
|
|
38
60
|
options.findIndex((option) => option.value === effectiveCurrent)
|
|
39
61
|
);
|
|
40
|
-
const
|
|
62
|
+
const sizeConfig = SIZE_CONFIG[size];
|
|
63
|
+
const indicatorOffset = activeIndex * (sizeConfig.itemWidth + sizeConfig.itemGap);
|
|
41
64
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42
65
|
radioGroup.RadioGroup,
|
|
43
66
|
{
|
|
@@ -46,7 +69,8 @@ const ThemeToggle = ({
|
|
|
46
69
|
onValueChange: handleChange,
|
|
47
70
|
"aria-label": ariaLabel,
|
|
48
71
|
className: utils_cn.cn(
|
|
49
|
-
"relative inline-flex w-fit items-center
|
|
72
|
+
"relative inline-flex w-fit items-center rounded-full border border-border1 bg-surface3",
|
|
73
|
+
sizeConfig.root,
|
|
50
74
|
className
|
|
51
75
|
),
|
|
52
76
|
children: [
|
|
@@ -55,10 +79,11 @@ const ThemeToggle = ({
|
|
|
55
79
|
{
|
|
56
80
|
"aria-hidden": "true",
|
|
57
81
|
className: utils_cn.cn(
|
|
58
|
-
"pointer-events-none absolute
|
|
59
|
-
primitives_transitions.transitions.transform
|
|
82
|
+
"pointer-events-none absolute rounded-full bg-surface5 motion-reduce:transition-none",
|
|
83
|
+
primitives_transitions.transitions.transform,
|
|
84
|
+
sizeConfig.indicator
|
|
60
85
|
),
|
|
61
|
-
style: { width:
|
|
86
|
+
style: { width: sizeConfig.itemWidth, transform: `translateX(${indicatorOffset}px)` }
|
|
62
87
|
}
|
|
63
88
|
),
|
|
64
89
|
options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -66,11 +91,12 @@ const ThemeToggle = ({
|
|
|
66
91
|
{
|
|
67
92
|
value: option.value,
|
|
68
93
|
"aria-label": option.label,
|
|
69
|
-
style: { width:
|
|
94
|
+
style: { width: sizeConfig.itemWidth },
|
|
70
95
|
className: utils_cn.cn(
|
|
71
|
-
"relative inline-flex
|
|
96
|
+
"relative inline-flex cursor-pointer items-center justify-center rounded-full",
|
|
72
97
|
// Base UI exposes `data-checked` instead of Radix's `data-state="checked"`.
|
|
73
|
-
"text-icon3 hover:text-icon6 data-[checked]:text-icon6
|
|
98
|
+
"text-icon3 hover:text-icon6 data-[checked]:text-icon6",
|
|
99
|
+
sizeConfig.item,
|
|
74
100
|
"focus-visible:outline-hidden",
|
|
75
101
|
"active:scale-90 motion-reduce:transition-none",
|
|
76
102
|
primitives_transitions.transitions.colors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.cjs.js","sources":["../../src/ds/components/ThemeToggle/theme-toggle.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\nimport { Monitor, Moon, Sun } from 'lucide-react';\n\nimport { useTheme } from '../ThemeProvider';\nimport type { Theme } from '../ThemeProvider/theme-context';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThemeToggleOption {\n value: Theme;\n label: string;\n icon: React.ReactNode;\n}\n\nconst DEFAULT_OPTIONS: ReadonlyArray<ThemeToggleOption> = [\n { value: 'system', label: 'System', icon: <Monitor /> },\n { value: 'light', label: 'Light', icon: <Sun /> },\n { value: 'dark', label: 'Dark', icon: <Moon /> },\n];\n\nconst
|
|
1
|
+
{"version":3,"file":"ThemeToggle.cjs.js","sources":["../../src/ds/components/ThemeToggle/theme-toggle.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\nimport { Monitor, Moon, Sun } from 'lucide-react';\n\nimport { useTheme } from '../ThemeProvider';\nimport type { Theme } from '../ThemeProvider/theme-context';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThemeToggleOption {\n value: Theme;\n label: string;\n icon: React.ReactNode;\n}\n\nconst DEFAULT_OPTIONS: ReadonlyArray<ThemeToggleOption> = [\n { value: 'system', label: 'System', icon: <Monitor /> },\n { value: 'light', label: 'Light', icon: <Sun /> },\n { value: 'dark', label: 'Dark', icon: <Moon /> },\n];\n\nconst SIZE_CONFIG = {\n md: {\n itemGap: 2,\n itemWidth: 28,\n root: 'gap-0.5 p-0.5',\n indicator: 'inset-y-0.5 left-0.5',\n item: 'h-6 [&_svg]:size-3.5',\n },\n xs: {\n itemGap: 1,\n itemWidth: 20,\n root: 'gap-px p-px',\n indicator: 'inset-y-px left-px',\n item: 'h-4 [&_svg]:h-icon-sm [&_svg]:w-icon-sm',\n },\n sm: {\n itemGap: 1,\n itemWidth: 24,\n root: 'gap-px p-px',\n indicator: 'inset-y-px left-px',\n item: 'h-5 [&_svg]:h-icon-sm [&_svg]:w-icon-sm',\n },\n} as const;\n\ntype RadioRootProps = Omit<\n RadioGroupPrimitive.Props,\n 'value' | 'onChange' | 'onValueChange' | 'defaultValue' | 'className'\n> & {\n className?: string;\n};\n\ntype ControlledProps = { value: Theme; onChange: (next: Theme) => void };\ntype UncontrolledProps = { value?: undefined; onChange?: undefined };\n\nexport type ThemeToggleProps = RadioRootProps & {\n options?: ReadonlyArray<ThemeToggleOption>;\n size?: keyof typeof SIZE_CONFIG;\n} & (ControlledProps | UncontrolledProps);\n\nexport const ThemeToggle = ({\n value,\n onChange,\n options = DEFAULT_OPTIONS,\n size = 'md',\n className,\n 'aria-label': ariaLabel = 'Theme',\n ...rest\n}: ThemeToggleProps) => {\n const { theme, setTheme } = useTheme();\n const current = value ?? theme;\n const commit = onChange ?? setTheme;\n const effectiveCurrent = options.some(option => option.value === current) ? current : (options[0]?.value ?? 'system');\n\n const handleChange = (next: unknown) => {\n const match = options.find(opt => opt.value === next);\n if (match) commit(match.value);\n };\n\n const activeIndex = Math.max(\n 0,\n options.findIndex(option => option.value === effectiveCurrent),\n );\n const sizeConfig = SIZE_CONFIG[size];\n const indicatorOffset = activeIndex * (sizeConfig.itemWidth + sizeConfig.itemGap);\n\n return (\n <RadioGroupPrimitive\n {...rest}\n value={effectiveCurrent}\n onValueChange={handleChange}\n aria-label={ariaLabel}\n className={cn(\n 'relative inline-flex w-fit items-center rounded-full border border-border1 bg-surface3',\n sizeConfig.root,\n className,\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none absolute rounded-full bg-surface5 motion-reduce:transition-none',\n transitions.transform,\n sizeConfig.indicator,\n )}\n style={{ width: sizeConfig.itemWidth, transform: `translateX(${indicatorOffset}px)` }}\n />\n {options.map(option => (\n <RadioPrimitive.Root\n key={option.value}\n value={option.value}\n aria-label={option.label}\n style={{ width: sizeConfig.itemWidth }}\n className={cn(\n 'relative inline-flex cursor-pointer items-center justify-center rounded-full',\n // Base UI exposes `data-checked` instead of Radix's `data-state=\"checked\"`.\n 'text-icon3 hover:text-icon6 data-[checked]:text-icon6',\n sizeConfig.item,\n 'focus-visible:outline-hidden',\n 'active:scale-90 motion-reduce:transition-none',\n transitions.colors,\n transitions.transform,\n )}\n >\n <span aria-hidden=\"true\" className=\"pointer-events-none inline-flex items-center justify-center\">\n {option.icon}\n </span>\n </RadioPrimitive.Root>\n ))}\n </RadioGroupPrimitive>\n );\n};\n"],"names":["jsx","Monitor","Sun","Moon","useTheme","jsxs","RadioGroupPrimitive","cn","transitions","RadioPrimitive"],"mappings":"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"}
|
|
@@ -11,12 +11,34 @@ const DEFAULT_OPTIONS = [
|
|
|
11
11
|
{ value: "light", label: "Light", icon: /* @__PURE__ */ jsx(Sun, {}) },
|
|
12
12
|
{ value: "dark", label: "Dark", icon: /* @__PURE__ */ jsx(Moon, {}) }
|
|
13
13
|
];
|
|
14
|
-
const
|
|
15
|
-
|
|
14
|
+
const SIZE_CONFIG = {
|
|
15
|
+
md: {
|
|
16
|
+
itemGap: 2,
|
|
17
|
+
itemWidth: 28,
|
|
18
|
+
root: "gap-0.5 p-0.5",
|
|
19
|
+
indicator: "inset-y-0.5 left-0.5",
|
|
20
|
+
item: "h-6 [&_svg]:size-3.5"
|
|
21
|
+
},
|
|
22
|
+
xs: {
|
|
23
|
+
itemGap: 1,
|
|
24
|
+
itemWidth: 20,
|
|
25
|
+
root: "gap-px p-px",
|
|
26
|
+
indicator: "inset-y-px left-px",
|
|
27
|
+
item: "h-4 [&_svg]:h-icon-sm [&_svg]:w-icon-sm"
|
|
28
|
+
},
|
|
29
|
+
sm: {
|
|
30
|
+
itemGap: 1,
|
|
31
|
+
itemWidth: 24,
|
|
32
|
+
root: "gap-px p-px",
|
|
33
|
+
indicator: "inset-y-px left-px",
|
|
34
|
+
item: "h-5 [&_svg]:h-icon-sm [&_svg]:w-icon-sm"
|
|
35
|
+
}
|
|
36
|
+
};
|
|
16
37
|
const ThemeToggle = ({
|
|
17
38
|
value,
|
|
18
39
|
onChange,
|
|
19
40
|
options = DEFAULT_OPTIONS,
|
|
41
|
+
size = "md",
|
|
20
42
|
className,
|
|
21
43
|
"aria-label": ariaLabel = "Theme",
|
|
22
44
|
...rest
|
|
@@ -33,7 +55,8 @@ const ThemeToggle = ({
|
|
|
33
55
|
0,
|
|
34
56
|
options.findIndex((option) => option.value === effectiveCurrent)
|
|
35
57
|
);
|
|
36
|
-
const
|
|
58
|
+
const sizeConfig = SIZE_CONFIG[size];
|
|
59
|
+
const indicatorOffset = activeIndex * (sizeConfig.itemWidth + sizeConfig.itemGap);
|
|
37
60
|
return /* @__PURE__ */ jsxs(
|
|
38
61
|
RadioGroup,
|
|
39
62
|
{
|
|
@@ -42,7 +65,8 @@ const ThemeToggle = ({
|
|
|
42
65
|
onValueChange: handleChange,
|
|
43
66
|
"aria-label": ariaLabel,
|
|
44
67
|
className: cn(
|
|
45
|
-
"relative inline-flex w-fit items-center
|
|
68
|
+
"relative inline-flex w-fit items-center rounded-full border border-border1 bg-surface3",
|
|
69
|
+
sizeConfig.root,
|
|
46
70
|
className
|
|
47
71
|
),
|
|
48
72
|
children: [
|
|
@@ -51,10 +75,11 @@ const ThemeToggle = ({
|
|
|
51
75
|
{
|
|
52
76
|
"aria-hidden": "true",
|
|
53
77
|
className: cn(
|
|
54
|
-
"pointer-events-none absolute
|
|
55
|
-
transitions.transform
|
|
78
|
+
"pointer-events-none absolute rounded-full bg-surface5 motion-reduce:transition-none",
|
|
79
|
+
transitions.transform,
|
|
80
|
+
sizeConfig.indicator
|
|
56
81
|
),
|
|
57
|
-
style: { width:
|
|
82
|
+
style: { width: sizeConfig.itemWidth, transform: `translateX(${indicatorOffset}px)` }
|
|
58
83
|
}
|
|
59
84
|
),
|
|
60
85
|
options.map((option) => /* @__PURE__ */ jsx(
|
|
@@ -62,11 +87,12 @@ const ThemeToggle = ({
|
|
|
62
87
|
{
|
|
63
88
|
value: option.value,
|
|
64
89
|
"aria-label": option.label,
|
|
65
|
-
style: { width:
|
|
90
|
+
style: { width: sizeConfig.itemWidth },
|
|
66
91
|
className: cn(
|
|
67
|
-
"relative inline-flex
|
|
92
|
+
"relative inline-flex cursor-pointer items-center justify-center rounded-full",
|
|
68
93
|
// Base UI exposes `data-checked` instead of Radix's `data-state="checked"`.
|
|
69
|
-
"text-icon3 hover:text-icon6 data-[checked]:text-icon6
|
|
94
|
+
"text-icon3 hover:text-icon6 data-[checked]:text-icon6",
|
|
95
|
+
sizeConfig.item,
|
|
70
96
|
"focus-visible:outline-hidden",
|
|
71
97
|
"active:scale-90 motion-reduce:transition-none",
|
|
72
98
|
transitions.colors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.es.js","sources":["../../src/ds/components/ThemeToggle/theme-toggle.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\nimport { Monitor, Moon, Sun } from 'lucide-react';\n\nimport { useTheme } from '../ThemeProvider';\nimport type { Theme } from '../ThemeProvider/theme-context';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThemeToggleOption {\n value: Theme;\n label: string;\n icon: React.ReactNode;\n}\n\nconst DEFAULT_OPTIONS: ReadonlyArray<ThemeToggleOption> = [\n { value: 'system', label: 'System', icon: <Monitor /> },\n { value: 'light', label: 'Light', icon: <Sun /> },\n { value: 'dark', label: 'Dark', icon: <Moon /> },\n];\n\nconst
|
|
1
|
+
{"version":3,"file":"ThemeToggle.es.js","sources":["../../src/ds/components/ThemeToggle/theme-toggle.tsx"],"sourcesContent":["import { Radio as RadioPrimitive } from '@base-ui/react/radio';\nimport { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';\nimport { Monitor, Moon, Sun } from 'lucide-react';\n\nimport { useTheme } from '../ThemeProvider';\nimport type { Theme } from '../ThemeProvider/theme-context';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThemeToggleOption {\n value: Theme;\n label: string;\n icon: React.ReactNode;\n}\n\nconst DEFAULT_OPTIONS: ReadonlyArray<ThemeToggleOption> = [\n { value: 'system', label: 'System', icon: <Monitor /> },\n { value: 'light', label: 'Light', icon: <Sun /> },\n { value: 'dark', label: 'Dark', icon: <Moon /> },\n];\n\nconst SIZE_CONFIG = {\n md: {\n itemGap: 2,\n itemWidth: 28,\n root: 'gap-0.5 p-0.5',\n indicator: 'inset-y-0.5 left-0.5',\n item: 'h-6 [&_svg]:size-3.5',\n },\n xs: {\n itemGap: 1,\n itemWidth: 20,\n root: 'gap-px p-px',\n indicator: 'inset-y-px left-px',\n item: 'h-4 [&_svg]:h-icon-sm [&_svg]:w-icon-sm',\n },\n sm: {\n itemGap: 1,\n itemWidth: 24,\n root: 'gap-px p-px',\n indicator: 'inset-y-px left-px',\n item: 'h-5 [&_svg]:h-icon-sm [&_svg]:w-icon-sm',\n },\n} as const;\n\ntype RadioRootProps = Omit<\n RadioGroupPrimitive.Props,\n 'value' | 'onChange' | 'onValueChange' | 'defaultValue' | 'className'\n> & {\n className?: string;\n};\n\ntype ControlledProps = { value: Theme; onChange: (next: Theme) => void };\ntype UncontrolledProps = { value?: undefined; onChange?: undefined };\n\nexport type ThemeToggleProps = RadioRootProps & {\n options?: ReadonlyArray<ThemeToggleOption>;\n size?: keyof typeof SIZE_CONFIG;\n} & (ControlledProps | UncontrolledProps);\n\nexport const ThemeToggle = ({\n value,\n onChange,\n options = DEFAULT_OPTIONS,\n size = 'md',\n className,\n 'aria-label': ariaLabel = 'Theme',\n ...rest\n}: ThemeToggleProps) => {\n const { theme, setTheme } = useTheme();\n const current = value ?? theme;\n const commit = onChange ?? setTheme;\n const effectiveCurrent = options.some(option => option.value === current) ? current : (options[0]?.value ?? 'system');\n\n const handleChange = (next: unknown) => {\n const match = options.find(opt => opt.value === next);\n if (match) commit(match.value);\n };\n\n const activeIndex = Math.max(\n 0,\n options.findIndex(option => option.value === effectiveCurrent),\n );\n const sizeConfig = SIZE_CONFIG[size];\n const indicatorOffset = activeIndex * (sizeConfig.itemWidth + sizeConfig.itemGap);\n\n return (\n <RadioGroupPrimitive\n {...rest}\n value={effectiveCurrent}\n onValueChange={handleChange}\n aria-label={ariaLabel}\n className={cn(\n 'relative inline-flex w-fit items-center rounded-full border border-border1 bg-surface3',\n sizeConfig.root,\n className,\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'pointer-events-none absolute rounded-full bg-surface5 motion-reduce:transition-none',\n transitions.transform,\n sizeConfig.indicator,\n )}\n style={{ width: sizeConfig.itemWidth, transform: `translateX(${indicatorOffset}px)` }}\n />\n {options.map(option => (\n <RadioPrimitive.Root\n key={option.value}\n value={option.value}\n aria-label={option.label}\n style={{ width: sizeConfig.itemWidth }}\n className={cn(\n 'relative inline-flex cursor-pointer items-center justify-center rounded-full',\n // Base UI exposes `data-checked` instead of Radix's `data-state=\"checked\"`.\n 'text-icon3 hover:text-icon6 data-[checked]:text-icon6',\n sizeConfig.item,\n 'focus-visible:outline-hidden',\n 'active:scale-90 motion-reduce:transition-none',\n transitions.colors,\n transitions.transform,\n )}\n >\n <span aria-hidden=\"true\" className=\"pointer-events-none inline-flex items-center justify-center\">\n {option.icon}\n </span>\n </RadioPrimitive.Root>\n ))}\n </RadioGroupPrimitive>\n );\n};\n"],"names":["RadioGroupPrimitive","RadioPrimitive"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const messageScrollerHooks = require('../message-scroller-hooks-BxAf8k0Y.cjs');
|
|
9
|
-
const scrollArea = require('../scroll-area-
|
|
9
|
+
const scrollArea = require('../scroll-area-B1vdOFuC.cjs');
|
|
10
10
|
const hooks_useMeasuredAutoHeight = require('../hooks/use-measured-auto-height.cjs.js');
|
|
11
11
|
const utils_cn = require('../cn-DCPcv4xv.cjs');
|
|
12
12
|
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { FileText } from 'lucide-react';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { c as useOptionalMessageScroller, e as useOptionalMessageScrollerVisibility } from '../message-scroller-hooks-BEeE1WE6.js';
|
|
5
|
-
import { S as ScrollArea } from '../scroll-area-
|
|
5
|
+
import { S as ScrollArea } from '../scroll-area-BiHnOfzg.js';
|
|
6
6
|
import { useMeasuredAutoHeight } from '../hooks/use-measured-auto-height.es.js';
|
|
7
7
|
import { c as cn } from '../cn-B4oPhFx9.js';
|
|
8
8
|
|
|
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const collapsible = require('../../collapsible-CLPRijls.cjs');
|
|
9
|
-
const scrollArea = require('../../scroll-area-
|
|
9
|
+
const scrollArea = require('../../scroll-area-B1vdOFuC.cjs');
|
|
10
10
|
const tooltip = require('../../tooltip-DIi_oOxO.cjs');
|
|
11
11
|
const utils_cn = require('../../cn-DCPcv4xv.cjs');
|
|
12
12
|
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { ChevronRight, ListChecks, Circle, Loader2, CheckCircle2 } from 'lucide-react';
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { C as Collapsible, a as CollapsibleContent, b as CollapsibleTrigger } from '../../collapsible-igib7hFh.js';
|
|
5
|
-
import { S as ScrollArea } from '../../scroll-area-
|
|
5
|
+
import { S as ScrollArea } from '../../scroll-area-BiHnOfzg.js';
|
|
6
6
|
import { b as TooltipProvider, T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../tooltip-Bi0pDO5P.js';
|
|
7
7
|
import { c as cn } from '../../cn-B4oPhFx9.js';
|
|
8
8
|
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const dataListTopCell = require('./data-list-top-cell-CIs1L8gy.cjs');
|
|
4
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
const lucideReact = require('lucide-react');
|
|
6
|
+
const Button = require('./Button-D10WB4vc.cjs');
|
|
7
|
+
const React = require('react');
|
|
8
|
+
const utils_cn = require('./cn-DCPcv4xv.cjs');
|
|
9
|
+
|
|
10
|
+
function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
|
|
11
|
+
const showNavigation = typeof currentPage === "number" && currentPage > 0 || hasMore;
|
|
12
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4", children: [
|
|
13
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
14
|
+
"Page ",
|
|
15
|
+
/* @__PURE__ */ jsxRuntime.jsx("b", { children: currentPage ? currentPage + 1 : "1" })
|
|
16
|
+
] }),
|
|
17
|
+
showNavigation && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4", children: [
|
|
18
|
+
typeof currentPage === "number" && currentPage > 0 && /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { type: "button", variant: "outline", size: "sm", onClick: onPrevPage, children: [
|
|
19
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, {}),
|
|
20
|
+
"Previous"
|
|
21
|
+
] }),
|
|
22
|
+
hasMore && /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { type: "button", variant: "outline", size: "sm", onClick: onNextPage, children: [
|
|
23
|
+
"Next",
|
|
24
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {})
|
|
25
|
+
] })
|
|
26
|
+
] })
|
|
27
|
+
] });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const DataListRowStatic = React.forwardRef(
|
|
31
|
+
({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
|
|
32
|
+
const isWrapped = dataListTopCell.useDataListRowWrapperContext();
|
|
33
|
+
const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
|
|
34
|
+
const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
|
|
35
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
ref,
|
|
39
|
+
className: utils_cn.cn(
|
|
40
|
+
isWrapped ? "grid grid-cols-subgrid gap-8 px-5 transition-colors duration-200" : dataListTopCell.dataListRowStaticStyles,
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
style: resolvedStyle,
|
|
44
|
+
"data-featured": featured || void 0,
|
|
45
|
+
"data-variant": variant ?? "default",
|
|
46
|
+
...rest,
|
|
47
|
+
children
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
DataListRowStatic.displayName = "DataListRowStatic";
|
|
53
|
+
|
|
54
|
+
const DataListSubheader = React.forwardRef(
|
|
55
|
+
({ children, className, ...rest }, ref) => {
|
|
56
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
ref,
|
|
60
|
+
className: utils_cn.cn(
|
|
61
|
+
"data-list-subheader relative isolate col-span-full px-5 py-3 text-ui-md font-medium text-neutral4",
|
|
62
|
+
"bg-(--data-list-background)",
|
|
63
|
+
className
|
|
64
|
+
),
|
|
65
|
+
...rest,
|
|
66
|
+
children
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
DataListSubheader.displayName = "DataListSubheader";
|
|
72
|
+
|
|
73
|
+
function DataListSubHeading({ children, className }) {
|
|
74
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("text-ui-sm font-normal text-neutral2", className), children });
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const DataListTopCells = React.forwardRef(
|
|
78
|
+
({ children, className, flushLeft, colStart, style, ...rest }, ref) => {
|
|
79
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
80
|
+
"div",
|
|
81
|
+
{
|
|
82
|
+
ref,
|
|
83
|
+
className: utils_cn.cn(
|
|
84
|
+
"pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto",
|
|
85
|
+
!colStart && "col-span-full",
|
|
86
|
+
flushLeft && "pl-0!",
|
|
87
|
+
className
|
|
88
|
+
),
|
|
89
|
+
style: colStart ? { ...style, gridColumn: `${colStart} / -1` } : style,
|
|
90
|
+
...rest,
|
|
91
|
+
children
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
DataListTopCells.displayName = "DataListTopCells";
|
|
97
|
+
|
|
98
|
+
const DataList = Object.assign(dataListTopCell.DataListRoot, {
|
|
99
|
+
Top: dataListTopCell.DataListTop,
|
|
100
|
+
TopCells: DataListTopCells,
|
|
101
|
+
TopCell: dataListTopCell.DataListTopCell,
|
|
102
|
+
TopCellWithTooltip: dataListTopCell.DataListTopCellWithTooltip,
|
|
103
|
+
TopCellSmart: dataListTopCell.DataListTopCellSmart,
|
|
104
|
+
RowWrapper: dataListTopCell.DataListRowWrapper,
|
|
105
|
+
RowButton: dataListTopCell.DataListRowButton,
|
|
106
|
+
RowLink: dataListTopCell.DataListRowLink,
|
|
107
|
+
RowStatic: DataListRowStatic,
|
|
108
|
+
Cell: dataListTopCell.DataListCell,
|
|
109
|
+
ActionsCell: dataListTopCell.DataListActionsCell,
|
|
110
|
+
TextCell: dataListTopCell.DataListTextCell,
|
|
111
|
+
NameCell: dataListTopCell.DataListNameCell,
|
|
112
|
+
DescriptionCell: dataListTopCell.DataListDescriptionCell,
|
|
113
|
+
IdCell: dataListTopCell.DataListIdCell,
|
|
114
|
+
RowHeaderCell: dataListTopCell.DataListRowHeaderCell,
|
|
115
|
+
NumberCell: dataListTopCell.DataListNumberCell,
|
|
116
|
+
DateCell: dataListTopCell.DataListDateCell,
|
|
117
|
+
TimeCell: dataListTopCell.DataListTimeCell,
|
|
118
|
+
SelectCell: dataListTopCell.DataListSelectCell,
|
|
119
|
+
TopSelectCell: dataListTopCell.DataListTopSelectCell,
|
|
120
|
+
NoMatch: dataListTopCell.DataListNoMatch,
|
|
121
|
+
Subheader: DataListSubheader,
|
|
122
|
+
SubHeading: DataListSubHeading,
|
|
123
|
+
Spacer: dataListTopCell.DataListSpacer,
|
|
124
|
+
NextPageLoading: dataListTopCell.DataListNextPageLoading,
|
|
125
|
+
Pagination: DataListPagination
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
exports.DataList = DataList;
|
|
129
|
+
exports.DataListSubHeading = DataListSubHeading;
|
|
130
|
+
exports.DataListSubheader = DataListSubheader;
|
|
131
|
+
//# sourceMappingURL=data-list-B5Wicaoc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list-B5Wicaoc.cjs","sources":["../src/ds/components/DataList/data-list-pagination.tsx","../src/ds/components/DataList/data-list-row-static.tsx","../src/ds/components/DataList/data-list-subheader.tsx","../src/ds/components/DataList/data-list-subheading.tsx","../src/ds/components/DataList/data-list-top-cells.tsx","../src/ds/components/DataList/data-list.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport type DataListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: DataListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className=\"text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4\">\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div className=\"flex gap-4\">\n {typeof currentPage === 'number' && currentPage > 0 && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useDataListRowWrapperContext } from './data-list-row-wrapper-context';\nimport { dataListRowStaticStyles } from './shared';\nimport type { DataListRowSharedProps } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport type DataListRowStaticProps = ComponentPropsWithoutRef<'div'> & DataListRowSharedProps;\n\n/**\n * Non-interactive row. Use when a row should *display* like a regular row but\n * has no link target or click handler\n */\nexport const DataListRowStatic = forwardRef<HTMLDivElement, DataListRowStaticProps>(\n ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {\n const isWrapped = useDataListRowWrapperContext();\n const hasColumnOverride = colStart !== undefined || colEnd !== undefined;\n const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;\n return (\n <div\n ref={ref}\n className={cn(\n isWrapped ? 'grid grid-cols-subgrid gap-8 px-5 transition-colors duration-200' : dataListRowStaticStyles,\n className,\n )}\n style={resolvedStyle}\n data-featured={featured || undefined}\n data-variant={variant ?? 'default'}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListRowStatic.displayName = 'DataListRowStatic';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubheaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const DataListSubheader = forwardRef<HTMLDivElement, DataListSubheaderProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'data-list-subheader relative isolate col-span-full px-5 py-3 text-ui-md font-medium text-neutral4',\n 'bg-(--data-list-background)',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListSubheader.displayName = 'DataListSubheader';\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubHeadingProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport function DataListSubHeading({ children, className }: DataListSubHeadingProps) {\n return <span className={cn('text-ui-sm font-normal text-neutral2', className)}>{children}</span>;\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListTopCellsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Drop the group's default left margin. Use when this sits as the second\n * child of a gap-0 `DataList.Top`, beside a `DataList.TopSelectCell` that\n * owns the leading column.\n */\n flushLeft?: boolean;\n /**\n * Place the group starting at this column line, spanning through to the\n * last column. Defaults to the full grid (`col-span-full`). Use when this\n * sits beside a leading cell that owns column 1.\n */\n colStart?: number;\n};\n\n/**\n * Non-interactive header equivalent of `DataList.RowButton`. Groups a set of\n * `DataList.TopCell`s with the same horizontal layout (gap, mx, px) as\n * `RowButton`, so columns inside a wrapped `Top` line up cell-for-cell with the\n * columns inside a wrapped `Row`.\n */\nexport const DataListTopCells = forwardRef<HTMLDivElement, DataListTopCellsProps>(\n ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto',\n !colStart && 'col-span-full',\n flushLeft && 'pl-0!',\n className,\n )}\n style={colStart ? { ...style, gridColumn: `${colStart} / -1` } : style}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListTopCells.displayName = 'DataListTopCells';\n","import {\n DataListActionsCell,\n DataListCell,\n DataListTextCell,\n DataListNameCell,\n DataListDescriptionCell,\n DataListIdCell,\n DataListRowHeaderCell,\n DataListNumberCell,\n DataListSelectCell,\n DataListDateCell,\n DataListTimeCell,\n} from './data-list-cells';\nimport { DataListNextPageLoading } from './data-list-next-page-loading';\nimport { DataListNoMatch } from './data-list-no-match';\nimport { DataListPagination } from './data-list-pagination';\nimport { DataListRoot } from './data-list-root';\nimport { DataListRowButton } from './data-list-row-button';\nimport { DataListRowLink } from './data-list-row-link';\nimport { DataListRowStatic } from './data-list-row-static';\nimport { DataListRowWrapper } from './data-list-row-wrapper';\nimport { DataListSpacer } from './data-list-spacer';\nimport { DataListSubheader } from './data-list-subheader';\nimport { DataListSubHeading } from './data-list-subheading';\nimport { DataListTop } from './data-list-top';\nimport {\n DataListTopCell,\n DataListTopCellWithTooltip,\n DataListTopCellSmart,\n DataListTopSelectCell,\n} from './data-list-top-cell';\nimport { DataListTopCells } from './data-list-top-cells';\n\nexport type { DataListRootProps, DataListVariant } from './data-list-root';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n RowStatic: DataListRowStatic,\n Cell: DataListCell,\n ActionsCell: DataListActionsCell,\n TextCell: DataListTextCell,\n NameCell: DataListNameCell,\n DescriptionCell: DataListDescriptionCell,\n IdCell: DataListIdCell,\n RowHeaderCell: DataListRowHeaderCell,\n NumberCell: DataListNumberCell,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n SelectCell: DataListSelectCell,\n TopSelectCell: DataListTopSelectCell,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n NextPageLoading: DataListNextPageLoading,\n Pagination: DataListPagination,\n});\n"],"names":["jsxs","jsx","Button","ArrowLeftIcon","ArrowRightIcon","forwardRef","useDataListRowWrapperContext","cn","dataListRowStaticStyles","DataListRoot","DataListTop","DataListTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListCell","DataListActionsCell","DataListTextCell","DataListNameCell","DataListDescriptionCell","DataListIdCell","DataListRowHeaderCell","DataListNumberCell","DataListDateCell","DataListTimeCell","DataListSelectCell","DataListTopSelectCell","DataListNoMatch","DataListSpacer","DataListNextPageLoading"],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { u as useDataListRowWrapperContext, r as dataListRowStaticStyles, D as DataListRoot, f as DataListNextPageLoading, j as DataListSpacer, i as DataListNoMatch, s as DataListTopSelectCell, t as DataListSelectCell, g as DataListTimeCell, h as DataListDateCell, v as DataListNumberCell, w as DataListRowHeaderCell, q as DataListIdCell, x as DataListDescriptionCell, y as DataListNameCell, e as DataListTextCell, z as DataListActionsCell, c as DataListCell, k as DataListRowLink, l as DataListRowButton, m as DataListRowWrapper, n as DataListTopCellSmart, o as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-cell-D4-Hbz2H.js';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';
|
|
4
|
+
import { B as Button } from './Button-BsfLQEC6.js';
|
|
5
|
+
import { forwardRef } from 'react';
|
|
6
|
+
import { c as cn } from './cn-B4oPhFx9.js';
|
|
7
|
+
|
|
8
|
+
function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
|
|
9
|
+
const showNavigation = typeof currentPage === "number" && currentPage > 0 || hasMore;
|
|
10
|
+
return /* @__PURE__ */ jsxs("div", { className: "text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4", children: [
|
|
11
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
12
|
+
"Page ",
|
|
13
|
+
/* @__PURE__ */ jsx("b", { children: currentPage ? currentPage + 1 : "1" })
|
|
14
|
+
] }),
|
|
15
|
+
showNavigation && /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
|
|
16
|
+
typeof currentPage === "number" && currentPage > 0 && /* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: onPrevPage, children: [
|
|
17
|
+
/* @__PURE__ */ jsx(ArrowLeftIcon, {}),
|
|
18
|
+
"Previous"
|
|
19
|
+
] }),
|
|
20
|
+
hasMore && /* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: onNextPage, children: [
|
|
21
|
+
"Next",
|
|
22
|
+
/* @__PURE__ */ jsx(ArrowRightIcon, {})
|
|
23
|
+
] })
|
|
24
|
+
] })
|
|
25
|
+
] });
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const DataListRowStatic = forwardRef(
|
|
29
|
+
({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
|
|
30
|
+
const isWrapped = useDataListRowWrapperContext();
|
|
31
|
+
const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
|
|
32
|
+
const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
"div",
|
|
35
|
+
{
|
|
36
|
+
ref,
|
|
37
|
+
className: cn(
|
|
38
|
+
isWrapped ? "grid grid-cols-subgrid gap-8 px-5 transition-colors duration-200" : dataListRowStaticStyles,
|
|
39
|
+
className
|
|
40
|
+
),
|
|
41
|
+
style: resolvedStyle,
|
|
42
|
+
"data-featured": featured || void 0,
|
|
43
|
+
"data-variant": variant ?? "default",
|
|
44
|
+
...rest,
|
|
45
|
+
children
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
DataListRowStatic.displayName = "DataListRowStatic";
|
|
51
|
+
|
|
52
|
+
const DataListSubheader = forwardRef(
|
|
53
|
+
({ children, className, ...rest }, ref) => {
|
|
54
|
+
return /* @__PURE__ */ jsx(
|
|
55
|
+
"div",
|
|
56
|
+
{
|
|
57
|
+
ref,
|
|
58
|
+
className: cn(
|
|
59
|
+
"data-list-subheader relative isolate col-span-full px-5 py-3 text-ui-md font-medium text-neutral4",
|
|
60
|
+
"bg-(--data-list-background)",
|
|
61
|
+
className
|
|
62
|
+
),
|
|
63
|
+
...rest,
|
|
64
|
+
children
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
DataListSubheader.displayName = "DataListSubheader";
|
|
70
|
+
|
|
71
|
+
function DataListSubHeading({ children, className }) {
|
|
72
|
+
return /* @__PURE__ */ jsx("span", { className: cn("text-ui-sm font-normal text-neutral2", className), children });
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const DataListTopCells = forwardRef(
|
|
76
|
+
({ children, className, flushLeft, colStart, style, ...rest }, ref) => {
|
|
77
|
+
return /* @__PURE__ */ jsx(
|
|
78
|
+
"div",
|
|
79
|
+
{
|
|
80
|
+
ref,
|
|
81
|
+
className: cn(
|
|
82
|
+
"pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto",
|
|
83
|
+
!colStart && "col-span-full",
|
|
84
|
+
flushLeft && "pl-0!",
|
|
85
|
+
className
|
|
86
|
+
),
|
|
87
|
+
style: colStart ? { ...style, gridColumn: `${colStart} / -1` } : style,
|
|
88
|
+
...rest,
|
|
89
|
+
children
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
DataListTopCells.displayName = "DataListTopCells";
|
|
95
|
+
|
|
96
|
+
const DataList = Object.assign(DataListRoot, {
|
|
97
|
+
Top: DataListTop,
|
|
98
|
+
TopCells: DataListTopCells,
|
|
99
|
+
TopCell: DataListTopCell,
|
|
100
|
+
TopCellWithTooltip: DataListTopCellWithTooltip,
|
|
101
|
+
TopCellSmart: DataListTopCellSmart,
|
|
102
|
+
RowWrapper: DataListRowWrapper,
|
|
103
|
+
RowButton: DataListRowButton,
|
|
104
|
+
RowLink: DataListRowLink,
|
|
105
|
+
RowStatic: DataListRowStatic,
|
|
106
|
+
Cell: DataListCell,
|
|
107
|
+
ActionsCell: DataListActionsCell,
|
|
108
|
+
TextCell: DataListTextCell,
|
|
109
|
+
NameCell: DataListNameCell,
|
|
110
|
+
DescriptionCell: DataListDescriptionCell,
|
|
111
|
+
IdCell: DataListIdCell,
|
|
112
|
+
RowHeaderCell: DataListRowHeaderCell,
|
|
113
|
+
NumberCell: DataListNumberCell,
|
|
114
|
+
DateCell: DataListDateCell,
|
|
115
|
+
TimeCell: DataListTimeCell,
|
|
116
|
+
SelectCell: DataListSelectCell,
|
|
117
|
+
TopSelectCell: DataListTopSelectCell,
|
|
118
|
+
NoMatch: DataListNoMatch,
|
|
119
|
+
Subheader: DataListSubheader,
|
|
120
|
+
SubHeading: DataListSubHeading,
|
|
121
|
+
Spacer: DataListSpacer,
|
|
122
|
+
NextPageLoading: DataListNextPageLoading,
|
|
123
|
+
Pagination: DataListPagination
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
export { DataList as D, DataListSubHeading as a, DataListSubheader as b };
|
|
127
|
+
//# sourceMappingURL=data-list-BUK_v9ax.js.map
|