@nswds/app 1.98.0 → 1.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4159,7 +4159,7 @@ function AccordionContent({
4159
4159
  );
4160
4160
  }
4161
4161
  var alertVariants = classVarianceAuthority.cva(
4162
- "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
4162
+ "relative w-full rounded-sm border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
4163
4163
  {
4164
4164
  variants: {
4165
4165
  variant: {
@@ -4605,7 +4605,7 @@ var AlertDialogContent = React5__namespace.forwardRef(function AlertDialogConten
4605
4605
  ref,
4606
4606
  "data-slot": "alert-dialog-content",
4607
4607
  className: cn(
4608
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 sm:max-w-lg",
4608
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-sm border bg-background p-6 shadow-lg duration-200 sm:max-w-lg",
4609
4609
  "data-[state=closed]:animate-out data-[state=open]:animate-in",
4610
4610
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
4611
4611
  "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
@@ -5071,7 +5071,7 @@ var ChartTooltip = ({ active, payload, label, valueFormatter }) => {
5071
5071
  {
5072
5072
  className: cn(
5073
5073
  // base
5074
- "rounded-md border text-sm shadow-md",
5074
+ "rounded-sm border text-sm shadow-md",
5075
5075
  // border color
5076
5076
  "border-gray-200 dark:border-gray-800",
5077
5077
  // background color
@@ -6346,7 +6346,7 @@ var ChartTooltip2 = ({ active, payload, label, valueFormatter }) => {
6346
6346
  {
6347
6347
  className: cn(
6348
6348
  // base
6349
- "rounded-md border text-sm shadow-md",
6349
+ "rounded-sm border text-sm shadow-md",
6350
6350
  // border color
6351
6351
  "border-gray-200 dark:border-gray-800",
6352
6352
  // background color
@@ -7440,7 +7440,7 @@ function DropdownMenuSubContent({
7440
7440
  // Base
7441
7441
  ""
7442
7442
  ],
7443
- "z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7443
+ "z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-sm border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
7444
7444
  className
7445
7445
  ),
7446
7446
  ...props
@@ -7532,7 +7532,7 @@ function Breadcrumbs({
7532
7532
  ] }) });
7533
7533
  }
7534
7534
  var buttonVariants2 = classVarianceAuthority.cva(
7535
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer",
7535
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer",
7536
7536
  {
7537
7537
  variants: {
7538
7538
  variant: {
@@ -7626,7 +7626,7 @@ function Calendar({
7626
7626
  defaultClassNames.dropdowns
7627
7627
  ),
7628
7628
  dropdown_root: cn(
7629
- "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
7629
+ "relative rounded-sm border border-input shadow-xs has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]",
7630
7630
  defaultClassNames.dropdown_root
7631
7631
  ),
7632
7632
  dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
@@ -7712,7 +7712,7 @@ function CalendarDayButton({
7712
7712
  "data-range-end": modifiers.range_end,
7713
7713
  "data-range-middle": modifiers.range_middle,
7714
7714
  className: cn(
7715
- "flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary-800 data-[selected-single=true]:text-white dark:hover:text-accent-foreground [&>span]:text-xs [&>span]:opacity-70",
7715
+ "flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-sm data-[range-end=true]:rounded-r-sm data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-sm data-[range-start=true]:rounded-l-sm data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary-800 data-[selected-single=true]:text-white dark:hover:text-accent-foreground [&>span]:text-xs [&>span]:opacity-70",
7716
7716
  defaultClassNames.day,
7717
7717
  className
7718
7718
  ),
@@ -7726,7 +7726,7 @@ function Card({ className, ...props }) {
7726
7726
  {
7727
7727
  "data-slot": "card",
7728
7728
  className: cn(
7729
- "flex flex-col gap-6 rounded-md border border-grey-200 bg-card py-6 text-card-foreground dark:border-grey-700",
7729
+ "flex flex-col gap-6 rounded-sm border border-grey-200 bg-card py-6 text-card-foreground dark:border-grey-700",
7730
7730
  className
7731
7731
  ),
7732
7732
  ...props
@@ -8289,7 +8289,7 @@ function ChartTooltipContent({
8289
8289
  "div",
8290
8290
  {
8291
8291
  className: cn(
8292
- "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
8292
+ "grid min-w-[8rem] items-start gap-1.5 rounded-sm border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
8293
8293
  className
8294
8294
  ),
8295
8295
  children: [
@@ -8310,7 +8310,7 @@ function ChartTooltipContent({
8310
8310
  "div",
8311
8311
  {
8312
8312
  className: cn(
8313
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
8313
+ "shrink-0 rounded-sm border-(--color-border) bg-(--color-bg)",
8314
8314
  {
8315
8315
  "h-2.5 w-2.5": indicator === "dot",
8316
8316
  "w-1": indicator === "line",
@@ -8417,7 +8417,7 @@ function Checkbox({ className, ...props }) {
8417
8417
  "data-slot": "checkbox",
8418
8418
  className: cn(
8419
8419
  // Base styles
8420
- "peer flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-[4px] border border-primary-800 shadow-xs ring-offset-white transition-shadow outline-none",
8420
+ "peer flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-primary-800 shadow-xs ring-offset-white transition-shadow outline-none",
8421
8421
  // Dark mode styles
8422
8422
  "dark:bg-input/30",
8423
8423
  // Checked styles
@@ -13579,7 +13579,7 @@ function PreWithCopy(props) {
13579
13579
  /* @__PURE__ */ jsxRuntime.jsxs(
13580
13580
  "button",
13581
13581
  {
13582
- className: "absolute top-2 right-2 m-0.5 inline-flex h-8 items-center justify-center rounded-lg border border-gray-200 bg-white px-2.5 py-2 text-gray-900 opacity-0 transition-opacity group-hover:opacity-100 hover:bg-gray-100 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700",
13582
+ className: "absolute top-2 right-2 m-0.5 inline-flex h-8 items-center justify-center rounded-sm border border-gray-200 bg-white px-2.5 py-2 text-gray-900 opacity-0 transition-opacity group-hover:opacity-100 hover:bg-gray-100 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700",
13583
13583
  "aria-label": "Copy code to clipboard",
13584
13584
  onClick: handleCopy,
13585
13585
  children: [
@@ -13645,7 +13645,7 @@ function PopoverContent({
13645
13645
  className: cn(
13646
13646
  [
13647
13647
  // Base
13648
- "z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-background p-4 text-foreground shadow-md outline-hidden",
13648
+ "z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-sm border bg-background p-4 text-foreground shadow-md outline-hidden",
13649
13649
  // Open
13650
13650
  "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
13651
13651
  // Closed
@@ -14022,7 +14022,7 @@ function SegmentedControlTrigger({
14022
14022
  {
14023
14023
  "data-slot": "segmented-control-trigger",
14024
14024
  className: cn(
14025
- "inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:shadow-sm dark:text-muted-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14025
+ "inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-sm border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:shadow-sm dark:text-muted-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
14026
14026
  className
14027
14027
  ),
14028
14028
  ...props
@@ -14048,7 +14048,7 @@ function ThemeSelectorLoading() {
14048
14048
  ] }),
14049
14049
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
14050
14050
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-5 w-20 rounded bg-grey-200" }),
14051
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-3 rounded-md border border-muted bg-muted/30 p-3", children: [
14051
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-3 rounded-sm border border-muted bg-muted/30 p-3", children: [
14052
14052
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex min-w-0 items-center justify-between", children: [
14053
14053
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-48 rounded bg-grey-200" }),
14054
14054
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-8 w-8 rounded bg-grey-200" })
@@ -14228,7 +14228,7 @@ function ThemeSelectorContent({
14228
14228
  ] }),
14229
14229
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
14230
14230
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-medium", children: "Share Theme" }),
14231
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-3 rounded-md border border-muted bg-muted/30 p-3", children: [
14231
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "gap-3 rounded-sm border border-muted bg-muted/30 p-3", children: [
14232
14232
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex min-w-0 items-center justify-between", children: [
14233
14233
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Copy this URL to share your theme selection:" }),
14234
14234
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -14246,7 +14246,7 @@ function ThemeSelectorContent({
14246
14246
  }
14247
14247
  )
14248
14248
  ] }),
14249
- /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block w-full rounded border bg-background px-2 py-1.5 font-mono text-xs break-all text-foreground", children: themeUrl })
14249
+ /* @__PURE__ */ jsxRuntime.jsx("code", { className: "block w-full rounded-sm border bg-background px-2 py-1.5 font-mono text-xs break-all text-foreground", children: themeUrl })
14250
14250
  ] })
14251
14251
  ] })
14252
14252
  ] });
@@ -14298,7 +14298,7 @@ function TooltipContent({
14298
14298
  }
14299
14299
  function CodeDemoLoading() {
14300
14300
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 animate-pulse", children: [
14301
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full rounded-t-xl border border-grey-200 bg-grey-50 p-4 dark:border-grey-600 dark:bg-grey-700", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 sm:grid-cols-3", children: [
14301
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full rounded-t-sm border border-grey-200 bg-grey-50 p-4 dark:border-grey-600 dark:bg-grey-700", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 sm:grid-cols-3", children: [
14302
14302
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-10 w-32 rounded bg-grey-200 dark:bg-grey-600" }),
14303
14303
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-10 w-32 rounded bg-grey-200 dark:bg-grey-600" }),
14304
14304
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-3", children: [
@@ -14309,7 +14309,7 @@ function CodeDemoLoading() {
14309
14309
  ] }) }),
14310
14310
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex border-x border-grey-200 bg-white bg-gradient-to-r p-5 dark:border-grey-600 dark:bg-grey-900", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-64 w-full rounded bg-grey-200 dark:bg-grey-600" }) }),
14311
14311
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border border-grey-200 dark:border-grey-600", children: [
14312
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full rounded-t-md border-b border-grey-200 bg-grey-50 p-2 dark:border-grey-600 dark:bg-grey-700", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-8 w-24 rounded bg-grey-200 dark:bg-grey-600" }) }),
14312
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full rounded-t-sm border-b border-grey-200 bg-grey-50 p-2 dark:border-grey-600 dark:bg-grey-700", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-8 w-24 rounded bg-grey-200 dark:bg-grey-600" }) }),
14313
14313
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-48 bg-grey-100 dark:bg-grey-800" })
14314
14314
  ] })
14315
14315
  ] });
@@ -14493,7 +14493,7 @@ function CodeDemoContent({ data, showCode = true, controls = defaultControls })
14493
14493
  }
14494
14494
  }, [themeCategory, primaryColor, accentColor, greyColor, isThemeInitialized]);
14495
14495
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8", children: [
14496
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full rounded-t-xl border border-grey-200 bg-grey-50 p-4 dark:border-grey-600 dark:bg-grey-700", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex w-full items-center", children: [
14496
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full rounded-t-sm border border-grey-200 bg-grey-50 p-4 dark:border-grey-600 dark:bg-grey-700", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex w-full items-center", children: [
14497
14497
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
14498
14498
  data.githubSlug && /* @__PURE__ */ jsxRuntime.jsx(EditOnGithubButton, { githubSlug: data.githubSlug }),
14499
14499
  data.figmaSlug && /* @__PURE__ */ jsxRuntime.jsx(OpenInFigmaButton, { figmaSlug: data.figmaSlug })
@@ -14552,7 +14552,7 @@ function CodeDemoContent({ data, showCode = true, controls = defaultControls })
14552
14552
  shouldExpand && "pb-[41px]"
14553
14553
  ),
14554
14554
  children: [
14555
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full rounded-t-md border-b border-grey-200 bg-grey-50 dark:border-grey-600 dark:bg-grey-700", children: [
14555
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full rounded-t-sm border-b border-grey-200 bg-grey-50 dark:border-grey-600 dark:bg-grey-700", children: [
14556
14556
  /* @__PURE__ */ jsxRuntime.jsx(Tabs, { tabIndex, items: codeItems, onSelect: setTabIndex }),
14557
14557
  variants.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(Select, { onValueChange: (value) => handleSelectVariant(value), children: [
14558
14558
  /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { size: "sm", children: /* @__PURE__ */ jsxRuntime.jsx(SelectValue, { placeholder: "Select a variant" }) }),
@@ -14972,8 +14972,18 @@ function ColorCard({ name, token, hex: hex2, rgb: rgb2, hsl, oklch: oklch2, form
14972
14972
  ] })
14973
14973
  ] }) });
14974
14974
  }
14975
- var recommendedBackgroundTones = [100, 200, 400, 500, 600, 700, 800];
14975
+ var recommendedBackgroundTones = [50, 100, 200, 400, 600, 800];
14976
14976
  var AAA_NORMAL_TEXT_RATIO = 7;
14977
+ var MIN_DARK_BACKGROUND_TONE_FOR_WHITE = 600;
14978
+ var WHITE_FOREGROUND = {
14979
+ token: "white",
14980
+ name: "White",
14981
+ hex: "#ffffff",
14982
+ rgb: "rgb(255, 255, 255)",
14983
+ hsl: "hsl(0, 0%, 100%)",
14984
+ oklch: "oklch(1 0 0)",
14985
+ tone: 0
14986
+ };
14977
14987
  function extractTone(token) {
14978
14988
  const match = token.match(/-(\d+)$/);
14979
14989
  return match ? Number.parseInt(match[1], 10) : 0;
@@ -15048,10 +15058,13 @@ function buildRecommendedPairs(colorsToPair, minimumRatio) {
15048
15058
  const recommendedPairs = [];
15049
15059
  for (const background of backgrounds) {
15050
15060
  const pair = pickForeground(colorsToPair, background, minimumRatio);
15051
- if (!pair || recommendedPairs.some((item) => item.id === pair.id)) {
15052
- continue;
15061
+ const whitePair = background.tone >= MIN_DARK_BACKGROUND_TONE_FOR_WHITE ? buildPair(background, WHITE_FOREGROUND) : null;
15062
+ if (pair && !recommendedPairs.some((item) => item.id === pair.id)) {
15063
+ recommendedPairs.push(pair);
15064
+ }
15065
+ if (whitePair && whitePair.contrastRatio >= minimumRatio && !recommendedPairs.some((item) => item.id === whitePair.id)) {
15066
+ recommendedPairs.push(whitePair);
15053
15067
  }
15054
- recommendedPairs.push(pair);
15055
15068
  }
15056
15069
  return recommendedPairs;
15057
15070
  }
@@ -15080,6 +15093,12 @@ function buildRecommendedCollections(minimumRatio) {
15080
15093
  };
15081
15094
  }
15082
15095
  var recommendedAaaPairingCollections = buildRecommendedCollections(AAA_NORMAL_TEXT_RATIO);
15096
+ function getWhiteForegroundPair(background) {
15097
+ return buildPair(background, WHITE_FOREGROUND);
15098
+ }
15099
+ function supportsWhiteForegroundPreview(background) {
15100
+ return background.tone >= MIN_DARK_BACKGROUND_TONE_FOR_WHITE;
15101
+ }
15083
15102
  function getPairingColorValue(color2, format) {
15084
15103
  return getColorValue(color2, format);
15085
15104
  }
@@ -15239,12 +15258,52 @@ function getDefaultPair(family) {
15239
15258
  function getFamilySwatchColor(family) {
15240
15259
  return family.colors.find((color2) => color2.tone === 500)?.hex ?? family.colors.find((color2) => color2.tone === 400)?.hex ?? family.colors[Math.min(3, family.colors.length - 1)]?.hex ?? "transparent";
15241
15260
  }
15261
+ function getToneFromToken(token) {
15262
+ if (!token) return null;
15263
+ const match = token.match(/-(\d+)$/);
15264
+ return match ? Number.parseInt(match[1], 10) : null;
15265
+ }
15266
+ function isApprovedBackgroundTone(color2) {
15267
+ return recommendedBackgroundTones.includes(
15268
+ color2.tone
15269
+ );
15270
+ }
15271
+ function getBackgroundOptions(family) {
15272
+ return family?.colors.filter(isApprovedBackgroundTone) ?? [];
15273
+ }
15274
+ function isWhiteForegroundPair(pair) {
15275
+ return pair.foreground.token === "white";
15276
+ }
15277
+ function getRecommendedPairForBackground(family, backgroundToken, preferredPairId) {
15278
+ if (!family) return null;
15279
+ const backgroundPairs = family.recommendedPairs.filter(
15280
+ (pair) => pair.background.token === backgroundToken
15281
+ );
15282
+ if (backgroundPairs.length === 0) return null;
15283
+ if (preferredPairId) {
15284
+ const preferredPair = backgroundPairs.find((pair) => pair.id === preferredPairId);
15285
+ if (preferredPair) {
15286
+ return preferredPair;
15287
+ }
15288
+ }
15289
+ return backgroundPairs.find((pair) => !isWhiteForegroundPair(pair)) ?? backgroundPairs[0];
15290
+ }
15291
+ function getFallbackBackgroundToken(family, preferredTone) {
15292
+ const backgroundOptions = getBackgroundOptions(family);
15293
+ if (preferredTone) {
15294
+ const preferredBackground = backgroundOptions.find((color2) => color2.tone === preferredTone);
15295
+ if (preferredBackground) {
15296
+ return preferredBackground.token;
15297
+ }
15298
+ }
15299
+ return getDefaultPair(family)?.background.token ?? backgroundOptions[0]?.token ?? "";
15300
+ }
15242
15301
  function ColorPairingToolLoading() {
15243
15302
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "animate-pulse space-y-6", children: [
15244
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-40 rounded-md border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" }),
15303
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-40 rounded-sm border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" }),
15245
15304
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-6 xl:grid-cols-[minmax(0,1.3fr)_minmax(20rem,0.9fr)]", children: [
15246
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-96 rounded-md border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" }),
15247
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-96 rounded-md border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" })
15305
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-96 rounded-sm border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" }),
15306
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-96 rounded-sm border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" })
15248
15307
  ] })
15249
15308
  ] });
