@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.
Files changed (117) hide show
  1. package/dist/components/alert.d.ts.map +1 -1
  2. package/dist/components/alert.js +4 -6
  3. package/dist/components/alert.js.map +1 -1
  4. package/dist/components/avatar.js +1 -1
  5. package/dist/components/avatar.js.map +1 -1
  6. package/dist/components/badge.js +1 -1
  7. package/dist/components/badge.js.map +1 -1
  8. package/dist/components/breadcrumb.d.ts +1 -0
  9. package/dist/components/breadcrumb.d.ts.map +1 -1
  10. package/dist/components/breadcrumb.js +7 -6
  11. package/dist/components/breadcrumb.js.map +1 -1
  12. package/dist/components/calendar.js +1 -1
  13. package/dist/components/calendar.js.map +1 -1
  14. package/dist/components/callout.d.ts +8 -4
  15. package/dist/components/callout.d.ts.map +1 -1
  16. package/dist/components/callout.js +22 -12
  17. package/dist/components/callout.js.map +1 -1
  18. package/dist/components/chart.js +2 -2
  19. package/dist/components/chart.js.map +1 -1
  20. package/dist/components/code-block.js +1 -1
  21. package/dist/components/code-block.js.map +1 -1
  22. package/dist/components/command.d.ts +1 -1
  23. package/dist/components/command.d.ts.map +1 -1
  24. package/dist/components/command.js +3 -3
  25. package/dist/components/command.js.map +1 -1
  26. package/dist/components/data-table/elements/data-table-info-row.js +1 -1
  27. package/dist/components/data-table/elements/data-table-info-row.js.map +1 -1
  28. package/dist/components/dropdown-menu.d.ts +1 -1
  29. package/dist/components/dropdown-menu.d.ts.map +1 -1
  30. package/dist/components/dropdown-menu.js +2 -2
  31. package/dist/components/dropdown-menu.js.map +1 -1
  32. package/dist/components/kbd.d.ts.map +1 -1
  33. package/dist/components/kbd.js +2 -4
  34. package/dist/components/kbd.js.map +1 -1
  35. package/dist/components/message.js +2 -2
  36. package/dist/components/message.js.map +1 -1
  37. package/dist/components/meter.js +1 -1
  38. package/dist/components/meter.js.map +1 -1
  39. package/dist/components/navigation-menu.d.ts.map +1 -1
  40. package/dist/components/navigation-menu.js +3 -1
  41. package/dist/components/navigation-menu.js.map +1 -1
  42. package/dist/components/progress.js +1 -1
  43. package/dist/components/progress.js.map +1 -1
  44. package/dist/components/questionnaire.js +1 -1
  45. package/dist/components/questionnaire.js.map +1 -1
  46. package/dist/components/search-trigger.d.ts +1 -1
  47. package/dist/components/search-trigger.d.ts.map +1 -1
  48. package/dist/components/search-trigger.js +2 -2
  49. package/dist/components/search-trigger.js.map +1 -1
  50. package/dist/components/section.js +1 -1
  51. package/dist/components/section.js.map +1 -1
  52. package/dist/components/sidebar.d.ts.map +1 -1
  53. package/dist/components/sidebar.js +4 -3
  54. package/dist/components/sidebar.js.map +1 -1
  55. package/dist/components/site-footer.js +1 -1
  56. package/dist/components/site-footer.js.map +1 -1
  57. package/dist/components/site-header.d.ts +3 -3
  58. package/dist/components/site-header.d.ts.map +1 -1
  59. package/dist/components/site-header.js +7 -9
  60. package/dist/components/site-header.js.map +1 -1
  61. package/dist/components/stat.js +2 -2
  62. package/dist/components/stat.js.map +1 -1
  63. package/dist/components/tabs.d.ts +4 -2
  64. package/dist/components/tabs.d.ts.map +1 -1
  65. package/dist/components/tabs.js +13 -7
  66. package/dist/components/tabs.js.map +1 -1
  67. package/dist/components/theme-menu.d.ts +49 -0
  68. package/dist/components/theme-menu.d.ts.map +1 -0
  69. package/dist/components/theme-menu.js +75 -0
  70. package/dist/components/theme-menu.js.map +1 -0
  71. package/dist/components/toc.js +1 -1
  72. package/dist/components/toc.js.map +1 -1
  73. package/dist/components/tooltip.d.ts.map +1 -1
  74. package/dist/components/tooltip.js +5 -2
  75. package/dist/components/tooltip.js.map +1 -1
  76. package/dist/components/trace.js +1 -1
  77. package/dist/components/trace.js.map +1 -1
  78. package/dist/lib/recipes.d.ts +17 -1
  79. package/dist/lib/recipes.d.ts.map +1 -1
  80. package/dist/lib/recipes.js +19 -1
  81. package/dist/lib/recipes.js.map +1 -1
  82. package/dist/provider/theme-provider.d.ts +4 -0
  83. package/dist/provider/theme-provider.d.ts.map +1 -1
  84. package/dist/provider/theme-provider.js +14 -1
  85. package/dist/provider/theme-provider.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/components/alert.tsx +4 -6
  88. package/src/components/avatar.tsx +1 -1
  89. package/src/components/badge.tsx +1 -1
  90. package/src/components/breadcrumb.tsx +8 -7
  91. package/src/components/calendar.tsx +1 -1
  92. package/src/components/callout.tsx +27 -12
  93. package/src/components/chart.tsx +2 -2
  94. package/src/components/code-block.tsx +1 -1
  95. package/src/components/command.tsx +3 -4
  96. package/src/components/data-table/elements/data-table-info-row.tsx +1 -1
  97. package/src/components/dropdown-menu.tsx +2 -2
  98. package/src/components/kbd.tsx +2 -4
  99. package/src/components/message.tsx +2 -2
  100. package/src/components/meter.tsx +1 -1
  101. package/src/components/navigation-menu.tsx +4 -0
  102. package/src/components/progress.tsx +1 -1
  103. package/src/components/questionnaire.tsx +1 -1
  104. package/src/components/search-trigger.tsx +2 -3
  105. package/src/components/section.tsx +1 -1
  106. package/src/components/sidebar.tsx +4 -3
  107. package/src/components/site-footer.tsx +1 -1
  108. package/src/components/site-header.tsx +8 -9
  109. package/src/components/stat.tsx +2 -2
  110. package/src/components/tabs.tsx +17 -9
  111. package/src/components/theme-menu.tsx +243 -0
  112. package/src/components/toc.tsx +1 -1
  113. package/src/components/tooltip.tsx +15 -3
  114. package/src/components/trace.tsx +1 -1
  115. package/src/lib/recipes.ts +23 -2
  116. package/src/provider/theme-provider.tsx +18 -1
  117. package/src/styles/kernelkit.css +4 -0
