@nswds/app 1.97.15 → 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/globals.css +275 -39
- package/dist/index.cjs +1031 -206
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1029 -205
- package/dist/index.js.map +1 -1
- package/dist/styles.css +266 -39
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -42,6 +42,8 @@ import * as LabelPrimitive from '@radix-ui/react-label';
|
|
|
42
42
|
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
43
43
|
import * as TabsPrimitives from '@radix-ui/react-tabs';
|
|
44
44
|
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
45
|
+
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
46
|
+
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
45
47
|
import { Command as Command$1 } from 'cmdk';
|
|
46
48
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
47
49
|
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
@@ -49,8 +51,6 @@ import { useReactTable, getFacetedUniqueValues, getFacetedRowModel, getSortedRow
|
|
|
49
51
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
50
52
|
import { Drawer as Drawer$1 } from 'vaul';
|
|
51
53
|
import { FormProvider, Controller, useFormContext, useFormState } from 'react-hook-form';
|
|
52
|
-
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
53
|
-
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
54
54
|
import Image2 from 'next/image';
|
|
55
55
|
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
56
56
|
import { OTPInput, OTPInputContext } from 'input-otp';
|
|
@@ -4105,7 +4105,7 @@ function AccordionContent({
|
|
|
4105
4105
|
);
|
|
4106
4106
|
}
|
|
4107
4107
|
var alertVariants = cva(
|
|
4108
|
-
"relative w-full rounded-
|
|
4108
|
+
"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",
|
|
4109
4109
|
{
|
|
4110
4110
|
variants: {
|
|
4111
4111
|
variant: {
|
|
@@ -4551,7 +4551,7 @@ var AlertDialogContent = React5.forwardRef(function AlertDialogContent2({ classN
|
|
|
4551
4551
|
ref,
|
|
4552
4552
|
"data-slot": "alert-dialog-content",
|
|
4553
4553
|
className: cn(
|
|
4554
|
-
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-
|
|
4554
|
+
"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",
|
|
4555
4555
|
"data-[state=closed]:animate-out data-[state=open]:animate-in",
|
|
4556
4556
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
4557
4557
|
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
@@ -5017,7 +5017,7 @@ var ChartTooltip = ({ active, payload, label, valueFormatter }) => {
|
|
|
5017
5017
|
{
|
|
5018
5018
|
className: cn(
|
|
5019
5019
|
// base
|
|
5020
|
-
"rounded-
|
|
5020
|
+
"rounded-sm border text-sm shadow-md",
|
|
5021
5021
|
// border color
|
|
5022
5022
|
"border-gray-200 dark:border-gray-800",
|
|
5023
5023
|
// background color
|
|
@@ -6292,7 +6292,7 @@ var ChartTooltip2 = ({ active, payload, label, valueFormatter }) => {
|
|
|
6292
6292
|
{
|
|
6293
6293
|
className: cn(
|
|
6294
6294
|
// base
|
|
6295
|
-
"rounded-
|
|
6295
|
+
"rounded-sm border text-sm shadow-md",
|
|
6296
6296
|
// border color
|
|
6297
6297
|
"border-gray-200 dark:border-gray-800",
|
|
6298
6298
|
// background color
|
|
@@ -7386,7 +7386,7 @@ function DropdownMenuSubContent({
|
|
|
7386
7386
|
// Base
|
|
7387
7387
|
""
|
|
7388
7388
|
],
|
|
7389
|
-
"z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-
|
|
7389
|
+
"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",
|
|
7390
7390
|
className
|
|
7391
7391
|
),
|
|
7392
7392
|
...props
|
|
@@ -7478,7 +7478,7 @@ function Breadcrumbs({
|
|
|
7478
7478
|
] }) });
|
|
7479
7479
|
}
|
|
7480
7480
|
var buttonVariants2 = cva(
|
|
7481
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-
|
|
7481
|
+
"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",
|
|
7482
7482
|
{
|
|
7483
7483
|
variants: {
|
|
7484
7484
|
variant: {
|
|
@@ -7572,7 +7572,7 @@ function Calendar({
|
|
|
7572
7572
|
defaultClassNames.dropdowns
|
|
7573
7573
|
),
|
|
7574
7574
|
dropdown_root: cn(
|
|
7575
|
-
"relative
|
|
7575
|
+
"relative rounded-sm border border-input shadow-xs has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]",
|
|
7576
7576
|
defaultClassNames.dropdown_root
|
|
7577
7577
|
),
|
|
7578
7578
|
dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
|
|
@@ -7658,7 +7658,7 @@ function CalendarDayButton({
|
|
|
7658
7658
|
"data-range-end": modifiers.range_end,
|
|
7659
7659
|
"data-range-middle": modifiers.range_middle,
|
|
7660
7660
|
className: cn(
|
|
7661
|
-
"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-
|
|
7661
|
+
"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",
|
|
7662
7662
|
defaultClassNames.day,
|
|
7663
7663
|
className
|
|
7664
7664
|
),
|
|
@@ -7672,7 +7672,7 @@ function Card({ className, ...props }) {
|
|
|
7672
7672
|
{
|
|
7673
7673
|
"data-slot": "card",
|
|
7674
7674
|
className: cn(
|
|
7675
|
-
"flex flex-col gap-6 rounded-
|
|
7675
|
+
"flex flex-col gap-6 rounded-sm border border-grey-200 bg-card py-6 text-card-foreground dark:border-grey-700",
|
|
7676
7676
|
className
|
|
7677
7677
|
),
|
|
7678
7678
|
...props
|
|
@@ -8235,7 +8235,7 @@ function ChartTooltipContent({
|
|
|
8235
8235
|
"div",
|
|
8236
8236
|
{
|
|
8237
8237
|
className: cn(
|
|
8238
|
-
"grid min-w-[8rem] items-start gap-1.5 rounded-
|
|
8238
|
+
"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",
|
|
8239
8239
|
className
|
|
8240
8240
|
),
|
|
8241
8241
|
children: [
|
|
@@ -8256,7 +8256,7 @@ function ChartTooltipContent({
|
|
|
8256
8256
|
"div",
|
|
8257
8257
|
{
|
|
8258
8258
|
className: cn(
|
|
8259
|
-
"shrink-0 rounded-
|
|
8259
|
+
"shrink-0 rounded-sm border-(--color-border) bg-(--color-bg)",
|
|
8260
8260
|
{
|
|
8261
8261
|
"h-2.5 w-2.5": indicator === "dot",
|
|
8262
8262
|
"w-1": indicator === "line",
|
|
@@ -8363,7 +8363,7 @@ function Checkbox({ className, ...props }) {
|
|
|
8363
8363
|
"data-slot": "checkbox",
|
|
8364
8364
|
className: cn(
|
|
8365
8365
|
// Base styles
|
|
8366
|
-
"peer flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-
|
|
8366
|
+
"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",
|
|
8367
8367
|
// Dark mode styles
|
|
8368
8368
|
"dark:bg-input/30",
|
|
8369
8369
|
// Checked styles
|
|
@@ -13525,7 +13525,7 @@ function PreWithCopy(props) {
|
|
|
13525
13525
|
/* @__PURE__ */ jsxs(
|
|
13526
13526
|
"button",
|
|
13527
13527
|
{
|
|
13528
|
-
className: "absolute top-2 right-2 m-0.5 inline-flex h-8 items-center justify-center rounded-
|
|
13528
|
+
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",
|
|
13529
13529
|
"aria-label": "Copy code to clipboard",
|
|
13530
13530
|
onClick: handleCopy,
|
|
13531
13531
|
children: [
|
|
@@ -13591,7 +13591,7 @@ function PopoverContent({
|
|
|
13591
13591
|
className: cn(
|
|
13592
13592
|
[
|
|
13593
13593
|
// Base
|
|
13594
|
-
"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-
|
|
13594
|
+
"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-sm border bg-background p-4 text-foreground shadow-md outline-hidden",
|
|
13595
13595
|
// Open
|
|
13596
13596
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
13597
13597
|
// Closed
|
|
@@ -13968,7 +13968,7 @@ function SegmentedControlTrigger({
|
|
|
13968
13968
|
{
|
|
13969
13969
|
"data-slot": "segmented-control-trigger",
|
|
13970
13970
|
className: cn(
|
|
13971
|
-
"inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-
|
|
13971
|
+
"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",
|
|
13972
13972
|
className
|
|
13973
13973
|
),
|
|
13974
13974
|
...props
|
|
@@ -13994,7 +13994,7 @@ function ThemeSelectorLoading() {
|
|
|
13994
13994
|
] }),
|
|
13995
13995
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
13996
13996
|
/* @__PURE__ */ jsx("div", { className: "h-5 w-20 rounded bg-grey-200" }),
|
|
13997
|
-
/* @__PURE__ */ jsxs("div", { className: "gap-3 rounded-
|
|
13997
|
+
/* @__PURE__ */ jsxs("div", { className: "gap-3 rounded-sm border border-muted bg-muted/30 p-3", children: [
|
|
13998
13998
|
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex min-w-0 items-center justify-between", children: [
|
|
13999
13999
|
/* @__PURE__ */ jsx("div", { className: "h-4 w-48 rounded bg-grey-200" }),
|
|
14000
14000
|
/* @__PURE__ */ jsx("div", { className: "h-8 w-8 rounded bg-grey-200" })
|
|
@@ -14174,7 +14174,7 @@ function ThemeSelectorContent({
|
|
|
14174
14174
|
] }),
|
|
14175
14175
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
14176
14176
|
/* @__PURE__ */ jsx("h3", { className: "font-medium", children: "Share Theme" }),
|
|
14177
|
-
/* @__PURE__ */ jsxs("div", { className: "gap-3 rounded-
|
|
14177
|
+
/* @__PURE__ */ jsxs("div", { className: "gap-3 rounded-sm border border-muted bg-muted/30 p-3", children: [
|
|
14178
14178
|
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex min-w-0 items-center justify-between", children: [
|
|
14179
14179
|
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Copy this URL to share your theme selection:" }),
|
|
14180
14180
|
/* @__PURE__ */ jsxs(
|
|
@@ -14192,7 +14192,7 @@ function ThemeSelectorContent({
|
|
|
14192
14192
|
}
|
|
14193
14193
|
)
|
|
14194
14194
|
] }),
|
|
14195
|
-
/* @__PURE__ */ 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 })
|
|
14195
|
+
/* @__PURE__ */ 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 })
|
|
14196
14196
|
] })
|
|
14197
14197
|
] })
|
|
14198
14198
|
] });
|
|
@@ -14244,7 +14244,7 @@ function TooltipContent({
|
|
|
14244
14244
|
}
|
|
14245
14245
|
function CodeDemoLoading() {
|
|
14246
14246
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8 animate-pulse", children: [
|
|
14247
|
-
/* @__PURE__ */ jsx("div", { className: "w-full rounded-t-
|
|
14247
|
+
/* @__PURE__ */ 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__ */ jsxs("div", { className: "grid grid-cols-2 sm:grid-cols-3", children: [
|
|
14248
14248
|
/* @__PURE__ */ jsx("div", { className: "h-10 w-32 rounded bg-grey-200 dark:bg-grey-600" }),
|
|
14249
14249
|
/* @__PURE__ */ jsx("div", { className: "h-10 w-32 rounded bg-grey-200 dark:bg-grey-600" }),
|
|
14250
14250
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-end gap-3", children: [
|
|
@@ -14255,7 +14255,7 @@ function CodeDemoLoading() {
|
|
|
14255
14255
|
] }) }),
|
|
14256
14256
|
/* @__PURE__ */ 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__ */ jsx("div", { className: "h-64 w-full rounded bg-grey-200 dark:bg-grey-600" }) }),
|
|
14257
14257
|
/* @__PURE__ */ jsxs("div", { className: "border border-grey-200 dark:border-grey-600", children: [
|
|
14258
|
-
/* @__PURE__ */ jsx("div", { className: "flex w-full rounded-t-
|
|
14258
|
+
/* @__PURE__ */ 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__ */ jsx("div", { className: "h-8 w-24 rounded bg-grey-200 dark:bg-grey-600" }) }),
|
|
14259
14259
|
/* @__PURE__ */ jsx("div", { className: "h-48 bg-grey-100 dark:bg-grey-800" })
|
|
14260
14260
|
] })
|
|
14261
14261
|
] });
|
|
@@ -14439,7 +14439,7 @@ function CodeDemoContent({ data, showCode = true, controls = defaultControls })
|
|
|
14439
14439
|
}
|
|
14440
14440
|
}, [themeCategory, primaryColor, accentColor, greyColor, isThemeInitialized]);
|
|
14441
14441
|
return /* @__PURE__ */ jsxs("div", { className: "mt-8", children: [
|
|
14442
|
-
/* @__PURE__ */ jsx("div", { className: "w-full rounded-t-
|
|
14442
|
+
/* @__PURE__ */ 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__ */ jsxs("div", { className: "relative flex w-full items-center", children: [
|
|
14443
14443
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
14444
14444
|
data.githubSlug && /* @__PURE__ */ jsx(EditOnGithubButton, { githubSlug: data.githubSlug }),
|
|
14445
14445
|
data.figmaSlug && /* @__PURE__ */ jsx(OpenInFigmaButton, { figmaSlug: data.figmaSlug })
|
|
@@ -14498,7 +14498,7 @@ function CodeDemoContent({ data, showCode = true, controls = defaultControls })
|
|
|
14498
14498
|
shouldExpand && "pb-[41px]"
|
|
14499
14499
|
),
|
|
14500
14500
|
children: [
|
|
14501
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full rounded-t-
|
|
14501
|
+
/* @__PURE__ */ 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: [
|
|
14502
14502
|
/* @__PURE__ */ jsx(Tabs, { tabIndex, items: codeItems, onSelect: setTabIndex }),
|
|
14503
14503
|
variants.length > 0 && /* @__PURE__ */ jsxs(Select, { onValueChange: (value) => handleSelectVariant(value), children: [
|
|
14504
14504
|
/* @__PURE__ */ jsx(SelectTrigger, { size: "sm", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a variant" }) }),
|
|
@@ -14918,6 +14918,972 @@ function ColorCard({ name, token, hex: hex2, rgb: rgb2, hsl, oklch: oklch2, form
|
|
|
14918
14918
|
] })
|
|
14919
14919
|
] }) });
|
|
14920
14920
|
}
|
|
14921
|
+
var recommendedBackgroundTones = [50, 100, 200, 400, 600, 800];
|
|
14922
|
+
var AAA_NORMAL_TEXT_RATIO = 7;
|
|
14923
|
+
var MIN_DARK_BACKGROUND_TONE_FOR_WHITE = 600;
|
|
14924
|
+
var WHITE_FOREGROUND = {
|
|
14925
|
+
token: "white",
|
|
14926
|
+
name: "White",
|
|
14927
|
+
hex: "#ffffff",
|
|
14928
|
+
rgb: "rgb(255, 255, 255)",
|
|
14929
|
+
hsl: "hsl(0, 0%, 100%)",
|
|
14930
|
+
oklch: "oklch(1 0 0)",
|
|
14931
|
+
tone: 0
|
|
14932
|
+
};
|
|
14933
|
+
function extractTone(token) {
|
|
14934
|
+
const match = token.match(/-(\d+)$/);
|
|
14935
|
+
return match ? Number.parseInt(match[1], 10) : 0;
|
|
14936
|
+
}
|
|
14937
|
+
function formatFamilyLabel(name, key) {
|
|
14938
|
+
if (key === "grey") return "Grey";
|
|
14939
|
+
return name.replace(/^NSW Aboriginal\s+/i, "").replace(/^NSW\s+/i, "").trim();
|
|
14940
|
+
}
|
|
14941
|
+
function toPairingColor(color2) {
|
|
14942
|
+
return {
|
|
14943
|
+
...color2,
|
|
14944
|
+
tone: extractTone(color2.token)
|
|
14945
|
+
};
|
|
14946
|
+
}
|
|
14947
|
+
function getPreferredForegroundTone(backgroundTone) {
|
|
14948
|
+
if (backgroundTone <= 200) return 800;
|
|
14949
|
+
if (backgroundTone <= 500) return 700;
|
|
14950
|
+
if (backgroundTone <= 650) return 250;
|
|
14951
|
+
return 200;
|
|
14952
|
+
}
|
|
14953
|
+
function getPairRating(contrastRatio) {
|
|
14954
|
+
if (contrastRatio >= 7) return "AAA";
|
|
14955
|
+
if (contrastRatio >= 4.5) return "AA";
|
|
14956
|
+
return "AA Large";
|
|
14957
|
+
}
|
|
14958
|
+
function isPreferredDirection(backgroundTone, foregroundTone, preferredForegroundTone) {
|
|
14959
|
+
if (preferredForegroundTone < backgroundTone) {
|
|
14960
|
+
return foregroundTone < backgroundTone;
|
|
14961
|
+
}
|
|
14962
|
+
return foregroundTone > backgroundTone;
|
|
14963
|
+
}
|
|
14964
|
+
function buildPair(background, foreground) {
|
|
14965
|
+
const contrastRatio = culori.wcagContrast(background.hex, foreground.hex);
|
|
14966
|
+
return {
|
|
14967
|
+
id: `${background.token}:${foreground.token}`,
|
|
14968
|
+
background,
|
|
14969
|
+
foreground,
|
|
14970
|
+
contrastRatio,
|
|
14971
|
+
passes: {
|
|
14972
|
+
aaLarge: contrastRatio >= 3,
|
|
14973
|
+
aaText: contrastRatio >= 4.5,
|
|
14974
|
+
aaaLarge: contrastRatio >= 4.5,
|
|
14975
|
+
aaaText: contrastRatio >= 7
|
|
14976
|
+
},
|
|
14977
|
+
rating: getPairRating(contrastRatio)
|
|
14978
|
+
};
|
|
14979
|
+
}
|
|
14980
|
+
function pickForeground(colorsToPair, background, minimumRatio) {
|
|
14981
|
+
const preferredForegroundTone = getPreferredForegroundTone(background.tone);
|
|
14982
|
+
const passingCandidates = colorsToPair.filter((color2) => color2.token !== background.token).map((color2) => buildPair(background, color2)).filter((pair) => pair.contrastRatio >= minimumRatio);
|
|
14983
|
+
if (passingCandidates.length === 0) return null;
|
|
14984
|
+
const preferredCandidates = passingCandidates.filter(
|
|
14985
|
+
(pair) => isPreferredDirection(background.tone, pair.foreground.tone, preferredForegroundTone)
|
|
14986
|
+
);
|
|
14987
|
+
const candidates = preferredCandidates.length > 0 ? preferredCandidates : passingCandidates;
|
|
14988
|
+
return candidates.sort((left, right) => {
|
|
14989
|
+
const leftTargetDelta = Math.abs(left.foreground.tone - preferredForegroundTone);
|
|
14990
|
+
const rightTargetDelta = Math.abs(right.foreground.tone - preferredForegroundTone);
|
|
14991
|
+
if (leftTargetDelta !== rightTargetDelta) {
|
|
14992
|
+
return leftTargetDelta - rightTargetDelta;
|
|
14993
|
+
}
|
|
14994
|
+
const leftToneGap = Math.abs(left.foreground.tone - background.tone);
|
|
14995
|
+
const rightToneGap = Math.abs(right.foreground.tone - background.tone);
|
|
14996
|
+
if (leftToneGap !== rightToneGap) {
|
|
14997
|
+
return rightToneGap - leftToneGap;
|
|
14998
|
+
}
|
|
14999
|
+
return right.contrastRatio - left.contrastRatio;
|
|
15000
|
+
})[0];
|
|
15001
|
+
}
|
|
15002
|
+
function buildRecommendedPairs(colorsToPair, minimumRatio) {
|
|
15003
|
+
const backgrounds = recommendedBackgroundTones.map((tone) => colorsToPair.find((color2) => color2.tone === tone)).filter((color2) => Boolean(color2));
|
|
15004
|
+
const recommendedPairs = [];
|
|
15005
|
+
for (const background of backgrounds) {
|
|
15006
|
+
const pair = pickForeground(colorsToPair, background, minimumRatio);
|
|
15007
|
+
const whitePair = background.tone >= MIN_DARK_BACKGROUND_TONE_FOR_WHITE ? buildPair(background, WHITE_FOREGROUND) : null;
|
|
15008
|
+
if (pair && !recommendedPairs.some((item) => item.id === pair.id)) {
|
|
15009
|
+
recommendedPairs.push(pair);
|
|
15010
|
+
}
|
|
15011
|
+
if (whitePair && whitePair.contrastRatio >= minimumRatio && !recommendedPairs.some((item) => item.id === whitePair.id)) {
|
|
15012
|
+
recommendedPairs.push(whitePair);
|
|
15013
|
+
}
|
|
15014
|
+
}
|
|
15015
|
+
return recommendedPairs;
|
|
15016
|
+
}
|
|
15017
|
+
function buildRecommendedCollections(minimumRatio) {
|
|
15018
|
+
return {
|
|
15019
|
+
brand: Object.entries(colors.brand).map(([key, palette]) => {
|
|
15020
|
+
const scale2 = palette.colors.map(toPairingColor);
|
|
15021
|
+
return {
|
|
15022
|
+
key,
|
|
15023
|
+
label: formatFamilyLabel(palette.name, key),
|
|
15024
|
+
paletteName: palette.name,
|
|
15025
|
+
colors: scale2,
|
|
15026
|
+
recommendedPairs: buildRecommendedPairs(scale2, minimumRatio)
|
|
15027
|
+
};
|
|
15028
|
+
}),
|
|
15029
|
+
aboriginal: Object.entries(colors.aboriginal).map(([key, palette]) => {
|
|
15030
|
+
const scale2 = palette.colors.map(toPairingColor);
|
|
15031
|
+
return {
|
|
15032
|
+
key,
|
|
15033
|
+
label: formatFamilyLabel(palette.name, key),
|
|
15034
|
+
paletteName: palette.name,
|
|
15035
|
+
colors: scale2,
|
|
15036
|
+
recommendedPairs: buildRecommendedPairs(scale2, minimumRatio)
|
|
15037
|
+
};
|
|
15038
|
+
})
|
|
15039
|
+
};
|
|
15040
|
+
}
|
|
15041
|
+
var recommendedAaaPairingCollections = buildRecommendedCollections(AAA_NORMAL_TEXT_RATIO);
|
|
15042
|
+
function getWhiteForegroundPair(background) {
|
|
15043
|
+
return buildPair(background, WHITE_FOREGROUND);
|
|
15044
|
+
}
|
|
15045
|
+
function supportsWhiteForegroundPreview(background) {
|
|
15046
|
+
return background.tone >= MIN_DARK_BACKGROUND_TONE_FOR_WHITE;
|
|
15047
|
+
}
|
|
15048
|
+
function getPairingColorValue(color2, format) {
|
|
15049
|
+
return getColorValue(color2, format);
|
|
15050
|
+
}
|
|
15051
|
+
var styles3 = {
|
|
15052
|
+
base: [
|
|
15053
|
+
// Base
|
|
15054
|
+
"inline-flex items-center justify-center gap-2 rounded-sm text-sm font-medium bg-transparent transition-all whitespace-nowrap cursor-pointer border-(--toggle-border) [--toggle-border:var(--color-grey-200)] text-grey-800",
|
|
15055
|
+
// States
|
|
15056
|
+
"data-[state=on]:bg-grey-100 data-[state=on]:text-grey-850",
|
|
15057
|
+
// Hover
|
|
15058
|
+
"hover:bg-grey-100 hover:text-grey-850",
|
|
15059
|
+
// Focus
|
|
15060
|
+
"focus:outline focus:outline-2 focus:outline-offset-0 focus:outline-(--toggle-border)",
|
|
15061
|
+
// Dark mode
|
|
15062
|
+
"dark:text-white",
|
|
15063
|
+
// Dark mode states
|
|
15064
|
+
"dark:data-[state=on]:bg-white/10 dark:data-[state=on]:text-white",
|
|
15065
|
+
// Dark mode hover
|
|
15066
|
+
"dark:hover:bg-white/10 dark:hover:text-white",
|
|
15067
|
+
// Disabled
|
|
15068
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
15069
|
+
// Icon
|
|
15070
|
+
'[&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 [&_svg]:shrink-0',
|
|
15071
|
+
// Aria invalid
|
|
15072
|
+
"aria-invalid:ring-destructive/20 aria-invalid:border-destructive",
|
|
15073
|
+
// Aria invalid dark mode
|
|
15074
|
+
"dark:aria-invalid:ring-destructive/40"
|
|
15075
|
+
],
|
|
15076
|
+
outline: [
|
|
15077
|
+
// Base
|
|
15078
|
+
"text-grey-800 border [--toggle-border:var(--color-grey-300)]",
|
|
15079
|
+
// States
|
|
15080
|
+
"hover:[--toggle-border:var(--color-grey-400)]",
|
|
15081
|
+
// Dark mode
|
|
15082
|
+
"dark:[--toggle-border:white]/40",
|
|
15083
|
+
// Dark mode states
|
|
15084
|
+
"dark:hover:[--toggle-border:white]/50",
|
|
15085
|
+
// Data on
|
|
15086
|
+
"data-[state=on]:bg-primary-800/10"
|
|
15087
|
+
]
|
|
15088
|
+
};
|
|
15089
|
+
var toggleVariants = cva(styles3.base, {
|
|
15090
|
+
variants: {
|
|
15091
|
+
variant: {
|
|
15092
|
+
ghost: "",
|
|
15093
|
+
outline: clsx12(styles3.outline)
|
|
15094
|
+
},
|
|
15095
|
+
size: {
|
|
15096
|
+
default: "h-9 px-2 min-w-9",
|
|
15097
|
+
sm: "h-8 px-1.5 min-w-8",
|
|
15098
|
+
lg: "h-10 px-2.5 min-w-10"
|
|
15099
|
+
}
|
|
15100
|
+
},
|
|
15101
|
+
defaultVariants: {
|
|
15102
|
+
variant: "ghost",
|
|
15103
|
+
size: "default"
|
|
15104
|
+
}
|
|
15105
|
+
});
|
|
15106
|
+
function Toggle({
|
|
15107
|
+
className,
|
|
15108
|
+
variant,
|
|
15109
|
+
size,
|
|
15110
|
+
...props
|
|
15111
|
+
}) {
|
|
15112
|
+
return /* @__PURE__ */ jsx(
|
|
15113
|
+
TogglePrimitive.Root,
|
|
15114
|
+
{
|
|
15115
|
+
"data-slot": "toggle",
|
|
15116
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
15117
|
+
...props
|
|
15118
|
+
}
|
|
15119
|
+
);
|
|
15120
|
+
}
|
|
15121
|
+
var ToggleGroupContext = React5.createContext({
|
|
15122
|
+
size: "default",
|
|
15123
|
+
variant: "ghost"
|
|
15124
|
+
});
|
|
15125
|
+
function ToggleGroup({
|
|
15126
|
+
className,
|
|
15127
|
+
variant,
|
|
15128
|
+
size,
|
|
15129
|
+
children,
|
|
15130
|
+
...props
|
|
15131
|
+
}) {
|
|
15132
|
+
return /* @__PURE__ */ jsx(
|
|
15133
|
+
ToggleGroupPrimitive.Root,
|
|
15134
|
+
{
|
|
15135
|
+
"data-slot": "toggle-group",
|
|
15136
|
+
"data-variant": variant,
|
|
15137
|
+
"data-size": size,
|
|
15138
|
+
className: cn(
|
|
15139
|
+
"group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs",
|
|
15140
|
+
className
|
|
15141
|
+
),
|
|
15142
|
+
...props,
|
|
15143
|
+
children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
15144
|
+
}
|
|
15145
|
+
);
|
|
15146
|
+
}
|
|
15147
|
+
function ToggleGroupItem({
|
|
15148
|
+
className,
|
|
15149
|
+
children,
|
|
15150
|
+
variant,
|
|
15151
|
+
size,
|
|
15152
|
+
...props
|
|
15153
|
+
}) {
|
|
15154
|
+
const context = React5.useContext(ToggleGroupContext);
|
|
15155
|
+
return /* @__PURE__ */ jsx(
|
|
15156
|
+
ToggleGroupPrimitive.Item,
|
|
15157
|
+
{
|
|
15158
|
+
"data-slot": "toggle-group-item",
|
|
15159
|
+
"data-variant": context.variant || variant,
|
|
15160
|
+
"data-size": context.size || size,
|
|
15161
|
+
className: cn(
|
|
15162
|
+
toggleVariants({
|
|
15163
|
+
variant: context.variant || variant,
|
|
15164
|
+
size: context.size || size
|
|
15165
|
+
}),
|
|
15166
|
+
"min-w-0 shrink-0 rounded-none shadow-none first:rounded-l-sm last:rounded-r-sm focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l",
|
|
15167
|
+
className
|
|
15168
|
+
),
|
|
15169
|
+
...props,
|
|
15170
|
+
children
|
|
15171
|
+
}
|
|
15172
|
+
);
|
|
15173
|
+
}
|
|
15174
|
+
function FormatToggle({ format, setFormat }) {
|
|
15175
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
15176
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Format:" }),
|
|
15177
|
+
/* @__PURE__ */ jsxs(
|
|
15178
|
+
ToggleGroup,
|
|
15179
|
+
{
|
|
15180
|
+
type: "single",
|
|
15181
|
+
value: format,
|
|
15182
|
+
onValueChange: (value) => value && setFormat(value),
|
|
15183
|
+
children: [
|
|
15184
|
+
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "hex", "aria-label": "HEX format", children: "HEX" }),
|
|
15185
|
+
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "rgb", "aria-label": "RGB format", children: "RGB" }),
|
|
15186
|
+
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "hsl", "aria-label": "HSL format", children: "HSL" }),
|
|
15187
|
+
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "oklch", "aria-label": "OKLCH format", children: "OKLCH" })
|
|
15188
|
+
]
|
|
15189
|
+
}
|
|
15190
|
+
)
|
|
15191
|
+
] });
|
|
15192
|
+
}
|
|
15193
|
+
function getPreferredFamilyKey(families) {
|
|
15194
|
+
return families.find((family) => family.key === "green")?.key ?? families[0]?.key ?? "";
|
|
15195
|
+
}
|
|
15196
|
+
function getDefaultPair(family) {
|
|
15197
|
+
if (!family || family.recommendedPairs.length === 0) return null;
|
|
15198
|
+
return family.recommendedPairs.reduce((bestPair, pair) => {
|
|
15199
|
+
const bestDelta = Math.abs(bestPair.background.tone - 600);
|
|
15200
|
+
const currentDelta = Math.abs(pair.background.tone - 600);
|
|
15201
|
+
return currentDelta < bestDelta ? pair : bestPair;
|
|
15202
|
+
}, family.recommendedPairs[0]);
|
|
15203
|
+
}
|
|
15204
|
+
function getFamilySwatchColor(family) {
|
|
15205
|
+
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";
|
|
15206
|
+
}
|
|
15207
|
+
function getToneFromToken(token) {
|
|
15208
|
+
if (!token) return null;
|
|
15209
|
+
const match = token.match(/-(\d+)$/);
|
|
15210
|
+
return match ? Number.parseInt(match[1], 10) : null;
|
|
15211
|
+
}
|
|
15212
|
+
function isApprovedBackgroundTone(color2) {
|
|
15213
|
+
return recommendedBackgroundTones.includes(
|
|
15214
|
+
color2.tone
|
|
15215
|
+
);
|
|
15216
|
+
}
|
|
15217
|
+
function getBackgroundOptions(family) {
|
|
15218
|
+
return family?.colors.filter(isApprovedBackgroundTone) ?? [];
|
|
15219
|
+
}
|
|
15220
|
+
function isWhiteForegroundPair(pair) {
|
|
15221
|
+
return pair.foreground.token === "white";
|
|
15222
|
+
}
|
|
15223
|
+
function getRecommendedPairForBackground(family, backgroundToken, preferredPairId) {
|
|
15224
|
+
if (!family) return null;
|
|
15225
|
+
const backgroundPairs = family.recommendedPairs.filter(
|
|
15226
|
+
(pair) => pair.background.token === backgroundToken
|
|
15227
|
+
);
|
|
15228
|
+
if (backgroundPairs.length === 0) return null;
|
|
15229
|
+
if (preferredPairId) {
|
|
15230
|
+
const preferredPair = backgroundPairs.find((pair) => pair.id === preferredPairId);
|
|
15231
|
+
if (preferredPair) {
|
|
15232
|
+
return preferredPair;
|
|
15233
|
+
}
|
|
15234
|
+
}
|
|
15235
|
+
return backgroundPairs.find((pair) => !isWhiteForegroundPair(pair)) ?? backgroundPairs[0];
|
|
15236
|
+
}
|
|
15237
|
+
function getFallbackBackgroundToken(family, preferredTone) {
|
|
15238
|
+
const backgroundOptions = getBackgroundOptions(family);
|
|
15239
|
+
if (preferredTone) {
|
|
15240
|
+
const preferredBackground = backgroundOptions.find((color2) => color2.tone === preferredTone);
|
|
15241
|
+
if (preferredBackground) {
|
|
15242
|
+
return preferredBackground.token;
|
|
15243
|
+
}
|
|
15244
|
+
}
|
|
15245
|
+
return getDefaultPair(family)?.background.token ?? backgroundOptions[0]?.token ?? "";
|
|
15246
|
+
}
|
|
15247
|
+
function ColorPairingToolLoading() {
|
|
15248
|
+
return /* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-6", children: [
|
|
15249
|
+
/* @__PURE__ */ jsx("div", { className: "h-40 rounded-sm border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" }),
|
|
15250
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-6 xl:grid-cols-[minmax(0,1.3fr)_minmax(20rem,0.9fr)]", children: [
|
|
15251
|
+
/* @__PURE__ */ jsx("div", { className: "h-96 rounded-sm border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" }),
|
|
15252
|
+
/* @__PURE__ */ jsx("div", { className: "h-96 rounded-sm border border-grey-200 bg-grey-50 dark:border-grey-700 dark:bg-grey-900" })
|
|
15253
|
+
] })
|
|
15254
|
+
] });
|
|
15255
|
+
}
|
|
15256
|
+
function getInitialPairingState(searchParams) {
|
|
15257
|
+
const paletteParam = searchParams.get("palette");
|
|
15258
|
+
const familyParam = searchParams.get("family");
|
|
15259
|
+
const pairParam = searchParams.get("pair");
|
|
15260
|
+
const backgroundParam = searchParams.get("background");
|
|
15261
|
+
const themeCategory = paletteParam === "brand" || paletteParam === "aboriginal" ? paletteParam : "brand";
|
|
15262
|
+
const families = recommendedAaaPairingCollections[themeCategory];
|
|
15263
|
+
const familyKey = families.some((family) => family.key === familyParam) ? familyParam : getPreferredFamilyKey(families);
|
|
15264
|
+
const activeFamily = families.find((family) => family.key === familyKey) ?? families[0];
|
|
15265
|
+
const backgroundOptions = getBackgroundOptions(activeFamily);
|
|
15266
|
+
const pairBackgroundToken = activeFamily?.recommendedPairs.find((pair) => pair.id === pairParam)?.background.token ?? null;
|
|
15267
|
+
const selectedBackgroundToken = backgroundOptions.some((color2) => color2.token === backgroundParam) ? backgroundParam : getFallbackBackgroundToken(
|
|
15268
|
+
activeFamily,
|
|
15269
|
+
getToneFromToken(backgroundParam ?? pairBackgroundToken)
|
|
15270
|
+
);
|
|
15271
|
+
const selectedPairId = getRecommendedPairForBackground(activeFamily, selectedBackgroundToken, pairParam)?.id ?? "";
|
|
15272
|
+
return { familyKey, selectedBackgroundToken, selectedPairId, themeCategory };
|
|
15273
|
+
}
|
|
15274
|
+
function PairPreview({
|
|
15275
|
+
family,
|
|
15276
|
+
isRecommended,
|
|
15277
|
+
pair
|
|
15278
|
+
}) {
|
|
15279
|
+
const whiteForeground = isWhiteForegroundPair(pair);
|
|
15280
|
+
const statusLabel = isRecommended ? "Pass" : pair.passes.aaaLarge ? "Large text only" : "Example only";
|
|
15281
|
+
const StatusIcon = isRecommended ? Icons.check : Icons.info;
|
|
15282
|
+
return /* @__PURE__ */ jsx(Card, { className: "gap-0 overflow-hidden py-0", children: /* @__PURE__ */ jsx(
|
|
15283
|
+
"div",
|
|
15284
|
+
{
|
|
15285
|
+
className: "p-6 sm:min-h-[26rem] sm:p-8",
|
|
15286
|
+
style: {
|
|
15287
|
+
backgroundColor: pair.background.hex,
|
|
15288
|
+
color: pair.foreground.hex
|
|
15289
|
+
},
|
|
15290
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-[22rem] flex-col justify-between gap-8", children: [
|
|
15291
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
15292
|
+
/* @__PURE__ */ jsxs(
|
|
15293
|
+
"span",
|
|
15294
|
+
{
|
|
15295
|
+
className: "inline-flex items-center gap-2 rounded-full border px-3 py-1 text-[0.72rem] font-semibold tracking-[0.16em] uppercase",
|
|
15296
|
+
style: {
|
|
15297
|
+
borderColor: pair.foreground.hex,
|
|
15298
|
+
backgroundColor: pair.foreground.hex,
|
|
15299
|
+
color: pair.background.hex
|
|
15300
|
+
},
|
|
15301
|
+
children: [
|
|
15302
|
+
/* @__PURE__ */ jsx(Icons.palette, { "data-slot": "icon", className: "size-4" }),
|
|
15303
|
+
family.label
|
|
15304
|
+
]
|
|
15305
|
+
}
|
|
15306
|
+
),
|
|
15307
|
+
/* @__PURE__ */ jsxs(
|
|
15308
|
+
"span",
|
|
15309
|
+
{
|
|
15310
|
+
className: "inline-flex rounded-full border px-3 py-1 text-[0.72rem] font-semibold tracking-[0.16em] uppercase",
|
|
15311
|
+
style: {
|
|
15312
|
+
borderColor: pair.foreground.hex
|
|
15313
|
+
},
|
|
15314
|
+
children: [
|
|
15315
|
+
pair.rating,
|
|
15316
|
+
" ",
|
|
15317
|
+
pair.contrastRatio.toFixed(2),
|
|
15318
|
+
":1"
|
|
15319
|
+
]
|
|
15320
|
+
}
|
|
15321
|
+
)
|
|
15322
|
+
] }),
|
|
15323
|
+
/* @__PURE__ */ jsxs("div", { className: "max-w-xl space-y-4 pb-12 sm:pb-16", children: [
|
|
15324
|
+
/* @__PURE__ */ 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" }),
|
|
15325
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
15326
|
+
/* @__PURE__ */ jsx("h3", { className: "max-w-lg text-4xl leading-none font-bold text-current sm:text-5xl", children: "Pair colour with confidence." }),
|
|
15327
|
+
/* @__PURE__ */ 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." })
|
|
15328
|
+
] })
|
|
15329
|
+
] }),
|
|
15330
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
15331
|
+
/* @__PURE__ */ jsxs(
|
|
15332
|
+
"span",
|
|
15333
|
+
{
|
|
15334
|
+
className: "inline-flex items-center gap-2 rounded-full px-4 py-2 text-sm font-semibold",
|
|
15335
|
+
style: {
|
|
15336
|
+
backgroundColor: pair.foreground.hex,
|
|
15337
|
+
color: pair.background.hex
|
|
15338
|
+
},
|
|
15339
|
+
children: [
|
|
15340
|
+
statusLabel,
|
|
15341
|
+
/* @__PURE__ */ jsx(StatusIcon, { "data-slot": "icon", className: "size-4" })
|
|
15342
|
+
]
|
|
15343
|
+
}
|
|
15344
|
+
),
|
|
15345
|
+
/* @__PURE__ */ jsxs(
|
|
15346
|
+
"span",
|
|
15347
|
+
{
|
|
15348
|
+
className: "inline-flex rounded-full border px-4 py-2 text-sm",
|
|
15349
|
+
style: {
|
|
15350
|
+
borderColor: pair.foreground.hex
|
|
15351
|
+
},
|
|
15352
|
+
children: [
|
|
15353
|
+
pair.background.token,
|
|
15354
|
+
" / ",
|
|
15355
|
+
pair.foreground.token
|
|
15356
|
+
]
|
|
15357
|
+
}
|
|
15358
|
+
)
|
|
15359
|
+
] })
|
|
15360
|
+
] })
|
|
15361
|
+
}
|
|
15362
|
+
) });
|
|
15363
|
+
}
|
|
15364
|
+
function PairDetailCard({
|
|
15365
|
+
color: color2,
|
|
15366
|
+
format,
|
|
15367
|
+
role
|
|
15368
|
+
}) {
|
|
15369
|
+
const [, copyToClipboardRaw] = useCopyToClipboard();
|
|
15370
|
+
const [copiedField, setCopiedField] = useState(null);
|
|
15371
|
+
const valueLabel = format.toUpperCase();
|
|
15372
|
+
const formattedValue = getPairingColorValue(color2, format);
|
|
15373
|
+
const copyField = (field) => {
|
|
15374
|
+
const fieldValue = field === "token" ? color2.token : field === "tone" ? String(color2.tone) : formattedValue;
|
|
15375
|
+
copyToClipboardRaw(fieldValue);
|
|
15376
|
+
setCopiedField(field);
|
|
15377
|
+
const toastLabel = field === "token" ? "Token" : field === "tone" ? "Tone" : `${valueLabel} value`;
|
|
15378
|
+
toast(`${toastLabel} copied to clipboard`, {
|
|
15379
|
+
duration: 2e3
|
|
15380
|
+
});
|
|
15381
|
+
setTimeout(() => setCopiedField(null), 2e3);
|
|
15382
|
+
};
|
|
15383
|
+
const renderCopyButton = (field, srLabel, className) => /* @__PURE__ */ jsxs(
|
|
15384
|
+
Button2,
|
|
15385
|
+
{
|
|
15386
|
+
variant: "ghost",
|
|
15387
|
+
size: "icon",
|
|
15388
|
+
className: cn("shrink-0", className),
|
|
15389
|
+
onClick: () => copyField(field),
|
|
15390
|
+
children: [
|
|
15391
|
+
copiedField === field ? /* @__PURE__ */ jsx(Icons.check, { "data-slot": "icon", className: "size-5" }) : /* @__PURE__ */ jsx(Icons.content_copy, { "data-slot": "icon", className: "size-5" }),
|
|
15392
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: srLabel })
|
|
15393
|
+
]
|
|
15394
|
+
}
|
|
15395
|
+
);
|
|
15396
|
+
return /* @__PURE__ */ jsxs(Card, { className: "gap-4", children: [
|
|
15397
|
+
/* @__PURE__ */ jsx(CardHeader, { className: "gap-3 border-b", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
15398
|
+
/* @__PURE__ */ jsx(
|
|
15399
|
+
"div",
|
|
15400
|
+
{
|
|
15401
|
+
className: "size-14 rounded-sm border border-grey-200 shadow-sm dark:border-grey-700",
|
|
15402
|
+
style: { backgroundColor: color2.hex }
|
|
15403
|
+
}
|
|
15404
|
+
),
|
|
15405
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
15406
|
+
/* @__PURE__ */ jsx(CardTitle, { children: role }),
|
|
15407
|
+
/* @__PURE__ */ jsx(CardDescription, { children: color2.name ?? color2.token })
|
|
15408
|
+
] })
|
|
15409
|
+
] }) }),
|
|
15410
|
+
/* @__PURE__ */ jsxs(CardContent, { className: "grid gap-4", children: [
|
|
15411
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
15412
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
15413
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: "Token" }),
|
|
15414
|
+
renderCopyButton("token", `Copy ${role.toLowerCase()} token`)
|
|
15415
|
+
] }),
|
|
15416
|
+
/* @__PURE__ */ jsx("p", { className: "font-mono text-base break-all", children: color2.token })
|
|
15417
|
+
] }),
|
|
15418
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
15419
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
15420
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: "Tone" }),
|
|
15421
|
+
renderCopyButton("tone", `Copy ${role.toLowerCase()} tone`)
|
|
15422
|
+
] }),
|
|
15423
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium", children: color2.tone })
|
|
15424
|
+
] }),
|
|
15425
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
15426
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
15427
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: valueLabel }),
|
|
15428
|
+
renderCopyButton("value", `Copy ${role.toLowerCase()} ${valueLabel} value`)
|
|
15429
|
+
] }),
|
|
15430
|
+
/* @__PURE__ */ jsx("p", { className: "font-mono text-sm break-all", children: formattedValue })
|
|
15431
|
+
] })
|
|
15432
|
+
] })
|
|
15433
|
+
] });
|
|
15434
|
+
}
|
|
15435
|
+
function ComplianceRow({
|
|
15436
|
+
label,
|
|
15437
|
+
passes,
|
|
15438
|
+
threshold
|
|
15439
|
+
}) {
|
|
15440
|
+
return /* @__PURE__ */ 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: [
|
|
15441
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
15442
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium", children: label }),
|
|
15443
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: threshold })
|
|
15444
|
+
] }),
|
|
15445
|
+
/* @__PURE__ */ jsxs(
|
|
15446
|
+
"span",
|
|
15447
|
+
{
|
|
15448
|
+
className: cn(
|
|
15449
|
+
"inline-flex items-center gap-1 rounded-full px-2.5 py-1 text-xs font-semibold",
|
|
15450
|
+
passes ? "bg-success-50 text-success-800 dark:bg-success-950/30 dark:text-success-200" : "bg-danger-50 text-danger-800 dark:bg-danger-950/30 dark:text-danger-200"
|
|
15451
|
+
),
|
|
15452
|
+
children: [
|
|
15453
|
+
passes ? /* @__PURE__ */ jsx(Icons.check, { "data-slot": "icon", className: "size-4" }) : /* @__PURE__ */ jsx(Icons.close, { "data-slot": "icon", className: "size-4" }),
|
|
15454
|
+
passes ? "Pass" : "Fail"
|
|
15455
|
+
]
|
|
15456
|
+
}
|
|
15457
|
+
)
|
|
15458
|
+
] });
|
|
15459
|
+
}
|
|
15460
|
+
function PairComplianceCard({ pair }) {
|
|
15461
|
+
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
15462
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "gap-2 border-b", children: [
|
|
15463
|
+
/* @__PURE__ */ jsx(CardTitle, { className: "text-base", children: "AAA compliance" }),
|
|
15464
|
+
/* @__PURE__ */ 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." })
|
|
15465
|
+
] }),
|
|
15466
|
+
/* @__PURE__ */ jsxs(CardContent, { className: "space-y-3", children: [
|
|
15467
|
+
/* @__PURE__ */ 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: [
|
|
15468
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: "Contrast ratio" }),
|
|
15469
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-1 text-2xl font-semibold", children: [
|
|
15470
|
+
pair.contrastRatio.toFixed(2),
|
|
15471
|
+
":1"
|
|
15472
|
+
] })
|
|
15473
|
+
] }),
|
|
15474
|
+
/* @__PURE__ */ jsx(
|
|
15475
|
+
ComplianceRow,
|
|
15476
|
+
{
|
|
15477
|
+
label: "AAA normal text",
|
|
15478
|
+
passes: pair.passes.aaaText,
|
|
15479
|
+
threshold: "7.0:1 or higher"
|
|
15480
|
+
}
|
|
15481
|
+
),
|
|
15482
|
+
/* @__PURE__ */ jsx(
|
|
15483
|
+
ComplianceRow,
|
|
15484
|
+
{
|
|
15485
|
+
label: "AAA large text",
|
|
15486
|
+
passes: pair.passes.aaaLarge,
|
|
15487
|
+
threshold: "4.5:1 or higher"
|
|
15488
|
+
}
|
|
15489
|
+
)
|
|
15490
|
+
] })
|
|
15491
|
+
] });
|
|
15492
|
+
}
|
|
15493
|
+
function WhiteTextExampleCard({ pair }) {
|
|
15494
|
+
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
15495
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "gap-2 border-b", children: [
|
|
15496
|
+
/* @__PURE__ */ jsx(CardTitle, { className: "text-base", children: "White text example" }),
|
|
15497
|
+
/* @__PURE__ */ 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." })
|
|
15498
|
+
] }),
|
|
15499
|
+
/* @__PURE__ */ jsxs(CardContent, { className: "grid gap-6 xl:grid-cols-[minmax(0,1.1fr)_minmax(18rem,0.9fr)]", children: [
|
|
15500
|
+
/* @__PURE__ */ jsx(
|
|
15501
|
+
"div",
|
|
15502
|
+
{
|
|
15503
|
+
className: "rounded-sm border border-grey-200 p-6 dark:border-grey-700",
|
|
15504
|
+
style: {
|
|
15505
|
+
backgroundColor: pair.background.hex,
|
|
15506
|
+
color: pair.foreground.hex
|
|
15507
|
+
},
|
|
15508
|
+
children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
15509
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
15510
|
+
/* @__PURE__ */ jsx("p", { className: "text-lg leading-tight font-semibold", children: "Large text example" }),
|
|
15511
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm/6", children: [
|
|
15512
|
+
"White text on ",
|
|
15513
|
+
pair.background.token
|
|
15514
|
+
] })
|
|
15515
|
+
] }),
|
|
15516
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm/6", children: [
|
|
15517
|
+
/* @__PURE__ */ jsxs("p", { children: [
|
|
15518
|
+
"AAA normal text: ",
|
|
15519
|
+
/* @__PURE__ */ jsx("strong", { children: pair.passes.aaaText ? "pass" : "fail" })
|
|
15520
|
+
] }),
|
|
15521
|
+
/* @__PURE__ */ jsxs("p", { children: [
|
|
15522
|
+
"AAA large text: ",
|
|
15523
|
+
/* @__PURE__ */ jsx("strong", { children: pair.passes.aaaLarge ? "pass" : "fail" })
|
|
15524
|
+
] })
|
|
15525
|
+
] })
|
|
15526
|
+
] })
|
|
15527
|
+
}
|
|
15528
|
+
),
|
|
15529
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
15530
|
+
/* @__PURE__ */ 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: [
|
|
15531
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-semibold tracking-[0.16em] text-muted-foreground uppercase", children: "Contrast ratio" }),
|
|
15532
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-1 text-2xl font-semibold", children: [
|
|
15533
|
+
pair.contrastRatio.toFixed(2),
|
|
15534
|
+
":1"
|
|
15535
|
+
] })
|
|
15536
|
+
] }),
|
|
15537
|
+
/* @__PURE__ */ jsx(
|
|
15538
|
+
ComplianceRow,
|
|
15539
|
+
{
|
|
15540
|
+
label: "AAA normal text",
|
|
15541
|
+
passes: pair.passes.aaaText,
|
|
15542
|
+
threshold: "7.0:1 or higher"
|
|
15543
|
+
}
|
|
15544
|
+
),
|
|
15545
|
+
/* @__PURE__ */ jsx(
|
|
15546
|
+
ComplianceRow,
|
|
15547
|
+
{
|
|
15548
|
+
label: "AAA large text",
|
|
15549
|
+
passes: pair.passes.aaaLarge,
|
|
15550
|
+
threshold: "4.5:1 or higher"
|
|
15551
|
+
}
|
|
15552
|
+
)
|
|
15553
|
+
] })
|
|
15554
|
+
] })
|
|
15555
|
+
] });
|
|
15556
|
+
}
|
|
15557
|
+
function ColorPairingToolContent() {
|
|
15558
|
+
const searchParams = useSearchParams();
|
|
15559
|
+
const {
|
|
15560
|
+
familyKey: initialFamilyKey,
|
|
15561
|
+
selectedBackgroundToken: initialSelectedBackgroundToken,
|
|
15562
|
+
selectedPairId: initialSelectedPairId,
|
|
15563
|
+
themeCategory: initialThemeCategory
|
|
15564
|
+
} = getInitialPairingState(searchParams);
|
|
15565
|
+
const [themeCategory, setThemeCategory] = useState(initialThemeCategory);
|
|
15566
|
+
const [format, setFormat] = useState("hex");
|
|
15567
|
+
const [activeFamilyKey, setActiveFamilyKey] = useState(initialFamilyKey);
|
|
15568
|
+
const [selectedBackgroundToken, setSelectedBackgroundToken] = useState(
|
|
15569
|
+
initialSelectedBackgroundToken
|
|
15570
|
+
);
|
|
15571
|
+
const [selectedPairId, setSelectedPairId] = useState(initialSelectedPairId);
|
|
15572
|
+
const families = recommendedAaaPairingCollections[themeCategory];
|
|
15573
|
+
const resolvedActiveFamilyKey = families.some((family) => family.key === activeFamilyKey) ? activeFamilyKey : getPreferredFamilyKey(families);
|
|
15574
|
+
const activeFamily = families.find((family) => family.key === resolvedActiveFamilyKey) ?? families[0];
|
|
15575
|
+
const backgroundOptions = getBackgroundOptions(activeFamily);
|
|
15576
|
+
const selectedBackground = backgroundOptions.find((color2) => color2.token === selectedBackgroundToken) ?? backgroundOptions[0] ?? activeFamily?.colors[0] ?? null;
|
|
15577
|
+
const selectedPair = selectedBackground ? getRecommendedPairForBackground(activeFamily, selectedBackground.token, selectedPairId) : null;
|
|
15578
|
+
const whiteForegroundExample = selectedBackground && supportsWhiteForegroundPreview(selectedBackground) ? getWhiteForegroundPair(selectedBackground) : null;
|
|
15579
|
+
const previewPair = selectedPair ?? whiteForegroundExample;
|
|
15580
|
+
const showWhiteForegroundExample = Boolean(whiteForegroundExample) && (!selectedPair || selectedPair.foreground.token !== "white");
|
|
15581
|
+
const detailForeground = selectedPair?.foreground ?? whiteForegroundExample?.foreground ?? null;
|
|
15582
|
+
const updateUrlParams = (nextThemeCategory, nextFamilyKey, nextSelectedBackgroundToken, nextSelectedPairId) => {
|
|
15583
|
+
const params = new URLSearchParams(window.location.search);
|
|
15584
|
+
params.set("palette", nextThemeCategory);
|
|
15585
|
+
params.set("family", nextFamilyKey);
|
|
15586
|
+
params.set("background", nextSelectedBackgroundToken);
|
|
15587
|
+
if (nextSelectedPairId) {
|
|
15588
|
+
params.set("pair", nextSelectedPairId);
|
|
15589
|
+
} else {
|
|
15590
|
+
params.delete("pair");
|
|
15591
|
+
}
|
|
15592
|
+
window.history.replaceState(
|
|
15593
|
+
null,
|
|
15594
|
+
"",
|
|
15595
|
+
`${window.location.pathname}?${params.toString()}${window.location.hash}`
|
|
15596
|
+
);
|
|
15597
|
+
};
|
|
15598
|
+
const handleThemeCategoryChange = (nextThemeCategory) => {
|
|
15599
|
+
const nextFamilies = recommendedAaaPairingCollections[nextThemeCategory];
|
|
15600
|
+
const nextFamilyKey = nextFamilies.some((family) => family.key === activeFamilyKey) ? activeFamilyKey : getPreferredFamilyKey(nextFamilies);
|
|
15601
|
+
const nextActiveFamily = nextFamilies.find((family) => family.key === nextFamilyKey) ?? nextFamilies[0];
|
|
15602
|
+
const nextSelectedBackgroundToken = getFallbackBackgroundToken(
|
|
15603
|
+
nextActiveFamily,
|
|
15604
|
+
getToneFromToken(selectedBackgroundToken)
|
|
15605
|
+
);
|
|
15606
|
+
const nextSelectedPair = getRecommendedPairForBackground(
|
|
15607
|
+
nextActiveFamily,
|
|
15608
|
+
nextSelectedBackgroundToken,
|
|
15609
|
+
selectedPairId
|
|
15610
|
+
);
|
|
15611
|
+
setThemeCategory(nextThemeCategory);
|
|
15612
|
+
setActiveFamilyKey(nextFamilyKey);
|
|
15613
|
+
setSelectedBackgroundToken(nextSelectedBackgroundToken);
|
|
15614
|
+
setSelectedPairId(nextSelectedPair?.id ?? "");
|
|
15615
|
+
updateUrlParams(
|
|
15616
|
+
nextThemeCategory,
|
|
15617
|
+
nextFamilyKey,
|
|
15618
|
+
nextSelectedBackgroundToken,
|
|
15619
|
+
nextSelectedPair?.id ?? ""
|
|
15620
|
+
);
|
|
15621
|
+
};
|
|
15622
|
+
const handleFamilyChange = (nextFamilyKey) => {
|
|
15623
|
+
const nextActiveFamily = families.find((family) => family.key === nextFamilyKey);
|
|
15624
|
+
const nextSelectedBackgroundToken = getFallbackBackgroundToken(
|
|
15625
|
+
nextActiveFamily,
|
|
15626
|
+
getToneFromToken(selectedBackgroundToken)
|
|
15627
|
+
);
|
|
15628
|
+
const nextSelectedPair = getRecommendedPairForBackground(
|
|
15629
|
+
nextActiveFamily,
|
|
15630
|
+
nextSelectedBackgroundToken,
|
|
15631
|
+
selectedPairId
|
|
15632
|
+
);
|
|
15633
|
+
setActiveFamilyKey(nextFamilyKey);
|
|
15634
|
+
setSelectedBackgroundToken(nextSelectedBackgroundToken);
|
|
15635
|
+
setSelectedPairId(nextSelectedPair?.id ?? "");
|
|
15636
|
+
updateUrlParams(
|
|
15637
|
+
themeCategory,
|
|
15638
|
+
nextFamilyKey,
|
|
15639
|
+
nextSelectedBackgroundToken,
|
|
15640
|
+
nextSelectedPair?.id ?? ""
|
|
15641
|
+
);
|
|
15642
|
+
};
|
|
15643
|
+
const handleBackgroundChange = (nextSelectedBackgroundToken) => {
|
|
15644
|
+
const nextSelectedPair = getRecommendedPairForBackground(
|
|
15645
|
+
activeFamily,
|
|
15646
|
+
nextSelectedBackgroundToken,
|
|
15647
|
+
selectedPairId
|
|
15648
|
+
);
|
|
15649
|
+
setSelectedBackgroundToken(nextSelectedBackgroundToken);
|
|
15650
|
+
setSelectedPairId(nextSelectedPair?.id ?? "");
|
|
15651
|
+
updateUrlParams(
|
|
15652
|
+
themeCategory,
|
|
15653
|
+
resolvedActiveFamilyKey,
|
|
15654
|
+
nextSelectedBackgroundToken,
|
|
15655
|
+
nextSelectedPair?.id ?? ""
|
|
15656
|
+
);
|
|
15657
|
+
};
|
|
15658
|
+
const handlePairChange = (nextSelectedPairId) => {
|
|
15659
|
+
const nextSelectedPair = activeFamily?.recommendedPairs.find((pair) => pair.id === nextSelectedPairId) ?? null;
|
|
15660
|
+
if (!nextSelectedPair) return;
|
|
15661
|
+
setSelectedBackgroundToken(nextSelectedPair.background.token);
|
|
15662
|
+
setSelectedPairId(nextSelectedPairId);
|
|
15663
|
+
updateUrlParams(
|
|
15664
|
+
themeCategory,
|
|
15665
|
+
resolvedActiveFamilyKey,
|
|
15666
|
+
nextSelectedPair.background.token,
|
|
15667
|
+
nextSelectedPairId
|
|
15668
|
+
);
|
|
15669
|
+
};
|
|
15670
|
+
if (!activeFamily || !selectedBackground) {
|
|
15671
|
+
return /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
15672
|
+
/* @__PURE__ */ jsx(CardTitle, { children: "No approved background tones available" }),
|
|
15673
|
+
/* @__PURE__ */ jsx(CardDescription, { children: "No approved tones are available for the current palette." })
|
|
15674
|
+
] }) });
|
|
15675
|
+
}
|
|
15676
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
15677
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
15678
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
15679
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Palette:" }),
|
|
15680
|
+
/* @__PURE__ */ jsx(
|
|
15681
|
+
SegmentedControl,
|
|
15682
|
+
{
|
|
15683
|
+
value: themeCategory,
|
|
15684
|
+
onValueChange: (value) => handleThemeCategoryChange(value),
|
|
15685
|
+
children: /* @__PURE__ */ jsxs(SegmentedControlList, { className: "w-full sm:w-fit", children: [
|
|
15686
|
+
/* @__PURE__ */ jsx(SegmentedControlTrigger, { value: "brand", children: "Brand palette" }),
|
|
15687
|
+
/* @__PURE__ */ jsx(SegmentedControlTrigger, { value: "aboriginal", children: "Aboriginal palette" })
|
|
15688
|
+
] })
|
|
15689
|
+
}
|
|
15690
|
+
)
|
|
15691
|
+
] }),
|
|
15692
|
+
/* @__PURE__ */ jsx(FormatToggle, { format, setFormat })
|
|
15693
|
+
] }),
|
|
15694
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2 lg:grid-cols-4 xl:grid-cols-5", children: families.map((family) => {
|
|
15695
|
+
const isActive = family.key === resolvedActiveFamilyKey;
|
|
15696
|
+
return /* @__PURE__ */ jsxs(
|
|
15697
|
+
"button",
|
|
15698
|
+
{
|
|
15699
|
+
type: "button",
|
|
15700
|
+
onClick: () => handleFamilyChange(family.key),
|
|
15701
|
+
className: cn(
|
|
15702
|
+
"group relative flex w-full items-center gap-3 rounded-sm border px-3 py-2 text-left transition-colors",
|
|
15703
|
+
"border-grey-200 bg-background hover:bg-primary-800/10 hover:text-foreground dark:hover:bg-white/10",
|
|
15704
|
+
isActive && "border-grey-800 dark:border-grey-400"
|
|
15705
|
+
),
|
|
15706
|
+
children: [
|
|
15707
|
+
/* @__PURE__ */ jsx(
|
|
15708
|
+
"span",
|
|
15709
|
+
{
|
|
15710
|
+
className: "size-4 shrink-0 rounded-full",
|
|
15711
|
+
style: { backgroundColor: getFamilySwatchColor(family) }
|
|
15712
|
+
}
|
|
15713
|
+
),
|
|
15714
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-medium", children: family.label })
|
|
15715
|
+
]
|
|
15716
|
+
},
|
|
15717
|
+
family.key
|
|
15718
|
+
);
|
|
15719
|
+
}) }) }),
|
|
15720
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
15721
|
+
/* @__PURE__ */ jsxs("div", { className: "grid items-start gap-6 xl:grid-cols-[minmax(0,1.5fr)_minmax(17rem,0.68fr)]", children: [
|
|
15722
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
15723
|
+
previewPair ? /* @__PURE__ */ jsx(
|
|
15724
|
+
PairPreview,
|
|
15725
|
+
{
|
|
15726
|
+
family: activeFamily,
|
|
15727
|
+
isRecommended: Boolean(selectedPair),
|
|
15728
|
+
pair: previewPair
|
|
15729
|
+
}
|
|
15730
|
+
) : /* @__PURE__ */ jsx(Card, { className: "gap-0 overflow-hidden py-0", children: /* @__PURE__ */ jsx(
|
|
15731
|
+
"div",
|
|
15732
|
+
{
|
|
15733
|
+
className: "p-6 sm:min-h-[26rem] sm:p-8",
|
|
15734
|
+
style: {
|
|
15735
|
+
backgroundColor: selectedBackground.hex,
|
|
15736
|
+
color: selectedBackground.tone >= 600 ? "#ffffff" : "#002664"
|
|
15737
|
+
},
|
|
15738
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-[22rem] flex-col justify-between gap-8", children: [
|
|
15739
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-2", children: /* @__PURE__ */ 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: [
|
|
15740
|
+
/* @__PURE__ */ jsx(Icons.palette, { "data-slot": "icon", className: "size-4" }),
|
|
15741
|
+
activeFamily.label
|
|
15742
|
+
] }) }),
|
|
15743
|
+
/* @__PURE__ */ jsxs("div", { className: "max-w-xl space-y-4 pb-12 sm:pb-16", children: [
|
|
15744
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-semibold tracking-[0.22em] uppercase", children: "Approved background" }),
|
|
15745
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
15746
|
+
/* @__PURE__ */ jsx("h3", { className: "max-w-lg text-4xl leading-none font-bold text-current sm:text-5xl", children: "Pair colour with confidence." }),
|
|
15747
|
+
/* @__PURE__ */ 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." })
|
|
15748
|
+
] })
|
|
15749
|
+
] }),
|
|
15750
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
15751
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2 rounded-full bg-current/10 px-4 py-2 text-sm font-semibold", children: [
|
|
15752
|
+
"No recommendation",
|
|
15753
|
+
/* @__PURE__ */ jsx(Icons.info, { "data-slot": "icon", className: "size-4" })
|
|
15754
|
+
] }),
|
|
15755
|
+
/* @__PURE__ */ jsx("span", { className: "inline-flex rounded-full border border-current px-4 py-2 text-sm", children: selectedBackground.token })
|
|
15756
|
+
] })
|
|
15757
|
+
] })
|
|
15758
|
+
}
|
|
15759
|
+
) }),
|
|
15760
|
+
/* @__PURE__ */ jsxs(Card, { children: [
|
|
15761
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "gap-2 border-b", children: [
|
|
15762
|
+
/* @__PURE__ */ jsx(CardTitle, { className: "text-base", children: "Background tone strip" }),
|
|
15763
|
+
/* @__PURE__ */ 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." })
|
|
15764
|
+
] }),
|
|
15765
|
+
/* @__PURE__ */ jsxs(CardContent, { className: "space-y-4", children: [
|
|
15766
|
+
/* @__PURE__ */ 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) => {
|
|
15767
|
+
const pair = getRecommendedPairForBackground(activeFamily, color2.token);
|
|
15768
|
+
const hasWhiteExample = supportsWhiteForegroundPreview(color2);
|
|
15769
|
+
const isSelected = selectedBackground.token === color2.token;
|
|
15770
|
+
return /* @__PURE__ */ jsxs(
|
|
15771
|
+
"button",
|
|
15772
|
+
{
|
|
15773
|
+
type: "button",
|
|
15774
|
+
onClick: () => handleBackgroundChange(color2.token),
|
|
15775
|
+
className: cn(
|
|
15776
|
+
"group relative h-12 rounded-sm border border-grey-200 transition-transform hover:scale-[1.03] dark:border-grey-700",
|
|
15777
|
+
isSelected && "ring-2 ring-primary-500 ring-offset-2 ring-offset-background"
|
|
15778
|
+
),
|
|
15779
|
+
style: { backgroundColor: color2.hex },
|
|
15780
|
+
children: [
|
|
15781
|
+
pair ? /* @__PURE__ */ jsx(
|
|
15782
|
+
"span",
|
|
15783
|
+
{
|
|
15784
|
+
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",
|
|
15785
|
+
style: { backgroundColor: pair.foreground.hex }
|
|
15786
|
+
}
|
|
15787
|
+
) : null,
|
|
15788
|
+
/* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
|
|
15789
|
+
color2.token,
|
|
15790
|
+
pair ? ` paired with ${pair.foreground.token}` : hasWhiteExample ? " has a white text example in this tool" : " has no recommended pair in this tool"
|
|
15791
|
+
] })
|
|
15792
|
+
]
|
|
15793
|
+
},
|
|
15794
|
+
color2.token
|
|
15795
|
+
);
|
|
15796
|
+
}) }),
|
|
15797
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-4 text-sm text-muted-foreground", children: [
|
|
15798
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
15799
|
+
"Selected background:",
|
|
15800
|
+
" ",
|
|
15801
|
+
/* @__PURE__ */ jsx("strong", { className: "text-foreground", children: selectedBackground.token })
|
|
15802
|
+
] }),
|
|
15803
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
15804
|
+
selectedPair ? "Recommended foreground:" : "White text example:",
|
|
15805
|
+
" ",
|
|
15806
|
+
/* @__PURE__ */ jsx("strong", { className: "text-foreground", children: selectedPair?.foreground.token ?? whiteForegroundExample?.foreground.token ?? "None" })
|
|
15807
|
+
] })
|
|
15808
|
+
] })
|
|
15809
|
+
] })
|
|
15810
|
+
] }),
|
|
15811
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-4 lg:grid-cols-2", children: [
|
|
15812
|
+
/* @__PURE__ */ jsx(PairDetailCard, { color: selectedBackground, format, role: "Background" }),
|
|
15813
|
+
detailForeground ? /* @__PURE__ */ jsx(PairDetailCard, { color: detailForeground, format, role: "Foreground" }) : /* @__PURE__ */ jsxs(Card, { className: "gap-4", children: [
|
|
15814
|
+
/* @__PURE__ */ jsx(CardHeader, { className: "gap-3 border-b", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
15815
|
+
/* @__PURE__ */ jsx(CardTitle, { children: "Foreground" }),
|
|
15816
|
+
/* @__PURE__ */ jsx(CardDescription, { children: "No recommended foreground available" })
|
|
15817
|
+
] }) }),
|
|
15818
|
+
/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: "Select another approved tone or review the recommended pairs list for the same family." }) })
|
|
15819
|
+
] })
|
|
15820
|
+
] })
|
|
15821
|
+
] }),
|
|
15822
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsxs(Card, { className: "h-fit", children: [
|
|
15823
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "gap-2 border-b", children: [
|
|
15824
|
+
/* @__PURE__ */ jsx(CardTitle, { className: "text-base", children: "Recommended pairs" }),
|
|
15825
|
+
/* @__PURE__ */ jsx(CardDescription, { children: "Recommended AAA combinations for this family, including white on eligible dark backgrounds." })
|
|
15826
|
+
] }),
|
|
15827
|
+
/* @__PURE__ */ jsx(CardContent, { className: "grid gap-3", children: activeFamily.recommendedPairs.map((pair) => {
|
|
15828
|
+
const isActive = selectedPair?.id === pair.id;
|
|
15829
|
+
return /* @__PURE__ */ jsxs(
|
|
15830
|
+
"button",
|
|
15831
|
+
{
|
|
15832
|
+
type: "button",
|
|
15833
|
+
onClick: () => handlePairChange(pair.id),
|
|
15834
|
+
className: cn(
|
|
15835
|
+
"rounded-sm border p-4 text-left transition-colors",
|
|
15836
|
+
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"
|
|
15837
|
+
),
|
|
15838
|
+
children: [
|
|
15839
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-4", children: [
|
|
15840
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
15841
|
+
/* @__PURE__ */ jsx(
|
|
15842
|
+
"div",
|
|
15843
|
+
{
|
|
15844
|
+
className: "size-11 rounded-sm border border-grey-200 shadow-sm dark:border-grey-700",
|
|
15845
|
+
style: { backgroundColor: pair.background.hex }
|
|
15846
|
+
}
|
|
15847
|
+
),
|
|
15848
|
+
/* @__PURE__ */ jsx(
|
|
15849
|
+
"div",
|
|
15850
|
+
{
|
|
15851
|
+
className: "size-11 rounded-sm border border-grey-200 shadow-sm dark:border-grey-700",
|
|
15852
|
+
style: { backgroundColor: pair.foreground.hex }
|
|
15853
|
+
}
|
|
15854
|
+
)
|
|
15855
|
+
] }),
|
|
15856
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 rounded-full border border-grey-200 px-2.5 py-1 text-xs font-semibold text-muted-foreground dark:border-grey-700", children: [
|
|
15857
|
+
/* @__PURE__ */ jsx(Icons.contrast, { "data-slot": "icon", className: "size-4" }),
|
|
15858
|
+
pair.rating
|
|
15859
|
+
] })
|
|
15860
|
+
] }),
|
|
15861
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-4 space-y-1", children: [
|
|
15862
|
+
/* @__PURE__ */ jsxs("p", { className: "font-medium text-foreground", children: [
|
|
15863
|
+
pair.background.token,
|
|
15864
|
+
" / ",
|
|
15865
|
+
pair.foreground.token
|
|
15866
|
+
] }),
|
|
15867
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
|
|
15868
|
+
pair.contrastRatio.toFixed(2),
|
|
15869
|
+
":1 contrast ratio"
|
|
15870
|
+
] })
|
|
15871
|
+
] })
|
|
15872
|
+
]
|
|
15873
|
+
},
|
|
15874
|
+
pair.id
|
|
15875
|
+
);
|
|
15876
|
+
}) })
|
|
15877
|
+
] }) })
|
|
15878
|
+
] }),
|
|
15879
|
+
selectedPair ? /* @__PURE__ */ jsx(PairComplianceCard, { pair: selectedPair }) : null,
|
|
15880
|
+
showWhiteForegroundExample && whiteForegroundExample ? /* @__PURE__ */ jsx(WhiteTextExampleCard, { pair: whiteForegroundExample }) : null
|
|
15881
|
+
] })
|
|
15882
|
+
] });
|
|
15883
|
+
}
|
|
15884
|
+
function ColorPairingTool() {
|
|
15885
|
+
return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(ColorPairingToolLoading, {}), children: /* @__PURE__ */ jsx(ColorPairingToolContent, {}) });
|
|
15886
|
+
}
|
|
14921
15887
|
function ColorSwatches({ theme: theme2, format, viewMode }) {
|
|
14922
15888
|
return /* @__PURE__ */ jsx(
|
|
14923
15889
|
"div",
|
|
@@ -15279,7 +16245,7 @@ var ChartTooltip4 = ({
|
|
|
15279
16245
|
{
|
|
15280
16246
|
className: cn(
|
|
15281
16247
|
// base
|
|
15282
|
-
"rounded-
|
|
16248
|
+
"rounded-sm border text-sm shadow-md",
|
|
15283
16249
|
// border color
|
|
15284
16250
|
"border-gray-200 dark:border-gray-800",
|
|
15285
16251
|
// background color
|
|
@@ -15871,7 +16837,7 @@ function DialogContent({
|
|
|
15871
16837
|
{
|
|
15872
16838
|
"data-slot": "dialog-content",
|
|
15873
16839
|
className: cn(
|
|
15874
|
-
"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-
|
|
16840
|
+
"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",
|
|
15875
16841
|
className
|
|
15876
16842
|
),
|
|
15877
16843
|
...props,
|
|
@@ -16101,7 +17067,7 @@ function ContextMenuSubContent({
|
|
|
16101
17067
|
{
|
|
16102
17068
|
"data-slot": "context-menu-sub-content",
|
|
16103
17069
|
className: cn(
|
|
16104
|
-
"z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-
|
|
17070
|
+
"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",
|
|
16105
17071
|
className
|
|
16106
17072
|
),
|
|
16107
17073
|
...props
|
|
@@ -16117,7 +17083,7 @@ function ContextMenuContent({
|
|
|
16117
17083
|
{
|
|
16118
17084
|
"data-slot": "context-menu-content",
|
|
16119
17085
|
className: cn(
|
|
16120
|
-
"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-
|
|
17086
|
+
"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",
|
|
16121
17087
|
className
|
|
16122
17088
|
),
|
|
16123
17089
|
...props
|
|
@@ -16624,7 +17590,7 @@ function DataTable({
|
|
|
16624
17590
|
});
|
|
16625
17591
|
return /* @__PURE__ */ jsxs("div", { className: "space-y-4 p-1", children: [
|
|
16626
17592
|
/* @__PURE__ */ jsx(DataTableToolbar, { table, search, toolbar }),
|
|
16627
|
-
/* @__PURE__ */ jsx("div", { className: "rounded-
|
|
17593
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-sm border", children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
16628
17594
|
/* @__PURE__ */ jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => {
|
|
16629
17595
|
return /* @__PURE__ */ jsx(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id);
|
|
16630
17596
|
}) }, headerGroup.id)) }),
|
|
@@ -16742,7 +17708,7 @@ var ChartTooltip5 = ({ active, payload, valueFormatter }) => {
|
|
|
16742
17708
|
{
|
|
16743
17709
|
className: cn(
|
|
16744
17710
|
// base
|
|
16745
|
-
"rounded-
|
|
17711
|
+
"rounded-sm border text-sm shadow-md",
|
|
16746
17712
|
// border color
|
|
16747
17713
|
"border-gray-200 dark:border-gray-800",
|
|
16748
17714
|
// background color
|
|
@@ -16980,8 +17946,8 @@ function DrawerContent({
|
|
|
16980
17946
|
"data-slot": "drawer-content",
|
|
16981
17947
|
className: cn(
|
|
16982
17948
|
"group/drawer-content fixed z-50 flex h-auto flex-col bg-background",
|
|
16983
|
-
"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-
|
|
16984
|
-
"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-
|
|
17949
|
+
"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",
|
|
17950
|
+
"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",
|
|
16985
17951
|
"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",
|
|
16986
17952
|
"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",
|
|
16987
17953
|
className
|
|
@@ -17397,152 +18363,10 @@ function FormMessage({ className, ...props }) {
|
|
|
17397
18363
|
}
|
|
17398
18364
|
);
|
|
17399
18365
|
}
|
|
17400
|
-
var styles3 = {
|
|
17401
|
-
base: [
|
|
17402
|
-
// Base
|
|
17403
|
-
"inline-flex items-center justify-center gap-2 rounded-sm text-sm font-medium bg-transparent transition-all whitespace-nowrap cursor-pointer border-(--toggle-border) [--toggle-border:var(--color-grey-200)] text-grey-800",
|
|
17404
|
-
// States
|
|
17405
|
-
"data-[state=on]:bg-grey-100 data-[state=on]:text-grey-850",
|
|
17406
|
-
// Hover
|
|
17407
|
-
"hover:bg-grey-100 hover:text-grey-850",
|
|
17408
|
-
// Focus
|
|
17409
|
-
"focus:outline focus:outline-2 focus:outline-offset-0 focus:outline-(--toggle-border)",
|
|
17410
|
-
// Dark mode
|
|
17411
|
-
"dark:text-white",
|
|
17412
|
-
// Dark mode states
|
|
17413
|
-
"dark:data-[state=on]:bg-white/10 dark:data-[state=on]:text-white",
|
|
17414
|
-
// Dark mode hover
|
|
17415
|
-
"dark:hover:bg-white/10 dark:hover:text-white",
|
|
17416
|
-
// Disabled
|
|
17417
|
-
"disabled:pointer-events-none disabled:opacity-50",
|
|
17418
|
-
// Icon
|
|
17419
|
-
'[&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 [&_svg]:shrink-0',
|
|
17420
|
-
// Aria invalid
|
|
17421
|
-
"aria-invalid:ring-destructive/20 aria-invalid:border-destructive",
|
|
17422
|
-
// Aria invalid dark mode
|
|
17423
|
-
"dark:aria-invalid:ring-destructive/40"
|
|
17424
|
-
],
|
|
17425
|
-
outline: [
|
|
17426
|
-
// Base
|
|
17427
|
-
"text-grey-800 border [--toggle-border:var(--color-grey-300)]",
|
|
17428
|
-
// States
|
|
17429
|
-
"hover:[--toggle-border:var(--color-grey-400)]",
|
|
17430
|
-
// Dark mode
|
|
17431
|
-
"dark:[--toggle-border:white]/40",
|
|
17432
|
-
// Dark mode states
|
|
17433
|
-
"dark:hover:[--toggle-border:white]/50",
|
|
17434
|
-
// Data on
|
|
17435
|
-
"data-[state=on]:bg-primary-800/10"
|
|
17436
|
-
]
|
|
17437
|
-
};
|
|
17438
|
-
var toggleVariants = cva(styles3.base, {
|
|
17439
|
-
variants: {
|
|
17440
|
-
variant: {
|
|
17441
|
-
ghost: "",
|
|
17442
|
-
outline: clsx12(styles3.outline)
|
|
17443
|
-
},
|
|
17444
|
-
size: {
|
|
17445
|
-
default: "h-9 px-2 min-w-9",
|
|
17446
|
-
sm: "h-8 px-1.5 min-w-8",
|
|
17447
|
-
lg: "h-10 px-2.5 min-w-10"
|
|
17448
|
-
}
|
|
17449
|
-
},
|
|
17450
|
-
defaultVariants: {
|
|
17451
|
-
variant: "ghost",
|
|
17452
|
-
size: "default"
|
|
17453
|
-
}
|
|
17454
|
-
});
|
|
17455
|
-
function Toggle({
|
|
17456
|
-
className,
|
|
17457
|
-
variant,
|
|
17458
|
-
size,
|
|
17459
|
-
...props
|
|
17460
|
-
}) {
|
|
17461
|
-
return /* @__PURE__ */ jsx(
|
|
17462
|
-
TogglePrimitive.Root,
|
|
17463
|
-
{
|
|
17464
|
-
"data-slot": "toggle",
|
|
17465
|
-
className: cn(toggleVariants({ variant, size, className })),
|
|
17466
|
-
...props
|
|
17467
|
-
}
|
|
17468
|
-
);
|
|
17469
|
-
}
|
|
17470
|
-
var ToggleGroupContext = React5.createContext({
|
|
17471
|
-
size: "default",
|
|
17472
|
-
variant: "ghost"
|
|
17473
|
-
});
|
|
17474
|
-
function ToggleGroup({
|
|
17475
|
-
className,
|
|
17476
|
-
variant,
|
|
17477
|
-
size,
|
|
17478
|
-
children,
|
|
17479
|
-
...props
|
|
17480
|
-
}) {
|
|
17481
|
-
return /* @__PURE__ */ jsx(
|
|
17482
|
-
ToggleGroupPrimitive.Root,
|
|
17483
|
-
{
|
|
17484
|
-
"data-slot": "toggle-group",
|
|
17485
|
-
"data-variant": variant,
|
|
17486
|
-
"data-size": size,
|
|
17487
|
-
className: cn(
|
|
17488
|
-
"group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs",
|
|
17489
|
-
className
|
|
17490
|
-
),
|
|
17491
|
-
...props,
|
|
17492
|
-
children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
17493
|
-
}
|
|
17494
|
-
);
|
|
17495
|
-
}
|
|
17496
|
-
function ToggleGroupItem({
|
|
17497
|
-
className,
|
|
17498
|
-
children,
|
|
17499
|
-
variant,
|
|
17500
|
-
size,
|
|
17501
|
-
...props
|
|
17502
|
-
}) {
|
|
17503
|
-
const context = React5.useContext(ToggleGroupContext);
|
|
17504
|
-
return /* @__PURE__ */ jsx(
|
|
17505
|
-
ToggleGroupPrimitive.Item,
|
|
17506
|
-
{
|
|
17507
|
-
"data-slot": "toggle-group-item",
|
|
17508
|
-
"data-variant": context.variant || variant,
|
|
17509
|
-
"data-size": context.size || size,
|
|
17510
|
-
className: cn(
|
|
17511
|
-
toggleVariants({
|
|
17512
|
-
variant: context.variant || variant,
|
|
17513
|
-
size: context.size || size
|
|
17514
|
-
}),
|
|
17515
|
-
"min-w-0 shrink-0 rounded-none shadow-none first:rounded-l-sm last:rounded-r-sm focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l",
|
|
17516
|
-
className
|
|
17517
|
-
),
|
|
17518
|
-
...props,
|
|
17519
|
-
children
|
|
17520
|
-
}
|
|
17521
|
-
);
|
|
17522
|
-
}
|
|
17523
|
-
function FormatToggle({ format, setFormat }) {
|
|
17524
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
17525
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: "Format:" }),
|
|
17526
|
-
/* @__PURE__ */ jsxs(
|
|
17527
|
-
ToggleGroup,
|
|
17528
|
-
{
|
|
17529
|
-
type: "single",
|
|
17530
|
-
value: format,
|
|
17531
|
-
onValueChange: (value) => value && setFormat(value),
|
|
17532
|
-
children: [
|
|
17533
|
-
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "hex", "aria-label": "HEX format", children: "HEX" }),
|
|
17534
|
-
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "rgb", "aria-label": "RGB format", children: "RGB" }),
|
|
17535
|
-
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "hsl", "aria-label": "HSL format", children: "HSL" }),
|
|
17536
|
-
/* @__PURE__ */ jsx(ToggleGroupItem, { value: "oklch", "aria-label": "OKLCH format", children: "OKLCH" })
|
|
17537
|
-
]
|
|
17538
|
-
}
|
|
17539
|
-
)
|
|
17540
|
-
] });
|
|
17541
|
-
}
|
|
17542
18366
|
|
|
17543
18367
|
// package.json
|
|
17544
18368
|
var package_default = {
|
|
17545
|
-
version: "1.
|
|
18369
|
+
version: "1.98.0"};
|
|
17546
18370
|
var SluggerContext = React5__default.createContext(null);
|
|
17547
18371
|
function flattenText(nodes) {
|
|
17548
18372
|
if (nodes == null || typeof nodes === "boolean") return "";
|
|
@@ -17693,7 +18517,7 @@ function SiteSearch({ navigation }) {
|
|
|
17693
18517
|
children: [
|
|
17694
18518
|
/* @__PURE__ */ jsx("span", { className: "hidden text-grey-600 lg:inline-flex dark:text-grey-200", children: "Search site..." }),
|
|
17695
18519
|
/* @__PURE__ */ jsx("span", { className: "inline-flex lg:hidden dark:text-grey-200", children: "Search..." }),
|
|
17696
|
-
/* @__PURE__ */ 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: [
|
|
18520
|
+
/* @__PURE__ */ 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: [
|
|
17697
18521
|
/* @__PURE__ */ jsx("span", { className: "text-xs", children: "\u2318" }),
|
|
17698
18522
|
"K"
|
|
17699
18523
|
] })
|
|
@@ -17908,7 +18732,7 @@ function HoverCardContent({
|
|
|
17908
18732
|
align,
|
|
17909
18733
|
sideOffset,
|
|
17910
18734
|
className: cn(
|
|
17911
|
-
"z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-
|
|
18735
|
+
"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",
|
|
17912
18736
|
className
|
|
17913
18737
|
),
|
|
17914
18738
|
...props
|
|
@@ -17946,7 +18770,7 @@ function InputOTPSlot({
|
|
|
17946
18770
|
"data-slot": "input-otp-slot",
|
|
17947
18771
|
"data-active": isActive,
|
|
17948
18772
|
className: cn(
|
|
17949
|
-
"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-
|
|
18773
|
+
"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",
|
|
17950
18774
|
className
|
|
17951
18775
|
),
|
|
17952
18776
|
...props,
|
|
@@ -18231,7 +19055,7 @@ var ChartTooltip6 = ({ active, payload, label, valueFormatter }) => {
|
|
|
18231
19055
|
{
|
|
18232
19056
|
className: cn(
|
|
18233
19057
|
// base
|
|
18234
|
-
"rounded-
|
|
19058
|
+
"rounded-sm border text-sm shadow-md",
|
|
18235
19059
|
// border color
|
|
18236
19060
|
"border-gray-200 dark:border-gray-800",
|
|
18237
19061
|
// background color
|
|
@@ -19126,7 +19950,7 @@ function Menubar({ className, ...props }) {
|
|
|
19126
19950
|
{
|
|
19127
19951
|
"data-slot": "menubar",
|
|
19128
19952
|
className: cn(
|
|
19129
|
-
"flex h-9 items-center gap-1 rounded-
|
|
19953
|
+
"flex h-9 items-center gap-1 rounded-sm border bg-background p-1 shadow-xs",
|
|
19130
19954
|
className
|
|
19131
19955
|
),
|
|
19132
19956
|
...props
|
|
@@ -19176,7 +20000,7 @@ function MenubarContent({
|
|
|
19176
20000
|
alignOffset,
|
|
19177
20001
|
sideOffset,
|
|
19178
20002
|
className: cn(
|
|
19179
|
-
"z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-
|
|
20003
|
+
"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",
|
|
19180
20004
|
className
|
|
19181
20005
|
),
|
|
19182
20006
|
...props
|
|
@@ -19320,7 +20144,7 @@ function MenubarSubContent({
|
|
|
19320
20144
|
{
|
|
19321
20145
|
"data-slot": "menubar-sub-content",
|
|
19322
20146
|
className: cn(
|
|
19323
|
-
"z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-
|
|
20147
|
+
"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",
|
|
19324
20148
|
className
|
|
19325
20149
|
),
|
|
19326
20150
|
...props
|
|
@@ -27739,7 +28563,7 @@ function NavigationLink({
|
|
|
27739
28563
|
href,
|
|
27740
28564
|
onClick,
|
|
27741
28565
|
className: clsx12(
|
|
27742
|
-
"inline-block w-full cursor-pointer rounded-r-
|
|
28566
|
+
"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",
|
|
27743
28567
|
"hover:border-grey-950 hover:bg-primary-800/10 hover:font-semibold hover:text-grey-950",
|
|
27744
28568
|
"dark:text-grey-400 dark:hover:border-grey-400 dark:hover:text-white",
|
|
27745
28569
|
href === pathname && "border-l border-primary-800 bg-primary-800/10 font-bold text-primary-800 dark:border-white dark:bg-white/20"
|
|
@@ -27841,7 +28665,7 @@ function NavigationMenuContent({
|
|
|
27841
28665
|
"data-slot": "navigation-menu-content",
|
|
27842
28666
|
className: cn(
|
|
27843
28667
|
"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",
|
|
27844
|
-
"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-
|
|
28668
|
+
"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",
|
|
27845
28669
|
className
|
|
27846
28670
|
),
|
|
27847
28671
|
...props
|
|
@@ -27857,7 +28681,7 @@ function NavigationMenuViewport({
|
|
|
27857
28681
|
{
|
|
27858
28682
|
"data-slot": "navigation-menu-viewport",
|
|
27859
28683
|
className: cn(
|
|
27860
|
-
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-
|
|
28684
|
+
"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)]",
|
|
27861
28685
|
className
|
|
27862
28686
|
),
|
|
27863
28687
|
...props
|
|
@@ -28180,7 +29004,7 @@ function NSWCard({
|
|
|
28180
29004
|
"div",
|
|
28181
29005
|
{
|
|
28182
29006
|
className: cn(
|
|
28183
|
-
"h-full rounded-
|
|
29007
|
+
"h-full rounded-sm border border-(--nsw-card-border)",
|
|
28184
29008
|
hasImage && "border-t-none rounded-t-none"
|
|
28185
29009
|
),
|
|
28186
29010
|
children: /* @__PURE__ */ jsx("div", { className: "flex h-full flex-col p-8", children: bodyChildren })
|
|
@@ -28192,7 +29016,7 @@ function NSWCard({
|
|
|
28192
29016
|
"div",
|
|
28193
29017
|
{
|
|
28194
29018
|
className: cn(
|
|
28195
|
-
"flex h-full flex-col rounded-
|
|
29019
|
+
"flex h-full flex-col rounded-sm border border-(--nsw-card-border) p-8",
|
|
28196
29020
|
hasImage && "border-t-none rounded-t-none"
|
|
28197
29021
|
),
|
|
28198
29022
|
children: bodyChildren
|
|
@@ -28747,7 +29571,7 @@ function ResizableHandle({
|
|
|
28747
29571
|
className
|
|
28748
29572
|
),
|
|
28749
29573
|
...props,
|
|
28750
|
-
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-
|
|
29574
|
+
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx(Icons.drag_indicator, { className: "size-2.5" }) })
|
|
28751
29575
|
}
|
|
28752
29576
|
);
|
|
28753
29577
|
}
|
|
@@ -29046,7 +29870,7 @@ function Sidebar({
|
|
|
29046
29870
|
{
|
|
29047
29871
|
"data-sidebar": "sidebar",
|
|
29048
29872
|
"data-slot": "sidebar-inner",
|
|
29049
|
-
className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-
|
|
29873
|
+
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",
|
|
29050
29874
|
children
|
|
29051
29875
|
}
|
|
29052
29876
|
)
|
|
@@ -29505,7 +30329,7 @@ function SidebarLink({ link, pathname, onLinkClick, depth }) {
|
|
|
29505
30329
|
const isActive = pathname === link.href;
|
|
29506
30330
|
const isActiveOrHasActiveDescendant = isLinkOrDescendantActive(link, pathname);
|
|
29507
30331
|
const baseLinkClasses = clsx12(
|
|
29508
|
-
"w-full cursor-pointer rounded-r-
|
|
30332
|
+
"w-full cursor-pointer rounded-r-sm border-l py-1 pr-2 pl-4 text-left text-base/8 sm:text-sm/6",
|
|
29509
30333
|
"hover:border-grey-950 hover:bg-primary-800/10 hover:font-semibold hover:text-grey-950",
|
|
29510
30334
|
"dark:text-grey-400 dark:hover:border-grey-400 dark:hover:text-white",
|
|
29511
30335
|
isActive && "border-l border-primary-800 bg-primary-800/10 font-bold text-primary-800 dark:border-white dark:bg-white/20"
|
|
@@ -30441,7 +31265,7 @@ var TabNavigation = React5__default.forwardRef(({ className, children, ...props
|
|
|
30441
31265
|
motion.div,
|
|
30442
31266
|
{
|
|
30443
31267
|
layoutId: "hoverBackground",
|
|
30444
|
-
className: "absolute top-2 bottom-2 transform rounded-
|
|
31268
|
+
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",
|
|
30445
31269
|
transition: {
|
|
30446
31270
|
type: "spring",
|
|
30447
31271
|
stiffness: 500,
|
|
@@ -30977,7 +31801,7 @@ var Tracker = React5__default.forwardRef(
|
|
|
30977
31801
|
);
|
|
30978
31802
|
Tracker.displayName = "Tracker";
|
|
30979
31803
|
var buttonVariants4 = cva(
|
|
30980
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-
|
|
31804
|
+
"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",
|
|
30981
31805
|
{
|
|
30982
31806
|
variants: {
|
|
30983
31807
|
variant: {
|
|
@@ -31096,7 +31920,7 @@ var Artifact = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
31096
31920
|
"div",
|
|
31097
31921
|
{
|
|
31098
31922
|
className: cn(
|
|
31099
|
-
"flex flex-col overflow-hidden rounded-
|
|
31923
|
+
"flex flex-col overflow-hidden rounded-sm border bg-background shadow-sm",
|
|
31100
31924
|
className
|
|
31101
31925
|
),
|
|
31102
31926
|
...props
|
|
@@ -31342,7 +32166,7 @@ function isFunction(value) {
|
|
|
31342
32166
|
return typeof value === "function";
|
|
31343
32167
|
}
|
|
31344
32168
|
var badgeVariants2 = cva(
|
|
31345
|
-
"inline-flex items-center justify-center rounded-
|
|
32169
|
+
"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",
|
|
31346
32170
|
{
|
|
31347
32171
|
variants: {
|
|
31348
32172
|
variant: {
|
|
@@ -31527,7 +32351,7 @@ var CodeBlock = ({
|
|
|
31527
32351
|
"div",
|
|
31528
32352
|
{
|
|
31529
32353
|
className: cn(
|
|
31530
|
-
"relative w-full overflow-hidden rounded-
|
|
32354
|
+
"relative w-full overflow-hidden rounded-sm border bg-background text-foreground",
|
|
31531
32355
|
className
|
|
31532
32356
|
),
|
|
31533
32357
|
...props,
|
|
@@ -31642,7 +32466,7 @@ function HoverCardContent2({
|
|
|
31642
32466
|
align,
|
|
31643
32467
|
sideOffset,
|
|
31644
32468
|
className: cn(
|
|
31645
|
-
"z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-
|
|
32469
|
+
"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",
|
|
31646
32470
|
className
|
|
31647
32471
|
),
|
|
31648
32472
|
...props
|
|
@@ -32346,7 +33170,7 @@ function DropdownMenuContent2({
|
|
|
32346
33170
|
"data-slot": "dropdown-menu-content",
|
|
32347
33171
|
sideOffset,
|
|
32348
33172
|
className: cn(
|
|
32349
|
-
"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-
|
|
33173
|
+
"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",
|
|
32350
33174
|
className
|
|
32351
33175
|
),
|
|
32352
33176
|
...props
|
|
@@ -32633,7 +33457,7 @@ function Textarea2({ className, ...props }) {
|
|
|
32633
33457
|
{
|
|
32634
33458
|
"data-slot": "textarea",
|
|
32635
33459
|
className: cn(
|
|
32636
|
-
"flex field-sizing-content min-h-16 w-full rounded-
|
|
33460
|
+
"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",
|
|
32637
33461
|
className
|
|
32638
33462
|
),
|
|
32639
33463
|
...props
|
|
@@ -32653,7 +33477,7 @@ function PromptInputAttachment({ data, className, ...props }) {
|
|
|
32653
33477
|
return /* @__PURE__ */ jsxs(
|
|
32654
33478
|
"div",
|
|
32655
33479
|
{
|
|
32656
|
-
className: cn("group relative h-14 w-14 rounded-
|
|
33480
|
+
className: cn("group relative h-14 w-14 rounded-sm border", className),
|
|
32657
33481
|
...props,
|
|
32658
33482
|
children: [
|
|
32659
33483
|
data.mediaType?.startsWith("image/") && data.url ? /* @__PURE__ */ jsx(
|
|
@@ -32931,7 +33755,7 @@ var PromptInput = ({
|
|
|
32931
33755
|
"form",
|
|
32932
33756
|
{
|
|
32933
33757
|
className: cn(
|
|
32934
|
-
"w-full divide-y overflow-hidden rounded-
|
|
33758
|
+
"w-full divide-y overflow-hidden rounded-sm border bg-background shadow-sm",
|
|
32935
33759
|
className
|
|
32936
33760
|
),
|
|
32937
33761
|
onSubmit: handleSubmit,
|
|
@@ -33296,7 +34120,7 @@ var TaskItemFile = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
33296
34120
|
"div",
|
|
33297
34121
|
{
|
|
33298
34122
|
className: cn(
|
|
33299
|
-
"inline-flex items-center gap-1 rounded-
|
|
34123
|
+
"inline-flex items-center gap-1 rounded-sm border bg-secondary px-1.5 py-0.5 text-xs text-foreground",
|
|
33300
34124
|
className
|
|
33301
34125
|
),
|
|
33302
34126
|
...props,
|
|
@@ -33331,7 +34155,7 @@ var TaskContent = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
33331
34155
|
children: /* @__PURE__ */ jsx("div", { className: "mt-4 space-y-2 border-l-2 border-muted pl-4", children })
|
|
33332
34156
|
}
|
|
33333
34157
|
);
|
|
33334
|
-
var Tool = ({ className, ...props }) => /* @__PURE__ */ jsx(Collapsible2, { className: cn("not-prose mb-4 w-full rounded-
|
|
34158
|
+
var Tool = ({ className, ...props }) => /* @__PURE__ */ jsx(Collapsible2, { className: cn("not-prose mb-4 w-full rounded-sm border", className), ...props });
|
|
33335
34159
|
var getStatusBadge = (status) => {
|
|
33336
34160
|
const labels = {
|
|
33337
34161
|
"input-streaming": "Pending",
|
|
@@ -33413,7 +34237,7 @@ function Input2({ className, type, ...props }) {
|
|
|
33413
34237
|
type,
|
|
33414
34238
|
"data-slot": "input",
|
|
33415
34239
|
className: cn(
|
|
33416
|
-
"h-9 w-full min-w-0 rounded-
|
|
34240
|
+
"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",
|
|
33417
34241
|
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
33418
34242
|
"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
|
|
33419
34243
|
className
|
|
@@ -33452,7 +34276,7 @@ var WebPreview = ({
|
|
|
33452
34276
|
return /* @__PURE__ */ jsx(WebPreviewContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
33453
34277
|
"div",
|
|
33454
34278
|
{
|
|
33455
|
-
className: cn("flex size-full flex-col rounded-
|
|
34279
|
+
className: cn("flex size-full flex-col rounded-sm border bg-card", className),
|
|
33456
34280
|
...props,
|
|
33457
34281
|
children
|
|
33458
34282
|
}
|
|
@@ -33691,6 +34515,6 @@ var languages = [
|
|
|
33691
34515
|
"html"
|
|
33692
34516
|
];
|
|
33693
34517
|
|
|
33694
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Action2 as Action, Actions, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, Artifact, ArtifactAction, ArtifactActions, ArtifactContent, ArtifactDescription, ArtifactHeader, ArtifactTitle, AspectRatio, AuthLayout, AvailableChartColors, Avatar, AvatarFallback, AvatarImage, Badge, BadgeButton, BarChart, BarList, BaseColorSwatches, Branch, BranchMessages, BranchNext, BranchPage, BranchPrevious, BranchSelector, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button2 as Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryBar, ChainOfThought, ChainOfThoughtContent, ChainOfThoughtHeader, ChainOfThoughtImage, ChainOfThoughtSearchResult, ChainOfThoughtSearchResults, ChainOfThoughtStep, ChartContainer, ChartLegend3 as ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip3 as ChartTooltip, ChartTooltipContent, Checkbox, CheckboxSmall, Code, CodeBlock, CodeBlockCopyButton, CodeDemo, CodeHighlight, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorCard, ColorSwatches, ColourScale, ComboChart, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Context, ContextCacheUsage, ContextContent, ContextContentBody, ContextContentFooter, ContextContentHeader, ContextInputUsage, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ContextOutputUsage, ContextReasoningUsage, ContextTrigger, Conversation, ConversationContent, ConversationEmptyState, ConversationScrollButton, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions, Description4 as Description, DescriptionDetails, DescriptionList, DescriptionTerm, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DynamicFavicon, ErrorMessage, ExpandableSearch, ExpandableSearchField, Field2 as Field, FieldGroup, FieldLabel, Fieldset2 as Fieldset, Footer, FooterAcknowledgement, FooterLegalLinks, FooterSmallPrint, FooterSocialLink, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormatToggle, GenerateInterpolatedColors, Header2 as Header, Heading, HeroBannerSupportingImage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Image4 as Image, InlineCitation, InlineCitationCard, InlineCitationCardBody, InlineCitationCardTrigger, InlineCitationCarousel, InlineCitationCarouselContent, InlineCitationCarouselHeader, InlineCitationCarouselIndex, InlineCitationCarouselItem, InlineCitationSource, InlineCitationText, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label5 as Label, Legend6 as Legend, LineChart, Link, _List as List, Listbox2 as Listbox, ListboxDescription, ListboxLabel, ListboxOption2 as ListboxOption, Loader, Loading, Logo, MainNavigation, Masthead, MegaMenu, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageContent, MobileHeader, MobileSearch, MultiLevelPushMenu, NSWCard, NSWCardArrow, NSWCardDescription, NSWCardIcon, NSWCardImg, NSWCardTitle, Navbar, NavbarDivider, NavbarItem, NavbarLabel, NavbarSection, NavbarSpacer, Navigation, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NotFound, OpenIn, OpenInChatGPT, OpenInClaude, OpenInContent, OpenInScira, OpenInT3, OpenInTrigger, OpenInv0, PageHeading, Pagination, PaginationGap, PaginationList, PaginationNext, PaginationPage, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreWithCopy, PrevNextLinks, PrevNextLinksPageLink, Progress, ProgressBar, ProgressCircle, PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuItem, PromptInputActionMenuTrigger, PromptInputAttachment, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputSubmit, PromptInputTextarea, PromptInputToolbar, PromptInputTools, Prose, RadioGroup2 as RadioGroup, RadioGroupItem, Reasoning, ReasoningContent, ReasoningTrigger, ResizableHandle, ResizablePanel, ResizablePanelGroup, Response, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator4 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLink, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarNavigation, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteSearch, Skeleton, Slider, Social, Source, Sources, SourcesContent, SourcesTrigger, SparkAreaChart, SparkBarChart, SparkLineChart, Spinner, StepIndicator, StepNavigation, Strong, SubmitButton, Suggestion, Suggestions, Switch2 as Switch, SwitchField, SwitchGroup, TabNavigation, TabNavigationLink, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableRow, Tabs2 as Tabs, TabsContent, TabsList, TabsTrigger, Task, TaskContent, TaskItem, TaskItemFile, TaskTrigger, Text, TextLink, Textarea, ThemeColorPalette, ThemeProvider, ThemeSelector, ThemeSwitcher, Toaster, TocContext, TocProvider, Toggle, ToggleGroup, ToggleGroupItem, Tool, ToolContent, ToolHeader, ToolInput, ToolOutput, Tooltip5 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLevel, TouchTarget, Tracker, Tooltip3 as TremorTooltip, ViewToggle, WebPreview, WebPreviewBody, WebPreviewNavigation, WebPreviewUrl, Wrapper, aboriginal, addStartStopToColorArray, allPalettes, badgeVariants, brand, buttonVariants, camelCase, chartColors, cn, colorDataArray, colorThemes, colors, constructCategoryColors, createColorArray, createColorData, createFormStore, darkenColor, diverging, domToSimple, focusInput, focusRing, generateColorThemes, generateDataVisColors, getColorClassName, getColorValue, getHeadings, getNodeText, getSurroundingColors, getYAxisDomain, hasErrorInput, hasOnlyOneValueForKey, humaniseVariant, interpolateColors, isLightColor, kebabCase, languages, lightenColor, navigationMenuTriggerStyle, oklchConverter, progressBarVariants, renderColorOutput, renderColorOutputToDTFM, semantic, sequential, shades, themeIndices, themeTokens, toggleVariants, truncate, useActiveSectionObserver, useDisableToc, useFormField, useIsMobile, useOnWindowResize, usePageHeadings, usePromptInputAttachments, useSelectorHeight, useSidebar, useStickyOffset, useToc };
|
|
34518
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Action2 as Action, Actions, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, Artifact, ArtifactAction, ArtifactActions, ArtifactContent, ArtifactDescription, ArtifactHeader, ArtifactTitle, AspectRatio, AuthLayout, AvailableChartColors, Avatar, AvatarFallback, AvatarImage, Badge, BadgeButton, BarChart, BarList, BaseColorSwatches, Branch, BranchMessages, BranchNext, BranchPage, BranchPrevious, BranchSelector, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button2 as Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryBar, ChainOfThought, ChainOfThoughtContent, ChainOfThoughtHeader, ChainOfThoughtImage, ChainOfThoughtSearchResult, ChainOfThoughtSearchResults, ChainOfThoughtStep, ChartContainer, ChartLegend3 as ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip3 as ChartTooltip, ChartTooltipContent, Checkbox, CheckboxSmall, Code, CodeBlock, CodeBlockCopyButton, CodeDemo, CodeHighlight, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorCard, ColorPairingTool, ColorSwatches, ColourScale, ComboChart, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Context, ContextCacheUsage, ContextContent, ContextContentBody, ContextContentFooter, ContextContentHeader, ContextInputUsage, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ContextOutputUsage, ContextReasoningUsage, ContextTrigger, Conversation, ConversationContent, ConversationEmptyState, ConversationScrollButton, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions, Description4 as Description, DescriptionDetails, DescriptionList, DescriptionTerm, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DynamicFavicon, ErrorMessage, ExpandableSearch, ExpandableSearchField, Field2 as Field, FieldGroup, FieldLabel, Fieldset2 as Fieldset, Footer, FooterAcknowledgement, FooterLegalLinks, FooterSmallPrint, FooterSocialLink, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormatToggle, GenerateInterpolatedColors, Header2 as Header, Heading, HeroBannerSupportingImage, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Image4 as Image, InlineCitation, InlineCitationCard, InlineCitationCardBody, InlineCitationCardTrigger, InlineCitationCarousel, InlineCitationCarouselContent, InlineCitationCarouselHeader, InlineCitationCarouselIndex, InlineCitationCarouselItem, InlineCitationSource, InlineCitationText, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label5 as Label, Legend6 as Legend, LineChart, Link, _List as List, Listbox2 as Listbox, ListboxDescription, ListboxLabel, ListboxOption2 as ListboxOption, Loader, Loading, Logo, MainNavigation, Masthead, MegaMenu, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Message, MessageContent, MobileHeader, MobileSearch, MultiLevelPushMenu, NSWCard, NSWCardArrow, NSWCardDescription, NSWCardIcon, NSWCardImg, NSWCardTitle, Navbar, NavbarDivider, NavbarItem, NavbarLabel, NavbarSection, NavbarSpacer, Navigation, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NotFound, OpenIn, OpenInChatGPT, OpenInClaude, OpenInContent, OpenInScira, OpenInT3, OpenInTrigger, OpenInv0, PageHeading, Pagination, PaginationGap, PaginationList, PaginationNext, PaginationPage, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreWithCopy, PrevNextLinks, PrevNextLinksPageLink, Progress, ProgressBar, ProgressCircle, PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuItem, PromptInputActionMenuTrigger, PromptInputAttachment, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputSubmit, PromptInputTextarea, PromptInputToolbar, PromptInputTools, Prose, RadioGroup2 as RadioGroup, RadioGroupItem, Reasoning, ReasoningContent, ReasoningTrigger, ResizableHandle, ResizablePanel, ResizablePanelGroup, Response, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator4 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLink, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarNavigation, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteSearch, Skeleton, Slider, Social, Source, Sources, SourcesContent, SourcesTrigger, SparkAreaChart, SparkBarChart, SparkLineChart, Spinner, StepIndicator, StepNavigation, Strong, SubmitButton, Suggestion, Suggestions, Switch2 as Switch, SwitchField, SwitchGroup, TabNavigation, TabNavigationLink, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableRow, Tabs2 as Tabs, TabsContent, TabsList, TabsTrigger, Task, TaskContent, TaskItem, TaskItemFile, TaskTrigger, Text, TextLink, Textarea, ThemeColorPalette, ThemeProvider, ThemeSelector, ThemeSwitcher, Toaster, TocContext, TocProvider, Toggle, ToggleGroup, ToggleGroupItem, Tool, ToolContent, ToolHeader, ToolInput, ToolOutput, Tooltip5 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLevel, TouchTarget, Tracker, Tooltip3 as TremorTooltip, ViewToggle, WebPreview, WebPreviewBody, WebPreviewNavigation, WebPreviewUrl, Wrapper, aboriginal, addStartStopToColorArray, allPalettes, badgeVariants, brand, buttonVariants, camelCase, chartColors, cn, colorDataArray, colorThemes, colors, constructCategoryColors, createColorArray, createColorData, createFormStore, darkenColor, diverging, domToSimple, focusInput, focusRing, generateColorThemes, generateDataVisColors, getColorClassName, getColorValue, getHeadings, getNodeText, getSurroundingColors, getYAxisDomain, hasErrorInput, hasOnlyOneValueForKey, humaniseVariant, interpolateColors, isLightColor, kebabCase, languages, lightenColor, navigationMenuTriggerStyle, oklchConverter, progressBarVariants, renderColorOutput, renderColorOutputToDTFM, semantic, sequential, shades, themeIndices, themeTokens, toggleVariants, truncate, useActiveSectionObserver, useDisableToc, useFormField, useIsMobile, useOnWindowResize, usePageHeadings, usePromptInputAttachments, useSelectorHeight, useSidebar, useStickyOffset, useToc };
|
|
33695
34519
|
//# sourceMappingURL=index.js.map
|
|
33696
34520
|
//# sourceMappingURL=index.js.map
|