15250
15309
  }
@@ -15252,15 +15311,28 @@ function getInitialPairingState(searchParams) {
15252
15311
  const paletteParam = searchParams.get("palette");
15253
15312
  const familyParam = searchParams.get("family");
15254
15313
  const pairParam = searchParams.get("pair");
15314
+ const backgroundParam = searchParams.get("background");
15255
15315
  const themeCategory = paletteParam === "brand" || paletteParam === "aboriginal" ? paletteParam : "brand";
15256
15316
  const families = recommendedAaaPairingCollections[themeCategory];
15257
15317
  const familyKey = families.some((family) => family.key === familyParam) ? familyParam : getPreferredFamilyKey(families);
15258
15318
  const activeFamily = families.find((family) => family.key === familyKey) ?? families[0];
15259
- const defaultPair = getDefaultPair(activeFamily);
15260
- const selectedPairId = activeFamily?.recommendedPairs.some((pair) => pair.id === pairParam) ? pairParam : defaultPair?.id ?? "";
15261
- return { familyKey, selectedPairId, themeCategory };
15262
- }
15263
- function PairPreview({ family, pair }) {
15319
+ const backgroundOptions = getBackgroundOptions(activeFamily);
15320
+ const pairBackgroundToken = activeFamily?.recommendedPairs.find((pair) => pair.id === pairParam)?.background.token ?? null;
15321
+ const selectedBackgroundToken = backgroundOptions.some((color2) => color2.token === backgroundParam) ? backgroundParam : getFallbackBackgroundToken(
15322
+ activeFamily,
15323
+ getToneFromToken(backgroundParam ?? pairBackgroundToken)
15324
+ );
15325
+ const selectedPairId = getRecommendedPairForBackground(activeFamily, selectedBackgroundToken, pairParam)?.id ?? "";
15326
+ return { familyKey, selectedBackgroundToken, selectedPairId, themeCategory };
15327
+ }
15328
+ function PairPreview({
15329
+ family,
15330
+ isRecommended,
15331
+ pair
15332
+ }) {
15333
+ const whiteForeground = isWhiteForegroundPair(pair);
15334
+ const statusLabel = isRecommended ? "Pass" : pair.passes.aaaLarge ? "Large text only" : "Example only";
15335
+ const StatusIcon = isRecommended ? Icons.check : Icons.info;
15264
15336
  return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "gap-0 overflow-hidden py-0", children: /* @__PURE__ */ jsxRuntime.jsx(
15265
15337
  "div",
15266
15338
  {
@@ -15303,10 +15375,10 @@ function PairPreview({ family, pair }) {
15303
15375
  )
15304
15376
  ] }),