@@ -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 tray with the active tab raised on a bordered surface (the border keeps it readable in
12
- * high contrast). `line`: a baseline with a 2px primary indicator under the active tab.
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-[3px] data-vertical:gap-0.5 hc:border-border",
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
- // default: raised, bordered surface + foreground text (readable without the shade in hc)
41
- "data-active:text-foreground", "group-data-[variant=default]/tabs-list:data-active:border-input group-data-[variant=default]/tabs-list:data-active:bg-background group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=default]/tabs-list:data-active:shadow-(color:--shadow-color) dark:group-data-[variant=default]/tabs-list:data-active:bg-input/30",
42
- // line: 2px primary indicator over the list's baseline
43
- "after:pointer-events-none after:absolute after:rounded-pill after:bg-primary-text after:opacity-0 after:transition-opacity group-data-[variant=line]/tabs-list:data-active:after:opacity-100", "data-horizontal:after:inset-x-1 data-horizontal:after:-bottom-1 data-horizontal:after:h-0.5", "data-vertical:after:inset-y-1 data-vertical:after:-right-1 data-vertical:after:w-0.5");
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;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,GAAG,CACxB,4JAA4J,EAC5J;IACI,QAAQ,EAAE;QACN,OAAO,EAAE;YACL,OAAO,EAAE,8FAA8F;YACvG,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,yFAAyF;AACzF,6BAA6B,EAC7B,oVAAoV;AACpV,uDAAuD;AACvD,8LAA8L,EAC9L,6FAA6F,EAC7F,sFAAsF,CACzF,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"}
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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"}
@@ -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-mono text-xs font-medium text-muted-foreground uppercase", className) }, props),
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":"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"}
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,+BA0B3F;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAC,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
- // Inverted chip: max contrast against any surface, so it reads in high contrast too.
19
- popupMotion, "z-50 inline-flex min-h-6 w-fit max-w-xs items-center gap-1.5 rounded-md bg-foreground px-2 py-1 text-xs text-background 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: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })] }) }) }));
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,qFAAqF;gBACrF,WAAW,EACX,yVAAyV,EACzV,SAAS,CACZ,KACG,KAAK,aAER,QAAQ,EACT,KAAC,gBAAgB,CAAC,KAAK,IAAC,SAAS,EAAC,uhBAAuhB,GAAG,IACviB,GACC,GACR,CAC7B,CAAC;AACN,CAAC;AAED,OAAO,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAC,CAAC"}
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"}
@@ -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-mono text-xs text-muted-foreground tabular-nums", className), ...props }));
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,+DAA+D,EAAE,SAAS,CAAC,KACrF,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"}
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"}
@@ -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,gcAC4a,CAAC;AAElc,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"}
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"}
@@ -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 = "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 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
@@ -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,GACjB,6bAA6b,CAAC;AAElc,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"}
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;CACrD;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,+BAkEpB;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"}
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
- }), [theme, resolvedMode, setTheme]);
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":"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"}
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;AAgBjB,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAC;AAEnE,kFAAkF;AAClF,MAAM,sBAAsB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC;AAEvE,MAAM,kBAAkB,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;AAEvF,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD,SAAS,eAAe,CAAC,QAAoB;IACzC,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa;IAClB,OAAO,oBAAoB,CACvB,eAAe,EACf,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAChE,GAAG,EAAE,CAAC,OAAO,CAChB,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,QAAoB;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,QAAQ,CAAC;IACpB,CAAC;AACL,CAAC;AAYD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,UAAU,GAAG,mBAAmB,EAChC,WAAW,GACM;IACjB,MAAM,QAAQ,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,CAAC,EAAC,GAAG,aAAa,EAAE,GAAG,YAAY,EAAC,CAAC,EAC3C,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAC3F,CAAC;IACF,6FAA6F;IAC7F,0FAA0F;IAC1F,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAa,QAAQ,CAAC,CAAC;IAC3D,kBAAkB,CAAC,GAAG,EAAE;QACpB,IAAI,UAAU,EAAE,CAAC;YACb,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChD,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,CAAe,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChD,CAAC;QACL,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,GAAG,MAAM,EAAE,GAAG,WAAW,EAAC,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAEnE,kBAAkB,CAAC,GAAG,EAAE;QACpB,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,WAAW,CACxB,CAAC,KAA0B,EAAE,EAAE;QAC3B,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,MAAM,IAAI,GAAG,aAAa,CAAC,EAAC,GAAG,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC;oBACD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAAC,MAAM,CAAC;oBACL,mEAAmE;gBACvE,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACL,qDAAqD;YACzD,CAAC;QACL,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,CAAC;QACH,GAAG,KAAK;QACR,YAAY;QACZ,QAAQ;QACR,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAC,CAAC;QACnC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAC,QAAQ,EAAC,CAAC;QAC/C,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAC,CAAC;QACzC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAC,MAAM,EAAC,CAAC;QACzC,QAAQ,EAAE,QAAQ;QAClB,UAAU;KACb,CAAC,EACF,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CACxD,CAAC;IAEF,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAC;AACnF,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,QAAQ;IACpB,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,EAAC,KAAK,EAAE,GAAG,OAAO,EAAwC;IAClF,OAAO,iBAAQ,KAAK,EAAE,KAAK,EAAE,wBAAwB,QAAC,uBAAuB,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAC,GAAI,CAAC;AACtH,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAkB;IACvG,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG;QACV,IAAI,EAAE,IAAI,IAAI,MAAM,EAAE,YAAY,IAAI,OAAO;QAC7C,QAAQ,EAAE,QAAQ,IAAI,MAAM,EAAE,QAAQ,IAAI,aAAa,CAAC,QAAQ;QAChE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,aAAa,CAAC,MAAM;QACxD,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,aAAa,CAAC,MAAM;KAC3D,CAAC;IACF,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CACH,4BACc,aAAa,EACvB,SAAS,EAAE,CAAC,OAAO,EAAE,+BAA+B,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KACtF,KAAK,aAET,KAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,YAAG,QAAQ,GAAmC,EAC/F,cAAK,GAAG,EAAE,YAAY,eAAY,oBAAoB,EAAC,SAAS,EAAE,OAAO,GAAI,IAC3E,CACT,CAAC;AACN,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,kBAAkB;IAC9B,OAAO,UAAU,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@repraze/kernelkit",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.3",
4
4
  "description": "Modern, techy React components: every shadcn component on Base UI, Tailwind v4 and cva, themed by TermiColor.",
5
5
  "keywords": [
6
6
  "react",
@@ -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
- // status tint behind foreground text; the hue lives in the border and the icon (§2 TermiColor rule)
21
- soft: "border-(--c)/30 bg-(--c-tint) text-foreground *:[svg]:text-(--c) hc:border-(--c)",
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: "border-border bg-card text-card-foreground *:[svg]:text-foreground hc:border-border",
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-mono text-xs font-medium text-muted-foreground ring-2 ring-background [&>svg]:size-4",
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",
@@ -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 {ChevronRightIcon, MoreHorizontalIcon} from "lucide-react";
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-sm wrap-break-word text-muted-foreground",
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.5",
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.5",
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.5", className)}
74
+ className={cn("text-muted-foreground select-none [&>svg]:size-3", className)}
74
75
  {...props}
75
76
  >
76
- {children ?? <ChevronRightIcon />}
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-4", className)}
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 />