@repraze/kernelkit 0.1.0-alpha.1 → 0.1.0-alpha.3
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/components/alert.d.ts.map +1 -1
- package/dist/components/alert.js +4 -6
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumb.d.ts +1 -0
- package/dist/components/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb.js +7 -6
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/callout.d.ts +8 -4
- package/dist/components/callout.d.ts.map +1 -1
- package/dist/components/callout.js +22 -12
- package/dist/components/callout.js.map +1 -1
- package/dist/components/chart.js +2 -2
- package/dist/components/chart.js.map +1 -1
- package/dist/components/code-block.js +1 -1
- package/dist/components/code-block.js.map +1 -1
- package/dist/components/command.d.ts +1 -1
- package/dist/components/command.d.ts.map +1 -1
- package/dist/components/command.js +3 -3
- package/dist/components/command.js.map +1 -1
- package/dist/components/data-table/elements/data-table-info-row.js +1 -1
- package/dist/components/data-table/elements/data-table-info-row.js.map +1 -1
- package/dist/components/dropdown-menu.d.ts +1 -1
- package/dist/components/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu.js +2 -2
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/kbd.d.ts.map +1 -1
- package/dist/components/kbd.js +2 -4
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/message.js +2 -2
- package/dist/components/message.js.map +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/meter.js.map +1 -1
- package/dist/components/navigation-menu.d.ts.map +1 -1
- package/dist/components/navigation-menu.js +3 -1
- package/dist/components/navigation-menu.js.map +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/questionnaire.js +1 -1
- package/dist/components/questionnaire.js.map +1 -1
- package/dist/components/search-trigger.d.ts +1 -1
- package/dist/components/search-trigger.d.ts.map +1 -1
- package/dist/components/search-trigger.js +2 -2
- package/dist/components/search-trigger.js.map +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/section.js.map +1 -1
- package/dist/components/sidebar.d.ts.map +1 -1
- package/dist/components/sidebar.js +4 -3
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/site-footer.js +1 -1
- package/dist/components/site-footer.js.map +1 -1
- package/dist/components/site-header.d.ts +3 -3
- package/dist/components/site-header.d.ts.map +1 -1
- package/dist/components/site-header.js +7 -9
- package/dist/components/site-header.js.map +1 -1
- package/dist/components/stat.js +2 -2
- package/dist/components/stat.js.map +1 -1
- package/dist/components/tabs.d.ts +4 -2
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +13 -7
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/theme-menu.d.ts +49 -0
- package/dist/components/theme-menu.d.ts.map +1 -0
- package/dist/components/theme-menu.js +75 -0
- package/dist/components/theme-menu.js.map +1 -0
- package/dist/components/toc.js +1 -1
- package/dist/components/toc.js.map +1 -1
- package/dist/components/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip.js +5 -2
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/trace.js +1 -1
- package/dist/components/trace.js.map +1 -1
- package/dist/lib/recipes.d.ts +17 -1
- package/dist/lib/recipes.d.ts.map +1 -1
- package/dist/lib/recipes.js +19 -1
- package/dist/lib/recipes.js.map +1 -1
- package/dist/provider/theme-provider.d.ts +4 -0
- package/dist/provider/theme-provider.d.ts.map +1 -1
- package/dist/provider/theme-provider.js +14 -1
- package/dist/provider/theme-provider.js.map +1 -1
- package/package.json +1 -1
- package/src/components/alert.tsx +4 -6
- package/src/components/avatar.tsx +1 -1
- package/src/components/badge.tsx +1 -1
- package/src/components/breadcrumb.tsx +8 -7
- package/src/components/calendar.tsx +1 -1
- package/src/components/callout.tsx +27 -12
- package/src/components/chart.tsx +2 -2
- package/src/components/code-block.tsx +1 -1
- package/src/components/command.tsx +3 -4
- package/src/components/data-table/elements/data-table-info-row.tsx +1 -1
- package/src/components/dropdown-menu.tsx +2 -2
- package/src/components/kbd.tsx +2 -4
- package/src/components/message.tsx +2 -2
- package/src/components/meter.tsx +1 -1
- package/src/components/navigation-menu.tsx +4 -0
- package/src/components/progress.tsx +1 -1
- package/src/components/questionnaire.tsx +1 -1
- package/src/components/search-trigger.tsx +2 -3
- package/src/components/section.tsx +1 -1
- package/src/components/sidebar.tsx +4 -3
- package/src/components/site-footer.tsx +1 -1
- package/src/components/site-header.tsx +8 -9
- package/src/components/stat.tsx +2 -2
- package/src/components/tabs.tsx +17 -9
- package/src/components/theme-menu.tsx +243 -0
- package/src/components/toc.tsx +1 -1
- package/src/components/tooltip.tsx +15 -3
- package/src/components/trace.tsx +1 -1
- package/src/lib/recipes.ts +23 -2
- package/src/provider/theme-provider.tsx +18 -1
- package/src/styles/kernelkit.css +4 -0
package/dist/components/tabs.js
CHANGED
|
@@ -8,14 +8,16 @@ function Tabs({ className, orientation = "horizontal", ...props }) {
|
|
|
8
8
|
return (_jsx(TabsPrimitive.Root, { "data-slot": "tabs", "data-orientation": orientation, orientation: orientation, className: cn("group/tabs flex gap-2 data-horizontal:flex-col", className), ...props }));
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* `default`: a
|
|
12
|
-
*
|
|
11
|
+
* `default`: a track with the active tab tinted with the accent and marked by a 2px pill along its bottom
|
|
12
|
+
* edge, like a current nav link. Track border + padding = `--radius-xs` (lg − md), so the `rounded-md` chips
|
|
13
|
+
* stay concentric with the `rounded-lg` track at every radius. `line`: a baseline with the same 2px pill
|
|
14
|
+
* on it under the active tab.
|
|
13
15
|
* Sizes follow the control table (GUIDELINES §4) so a tabs list lines up with buttons and inputs.
|
|
14
16
|
*/
|
|
15
17
|
const tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground data-vertical:h-fit data-vertical:flex-col data-vertical:items-stretch", {
|
|
16
18
|
variants: {
|
|
17
19
|
variant: {
|
|
18
|
-
default: "rounded-lg border border-transparent bg-muted p-[
|
|
20
|
+
default: "rounded-lg border border-transparent bg-muted p-[max(0px,calc(var(--radius-xs)-1px))] data-vertical:gap-0.5 hc:border-border",
|
|
19
21
|
line: "gap-1 rounded-none border-border bg-transparent data-horizontal:border-b data-horizontal:py-[3px] data-vertical:border-r data-vertical:px-[3px]",
|
|
20
22
|
},
|
|
21
23
|
size: {
|
|
@@ -37,10 +39,14 @@ const tabsTriggerClass = cn("relative inline-flex h-full flex-1 items-center jus
|
|
|
37
39
|
"group-data-[size=sm]/tabs-list:gap-1 group-data-[size=sm]/tabs-list:px-1.5 group-data-[size=sm]/tabs-list:text-[0.8rem] group-data-[size=sm]/tabs-list:[&_svg:not([class*='size-'])]:size-3.5", "group-data-[size=lg]/tabs-list:gap-2 group-data-[size=lg]/tabs-list:px-2.5",
|
|
38
40
|
// vertical: full-width rows
|
|
39
41
|
"data-vertical:w-full data-vertical:flex-none data-vertical:justify-start data-vertical:py-1",
|
|
40
|
-
//
|
|
41
|
-
"data-active:text-foreground", "group-data-[variant=default]/tabs-list:data-active:
|
|
42
|
-
//
|
|
43
|
-
"
|
|
42
|
+
// active: foreground text and a 2px primary-text pill; default adds the accent tint (nav link look)
|
|
43
|
+
"data-active:text-foreground", "group-data-[variant=default]/tabs-list:data-active:bg-accent group-data-[variant=default]/tabs-list:data-active:text-accent-foreground", "after:pointer-events-none after:absolute after:rounded-pill after:bg-primary-text after:opacity-0 after:transition-opacity data-active:after:opacity-100",
|
|
44
|
+
// default: the pill sits inside the chip on its bottom edge (vertical: its start edge, like sidebar rows)
|
|
45
|
+
"group-data-[variant=default]/tabs-list:data-horizontal:after:inset-x-2 group-data-[variant=default]/tabs-list:data-horizontal:after:-bottom-px group-data-[variant=default]/tabs-list:data-horizontal:after:h-0.5",
|
|
46
|
+
// the pill spans the label: inset = the trigger's padding per size
|
|
47
|
+
"group-data-[size=sm]/tabs-list:group-data-[variant=default]/tabs-list:data-horizontal:after:inset-x-1.5 group-data-[size=lg]/tabs-list:group-data-[variant=default]/tabs-list:data-horizontal:after:inset-x-2.5", "group-data-[variant=default]/tabs-list:data-vertical:after:inset-y-1.5 group-data-[variant=default]/tabs-list:data-vertical:after:-left-px group-data-[variant=default]/tabs-list:data-vertical:after:w-0.5",
|
|
48
|
+
// line: the pill sits on the list's baseline
|
|
49
|
+
"group-data-[variant=line]/tabs-list:data-horizontal:after:inset-x-1 group-data-[variant=line]/tabs-list:data-horizontal:after:-bottom-1 group-data-[variant=line]/tabs-list:data-horizontal:after:h-0.5", "group-data-[variant=line]/tabs-list:data-vertical:after:inset-y-1 group-data-[variant=line]/tabs-list:data-vertical:after:-right-1 group-data-[variant=line]/tabs-list:data-vertical:after:w-0.5");
|
|
44
50
|
function TabsTrigger({ className, ...props }) {
|
|
45
51
|
return _jsx(TabsPrimitive.Tab, { "data-slot": "tabs-trigger", className: cn(tabsTriggerClass, className), ...props });
|
|
46
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,IAAI,IAAI,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,GAAG,EAAoB,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB,SAAS,IAAI,CAAC,EAAC,SAAS,EAAE,WAAW,GAAG,YAAY,EAAE,GAAG,KAAK,EAA2B;IACrF,OAAO,CACH,KAAC,aAAa,CAAC,IAAI,iBACL,MAAM,sBACE,WAAW,EAC7B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CAAC,gDAAgD,EAAE,SAAS,CAAC,KACtE,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,IAAI,IAAI,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,GAAG,EAAoB,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB,SAAS,IAAI,CAAC,EAAC,SAAS,EAAE,WAAW,GAAG,YAAY,EAAE,GAAG,KAAK,EAA2B;IACrF,OAAO,CACH,KAAC,aAAa,CAAC,IAAI,iBACL,MAAM,sBACE,WAAW,EAC7B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CAAC,gDAAgD,EAAE,SAAS,CAAC,KACtE,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,GAAG,CACxB,4JAA4J,EAC5J;IACI,QAAQ,EAAE;QACN,OAAO,EAAE;YACL,OAAO,EACH,8HAA8H;YAClI,IAAI,EAAE,iJAAiJ;SAC1J;QACD,IAAI,EAAE;YACF,EAAE,EAAE,qBAAqB;YACzB,OAAO,EAAE,qBAAqB;YAC9B,EAAE,EAAE,qBAAqB;SAC5B;KACJ;IACD,eAAe,EAAE;QACb,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAClB;CACJ,CACJ,CAAC;AAEF,SAAS,QAAQ,CAAC,EACd,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACuD;IAC/D,OAAO,CACH,KAAC,aAAa,CAAC,IAAI,iBACL,WAAW,kBACP,OAAO,eACV,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EAAE,SAAS,CAAC,KACvD,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,MAAM,gBAAgB,GAAG,EAAE,CACvB,0LAA0L,EAC1L,wGAAwG,EACxG,SAAS,EACT,sDAAsD,EACtD,wKAAwK,EACxK,uEAAuE,EACvE,mFAAmF;AACnF,4BAA4B;AAC5B,+LAA+L,EAC/L,4EAA4E;AAC5E,4BAA4B;AAC5B,6FAA6F;AAC7F,oGAAoG;AACpG,6BAA6B,EAC7B,wIAAwI,EACxI,0JAA0J;AAC1J,0GAA0G;AAC1G,mNAAmN;AACnN,mEAAmE;AACnE,iNAAiN,EACjN,6MAA6M;AAC7M,6CAA6C;AAC7C,yMAAyM,EACzM,kMAAkM,CACrM,CAAC;AAEF,SAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA0B;IAC/D,OAAO,KAAC,aAAa,CAAC,GAAG,iBAAW,cAAc,EAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACjH,CAAC;AAED,SAAS,WAAW,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA4B;IACjE,OAAO,CACH,KAAC,aAAa,CAAC,KAAK,iBACN,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,EAAE,SAAS,CAAC,KAC5D,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Button } from "@repraze/kernelkit/components/button";
|
|
2
|
+
import { type Mode } from "@repraze/kernelkit/provider";
|
|
3
|
+
import { type LucideIcon } from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
/** The icon for the chosen mode (not the resolved one): sun, moon, or monitor for "system". */
|
|
6
|
+
declare function ThemeModeIcon({ mode, ...props }: {
|
|
7
|
+
mode?: Mode;
|
|
8
|
+
} & React.ComponentProps<LucideIcon>): React.JSX.Element;
|
|
9
|
+
/** Light / dark / system as a segmented control. */
|
|
10
|
+
declare function ThemeModePicker({ className }: {
|
|
11
|
+
className?: string;
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
/** The eight TermiColor accents as swatches; sets the theme's accent. */
|
|
14
|
+
declare function ThemeAccentPicker({ className }: {
|
|
15
|
+
className?: string;
|
|
16
|
+
}): React.JSX.Element;
|
|
17
|
+
/** The radius scale as a segmented control; sets the theme's radius. */
|
|
18
|
+
declare function ThemeRadiusPicker({ className }: {
|
|
19
|
+
className?: string;
|
|
20
|
+
}): React.JSX.Element;
|
|
21
|
+
/** High contrast on/off, with its label. */
|
|
22
|
+
declare function ThemeContrastSwitch({ className }: {
|
|
23
|
+
className?: string;
|
|
24
|
+
}): React.JSX.Element;
|
|
25
|
+
/** A labelled block inside the menu. */
|
|
26
|
+
declare function ThemeMenuSection({ label, children, className, }: {
|
|
27
|
+
label: string;
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
className?: string;
|
|
30
|
+
}): React.JSX.Element;
|
|
31
|
+
interface ThemeMenuProps extends Omit<React.ComponentProps<typeof Button>, "children" | "title"> {
|
|
32
|
+
/** Popover title. */
|
|
33
|
+
title?: React.ReactNode;
|
|
34
|
+
/** Extra controls, after the built-in ones and before Reset. */
|
|
35
|
+
children?: React.ReactNode;
|
|
36
|
+
/** Popover alignment against the trigger. */
|
|
37
|
+
align?: "start" | "center" | "end";
|
|
38
|
+
contentClassName?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The suite's theme control (GUIDELINES §7b): one ghost icon button in `SiteHeaderActions` showing the
|
|
42
|
+
* chosen mode (sun, moon, monitor), opening a popover with mode, accent, high contrast, radius and a
|
|
43
|
+
* Reset to the provider's defaults. Reads and writes `useTheme()`, so it needs a `ThemeProvider`.
|
|
44
|
+
* Trigger props (`aria-label`, `className`, `data-*`) pass through to the button.
|
|
45
|
+
*/
|
|
46
|
+
declare function ThemeMenu({ title, children, align, contentClassName, className, ...props }: ThemeMenuProps): React.JSX.Element;
|
|
47
|
+
export { ThemeAccentPicker, ThemeContrastSwitch, ThemeMenu, ThemeMenuSection, ThemeModeIcon, ThemeModePicker, ThemeRadiusPicker, };
|
|
48
|
+
export type { ThemeMenuProps };
|
|
49
|
+
//# sourceMappingURL=theme-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-menu.d.ts","sourceRoot":"","sources":["../../src/components/theme-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,sCAAsC,CAAC;AAY5D,OAAO,EAAuB,KAAK,IAAI,EAA+B,MAAM,6BAA6B,CAAC;AAE1G,OAAO,EAAY,KAAK,UAAU,EAAgD,MAAM,cAAc,CAAC;AACvG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,+FAA+F;AAC/F,iBAAS,aAAa,CAAC,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,qBAIxF;AAED,oDAAoD;AACpD,iBAAS,eAAe,CAAC,EAAC,SAAS,EAAC,EAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,qBAmBzD;AAQD,yEAAyE;AACzE,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAC,EAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,qBAsC3D;AAED,wEAAwE;AACxE,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAC,EAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,qBAmB3D;AAED,4CAA4C;AAC5C,iBAAS,mBAAmB,CAAC,EAAC,SAAS,EAAC,EAAE;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,qBAa7D;AAED,wCAAwC;AACxC,iBAAS,gBAAgB,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,SAAS,GACZ,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,qBAOA;AAED,UAAU,cAAe,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5F,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,EAAC,KAAe,EAAE,QAAQ,EAAE,KAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,cAAc,qBAuDnH;AAED,OAAO,EACH,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,GACpB,CAAC;AACF,YAAY,EAAC,cAAc,EAAC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from "@repraze/kernelkit/components/button";
|
|
4
|
+
import { Label } from "@repraze/kernelkit/components/label";
|
|
5
|
+
import { Popover, PopoverContent, PopoverHeader, PopoverTitle, PopoverTrigger, } from "@repraze/kernelkit/components/popover";
|
|
6
|
+
import { Switch } from "@repraze/kernelkit/components/switch";
|
|
7
|
+
import { ToggleGroup, ToggleGroupItem } from "@repraze/kernelkit/components/toggle-group";
|
|
8
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "@repraze/kernelkit/components/tooltip";
|
|
9
|
+
import { ACCENTS, RADII, useTheme } from "@repraze/kernelkit/provider";
|
|
10
|
+
import { cn } from "cn";
|
|
11
|
+
import { CheckIcon, MonitorIcon, MoonIcon, RotateCcwIcon, SunIcon } from "lucide-react";
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
/** Mode choices in display order, with the icon the trigger shows for each. */
|
|
14
|
+
const THEME_MODES = [
|
|
15
|
+
{ value: "light", label: "Light", icon: SunIcon },
|
|
16
|
+
{ value: "dark", label: "Dark", icon: MoonIcon },
|
|
17
|
+
{ value: "system", label: "System", icon: MonitorIcon },
|
|
18
|
+
];
|
|
19
|
+
const modeOption = (mode) => THEME_MODES.find((m) => m.value === mode) ?? THEME_MODES[2];
|
|
20
|
+
/** The icon for the chosen mode (not the resolved one): sun, moon, or monitor for "system". */
|
|
21
|
+
function ThemeModeIcon({ mode, ...props }) {
|
|
22
|
+
const theme = useTheme();
|
|
23
|
+
const Icon = modeOption(mode ?? theme.mode).icon;
|
|
24
|
+
return _jsx(Icon, { "data-slot": "theme-mode-icon", ...props });
|
|
25
|
+
}
|
|
26
|
+
/** Light / dark / system as a segmented control. */
|
|
27
|
+
function ThemeModePicker({ className }) {
|
|
28
|
+
const theme = useTheme();
|
|
29
|
+
return (_jsx(ToggleGroup, { "data-slot": "theme-mode-picker", "aria-label": "Mode", variant: "outline", size: "sm", value: [theme.mode], onValueChange: (v) => v[0] && theme.setMode(v[0]), className: cn("w-full", className), children: THEME_MODES.map(({ value, label, icon: Icon }) => (_jsxs(ToggleGroupItem, { value: value, className: "flex-1", children: [_jsx(Icon, {}), " ", label] }, value))) }));
|
|
30
|
+
}
|
|
31
|
+
/** Swatch per accent: the vivid fill tier, with that accent's own on-fill color for the check mark. */
|
|
32
|
+
const swatch = (accent) => ({
|
|
33
|
+
background: `var(--tc-accent-${accent}-accent-fill)`,
|
|
34
|
+
color: `var(--tc-accent-${accent}-on-accent-fill)`,
|
|
35
|
+
});
|
|
36
|
+
/** The eight TermiColor accents as swatches; sets the theme's accent. */
|
|
37
|
+
function ThemeAccentPicker({ className }) {
|
|
38
|
+
const theme = useTheme();
|
|
39
|
+
return (_jsx("div", { "data-slot": "theme-accent-picker", role: "group", "aria-label": "Accent", className: cn("grid grid-cols-8 gap-1.5", className), children: ACCENTS.map((accent) => {
|
|
40
|
+
const on = theme.accent === accent;
|
|
41
|
+
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { render: _jsx("button", { type: "button", "aria-label": accent, "aria-pressed": on, onClick: () => theme.setAccent(accent), style: swatch(accent), className: cn("flex aspect-square items-center justify-center rounded-md outline-none", "ring-offset-2 ring-offset-transparent transition-shadow duration-100 motion-reduce:transition-none", "hover:ring-2 hover:ring-input focus-visible:ring-2 focus-visible:ring-ring", on && "ring-2 ring-foreground hover:ring-foreground") }), children: on ? _jsx(CheckIcon, { className: "size-3.5", strokeWidth: 3 }) : null }), _jsx(TooltipContent, { className: "capitalize", children: accent })] }, accent));
|
|
42
|
+
}) }));
|
|
43
|
+
}
|
|
44
|
+
/** The radius scale as a segmented control; sets the theme's radius. */
|
|
45
|
+
function ThemeRadiusPicker({ className }) {
|
|
46
|
+
const theme = useTheme();
|
|
47
|
+
return (_jsx(ToggleGroup, { "data-slot": "theme-radius-picker", "aria-label": "Radius", variant: "outline", size: "sm", value: [theme.radius], onValueChange: (v) => v[0] && theme.setRadius(v[0]), className: cn("w-full", className), children: RADII.map((radius) => (_jsx(ToggleGroupItem, { value: radius, className: "flex-1 font-alt", children: radius }, radius))) }));
|
|
48
|
+
}
|
|
49
|
+
/** High contrast on/off, with its label. */
|
|
50
|
+
function ThemeContrastSwitch({ className }) {
|
|
51
|
+
const theme = useTheme();
|
|
52
|
+
const id = React.useId();
|
|
53
|
+
return (_jsxs("div", { "data-slot": "theme-contrast-switch", className: cn("flex items-center justify-between gap-2", className), children: [_jsx(Label, { htmlFor: id, children: "High contrast" }), _jsx(Switch, { id: id, checked: theme.contrast === "high", onCheckedChange: (on) => theme.setContrast(on ? "high" : "normal") })] }));
|
|
54
|
+
}
|
|
55
|
+
/** A labelled block inside the menu. */
|
|
56
|
+
function ThemeMenuSection({ label, children, className, }) {
|
|
57
|
+
return (_jsxs("div", { "data-slot": "theme-menu-section", className: cn("flex flex-col gap-2", className), children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground", children: label }), children] }));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The suite's theme control (GUIDELINES §7b): one ghost icon button in `SiteHeaderActions` showing the
|
|
61
|
+
* chosen mode (sun, moon, monitor), opening a popover with mode, accent, high contrast, radius and a
|
|
62
|
+
* Reset to the provider's defaults. Reads and writes `useTheme()`, so it needs a `ThemeProvider`.
|
|
63
|
+
* Trigger props (`aria-label`, `className`, `data-*`) pass through to the button.
|
|
64
|
+
*/
|
|
65
|
+
function ThemeMenu({ title = "Theme", children, align = "end", contentClassName, className, ...props }) {
|
|
66
|
+
const theme = useTheme();
|
|
67
|
+
const { defaults } = theme;
|
|
68
|
+
const isDefault = theme.mode === defaults.mode &&
|
|
69
|
+
theme.accent === defaults.accent &&
|
|
70
|
+
theme.contrast === defaults.contrast &&
|
|
71
|
+
theme.radius === defaults.radius;
|
|
72
|
+
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { render: _jsx(Button, { variant: "ghost", size: "icon", "aria-label": `Theme: ${modeOption(theme.mode).label}`, "data-slot": "theme-menu-trigger", "data-mode": theme.mode, className: className, ...props }), children: _jsx(ThemeModeIcon, {}) }), _jsxs(PopoverContent, { "data-slot": "theme-menu-content", align: align, className: cn("w-72 gap-4", contentClassName), children: [_jsx(PopoverHeader, { children: _jsx(PopoverTitle, { children: title }) }), _jsx(ThemeMenuSection, { label: "Mode", children: _jsx(ThemeModePicker, {}) }), _jsx(ThemeMenuSection, { label: "Accent", children: _jsx(ThemeAccentPicker, {}) }), _jsx(ThemeContrastSwitch, {}), _jsx(ThemeMenuSection, { label: "Radius", children: _jsx(ThemeRadiusPicker, {}) }), children, _jsx("div", { className: "-mx-3 -mb-3 border-t border-border p-3", children: _jsxs(Button, { variant: "outline", size: "sm", "data-slot": "theme-menu-reset", className: "w-full", disabled: isDefault, onClick: theme.resetTheme, children: [_jsx(RotateCcwIcon, { "data-icon": "inline-start" }), " Reset to defaults"] }) })] })] }));
|
|
73
|
+
}
|
|
74
|
+
export { ThemeAccentPicker, ThemeContrastSwitch, ThemeMenu, ThemeMenuSection, ThemeModeIcon, ThemeModePicker, ThemeRadiusPicker, };
|
|
75
|
+
//# sourceMappingURL=theme-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-menu.js","sourceRoot":"","sources":["../../src/components/theme-menu.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/toc.js
CHANGED
|
@@ -29,7 +29,7 @@ function Toc({ className, render, ...props }) {
|
|
|
29
29
|
function TocTitle({ className, render, ...props }) {
|
|
30
30
|
return useRender({
|
|
31
31
|
defaultTagName: "p",
|
|
32
|
-
props: mergeProps({ className: cn("font-
|
|
32
|
+
props: mergeProps({ className: cn("font-alt text-xs font-medium text-muted-foreground uppercase", className) }, props),
|
|
33
33
|
render,
|
|
34
34
|
state: { slot: "toc-title" },
|
|
35
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc.js","sourceRoot":"","sources":["../../src/components/toc.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;;;;GAYG;AACH,SAAS,GAAG,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAkC;IACvE,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,KAAK;QACrB,KAAK,EAAE,UAAU,CACb,EAAC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAAC,EAC/E,KAAK,CACR;QACD,MAAM;QACN,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC;KACvB,CAAC,CAAC;AACP,CAAC;AAED,SAAS,QAAQ,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAgC;IAC1E,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,KAAK,EAAE,UAAU,CACb,EAAC,SAAS,EAAE,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"toc.js","sourceRoot":"","sources":["../../src/components/toc.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAKnE,iBAAS,eAAe,CAAC,EAAC,KAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,+BAE9E;AAED,iBAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,+BAEvD;AAED,iBAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,+BAEjE;AAED,iBAAS,cAAc,CAAC,EACpB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC3B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,+
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAKnE,iBAAS,eAAe,CAAC,EAAC,KAAS,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,+BAE9E;AAED,iBAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,+BAEvD;AAED,iBAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,+BAEjE;AAED,iBAAS,cAAc,CAAC,EACpB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC3B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,+BAsC3F;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAC,CAAC"}
|
|
@@ -15,8 +15,11 @@ function TooltipTrigger({ ...props }) {
|
|
|
15
15
|
}
|
|
16
16
|
function TooltipContent({ className, side = "top", sideOffset = 6, align = "center", alignOffset = 0, children, ...props }) {
|
|
17
17
|
return (_jsx(TooltipPrimitive.Portal, { container: usePortalContainer(), children: _jsx(TooltipPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsxs(TooltipPrimitive.Popup, { "data-slot": "tooltip-content", className: cn(
|
|
18
|
-
//
|
|
19
|
-
popupMotion, "z-50 inline-flex min-h-6 w-fit max-w-xs items-center gap-1.5 rounded-md bg-
|
|
18
|
+
// Popover-coloured chip: the popup surface and border, small mono text.
|
|
19
|
+
popupMotion, "z-50 inline-flex min-h-6 w-fit max-w-xs items-center gap-1.5 rounded-md border border-border bg-popover px-2 py-1 font-alt text-xs text-popover-foreground shadow-md shadow-(color:--shadow-color) has-data-[slot=kbd]:pr-1 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:h-4 **:data-[slot=kbd]:min-w-4 **:data-[slot=kbd]:rounded-xs", className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: cn(
|
|
20
|
+
// A rotated square in the popup colours; the border sits on the two edges that face out,
|
|
21
|
+
// centred on the popup's border line so the outline runs on without a seam.
|
|
22
|
+
"z-50 size-2.5 rotate-45 rounded-xs border-border bg-popover", "data-[side=top]:-bottom-1.25 data-[side=top]:border-r data-[side=top]:border-b", "data-[side=bottom]:-top-1.25 data-[side=bottom]:border-t data-[side=bottom]:border-l", "data-[side=left]:top-1/2! data-[side=left]:-right-1.25 data-[side=left]:-translate-y-1/2 data-[side=left]:border-t data-[side=left]:border-r", "data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1.25 data-[side=inline-start]:-translate-y-1/2 data-[side=inline-start]:border-t data-[side=inline-start]:border-r", "data-[side=right]:top-1/2! data-[side=right]:-left-1.25 data-[side=right]:-translate-y-1/2 data-[side=right]:border-b data-[side=right]:border-l", "data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1.25 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-end]:border-b data-[side=inline-end]:border-l") })] }) }) }));
|
|
20
23
|
}
|
|
21
24
|
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
22
25
|
//# sourceMappingURL=tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB,SAAS,eAAe,CAAC,EAAC,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,EAAkC;IAC3E,OAAO,KAAC,gBAAgB,CAAC,QAAQ,iBAAW,kBAAkB,EAAC,KAAK,EAAE,KAAK,KAAM,KAAK,GAAI,CAAC;AAC/F,CAAC;AAED,SAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAA8B;IACpD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAiC;IAC9D,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,EACpB,SAAS,EACT,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,QAAQ,EACR,GAAG,KAAK,EAEgF;IACxF,OAAO,CACH,KAAC,gBAAgB,CAAC,MAAM,IAAC,SAAS,EAAE,kBAAkB,EAAE,YACpD,KAAC,gBAAgB,CAAC,UAAU,IACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,SAAS,EAAC,cAAc,YAExB,MAAC,gBAAgB,CAAC,KAAK,iBACT,iBAAiB,EAC3B,SAAS,EAAE,EAAE;gBACT,
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAEtB,SAAS,eAAe,CAAC,EAAC,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,EAAkC;IAC3E,OAAO,KAAC,gBAAgB,CAAC,QAAQ,iBAAW,kBAAkB,EAAC,KAAK,EAAE,KAAK,KAAM,KAAK,GAAI,CAAC;AAC/F,CAAC;AAED,SAAS,OAAO,CAAC,EAAC,GAAG,KAAK,EAA8B;IACpD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,EAAC,GAAG,KAAK,EAAiC;IAC9D,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,EACpB,SAAS,EACT,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,QAAQ,EACR,GAAG,KAAK,EAEgF;IACxF,OAAO,CACH,KAAC,gBAAgB,CAAC,MAAM,IAAC,SAAS,EAAE,kBAAkB,EAAE,YACpD,KAAC,gBAAgB,CAAC,UAAU,IACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,SAAS,EAAC,cAAc,YAExB,MAAC,gBAAgB,CAAC,KAAK,iBACT,iBAAiB,EAC3B,SAAS,EAAE,EAAE;gBACT,wEAAwE;gBACxE,WAAW,EACX,4XAA4X,EAC5X,SAAS,CACZ,KACG,KAAK,aAER,QAAQ,EACT,KAAC,gBAAgB,CAAC,KAAK,IACnB,SAAS,EAAE,EAAE;wBACT,yFAAyF;wBACzF,4EAA4E;wBAC5E,6DAA6D,EAC7D,gFAAgF,EAChF,sFAAsF,EACtF,8IAA8I,EAC9I,sLAAsL,EACtL,kJAAkJ,EAClJ,2KAA2K,CAC9K,GACH,IACmB,GACC,GACR,CAC7B,CAAC;AACN,CAAC;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAC,CAAC"}
|
package/dist/components/trace.js
CHANGED
|
@@ -17,7 +17,7 @@ function TraceTitle({ className, ...props }) {
|
|
|
17
17
|
return (_jsx("span", { "data-slot": "trace-title", className: cn("min-w-0 truncate motion-reduce:shimmer-none", className), ...props }));
|
|
18
18
|
}
|
|
19
19
|
function TraceDescription({ className, ...props }) {
|
|
20
|
-
return (_jsx("span", { "data-slot": "trace-description", className: cn("shrink-0 font-
|
|
20
|
+
return (_jsx("span", { "data-slot": "trace-description", className: cn("shrink-0 font-alt text-xs text-muted-foreground tabular-nums", className), ...props }));
|
|
21
21
|
}
|
|
22
22
|
function TraceCollapsible({ className, ...props }) {
|
|
23
23
|
return (_jsx(Collapsible, { "data-slot": "trace-collapsible", className: cn("flex w-full min-w-0 flex-col", className), ...props }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/components/trace.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,2CAA2C,CAAC;AAC9G,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,KAAK,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IAC7D,OAAO,CACH,2BACc,OAAO,EACjB,SAAS,EAAE,EAAE,CACT,+fAA+f,EAC/f,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,EACf,SAAS,EACT,MAAM,EACN,GAAG,KAAK,EAIX;IACG,OAAO,CACH,4BACc,YAAY,iBACT,MAAM,EACnB,SAAS,EAAE,EAAE,CACT,yWAAyW,EACzW,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IAClE,OAAO,CACH,4BACc,YAAY,iBACV,MAAM,EAClB,SAAS,EAAE,EAAE,CACT,qJAAqJ,EACrJ,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACnE,OAAO,CACH,4BACc,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,KACnE,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACzE,OAAO,CACH,4BACc,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/components/trace.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAC,MAAM,2CAA2C,CAAC;AAC9G,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,SAAS,KAAK,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA8B;IAC7D,OAAO,CACH,2BACc,OAAO,EACjB,SAAS,EAAE,EAAE,CACT,+fAA+f,EAC/f,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,EACf,SAAS,EACT,MAAM,EACN,GAAG,KAAK,EAIX;IACG,OAAO,CACH,4BACc,YAAY,iBACT,MAAM,EACnB,SAAS,EAAE,EAAE,CACT,yWAAyW,EACzW,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IAClE,OAAO,CACH,4BACc,YAAY,iBACV,MAAM,EAClB,SAAS,EAAE,EAAE,CACT,qJAAqJ,EACrJ,SAAS,CACZ,KACG,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACnE,OAAO,CACH,4BACc,aAAa,EACvB,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,KACnE,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAC,SAAS,EAAE,GAAG,KAAK,EAA+B;IACzE,OAAO,CACH,4BACc,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,KACpF,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EAQP;IACD,OAAO,CACH,KAAC,WAAW,iBACE,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,KACpD,KAAK,GACX,CACL,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAkD;IAC7G,OAAO,CACH,MAAC,kBAAkB,iBACL,2BAA2B,EACrC,SAAS,EAAE,EAAE,CACT,gXAAgX,EAChX,SAAS,CACZ,KACG,KAAK,aAER,QAAQ,EACT,KAAC,SAAS,IAAC,SAAS,EAAC,8EAA8E,YAC/F,KAAC,gBAAgB,KAAG,GACZ,IACK,CACxB,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAkD;IAC7G,OAAO,CACH,KAAC,kBAAkB,iBACL,2BAA2B,EACrC,SAAS,EAAC,qKAAqK,KAC3K,KAAK,YAET,2BACc,iCAAiC,EAC3C,SAAS,EAAE,EAAE,CACT,8IAA8I,EAC9I,SAAS,CACZ,YAEA,QAAQ,GACP,GACW,CACxB,CAAC;AACN,CAAC;AAED,OAAO,EACH,KAAK,EACL,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,UAAU,GACb,CAAC"}
|
package/dist/lib/recipes.d.ts
CHANGED
|
@@ -13,8 +13,14 @@ export declare const fieldSurface = "rounded-lg border border-input bg-field tra
|
|
|
13
13
|
export declare const popupSurface = "rounded-lg border border-border bg-popover text-popover-foreground shadow-lg shadow-(color:--shadow-color)";
|
|
14
14
|
/** Popup open/close motion (§6). */
|
|
15
15
|
export declare const popupMotion = "origin-(--transform-origin) duration-100 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 motion-reduce:animate-none";
|
|
16
|
+
/**
|
|
17
|
+
* The sidebar's current-row indicator (§7c): a 2px accent pill inset on the row's left edge, hidden until
|
|
18
|
+
* the row's state shows it (`data-highlighted:after:opacity-100`, `data-active:after:opacity-100`...).
|
|
19
|
+
* The row keeps its own rounding on every corner.
|
|
20
|
+
*/
|
|
21
|
+
export declare const rowIndicator = "after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0";
|
|
16
22
|
/** Row inside a popup or list: menu item, select item, command item (§4, §6). */
|
|
17
|
-
export declare const listItem = "relative flex min-h-8 cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-highlighted:[&_svg:not([class*='text-'])]:text-accent-foreground";
|
|
23
|
+
export declare const listItem = "after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0 data-highlighted:after:opacity-100 relative flex min-h-8 cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-highlighted:[&_svg:not([class*='text-'])]:text-accent-foreground";
|
|
18
24
|
/** Group label inside a popup or list. */
|
|
19
25
|
export declare const listLabel = "px-2 py-1.5 text-xs font-medium text-muted-foreground";
|
|
20
26
|
/** Separator inside a popup or list. */
|
|
@@ -27,4 +33,14 @@ export declare const heading = "font-heading font-medium tracking-tight";
|
|
|
27
33
|
export declare const placeholderFill = "bg-foreground/10 hc:bg-border";
|
|
28
34
|
/** Selected row (table, data table, code line, list): accent tint + 2px inset primary indicator (§6). */
|
|
29
35
|
export declare const selectedRow = "bg-accent text-accent-foreground shadow-[inset_2px_0_0_var(--primary-text)]";
|
|
36
|
+
/**
|
|
37
|
+
* Status surface shared by Alert and Callout (§2): one `soft` / `outline` axis, same values in both.
|
|
38
|
+
* Expects a color variant (`--c`, `--c-tint`) on the same element. Neutral swaps the hue border for the
|
|
39
|
+
* plain border on a card surface (`statusSurfaceNeutral`).
|
|
40
|
+
*/
|
|
41
|
+
export declare const statusSurface: {
|
|
42
|
+
readonly soft: "border-(--c)/30 bg-(--c-tint) hc:border-(--c)";
|
|
43
|
+
readonly outline: "border-(--c)/50 bg-card hc:border-(--c)";
|
|
44
|
+
};
|
|
45
|
+
export declare const statusSurfaceNeutral = "border-border bg-card hc:border-border";
|
|
30
46
|
//# sourceMappingURL=recipes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,eAAO,MAAM,SAAS,2FAA2F,CAAC;AAElH,2CAA2C;AAC3C,eAAO,MAAM,WAAW,gHACyF,CAAC;AAElH,iGAAiG;AACjG,eAAO,MAAM,YAAY,qNAC6L,CAAC;AAEvN,iFAAiF;AACjF,eAAO,MAAM,YAAY,+GACuF,CAAC;AAEjH,oCAAoC;AACpC,eAAO,MAAM,WAAW,yWACkV,CAAC;AAE3W,iFAAiF;AACjF,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,eAAO,MAAM,SAAS,2FAA2F,CAAC;AAElH,2CAA2C;AAC3C,eAAO,MAAM,WAAW,gHACyF,CAAC;AAElH,iGAAiG;AACjG,eAAO,MAAM,YAAY,qNAC6L,CAAC;AAEvN,iFAAiF;AACjF,eAAO,MAAM,YAAY,+GACuF,CAAC;AAEjH,oCAAoC;AACpC,eAAO,MAAM,WAAW,yWACkV,CAAC;AAE3W;;;;GAIG;AACH,eAAO,MAAM,YAAY,8JACsI,CAAC;AAEhK,iFAAiF;AACjF,eAAO,MAAM,QAAQ,6nBAAmf,CAAC;AAEzgB,0CAA0C;AAC1C,eAAO,MAAM,SAAS,0DAA0D,CAAC;AAEjF,wCAAwC;AACxC,eAAO,MAAM,aAAa,8BAA8B,CAAC;AAEzD,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,0LACsK,CAAC;AAE5L,4EAA4E;AAC5E,eAAO,MAAM,OAAO,4CAA4C,CAAC;AAEjE,iHAAiH;AACjH,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAE/D,yGAAyG;AACzG,eAAO,MAAM,WAAW,gFAAgF,CAAC;AAEzG;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;CAKhB,CAAC;AAEX,eAAO,MAAM,oBAAoB,2CAA2C,CAAC"}
|
package/dist/lib/recipes.js
CHANGED
|
@@ -13,8 +13,14 @@ export const fieldSurface = "rounded-lg border border-input bg-field transition-
|
|
|
13
13
|
export const popupSurface = "rounded-lg border border-border bg-popover text-popover-foreground shadow-lg shadow-(color:--shadow-color)";
|
|
14
14
|
/** Popup open/close motion (§6). */
|
|
15
15
|
export const popupMotion = "origin-(--transform-origin) duration-100 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 motion-reduce:animate-none";
|
|
16
|
+
/**
|
|
17
|
+
* The sidebar's current-row indicator (§7c): a 2px accent pill inset on the row's left edge, hidden until
|
|
18
|
+
* the row's state shows it (`data-highlighted:after:opacity-100`, `data-active:after:opacity-100`...).
|
|
19
|
+
* The row keeps its own rounding on every corner.
|
|
20
|
+
*/
|
|
21
|
+
export const rowIndicator = "after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0";
|
|
16
22
|
/** Row inside a popup or list: menu item, select item, command item (§4, §6). */
|
|
17
|
-
export const listItem =
|
|
23
|
+
export const listItem = `${rowIndicator} data-highlighted:after:opacity-100 relative flex min-h-8 cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-highlighted:[&_svg:not([class*='text-'])]:text-accent-foreground`;
|
|
18
24
|
/** Group label inside a popup or list. */
|
|
19
25
|
export const listLabel = "px-2 py-1.5 text-xs font-medium text-muted-foreground";
|
|
20
26
|
/** Separator inside a popup or list. */
|
|
@@ -27,4 +33,16 @@ export const heading = "font-heading font-medium tracking-tight";
|
|
|
27
33
|
export const placeholderFill = "bg-foreground/10 hc:bg-border";
|
|
28
34
|
/** Selected row (table, data table, code line, list): accent tint + 2px inset primary indicator (§6). */
|
|
29
35
|
export const selectedRow = "bg-accent text-accent-foreground shadow-[inset_2px_0_0_var(--primary-text)]";
|
|
36
|
+
/**
|
|
37
|
+
* Status surface shared by Alert and Callout (§2): one `soft` / `outline` axis, same values in both.
|
|
38
|
+
* Expects a color variant (`--c`, `--c-tint`) on the same element. Neutral swaps the hue border for the
|
|
39
|
+
* plain border on a card surface (`statusSurfaceNeutral`).
|
|
40
|
+
*/
|
|
41
|
+
export const statusSurface = {
|
|
42
|
+
// status tint behind foreground text; the hue lives in the border, icon and accents (TermiColor rule)
|
|
43
|
+
soft: "border-(--c)/30 bg-(--c-tint) hc:border-(--c)",
|
|
44
|
+
// no wash: card surface with a hue border, for dense layouts
|
|
45
|
+
outline: "border-(--c)/50 bg-card hc:border-(--c)",
|
|
46
|
+
};
|
|
47
|
+
export const statusSurfaceNeutral = "border-border bg-card hc:border-border";
|
|
30
48
|
//# sourceMappingURL=recipes.js.map
|
package/dist/lib/recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,wFAAwF,CAAC;AAElH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GACpB,6GAA6G,CAAC;AAElH,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GACrB,kNAAkN,CAAC;AAEvN,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GACrB,4GAA4G,CAAC;AAEjH,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GACpB,sWAAsW,CAAC;AAE3W,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/lib/recipes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,wFAAwF,CAAC;AAElH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GACpB,6GAA6G,CAAC;AAElH,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GACrB,kNAAkN,CAAC;AAEvN,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GACrB,4GAA4G,CAAC;AAEjH,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GACpB,sWAAsW,CAAC;AAE3W;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GACrB,2JAA2J,CAAC;AAEhK,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,YAAY,ieAAie,CAAC;AAEzgB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,uDAAuD,CAAC;AAEjF,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,QAAQ,GACjB,uLAAuL,CAAC,CAAC,0CAA0C;AAEvO,4EAA4E;AAC5E,MAAM,CAAC,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAEjE,iHAAiH;AACjH,MAAM,CAAC,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAE/D,yGAAyG;AACzG,MAAM,CAAC,MAAM,WAAW,GAAG,6EAA6E,CAAC;AAEzG;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,sGAAsG;IACtG,IAAI,EAAE,+CAA+C;IACrD,6DAA6D;IAC7D,OAAO,EAAE,yCAAyC;CAC5C,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,wCAAwC,CAAC"}
|
|
@@ -8,6 +8,10 @@ export interface ThemeContextValue extends ThemeState {
|
|
|
8
8
|
setContrast: (contrast: ThemeState["contrast"]) => void;
|
|
9
9
|
setAccent: (accent: ThemeState["accent"]) => void;
|
|
10
10
|
setRadius: (radius: ThemeState["radius"]) => void;
|
|
11
|
+
/** The values `resetTheme` restores: the provider's `defaultTheme` over the kit defaults. */
|
|
12
|
+
defaults: ThemeState;
|
|
13
|
+
/** Forget the stored choice and go back to `defaults`. */
|
|
14
|
+
resetTheme: () => void;
|
|
11
15
|
}
|
|
12
16
|
export interface ThemeProviderProps {
|
|
13
17
|
children?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,SAAS,EAQjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAIH,KAAK,YAAY,EAIjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD,+DAA+D;IAC/D,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"theme-provider.d.ts","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEH,KAAK,SAAS,EAQjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAIH,KAAK,YAAY,EAIjB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACjD,+DAA+D;IAC/D,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5C,WAAW,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAClD,6FAA6F;IAC7F,QAAQ,EAAE,UAAU,CAAC;IACrB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B;AAoCD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uFAAuF;IACvF,WAAW,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,UAAgC,EAChC,WAAW,GACd,EAAE,kBAAkB,+BA+EpB;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAC,EAAE,kBAAkB,GAAG;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,+BAErF;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAClF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uFAAuF;IACvF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,eAAe,+BAoB1G;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAE5D"}
|
|
@@ -72,6 +72,17 @@ export function ThemeProvider({ children, defaultTheme, storageKey = DEFAULT_STO
|
|
|
72
72
|
return next;
|
|
73
73
|
});
|
|
74
74
|
}, [storageKey, fallback]);
|
|
75
|
+
const resetTheme = useCallback(() => {
|
|
76
|
+
if (storageKey) {
|
|
77
|
+
try {
|
|
78
|
+
window.localStorage.removeItem(storageKey);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// storage blocked: the in-memory reset still applies
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
setStored(fallback);
|
|
85
|
+
}, [storageKey, fallback]);
|
|
75
86
|
const value = useMemo(() => ({
|
|
76
87
|
...theme,
|
|
77
88
|
resolvedMode,
|
|
@@ -80,7 +91,9 @@ export function ThemeProvider({ children, defaultTheme, storageKey = DEFAULT_STO
|
|
|
80
91
|
setContrast: (contrast) => setTheme({ contrast }),
|
|
81
92
|
setAccent: (accent) => setTheme({ accent }),
|
|
82
93
|
setRadius: (radius) => setTheme({ radius }),
|
|
83
|
-
|
|
94
|
+
defaults: fallback,
|
|
95
|
+
resetTheme,
|
|
96
|
+
}), [theme, resolvedMode, setTheme, fallback, resetTheme]);
|
|
84
97
|
return _jsx(ThemeContext.Provider, { value: value, children: children });
|
|
85
98
|
}
|
|
86
99
|
/** Current theme and setters. Must be used under <ThemeProvider>. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACH,aAAa,EAEb,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,OAAO,EACP,QAAQ,EACR,oBAAoB,GACvB,MAAM,OAAO,CAAC;AAEf,OAAO,EACH,UAAU,EACV,mBAAmB,EACnB,aAAa,EAEb,aAAa,EACb,cAAc,EACd,WAAW,GAGd,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"theme-provider.js","sourceRoot":"","sources":["../../src/provider/theme-provider.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/components/alert.tsx
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {mergeProps} from "@base-ui/react/merge-props";
|
|
4
4
|
import {useRender} from "@base-ui/react/use-render";
|
|
5
5
|
import {type Color, colorVariants} from "@repraze/kernelkit/lib/color";
|
|
6
|
-
import {heading} from "@repraze/kernelkit/lib/recipes";
|
|
6
|
+
import {heading, statusSurface, statusSurfaceNeutral} from "@repraze/kernelkit/lib/recipes";
|
|
7
7
|
import {cva} from "class-variance-authority";
|
|
8
8
|
import {cn} from "cn";
|
|
9
9
|
|
|
@@ -17,16 +17,14 @@ const alertCva = cva(
|
|
|
17
17
|
variants: {
|
|
18
18
|
color: colorVariants,
|
|
19
19
|
variant: {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// no wash: card surface with a hue border, for dense layouts
|
|
23
|
-
outline: "border-(--c)/50 bg-card text-card-foreground *:[svg]:text-(--c) hc:border-(--c)",
|
|
20
|
+
soft: [statusSurface.soft, "text-foreground *:[svg]:text-(--c)"],
|
|
21
|
+
outline: [statusSurface.outline, "text-card-foreground *:[svg]:text-(--c)"],
|
|
24
22
|
},
|
|
25
23
|
},
|
|
26
24
|
compoundVariants: [
|
|
27
25
|
{
|
|
28
26
|
color: "neutral",
|
|
29
|
-
class: "
|
|
27
|
+
class: [statusSurfaceNeutral, "text-card-foreground *:[svg]:text-foreground"],
|
|
30
28
|
},
|
|
31
29
|
],
|
|
32
30
|
defaultVariants: {variant: "soft", color: "neutral"},
|
|
@@ -100,7 +100,7 @@ function AvatarGroupCount({className, ...props}: React.ComponentProps<"div">) {
|
|
|
100
100
|
<div
|
|
101
101
|
data-slot="avatar-group-count"
|
|
102
102
|
className={cn(
|
|
103
|
-
"relative flex size-8 shrink-0 items-center justify-center rounded-pill bg-muted font-
|
|
103
|
+
"relative flex size-8 shrink-0 items-center justify-center rounded-pill bg-muted font-alt text-xs font-medium text-muted-foreground ring-2 ring-background [&>svg]:size-4",
|
|
104
104
|
"group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=lg]/avatar-group:text-sm group-has-data-[size=lg]/avatar-group:[&>svg]:size-5",
|
|
105
105
|
"group-has-data-[size=sm]/avatar-group:size-6 group-has-data-[size=sm]/avatar-group:text-[0.625rem] group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
|
|
106
106
|
"group-has-data-[size=xs]/avatar-group:size-4 group-has-data-[size=xs]/avatar-group:text-[0.5rem] group-has-data-[size=xs]/avatar-group:[&>svg]:size-2",
|
package/src/components/badge.tsx
CHANGED
|
@@ -16,7 +16,7 @@ import {cn} from "cn";
|
|
|
16
16
|
|
|
17
17
|
const badgeCva = cva(
|
|
18
18
|
[
|
|
19
|
-
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-pill border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,background-color,border-color,box-shadow]",
|
|
19
|
+
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-pill border border-transparent px-2 py-0.5 font-alt text-xs font-medium whitespace-nowrap transition-[color,background-color,border-color,box-shadow]",
|
|
20
20
|
"has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:pointer-events-none [&>svg]:size-3!",
|
|
21
21
|
focusRing,
|
|
22
22
|
],
|
|
@@ -4,7 +4,7 @@ import {mergeProps} from "@base-ui/react/merge-props";
|
|
|
4
4
|
import {useRender} from "@base-ui/react/use-render";
|
|
5
5
|
import {focusRing} from "@repraze/kernelkit/lib/recipes";
|
|
6
6
|
import {cn} from "cn";
|
|
7
|
-
import {
|
|
7
|
+
import {MoreHorizontalIcon} from "lucide-react";
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
|
|
10
10
|
function Breadcrumb({className, ...props}: React.ComponentProps<"nav">) {
|
|
@@ -16,7 +16,7 @@ function BreadcrumbList({className, ...props}: React.ComponentProps<"ol">) {
|
|
|
16
16
|
<ol
|
|
17
17
|
data-slot="breadcrumb-list"
|
|
18
18
|
className={cn(
|
|
19
|
-
"flex flex-wrap items-center gap-1.5 text-
|
|
19
|
+
"flex flex-wrap items-center gap-1.5 font-alt text-xs wrap-break-word text-muted-foreground",
|
|
20
20
|
className,
|
|
21
21
|
)}
|
|
22
22
|
{...props}
|
|
@@ -34,7 +34,7 @@ function BreadcrumbLink({className, render, ...props}: useRender.ComponentProps<
|
|
|
34
34
|
props: mergeProps<"a">(
|
|
35
35
|
{
|
|
36
36
|
className: cn(
|
|
37
|
-
"inline-flex items-center gap-1 rounded-sm transition-colors hover:text-foreground [&_svg:not([class*='size-'])]:size-3
|
|
37
|
+
"inline-flex items-center gap-1 rounded-sm transition-colors hover:text-foreground [&_svg:not([class*='size-'])]:size-3",
|
|
38
38
|
focusRing,
|
|
39
39
|
className,
|
|
40
40
|
),
|
|
@@ -56,7 +56,7 @@ function BreadcrumbPage({className, ...props}: React.ComponentProps<"span">) {
|
|
|
56
56
|
aria-disabled="true"
|
|
57
57
|
aria-current="page"
|
|
58
58
|
className={cn(
|
|
59
|
-
"inline-flex items-center gap-1 font-medium text-foreground [&_svg:not([class*='size-'])]:size-3
|
|
59
|
+
"inline-flex items-center gap-1 font-medium text-foreground [&_svg:not([class*='size-'])]:size-3",
|
|
60
60
|
className,
|
|
61
61
|
)}
|
|
62
62
|
{...props}
|
|
@@ -64,16 +64,17 @@ function BreadcrumbPage({className, ...props}: React.ComponentProps<"span">) {
|
|
|
64
64
|
);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
/** A muted `/` between levels (a path, in mono). Pass children to use another mark. */
|
|
67
68
|
function BreadcrumbSeparator({children, className, ...props}: React.ComponentProps<"li">) {
|
|
68
69
|
return (
|
|
69
70
|
<li
|
|
70
71
|
data-slot="breadcrumb-separator"
|
|
71
72
|
role="presentation"
|
|
72
73
|
aria-hidden="true"
|
|
73
|
-
className={cn("text-muted-foreground [&>svg]:size-3
|
|
74
|
+
className={cn("text-muted-foreground select-none [&>svg]:size-3", className)}
|
|
74
75
|
{...props}
|
|
75
76
|
>
|
|
76
|
-
{children ??
|
|
77
|
+
{children ?? "/"}
|
|
77
78
|
</li>
|
|
78
79
|
);
|
|
79
80
|
}
|
|
@@ -84,7 +85,7 @@ function BreadcrumbEllipsis({className, ...props}: React.ComponentProps<"span">)
|
|
|
84
85
|
data-slot="breadcrumb-ellipsis"
|
|
85
86
|
role="presentation"
|
|
86
87
|
aria-hidden="true"
|
|
87
|
-
className={cn("flex size-5 items-center justify-center rounded-sm [&>svg]:size-
|
|
88
|
+
className={cn("flex size-5 items-center justify-center rounded-sm [&>svg]:size-3.5", className)}
|
|
88
89
|
{...props}
|
|
89
90
|
>
|
|
90
91
|
<MoreHorizontalIcon />
|