15305
15377
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-xl space-y-4 pb-12 sm:pb-16", children: [
15306
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold tracking-[0.22em] uppercase", children: "Tone on tone" }),
15378
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold tracking-[0.22em] uppercase", children: whiteForeground && !isRecommended ? "White on colour example" : whiteForeground ? "White on colour" : "Tone on tone" }),
15307
15379
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
15308
15380
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "max-w-lg text-4xl leading-none font-bold text-current sm:text-5xl", children: "Pair colour with confidence." }),
15309
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-md text-sm/6 sm:text-base/7", children: "Use only AAA-approved tone-on-tone combinations for headings, body copy, and calls to action on colour." })
15381
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-md text-sm/6 sm:text-base/7", children: whiteForeground ? isRecommended ? "Use white text on dark colour only when it meets AAA for headings, body copy, and calls to action." : "This white text example is included for reference on approved dark backgrounds. Check the result card below before using it for normal or large text." : "Use only AAA-recommended tone-on-tone combinations for headings, body copy, and calls to action on colour." })
15310
15382
  ] })
15311
15383
  ] }),
15312
15384
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
@@ -15319,8 +15391,8 @@ function PairPreview({ family, pair }) {
15319
15391
  color: pair.background.hex
15320
15392
  },
15321
15393
  children: [
15322
- "Pass",
15323
- /* @__PURE__ */ jsxRuntime.jsx(Icons.check, { "data-slot": "icon", className: "size-4" })
15394
+ statusLabel,
15395
+ /* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { "data-slot": "icon", className: "size-4" })
15324
15396
  ]
15325
15397
  }
15326
15398
  ),
@@ -15380,7 +15452,7 @@ function PairDetailCard({
15380
15452
  /* @__PURE__ */ jsxRuntime.jsx(
15381
15453
  "div",
15382
15454
  {
15383
- className: "size-14 rounded-2xl border border-grey-200 shadow-sm dark:border-grey-700",
15455
+ className: "size-14 rounded-sm border border-grey-200 shadow-sm dark:border-grey-700",
15384
15456
  style: { backgroundColor: color2.hex }
15385
15457
  }
15386
15458
  ),
@@ -15419,7 +15491,7 @@ function ComplianceRow({
15419
15491
  passes,
15420
15492
  threshold
15421
15493
  }) {
15422
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-4 rounded-xl border border-grey-200 px-4 py-3 dark:border-grey-700", children: [
15494
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-4 rounded-sm border border-grey-200 px-4 py-3 dark:border-grey-700", children: [
15423
15495
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
15424
15496
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: label }),
15425
15497
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: threshold })
@@ -15446,7 +15518,7 @@ function PairComplianceCard({ pair }) {
15446
15518
  /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "Only pairs that pass AAA normal-text contrast are suggested here. Evaluation uses the raw contrast ratio, not the rounded display value." })
15447
15519
  ] }),
15448
15520
  /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "space-y-3", children: [
15449
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-grey-200 bg-grey-50 px-4 py-3 dark:border-grey-700 dark:bg-grey-900/60", children: [
15521
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-sm border border-grey-200 bg-grey-50 px-4 py-3 dark:border-grey-700 dark:bg-grey-900/60", children: [
15450
15522
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: "Contrast ratio" }),
15451
15523
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-2xl font-semibold", children: [
15452
15524
  pair.contrastRatio.toFixed(2),
@@ -15472,25 +15544,100 @@ function PairComplianceCard({ pair }) {
15472
15544
  ] })
15473
15545
  ] });
15474
15546
  }
15547
+ function WhiteTextExampleCard({ pair }) {
15548
+ return /* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
15549
+ /* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "gap-2 border-b", children: [
15550
+ /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: "text-base", children: "White text example" }),
15551
+ /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "For approved dark backgrounds, white text may be suitable for large text. It is only recommended in this tool when it also passes AAA normal text." })
15552
+ ] }),
15553
+ /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "grid gap-6 xl:grid-cols-[minmax(0,1.1fr)_minmax(18rem,0.9fr)]", children: [
15554
+ /* @__PURE__ */ jsxRuntime.jsx(
15555
+ "div",
15556
+ {
15557
+ className: "rounded-sm border border-grey-200 p-6 dark:border-grey-700",
15558
+ style: {
15559
+ backgroundColor: pair.background.hex,
15560
+ color: pair.foreground.hex
15561
+ },
15562
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
15563
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
15564
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg leading-tight font-semibold", children: "Large text example" }),
15565
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm/6", children: [
15566
+ "White text on ",
15567
+ pair.background.token
15568
+ ] })
15569
+ ] }),
15570
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-sm/6", children: [
15571
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
15572
+ "AAA normal text: ",
15573
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { children: pair.passes.aaaText ? "pass" : "fail" })
15574
+ ] }),
15575
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
15576
+ "AAA large text: ",
15577
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { children: pair.passes.aaaLarge ? "pass" : "fail" })
15578
+ ] })
15579
+ ] })
15580
+ ] })
15581
+ }
15582
+ ),
15583
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
15584
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-sm border border-grey-200 bg-grey-50 px-4 py-3 dark:border-grey-700 dark:bg-grey-900/60", children: [
15585
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: "Contrast ratio" }),
15586
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-2xl font-semibold", children: [
15587
+ pair.contrastRatio.toFixed(2),
15588
+ ":1"
15589
+ ] })
15590
+ ] }),
15591
+ /* @__PURE__ */ jsxRuntime.jsx(
15592
+ ComplianceRow,
15593
+ {
15594
+ label: "AAA normal text",
15595
+ passes: pair.passes.aaaText,
15596
+ threshold: "7.0:1 or higher"
15597
+ }
15598
+ ),
15599
+ /* @__PURE__ */ jsxRuntime.jsx(
15600
+ ComplianceRow,
15601
+ {
15602
+ label: "AAA large text",
15603
+ passes: pair.passes.aaaLarge,
15604
+ threshold: "4.5:1 or higher"
15605
+ }
15606
+ )
15607
+ ] })
15608
+ ] })
15609
+ ] });
15610
+ }
15475
15611
  function ColorPairingToolContent() {
15476
15612
  const searchParams = navigation.useSearchParams();
15477
15613
  const {
15478
15614
  familyKey: initialFamilyKey,
15615
+ selectedBackgroundToken: initialSelectedBackgroundToken,
15479
15616
  selectedPairId: initialSelectedPairId,
15480
15617
  themeCategory: initialThemeCategory
15481
15618
  } = getInitialPairingState(searchParams);
15482
15619
  const [themeCategory, setThemeCategory] = React5.useState(initialThemeCategory);
15483
15620
  const [format, setFormat] = React5.useState("hex");
15484
15621
  const [activeFamilyKey, setActiveFamilyKey] = React5.useState(initialFamilyKey);
15622
+ const [selectedBackgroundToken, setSelectedBackgroundToken] = React5.useState(
15623
+ initialSelectedBackgroundToken
15624
+ );
15485
15625
  const [selectedPairId, setSelectedPairId] = React5.useState(initialSelectedPairId);
15486
15626
  const families = recommendedAaaPairingCollections[themeCategory];
15487
15627
  const resolvedActiveFamilyKey = families.some((family) => family.key === activeFamilyKey) ? activeFamilyKey : getPreferredFamilyKey(families);
15488
15628
  const activeFamily = families.find((family) => family.key === resolvedActiveFamilyKey) ?? families[0];
15489
- const selectedPair = activeFamily?.recommendedPairs.find((pair) => pair.id === selectedPairId) ?? getDefaultPair(activeFamily);
15490
- const updateUrlParams = (nextThemeCategory, nextFamilyKey, nextSelectedPairId) => {
15629
+ const backgroundOptions = getBackgroundOptions(activeFamily);
15630
+ const selectedBackground = backgroundOptions.find((color2) => color2.token === selectedBackgroundToken) ?? backgroundOptions[0] ?? activeFamily?.colors[0] ?? null;
15631
+ const selectedPair = selectedBackground ? getRecommendedPairForBackground(activeFamily, selectedBackground.token, selectedPairId) : null;
15632
+ const whiteForegroundExample = selectedBackground && supportsWhiteForegroundPreview(selectedBackground) ? getWhiteForegroundPair(selectedBackground) : null;
15633
+ const previewPair = selectedPair ?? whiteForegroundExample;
15634
+ const showWhiteForegroundExample = Boolean(whiteForegroundExample) && (!selectedPair || selectedPair.foreground.token !== "white");
15635
+ const detailForeground = selectedPair?.foreground ?? whiteForegroundExample?.foreground ?? null;
15636
+ const updateUrlParams = (nextThemeCategory, nextFamilyKey, nextSelectedBackgroundToken, nextSelectedPairId) => {
15491
15637
  const params = new URLSearchParams(window.location.search);
15492
15638
  params.set("palette", nextThemeCategory);
15493
15639
  params.set("family", nextFamilyKey);
15640
+ params.set("background", nextSelectedBackgroundToken);
15494
15641
  if (nextSelectedPairId) {
15495
15642
  params.set("pair", nextSelectedPairId);
15496
15643
  } else {
@@ -15506,27 +15653,78 @@ function ColorPairingToolContent() {
15506
15653
  const nextFamilies = recommendedAaaPairingCollections[nextThemeCategory];
15507
15654
  const nextFamilyKey = nextFamilies.some((family) => family.key === activeFamilyKey) ? activeFamilyKey : getPreferredFamilyKey(nextFamilies);
15508
15655
  const nextActiveFamily = nextFamilies.find((family) => family.key === nextFamilyKey) ?? nextFamilies[0];
15509
- const nextSelectedPair = nextActiveFamily?.recommendedPairs.find((pair) => pair.id === selectedPairId) ?? getDefaultPair(nextActiveFamily);
15656
+ const nextSelectedBackgroundToken = getFallbackBackgroundToken(
15657
+ nextActiveFamily,
15658
+ getToneFromToken(selectedBackgroundToken)
15659
+ );
15660
+ const nextSelectedPair = getRecommendedPairForBackground(
15661
+ nextActiveFamily,
15662
+ nextSelectedBackgroundToken,
15663
+ selectedPairId
15664
+ );
15510
15665
  setThemeCategory(nextThemeCategory);
15511
15666
  setActiveFamilyKey(nextFamilyKey);
15667
+ setSelectedBackgroundToken(nextSelectedBackgroundToken);
15512
15668
  setSelectedPairId(nextSelectedPair?.id ?? "");
15513
- updateUrlParams(nextThemeCategory, nextFamilyKey, nextSelectedPair?.id ?? "");
15669
+ updateUrlParams(
15670
+ nextThemeCategory,
15671
+ nextFamilyKey,
15672
+ nextSelectedBackgroundToken,
15673
+ nextSelectedPair?.id ?? ""
15674
+ );
15514
15675
  };
15515
15676
  const handleFamilyChange = (nextFamilyKey) => {
15516
15677
  const nextActiveFamily = families.find((family) => family.key === nextFamilyKey);
15517
- const nextSelectedPair = nextActiveFamily?.recommendedPairs.find((pair) => pair.id === selectedPairId) ?? getDefaultPair(nextActiveFamily);
15678
+ const nextSelectedBackgroundToken = getFallbackBackgroundToken(
15679
+ nextActiveFamily,
15680
+ getToneFromToken(selectedBackgroundToken)
15681
+ );
15682
+ const nextSelectedPair = getRecommendedPairForBackground(
15683
+ nextActiveFamily,
15684
+ nextSelectedBackgroundToken,
15685
+ selectedPairId
15686
+ );
15518
15687
  setActiveFamilyKey(nextFamilyKey);
15688
+ setSelectedBackgroundToken(nextSelectedBackgroundToken);
15519
15689
  setSelectedPairId(nextSelectedPair?.id ?? "");
15520
- updateUrlParams(themeCategory, nextFamilyKey, nextSelectedPair?.id ?? "");
15690
+ updateUrlParams(
15691
+ themeCategory,
15692
+ nextFamilyKey,
15693
+ nextSelectedBackgroundToken,
15694
+ nextSelectedPair?.id ?? ""
15695
+ );
15696
+ };
15697
+ const handleBackgroundChange = (nextSelectedBackgroundToken) => {
15698
+ const nextSelectedPair = getRecommendedPairForBackground(
15699
+ activeFamily,
15700
+ nextSelectedBackgroundToken,
15701
+ selectedPairId
15702
+ );
15703
+ setSelectedBackgroundToken(nextSelectedBackgroundToken);
15704
+ setSelectedPairId(nextSelectedPair?.id ?? "");
15705
+ updateUrlParams(
15706
+ themeCategory,
15707
+ resolvedActiveFamilyKey,
15708
+ nextSelectedBackgroundToken,
15709
+ nextSelectedPair?.id ?? ""
15710
+ );
15521
15711
  };
15522
15712
  const handlePairChange = (nextSelectedPairId) => {
15713
+ const nextSelectedPair = activeFamily?.recommendedPairs.find((pair) => pair.id === nextSelectedPairId) ?? null;
15714
+ if (!nextSelectedPair) return;
15715
+ setSelectedBackgroundToken(nextSelectedPair.background.token);
15523
15716
  setSelectedPairId(nextSelectedPairId);
15524
- updateUrlParams(themeCategory, resolvedActiveFamilyKey, nextSelectedPairId);
15717
+ updateUrlParams(
15718
+ themeCategory,
15719
+ resolvedActiveFamilyKey,
15720
+ nextSelectedPair.background.token,
15721
+ nextSelectedPairId
15722
+ );
15525
15723
  };
15526
- if (!activeFamily || !selectedPair) {
15724
+ if (!activeFamily || !selectedBackground) {
15527
15725
  return /* @__PURE__ */ jsxRuntime.jsx(Card, { children: /* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { children: [
15528
- /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "No recommended AAA pairs available" }),
15529
- /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "No recommended pairs are available for the current palette." })
15726
+ /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "No approved background tones available" }),
15727
+ /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "No approved tones are available for the current palette." })
15530
15728
  ] }) });
15531
15729
  }
15532
15730
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
@@ -15576,41 +15774,74 @@ function ColorPairingToolContent() {
15576
15774
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
15577
15775
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-start gap-6 xl:grid-cols-[minmax(0,1.5fr)_minmax(17rem,0.68fr)]", children: [
15578
15776
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
15579
- /* @__PURE__ */ jsxRuntime.jsx(PairPreview, { family: activeFamily, pair: selectedPair }),
15777
+ previewPair ? /* @__PURE__ */ jsxRuntime.jsx(
15778
+ PairPreview,
15779
+ {
15780
+ family: activeFamily,
15781
+ isRecommended: Boolean(selectedPair),
15782
+ pair: previewPair
15783
+ }
15784
+ ) : /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "gap-0 overflow-hidden py-0", children: /* @__PURE__ */ jsxRuntime.jsx(
15785
+ "div",
15786
+ {
15787
+ className: "p-6 sm:min-h-[26rem] sm:p-8",
15788
+ style: {
15789
+ backgroundColor: selectedBackground.hex,
15790
+ color: selectedBackground.tone >= 600 ? "#ffffff" : "#002664"
15791
+ },
15792
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-[22rem] flex-col justify-between gap-8", children: [
15793
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-2 rounded-full border border-current bg-transparent px-3 py-1 text-[0.72rem] font-semibold tracking-[0.16em] uppercase", children: [
15794
+ /* @__PURE__ */ jsxRuntime.jsx(Icons.palette, { "data-slot": "icon", className: "size-4" }),
15795
+ activeFamily.label
15796
+ ] }) }),
15797
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-xl space-y-4 pb-12 sm:pb-16", children: [
15798
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold tracking-[0.22em] uppercase", children: "Approved background" }),
15799
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
15800
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "max-w-lg text-4xl leading-none font-bold text-current sm:text-5xl", children: "Pair colour with confidence." }),
15801
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-md text-sm/6 sm:text-base/7", children: "This approved background tone does not currently have a recommended AAA foreground in this tool." })
15802
+ ] })
15803
+ ] }),
15804
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
15805
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-2 rounded-full bg-current/10 px-4 py-2 text-sm font-semibold", children: [
15806
+ "No recommendation",
15807
+ /* @__PURE__ */ jsxRuntime.jsx(Icons.info, { "data-slot": "icon", className: "size-4" })
15808
+ ] }),
15809
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex rounded-full border border-current px-4 py-2 text-sm", children: selectedBackground.token })
15810
+ ] })
15811
+ ] })
15812
+ }
15813
+ ) }),
15580
15814
  /* @__PURE__ */ jsxRuntime.jsxs(Card, { children: [
15581
15815
  /* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "gap-2 border-b", children: [
15582
15816
  /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: "text-base", children: "Background tone strip" }),
15583
- /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "Filled chips have a recommended AAA foreground pair. Select one to update the preview." })
15817
+ /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "Only approved background tones are shown. Filled chips have a recommended AAA foreground pair, and dark backgrounds may also offer white text where it passes AAA." })
15584
15818
  ] }),
15585
15819
  /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "space-y-4", children: [
15586
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-5 gap-2 sm:grid-cols-7 lg:grid-cols-10 xl:grid-cols-[repeat(19,minmax(0,1fr))]", children: activeFamily.colors.map((color2) => {
15587
- const pair = activeFamily.recommendedPairs.find(
15588
- (item) => item.background.token === color2.token
15589
- );
15590
- const isSelected = selectedPair.background.token === color2.token;
15820
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-5 gap-2 sm:grid-cols-7 lg:grid-cols-10 xl:grid-cols-[repeat(19,minmax(0,1fr))]", children: backgroundOptions.map((color2) => {
15821
+ const pair = getRecommendedPairForBackground(activeFamily, color2.token);
15822
+ const hasWhiteExample = supportsWhiteForegroundPreview(color2);
15823
+ const isSelected = selectedBackground.token === color2.token;
15591
15824
  return /* @__PURE__ */ jsxRuntime.jsxs(
15592
15825
  "button",
15593
15826
  {
15594
15827
  type: "button",
15595
- disabled: !pair,
15596
- onClick: () => pair && handlePairChange(pair.id),
15828
+ onClick: () => handleBackgroundChange(color2.token),
15597
15829
  className: cn(
15598
- "group relative h-12 rounded-xl border transition-transform",
15599
- pair ? "cursor-pointer border-grey-200 hover:scale-[1.03] dark:border-grey-700" : "cursor-not-allowed border-grey-100 dark:border-grey-800",
15830
+ "group relative h-12 rounded-sm border border-grey-200 transition-transform hover:scale-[1.03] dark:border-grey-700",
15600
15831
  isSelected && "ring-2 ring-primary-500 ring-offset-2 ring-offset-background"
15601
15832
  ),
15602
15833
  style: { backgroundColor: color2.hex },
15603
15834
  children: [
15604
- pair && /* @__PURE__ */ jsxRuntime.jsx(
15835
+ pair ? /* @__PURE__ */ jsxRuntime.jsx(
15605
15836
  "span",
15606
15837
  {
15607
15838
  className: "absolute top-1/2 left-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full border border-white/30 shadow-sm",
15608
15839
  style: { backgroundColor: pair.foreground.hex }
15609
15840
  }
15610
- ),
15841
+ ) : null,
15611
15842
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sr-only", children: [
15612
15843
  color2.token,
15613
- pair ? ` paired with ${pair.foreground.token}` : " has no recommended pair in this tool"
15844
+ pair ? ` paired with ${pair.foreground.token}` : hasWhiteExample ? " has a white text example in this tool" : " has no recommended pair in this tool"
15614
15845
  ] })
15615
15846
  ]
15616
15847
  },
@@ -15621,35 +15852,41 @@ function ColorPairingToolContent() {
15621
15852
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
15622
15853
  "Selected background:",
15623
15854
  " ",
15624
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-foreground", children: selectedPair.background.token })
15855
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-foreground", children: selectedBackground.token })
15625
15856
  ] }),
15626
15857
  /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
15627
- "Recommended foreground:",
15858
+ selectedPair ? "Recommended foreground:" : "White text example:",
15628
15859
  " ",
15629
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-foreground", children: selectedPair.foreground.token })
15860
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-foreground", children: selectedPair?.foreground.token ?? whiteForegroundExample?.foreground.token ?? "None" })
15630
15861
  ] })
15631
15862
  ] })
15632
15863
  ] })
15633
15864
  ] }),
15634
15865
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4 lg:grid-cols-2", children: [
15635
- /* @__PURE__ */ jsxRuntime.jsx(PairDetailCard, { color: selectedPair.background, format, role: "Background" }),
15636
- /* @__PURE__ */ jsxRuntime.jsx(PairDetailCard, { color: selectedPair.foreground, format, role: "Foreground" })
15866
+ /* @__PURE__ */ jsxRuntime.jsx(PairDetailCard, { color: selectedBackground, format, role: "Background" }),
15867
+ detailForeground ? /* @__PURE__ */ jsxRuntime.jsx(PairDetailCard, { color: detailForeground, format, role: "Foreground" }) : /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "gap-4", children: [
15868
+ /* @__PURE__ */ jsxRuntime.jsx(CardHeader, { className: "gap-3 border-b", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
15869
+ /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { children: "Foreground" }),
15870
+ /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "No recommended foreground available" })
15871
+ ] }) }),
15872
+ /* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Select another approved tone or review the recommended pairs list for the same family." }) })
15873
+ ] })
15637
15874
  ] })
15638
15875
  ] }),
15639
15876
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "h-fit", children: [
15640
15877
  /* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "gap-2 border-b", children: [
15641
15878
  /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: "text-base", children: "Recommended pairs" }),
15642
- /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "Recommended same-family combinations that meet AAA normal-text contrast." })
15879
+ /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { children: "Recommended AAA combinations for this family, including white on eligible dark backgrounds." })
15643
15880
  ] }),
15644
15881
  /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "grid gap-3", children: activeFamily.recommendedPairs.map((pair) => {
15645
- const isActive = selectedPair.id === pair.id;
15882
+ const isActive = selectedPair?.id === pair.id;
15646
15883
  return /* @__PURE__ */ jsxRuntime.jsxs(
15647
15884
  "button",
15648
15885
  {
15649
15886
  type: "button",
15650
15887
  onClick: () => handlePairChange(pair.id),
15651
15888
  className: cn(
15652
- "rounded-2xl border p-4 text-left transition-colors",
15889
+ "rounded-sm border p-4 text-left transition-colors",
15653
15890
  isActive ? "border-primary-500 bg-primary-50/70 dark:bg-primary-950/30" : "border-grey-200 hover:border-grey-400 hover:bg-grey-50 dark:border-grey-700 dark:hover:border-grey-500 dark:hover:bg-grey-900/70"
15654
15891
  ),
15655
15892
  children: [
@@ -15658,14 +15895,14 @@ function ColorPairingToolContent() {
15658
15895
  /* @__PURE__ */ jsxRuntime.jsx(
15659
15896
  "div",
15660
15897
  {
15661
- className: "size-11 rounded-2xl border border-grey-200 shadow-sm dark:border-grey-700",
15898
+ className: "size-11 rounded-sm border border-grey-200 shadow-sm dark:border-grey-700",
15662
15899
  style: { backgroundColor: pair.background.hex }
15663
15900
  }
15664
15901
  ),
15665
15902
  /* @__PURE__ */ jsxRuntime.jsx(
15666
15903
  "div",
15667
15904
  {
15668
- className: "size-11 rounded-2xl border border-grey-200 shadow-sm dark:border-grey-700",
15905
+ className: "size-11 rounded-sm border border-grey-200 shadow-sm dark:border-grey-700",
15669
15906
  style: { backgroundColor: pair.foreground.hex }
15670
15907
  }
15671
15908
  )
@@ -15693,7 +15930,8 @@ function ColorPairingToolContent() {
15693
15930
  }) })
15694
15931
  ] }) })
15695
15932
  ] }),
15696
- /* @__PURE__ */ jsxRuntime.jsx(PairComplianceCard, { pair: selectedPair })
15933
+ selectedPair ? /* @__PURE__ */ jsxRuntime.jsx(PairComplianceCard, { pair: selectedPair }) : null,
15934
+ showWhiteForegroundExample && whiteForegroundExample ? /* @__PURE__ */ jsxRuntime.jsx(WhiteTextExampleCard, { pair: whiteForegroundExample }) : null
15697
15935
  ] })
15698
15936
  ] });
15699
15937
  }
@@ -16061,7 +16299,7 @@ var ChartTooltip4 = ({
16061
16299
  {
16062
16300
  className: cn(
16063
16301
  // base
16064
- "rounded-md border text-sm shadow-md",
16302
+ "rounded-sm border text-sm shadow-md",
16065
16303
  // border color
16066
16304
  "border-gray-200 dark:border-gray-800",
16067
16305
  // background color
@@ -16653,7 +16891,7 @@ function DialogContent({
16653
16891
  {
16654
16892
  "data-slot": "dialog-content",
16655
16893
  className: cn(
16656
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
16894
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-sm border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
16657
16895
  className
16658
16896
  ),
16659
16897
  ...props,
@@ -16883,7 +17121,7 @@ function ContextMenuSubContent({
16883
17121
  {
16884
17122
  "data-slot": "context-menu-sub-content",
16885
17123
  className: cn(
16886
- "z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
17124
+ "z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-sm border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
16887
17125
  className
16888
17126
  ),
16889
17127
  ...props
@@ -16899,7 +17137,7 @@ function ContextMenuContent({
16899
17137
  {
16900
17138
  "data-slot": "context-menu-content",
16901
17139
  className: cn(
16902
- "z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
17140
+ "z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm border bg-popover p-1 text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
16903
17141
  className
16904
17142
  ),
16905
17143
  ...props
@@ -17406,7 +17644,7 @@ function DataTable({
17406
17644
  });
17407
17645
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 p-1", children: [
17408
17646
  /* @__PURE__ */ jsxRuntime.jsx(DataTableToolbar, { table, search, toolbar }),
17409
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxRuntime.jsxs(Table, { children: [
17647
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-sm border", children: /* @__PURE__ */ jsxRuntime.jsxs(Table, { children: [
17410
17648
  /* @__PURE__ */ jsxRuntime.jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsxRuntime.jsx(TableRow, { children: headerGroup.headers.map((header) => {
17411
17649
  return /* @__PURE__ */ jsxRuntime.jsx(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : reactTable.flexRender(header.column.columnDef.header, header.getContext()) }, header.id);
17412
17650
  }) }, headerGroup.id)) }),
@@ -17524,7 +17762,7 @@ var ChartTooltip5 = ({ active, payload, valueFormatter }) => {
17524
17762
  {
17525
17763
  className: cn(
17526
17764
  // base
17527
- "rounded-md border text-sm shadow-md",
17765
+ "rounded-sm border text-sm shadow-md",
17528
17766
  // border color
17529
17767
  "border-gray-200 dark:border-gray-800",
17530
17768
  // background color
@@ -17762,8 +18000,8 @@ function DrawerContent({
17762
18000
  "data-slot": "drawer-content",
17763
18001
  className: cn(
17764
18002
  "group/drawer-content fixed z-50 flex h-auto flex-col bg-background",
17765
- "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
17766
- "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
18003
+ "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-sm data-[vaul-drawer-direction=top]:border-b",
18004
+ "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-sm data-[vaul-drawer-direction=bottom]:border-t",
17767
18005
  "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
17768
18006
  "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
17769
18007
  className
@@ -18182,7 +18420,7 @@ function FormMessage({ className, ...props }) {
18182
18420
 
18183
18421
  // package.json
18184
18422
  var package_default = {
18185
- version: "1.97.13"};
18423
+ version: "1.98.0"};
18186
18424
  var SluggerContext = React5__namespace.default.createContext(null);
18187
18425
  function flattenText(nodes) {
18188
18426
  if (nodes == null || typeof nodes === "boolean") return "";
@@ -18333,7 +18571,7 @@ function SiteSearch({ navigation: navigation$1 }) {
18333
18571
  children: [
18334
18572
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden text-grey-600 lg:inline-flex dark:text-grey-200", children: "Search site..." }),
18335
18573
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex lg:hidden dark:text-grey-200", children: "Search..." }),
18336
- /* @__PURE__ */ jsxRuntime.jsxs("kbd", { className: "pointer-events-none absolute top-2 right-2 hidden h-5 items-center gap-1 rounded border bg-muted px-2 font-mono text-xs font-medium opacity-100 select-none sm:flex", children: [
18574
+ /* @__PURE__ */ jsxRuntime.jsxs("kbd", { className: "pointer-events-none absolute top-2 right-2 hidden h-5 items-center gap-1 rounded-sm border bg-muted px-2 font-mono text-xs font-medium opacity-100 select-none sm:flex", children: [
18337
18575
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs", children: "\u2318" }),
18338
18576
  "K"
18339
18577
  ] })
@@ -18548,7 +18786,7 @@ function HoverCardContent({
18548
18786
  align,
18549
18787
  sideOffset,
18550
18788
  className: cn(
18551
- "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
18789
+ "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-sm border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
18552
18790
  className
18553
18791
  ),
18554
18792
  ...props
@@ -18586,7 +18824,7 @@ function InputOTPSlot({
18586
18824
  "data-slot": "input-otp-slot",
18587
18825
  "data-active": isActive,
18588
18826
  className: cn(
18589
- "relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40",
18827
+ "relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all outline-none first:rounded-l-sm first:border-l last:rounded-r-sm aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40",
18590
18828
  className
18591
18829
  ),
18592
18830
  ...props,
@@ -18871,7 +19109,7 @@ var ChartTooltip6 = ({ active, payload, label, valueFormatter }) => {
18871
19109
  {
18872
19110
  className: cn(
18873
19111
  // base
18874
- "rounded-md border text-sm shadow-md",
19112
+ "rounded-sm border text-sm shadow-md",
18875
19113
  // border color
18876
19114
  "border-gray-200 dark:border-gray-800",
18877
19115
  // background color
@@ -19766,7 +20004,7 @@ function Menubar({ className, ...props }) {
19766
20004
  {
19767
20005
  "data-slot": "menubar",
19768
20006
  className: cn(
19769
- "flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs",
20007
+ "flex h-9 items-center gap-1 rounded-sm border bg-background p-1 shadow-xs",
19770
20008
  className
19771
20009
  ),
19772
20010
  ...props
@@ -19816,7 +20054,7 @@ function MenubarContent({
19816
20054
  alignOffset,
19817
20055
  sideOffset,
19818
20056
  className: cn(
19819
- "z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
20057
+ "z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-sm border bg-popover p-1 text-popover-foreground shadow-md 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 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
19820
20058
  className
19821
20059
  ),
19822
20060
  ...props
@@ -19960,7 +20198,7 @@ function MenubarSubContent({
19960
20198
  {
19961
20199
  "data-slot": "menubar-sub-content",
19962
20200
  className: cn(
19963
- "z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
20201
+ "z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-sm border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
19964
20202
  className
19965
20203
  ),
19966
20204
  ...props
@@ -28379,7 +28617,7 @@ function NavigationLink({
28379
28617
  href,
28380
28618
  onClick,
28381
28619
  className: clsx12__default.default(
28382
- "inline-block w-full cursor-pointer rounded-r-md border-l py-1 pr-2 pl-4 text-left text-base/8 sm:text-sm/6",
28620
+ "inline-block w-full cursor-pointer rounded-r-sm border-l py-1 pr-2 pl-4 text-left text-base/8 sm:text-sm/6",
28383
28621
  "hover:border-grey-950 hover:bg-primary-800/10 hover:font-semibold hover:text-grey-950",
28384
28622
  "dark:text-grey-400 dark:hover:border-grey-400 dark:hover:text-white",
28385
28623
  href === pathname && "border-l border-primary-800 bg-primary-800/10 font-bold text-primary-800 dark:border-white dark:bg-white/20"
@@ -28481,7 +28719,7 @@ function NavigationMenuContent({
28481
28719
  "data-slot": "navigation-menu-content",
28482
28720
  className: cn(
28483
28721
  "top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto",
28484
- "group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95",
28722
+ "group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-sm group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95",
28485
28723
  className
28486
28724
  ),
28487
28725
  ...props
@@ -28497,7 +28735,7 @@ function NavigationMenuViewport({
28497
28735
  {
28498
28736
  "data-slot": "navigation-menu-viewport",
28499
28737
  className: cn(
28500
- "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
28738
+ "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-sm border bg-popover text-popover-foreground shadow data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
28501
28739
  className
28502
28740
  ),
28503
28741
  ...props
@@ -28820,7 +29058,7 @@ function NSWCard({
28820
29058
  "div",
28821
29059
  {
28822
29060
  className: cn(
28823
- "h-full rounded-md border border-(--nsw-card-border)",
29061
+ "h-full rounded-sm border border-(--nsw-card-border)",
28824
29062
  hasImage && "border-t-none rounded-t-none"
28825
29063
  ),
28826
29064
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full flex-col p-8", children: bodyChildren })
@@ -28832,7 +29070,7 @@ function NSWCard({
28832
29070
  "div",
28833
29071
  {
28834
29072
  className: cn(
28835
- "flex h-full flex-col rounded-md border border-(--nsw-card-border) p-8",
29073
+ "flex h-full flex-col rounded-sm border border-(--nsw-card-border) p-8",
28836
29074
  hasImage && "border-t-none rounded-t-none"
28837
29075
  ),
28838
29076
  children: bodyChildren
@@ -29387,7 +29625,7 @@ function ResizableHandle({
29387
29625
  className
29388
29626
  ),
29389
29627
  ...props,
29390
- children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.drag_indicator, { className: "size-2.5" }) })
29628
+ children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.drag_indicator, { className: "size-2.5" }) })
29391
29629
  }
29392
29630
  );
29393
29631
  }
@@ -29686,7 +29924,7 @@ function Sidebar({
29686
29924
  {
29687
29925
  "data-sidebar": "sidebar",
29688
29926
  "data-slot": "sidebar-inner",
29689
- className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
29927
+ className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-sm group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
29690
29928
  children
29691
29929
  }
29692
29930
  )
@@ -30145,7 +30383,7 @@ function SidebarLink({ link, pathname, onLinkClick, depth }) {
30145
30383
  const isActive = pathname === link.href;
30146
30384
  const isActiveOrHasActiveDescendant = isLinkOrDescendantActive(link, pathname);
30147
30385
  const baseLinkClasses = clsx12__default.default(
30148
- "w-full cursor-pointer rounded-r-md border-l py-1 pr-2 pl-4 text-left text-base/8 sm:text-sm/6",
30386
+ "w-full cursor-pointer rounded-r-sm border-l py-1 pr-2 pl-4 text-left text-base/8 sm:text-sm/6",
30149
30387
  "hover:border-grey-950 hover:bg-primary-800/10 hover:font-semibold hover:text-grey-950",
30150
30388
  "dark:text-grey-400 dark:hover:border-grey-400 dark:hover:text-white",
30151
30389
  isActive && "border-l border-primary-800 bg-primary-800/10 font-bold text-primary-800 dark:border-white dark:bg-white/20"
@@ -31081,7 +31319,7 @@ var TabNavigation = React5__namespace.default.forwardRef(({ className, children,
31081
31319
  motion.div,
31082
31320
  {
31083
31321
  layoutId: "hoverBackground",
31084
- className: "absolute top-2 bottom-2 transform rounded-md border border-grey-100 bg-grey-150 transition-all duration-200 ease-out dark:border-grey-700 dark:bg-grey-800",
31322
+ className: "absolute top-2 bottom-2 transform rounded-sm border border-grey-100 bg-grey-150 transition-all duration-200 ease-out dark:border-grey-700 dark:bg-grey-800",
31085
31323
  transition: {
31086
31324
  type: "spring",
31087
31325
  stiffness: 500,
@@ -31617,7 +31855,7 @@ var Tracker = React5__namespace.default.forwardRef(
31617
31855
  );
31618
31856
  Tracker.displayName = "Tracker";
31619
31857
  var buttonVariants4 = classVarianceAuthority.cva(
31620
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
31858
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-sm text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
31621
31859
  {
31622
31860
  variants: {
31623
31861
  variant: {
@@ -31736,7 +31974,7 @@ var Artifact = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
31736
31974
  "div",
31737
31975
  {
31738
31976
  className: cn(
31739
- "flex flex-col overflow-hidden rounded-lg border bg-background shadow-sm",
31977
+ "flex flex-col overflow-hidden rounded-sm border bg-background shadow-sm",
31740
31978
  className
31741
31979
  ),
31742
31980
  ...props
@@ -31982,7 +32220,7 @@ function isFunction(value) {
31982
32220
  return typeof value === "function";
31983
32221
  }
31984
32222
  var badgeVariants2 = classVarianceAuthority.cva(
31985
- "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
32223
+ "inline-flex items-center justify-center rounded-sm border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
31986
32224
  {
31987
32225
  variants: {
31988
32226
  variant: {
@@ -32167,7 +32405,7 @@ var CodeBlock = ({
32167
32405
  "div",
32168
32406
  {
32169
32407
  className: cn(
32170
- "relative w-full overflow-hidden rounded-md border bg-background text-foreground",
32408
+ "relative w-full overflow-hidden rounded-sm border bg-background text-foreground",
32171
32409
  className
32172
32410
  ),
32173
32411
  ...props,
@@ -32282,7 +32520,7 @@ function HoverCardContent2({
32282
32520
  align,
32283
32521
  sideOffset,
32284
32522
  className: cn(
32285
- "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
32523
+ "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-sm border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
32286
32524
  className
32287
32525
  ),
32288
32526
  ...props
@@ -32986,7 +33224,7 @@ function DropdownMenuContent2({
32986
33224
  "data-slot": "dropdown-menu-content",
32987
33225
  sideOffset,
32988
33226
  className: cn(
32989
- "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
33227
+ "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm border bg-popover p-1 text-popover-foreground shadow-md 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
32990
33228
  className
32991
33229
  ),
32992
33230
  ...props
@@ -33273,7 +33511,7 @@ function Textarea2({ className, ...props }) {
33273
33511
  {
33274
33512
  "data-slot": "textarea",
33275
33513
  className: cn(
33276
- "flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
33514
+ "flex field-sizing-content min-h-16 w-full rounded-sm border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
33277
33515
  className
33278
33516
  ),
33279
33517
  ...props
@@ -33293,7 +33531,7 @@ function PromptInputAttachment({ data, className, ...props }) {
33293
33531
  return /* @__PURE__ */ jsxRuntime.jsxs(
33294
33532
  "div",
33295
33533
  {
33296
- className: cn("group relative h-14 w-14 rounded-md border", className),
33534
+ className: cn("group relative h-14 w-14 rounded-sm border", className),
33297
33535
  ...props,
33298
33536
  children: [
33299
33537
  data.mediaType?.startsWith("image/") && data.url ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -33571,7 +33809,7 @@ var PromptInput = ({
33571
33809
  "form",
33572
33810
  {
33573
33811
  className: cn(
33574
- "w-full divide-y overflow-hidden rounded-xl border bg-background shadow-sm",
33812
+ "w-full divide-y overflow-hidden rounded-sm border bg-background shadow-sm",
33575
33813
  className
33576
33814
  ),
33577
33815
  onSubmit: handleSubmit,
@@ -33936,7 +34174,7 @@ var TaskItemFile = ({ children, className, ...props }) => /* @__PURE__ */ jsxRun
33936
34174
  "div",
33937
34175
  {
33938
34176
  className: cn(
33939
- "inline-flex items-center gap-1 rounded-md border bg-secondary px-1.5 py-0.5 text-xs text-foreground",
34177
+ "inline-flex items-center gap-1 rounded-sm border bg-secondary px-1.5 py-0.5 text-xs text-foreground",
33940
34178
  className
33941
34179
  ),
33942
34180
  ...props,
@@ -33971,7 +34209,7 @@ var TaskContent = ({ children, className, ...props }) => /* @__PURE__ */ jsxRunt
33971
34209
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 space-y-2 border-l-2 border-muted pl-4", children })
33972
34210
  }
33973
34211
  );
33974
- var Tool = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(Collapsible2, { className: cn("not-prose mb-4 w-full rounded-md border", className), ...props });
34212
+ var Tool = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(Collapsible2, { className: cn("not-prose mb-4 w-full rounded-sm border", className), ...props });
33975
34213
  var getStatusBadge = (status) => {
33976
34214
  const labels = {
33977
34215
  "input-streaming": "Pending",
@@ -34053,7 +34291,7 @@ function Input2({ className, type, ...props }) {
34053
34291
  type,
34054
34292
  "data-slot": "input",
34055
34293
  className: cn(
34056
- "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
34294
+ "h-9 w-full min-w-0 rounded-sm border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
34057
34295
  "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
34058
34296
  "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
34059
34297
  className
@@ -34092,7 +34330,7 @@ var WebPreview = ({
34092
34330
  return /* @__PURE__ */ jsxRuntime.jsx(WebPreviewContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
34093
34331
  "div",
34094
34332
  {
34095
- className: cn("flex size-full flex-col rounded-lg border bg-card", className),
34333
+ className: cn("flex size-full flex-col rounded-sm border bg-card", className),
34096
34334
  ...props,
34097
34335
  children
34098
34336
  }