@epilot/spark-ui 0.26.1 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/alert-dialog.cjs +1 -1
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/avatar.d.cts +1 -1
- package/dist/components/avatar.d.ts +1 -1
- package/dist/components/badge.cjs +10 -2
- package/dist/components/badge.cjs.map +1 -1
- package/dist/components/badge.d.cts +2 -1
- package/dist/components/badge.d.ts +2 -1
- package/dist/components/badge.js +10 -2
- package/dist/components/badge.js.map +1 -1
- package/dist/components/banner.d.cts +1 -1
- package/dist/components/banner.d.ts +1 -1
- package/dist/components/box.d.cts +1 -1
- package/dist/components/box.d.ts +1 -1
- package/dist/components/bubble.cjs +1 -1
- package/dist/components/bubble.cjs.map +1 -1
- package/dist/components/bubble.d.cts +1 -1
- package/dist/components/bubble.d.ts +1 -1
- package/dist/components/bubble.js +1 -1
- package/dist/components/bubble.js.map +1 -1
- package/dist/components/button-group.d.cts +1 -1
- package/dist/components/button-group.d.ts +1 -1
- package/dist/components/button.cjs +28 -6
- package/dist/components/button.cjs.map +1 -1
- package/dist/components/button.d.cts +7 -6
- package/dist/components/button.d.ts +7 -6
- package/dist/components/button.js +28 -6
- package/dist/components/button.js.map +1 -1
- package/dist/components/callout.d.cts +1 -1
- package/dist/components/callout.d.ts +1 -1
- package/dist/components/card.cjs +8 -4
- package/dist/components/card.cjs.map +1 -1
- package/dist/components/card.d.cts +6 -2
- package/dist/components/card.d.ts +6 -2
- package/dist/components/card.js +8 -4
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox-group.cjs +31 -0
- package/dist/components/checkbox-group.cjs.map +1 -0
- package/dist/components/checkbox-group.d.cts +27 -0
- package/dist/components/checkbox-group.d.ts +27 -0
- package/dist/components/checkbox-group.js +28 -0
- package/dist/components/checkbox-group.js.map +1 -0
- package/dist/components/checkbox.d.cts +1 -1
- package/dist/components/checkbox.d.ts +1 -1
- package/dist/components/dialog.cjs +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/empty-state.d.cts +2 -2
- package/dist/components/empty-state.d.ts +2 -2
- package/dist/components/field.cjs +110 -15
- package/dist/components/field.cjs.map +1 -1
- package/dist/components/field.d.cts +16 -3
- package/dist/components/field.d.ts +16 -3
- package/dist/components/field.js +111 -17
- package/dist/components/field.js.map +1 -1
- package/dist/components/input-group.cjs +9 -9
- package/dist/components/input-group.cjs.map +1 -1
- package/dist/components/input-group.js +9 -9
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/input.d.cts +1 -1
- package/dist/components/input.d.ts +1 -1
- package/dist/components/list.cjs +21 -5
- package/dist/components/list.cjs.map +1 -1
- package/dist/components/list.d.cts +13 -5
- package/dist/components/list.d.ts +13 -5
- package/dist/components/list.js +21 -5
- package/dist/components/list.js.map +1 -1
- package/dist/components/marker.cjs +1 -1
- package/dist/components/marker.cjs.map +1 -1
- package/dist/components/marker.d.cts +1 -1
- package/dist/components/marker.d.ts +1 -1
- package/dist/components/marker.js +1 -1
- package/dist/components/marker.js.map +1 -1
- package/dist/components/pill.d.cts +1 -1
- package/dist/components/pill.d.ts +1 -1
- package/dist/components/radio.cjs +6 -2
- package/dist/components/radio.cjs.map +1 -1
- package/dist/components/radio.d.cts +4 -2
- package/dist/components/radio.d.ts +4 -2
- package/dist/components/radio.js +6 -2
- package/dist/components/radio.js.map +1 -1
- package/dist/components/rating.cjs +167 -0
- package/dist/components/rating.cjs.map +1 -0
- package/dist/components/rating.d.cts +50 -0
- package/dist/components/rating.d.ts +50 -0
- package/dist/components/rating.js +162 -0
- package/dist/components/rating.js.map +1 -0
- package/dist/components/scroll-area.cjs +9 -2
- package/dist/components/scroll-area.cjs.map +1 -1
- package/dist/components/scroll-area.d.cts +1 -1
- package/dist/components/scroll-area.d.ts +1 -1
- package/dist/components/scroll-area.js +10 -3
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/segmented-control.d.cts +1 -1
- package/dist/components/segmented-control.d.ts +1 -1
- package/dist/components/select.d.cts +1 -1
- package/dist/components/select.d.ts +1 -1
- package/dist/components/selection-item.cjs +42 -0
- package/dist/components/selection-item.cjs.map +1 -0
- package/dist/components/selection-item.d.cts +25 -0
- package/dist/components/selection-item.d.ts +25 -0
- package/dist/components/selection-item.js +39 -0
- package/dist/components/selection-item.js.map +1 -0
- package/dist/components/sheet.cjs +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/skeleton.cjs +1 -1
- package/dist/components/skeleton.cjs.map +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.cjs +1 -1
- package/dist/components/slider.cjs.map +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/spinner.cjs +81 -8
- package/dist/components/spinner.cjs.map +1 -1
- package/dist/components/spinner.js +81 -8
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/stepper.cjs +3 -2
- package/dist/components/stepper.cjs.map +1 -1
- package/dist/components/stepper.js +3 -2
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch-group.cjs +32 -0
- package/dist/components/switch-group.cjs.map +1 -0
- package/dist/components/switch-group.d.cts +26 -0
- package/dist/components/switch-group.d.ts +26 -0
- package/dist/components/switch-group.js +29 -0
- package/dist/components/switch-group.js.map +1 -0
- package/dist/components/switch.d.cts +1 -1
- package/dist/components/switch.d.ts +1 -1
- package/dist/components/tabs.cjs +32 -23
- package/dist/components/tabs.cjs.map +1 -1
- package/dist/components/tabs.d.cts +5 -5
- package/dist/components/tabs.d.ts +5 -5
- package/dist/components/tabs.js +32 -23
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/textarea.d.cts +1 -1
- package/dist/components/textarea.d.ts +1 -1
- package/dist/components/theme.cjs +44 -2
- package/dist/components/theme.cjs.map +1 -1
- package/dist/components/theme.d.cts +4 -2
- package/dist/components/theme.d.ts +4 -2
- package/dist/components/theme.js +44 -2
- package/dist/components/theme.js.map +1 -1
- package/dist/components/toast.cjs +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/toggle-group.d.cts +1 -1
- package/dist/components/toggle-group.d.ts +1 -1
- package/dist/components/toggle.d.cts +2 -2
- package/dist/components/toggle.d.ts +2 -2
- package/dist/lib/accent-theme.d.cts +1 -1
- package/dist/lib/accent-theme.d.ts +1 -1
- package/dist/lib/container-chrome.cjs +4 -4
- package/dist/lib/container-chrome.cjs.map +1 -1
- package/dist/lib/container-chrome.d.cts +1 -1
- package/dist/lib/container-chrome.d.ts +1 -1
- package/dist/lib/container-chrome.js +4 -4
- package/dist/lib/container-chrome.js.map +1 -1
- package/dist/lib/input-box-variants.cjs +8 -8
- package/dist/lib/input-box-variants.cjs.map +1 -1
- package/dist/lib/input-box-variants.d.cts +1 -1
- package/dist/lib/input-box-variants.d.ts +1 -1
- package/dist/lib/input-box-variants.js +8 -8
- package/dist/lib/input-box-variants.js.map +1 -1
- package/dist/lib/selection-list.cjs +17 -0
- package/dist/lib/selection-list.cjs.map +1 -0
- package/dist/lib/selection-list.d.cts +11 -0
- package/dist/lib/selection-list.d.ts +11 -0
- package/dist/lib/selection-list.js +15 -0
- package/dist/lib/selection-list.js.map +1 -0
- package/dist/lib/theme-types.cjs.map +1 -1
- package/dist/lib/theme-types.d.cts +2 -2
- package/dist/lib/theme-types.d.ts +2 -2
- package/dist/lib/theme-types.js.map +1 -1
- package/dist/lib/toggle-group-context.d.cts +2 -1
- package/dist/lib/toggle-group-context.d.ts +2 -1
- package/dist/styles/spark-default.css +12 -1
- package/dist/styles/theme.css +98 -0
- package/dist/{theme-types-Bn5E15-P.d.ts → theme-types-CKZzOmSa.d.cts} +11 -2
- package/dist/{theme-types-Bn5E15-P.d.cts → theme-types-CKZzOmSa.d.ts} +11 -2
- package/package.json +1 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
4
|
const require_chunk = require("../chunk-DY84GLCh.cjs");
|
|
5
|
-
const require_components_button = require("./button.cjs");
|
|
6
5
|
const require_components_theme = require("./theme.cjs");
|
|
6
|
+
const require_components_button = require("./button.cjs");
|
|
7
7
|
const require_components_spinner = require("./spinner.cjs");
|
|
8
8
|
let react = require("react");
|
|
9
9
|
react = require_chunk.__toESM(react);
|
package/dist/components/toast.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import { cn } from "../utils/cn.js";
|
|
4
|
-
import { buttonVariants } from "./button.js";
|
|
5
4
|
import { PortalTheme } from "./theme.js";
|
|
5
|
+
import { buttonVariants } from "./button.js";
|
|
6
6
|
import { Spinner } from "./spinner.js";
|
|
7
7
|
import "react";
|
|
8
8
|
import { Cancel, CheckCircle, Close, Info, Warning } from "@epilot/spark-icons";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { SparkButtonColor } from "
|
|
3
|
+
import { n as SparkButtonColor } from "../theme-types-CKZzOmSa.cjs";
|
|
4
4
|
import { ToggleProps, ToggleStyle } from "./toggle.cjs";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { SparkButtonColor } from "
|
|
3
|
+
import { n as SparkButtonColor } from "../theme-types-CKZzOmSa.js";
|
|
4
4
|
import { ToggleProps, ToggleStyle } from "./toggle.js";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { g as SparkStyle, n as SparkButtonColor } from "../theme-types-CKZzOmSa.cjs";
|
|
4
|
+
import { buttonVariants } from "./button.cjs";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { VariantProps } from "class-variance-authority";
|
|
7
7
|
import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { g as SparkStyle, n as SparkButtonColor } from "../theme-types-CKZzOmSa.js";
|
|
4
|
+
import { buttonVariants } from "./button.js";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { VariantProps } from "class-variance-authority";
|
|
7
7
|
import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { d as SparkNeutral, f as SparkNeutralFamily } from "../theme-types-CKZzOmSa.cjs";
|
|
4
4
|
import { t as generateRadixColors } from "../generate-radix-colors-BY4Wjsm7.cjs";
|
|
5
5
|
|
|
6
6
|
//#region src/lib/accent-theme.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { d as SparkNeutral, f as SparkNeutralFamily } from "../theme-types-CKZzOmSa.js";
|
|
4
4
|
import { t as generateRadixColors } from "../generate-radix-colors-BY4Wjsm7.js";
|
|
5
5
|
|
|
6
6
|
//#region src/lib/accent-theme.d.ts
|
|
@@ -12,12 +12,12 @@ const radiusClasses = {
|
|
|
12
12
|
full: "rounded-full"
|
|
13
13
|
};
|
|
14
14
|
const containerChrome = {
|
|
15
|
-
ambient: "border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3))",
|
|
16
|
-
soft: "bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))]",
|
|
17
|
-
surface: "border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))]",
|
|
15
|
+
ambient: "border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3)) [--spark-skeleton-bg:var(--neutral-a5)] [--color-focus-root:var(--spark-card-focus,var(--spark-11))]",
|
|
16
|
+
soft: "bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))] [--spark-skeleton-bg:var(--neutral-a5)]",
|
|
17
|
+
surface: "border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))] [--spark-card-focus:var(--spark-11)] [--color-focus-root:var(--spark-11)]",
|
|
18
18
|
outline: "border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]",
|
|
19
19
|
ghost: "[--spark-card-bg:transparent]",
|
|
20
|
-
solid: "bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))]"
|
|
20
|
+
solid: "bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-focus:var(--spark-card-c-contrast,var(--neutral-12))] [--color-focus-root:var(--spark-card-focus)]"
|
|
21
21
|
};
|
|
22
22
|
const containerPaddingX = {
|
|
23
23
|
ambient: "px-(--spark-card-px,1rem)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-chrome.cjs","names":[],"sources":["../../src/lib/container-chrome.ts"],"sourcesContent":["import type { SparkCardVariant } from './theme-types'\n\n// `ambient` is
|
|
1
|
+
{"version":3,"file":"container-chrome.cjs","names":[],"sources":["../../src/lib/container-chrome.ts"],"sourcesContent":["import type { SparkCardVariant } from './theme-types'\n\n// `ambient` is Card's cva key for an unset `variant` prop and List's opt-in `variant` — not\n// part of the public SparkCardVariant union, which Card shares with Theme's `cardVariant`.\nexport type ContainerVariant = SparkCardVariant | 'ambient'\n\nexport type ContainerRadius =\n | 'none'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | 'full'\n\nexport const radiusClasses: Record<ContainerRadius, string> = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n '3xl': 'rounded-3xl',\n full: 'rounded-full',\n}\n\n// Fill/border/token-overrides only. Padding is a separate axis (containerPaddingX/All below) —\n// Card insets horizontally and owns its own vertical rhythm; Box has no such assumption.\n// Every non-ambient entry also writes --spark-card-bg (not just its `bg-` class): a\n// per-card `variant` prop applies these classes directly and never touches the\n// [data-card-variant] CSS block that normally populates that var for the ambient/\n// inherited case, but `elevated`'s gradient overlay (containerElevated below) needs\n// to read *some* var to know the variant's fill, whichever path set it.\nexport const containerChrome: Record<ContainerVariant, string> = {\n ambient:\n 'border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3)) [--spark-skeleton-bg:var(--neutral-a5)] [--color-focus-root:var(--spark-card-focus,var(--spark-11))]',\n soft: 'bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))] [--spark-skeleton-bg:var(--neutral-a5)]',\n surface:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))] [--spark-card-focus:var(--spark-11)] [--color-focus-root:var(--spark-11)]',\n outline:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]',\n ghost: '[--spark-card-bg:transparent]',\n solid:\n 'bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-focus:var(--spark-card-c-contrast,var(--neutral-12))] [--color-focus-root:var(--spark-card-focus)]',\n}\n\nexport const containerPaddingX: Record<ContainerVariant, string> = {\n ambient: 'px-(--spark-card-px,1rem)',\n soft: 'px-4',\n surface: 'px-4',\n outline: 'px-4',\n ghost: '',\n solid: 'px-4',\n}\n\nexport const containerPaddingAll: Record<ContainerVariant, string> = {\n ambient: 'p-(--spark-card-px,1rem)',\n soft: 'p-4',\n surface: 'p-4',\n outline: 'p-4',\n ghost: '',\n solid: 'p-4',\n}\n\n// `elevated`: the hover tint targets the gradient layer instead of `background-color` —\n// the base stays the opaque --spark-elevated fill, so a hover never leaks the backdrop.\nexport function containerInteractiveClasses(\n resolved: ContainerVariant,\n elevated?: boolean,\n) {\n const softHover =\n (resolved === 'ambient' || resolved === 'soft') &&\n (elevated\n ? 'hover:[background-image:linear-gradient(var(--spark-card-c-soft-hover,var(--neutral-a4)),var(--spark-card-c-soft-hover,var(--neutral-a4)))]'\n : 'hover:bg-(--spark-card-c-soft-hover,var(--neutral-a4))')\n return [\n 'cursor-pointer text-left no-underline transition-colors motion-reduce:transition-none',\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n // hover deepens the fill one step; bordered/bare variants only ring\n softHover,\n ]\n}\n\n// Opaque base + the variant's own fill painted as an image layer over it — no\n// variant/color combination can render translucent, which matters when the container\n// sits over an arbitrary backdrop (a photo) rather than the flat app canvas.\nexport const containerElevated =\n 'bg-(--spark-elevated) ' +\n '[background-image:linear-gradient(var(--spark-card-bg,transparent),var(--spark-card-bg,transparent))] ' +\n 'shadow-(--spark-card-shadow,var(--spark-shadow-1))'\n"],"mappings":";;;AAgBA,MAAa,gBAAiD;CAC5D,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,MAAM;AACR;AASA,MAAa,kBAAoD;CAC/D,SACE;CACF,MAAM;CACN,SACE;CACF,SACE;CACF,OAAO;CACP,OACE;AACJ;AAEA,MAAa,oBAAsD;CACjE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAEA,MAAa,sBAAwD;CACnE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAIA,SAAgB,4BACd,UACA,UACA;CAMA,OAAO;EACL;EACA;EACA;GAPC,aAAa,aAAa,aAAa,YACvC,WACG,gJACA;CAON;AACF;AAKA,MAAa,oBACX"}
|
|
@@ -11,12 +11,12 @@ const radiusClasses = {
|
|
|
11
11
|
full: "rounded-full"
|
|
12
12
|
};
|
|
13
13
|
const containerChrome = {
|
|
14
|
-
ambient: "border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3))",
|
|
15
|
-
soft: "bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))]",
|
|
16
|
-
surface: "border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))]",
|
|
14
|
+
ambient: "border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3)) [--spark-skeleton-bg:var(--neutral-a5)] [--color-focus-root:var(--spark-card-focus,var(--spark-11))]",
|
|
15
|
+
soft: "bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))] [--spark-skeleton-bg:var(--neutral-a5)]",
|
|
16
|
+
surface: "border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))] [--spark-card-focus:var(--spark-11)] [--color-focus-root:var(--spark-11)]",
|
|
17
17
|
outline: "border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]",
|
|
18
18
|
ghost: "[--spark-card-bg:transparent]",
|
|
19
|
-
solid: "bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))]"
|
|
19
|
+
solid: "bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-focus:var(--spark-card-c-contrast,var(--neutral-12))] [--color-focus-root:var(--spark-card-focus)]"
|
|
20
20
|
};
|
|
21
21
|
const containerPaddingX = {
|
|
22
22
|
ambient: "px-(--spark-card-px,1rem)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-chrome.js","names":[],"sources":["../../src/lib/container-chrome.ts"],"sourcesContent":["import type { SparkCardVariant } from './theme-types'\n\n// `ambient` is
|
|
1
|
+
{"version":3,"file":"container-chrome.js","names":[],"sources":["../../src/lib/container-chrome.ts"],"sourcesContent":["import type { SparkCardVariant } from './theme-types'\n\n// `ambient` is Card's cva key for an unset `variant` prop and List's opt-in `variant` — not\n// part of the public SparkCardVariant union, which Card shares with Theme's `cardVariant`.\nexport type ContainerVariant = SparkCardVariant | 'ambient'\n\nexport type ContainerRadius =\n | 'none'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | '3xl'\n | 'full'\n\nexport const radiusClasses: Record<ContainerRadius, string> = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n '3xl': 'rounded-3xl',\n full: 'rounded-full',\n}\n\n// Fill/border/token-overrides only. Padding is a separate axis (containerPaddingX/All below) —\n// Card insets horizontally and owns its own vertical rhythm; Box has no such assumption.\n// Every non-ambient entry also writes --spark-card-bg (not just its `bg-` class): a\n// per-card `variant` prop applies these classes directly and never touches the\n// [data-card-variant] CSS block that normally populates that var for the ambient/\n// inherited case, but `elevated`'s gradient overlay (containerElevated below) needs\n// to read *some* var to know the variant's fill, whichever path set it.\nexport const containerChrome: Record<ContainerVariant, string> = {\n ambient:\n 'border-(length:--spark-card-border-width,0px) border-(--spark-card-border,transparent) bg-(--spark-card-bg,var(--neutral-a3)) [--spark-skeleton-bg:var(--neutral-a5)] [--color-focus-root:var(--spark-card-focus,var(--spark-11))]',\n soft: 'bg-(--spark-card-c-soft,var(--neutral-a3)) [--spark-card-bg:var(--spark-card-c-soft,var(--neutral-a3))] [--spark-skeleton-bg:var(--neutral-a5)]',\n surface:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) bg-(--spark-card-c-surface,var(--neutral-2)) [--spark-card-bg:var(--spark-card-c-surface,var(--neutral-2))] [--spark-card-focus:var(--spark-11)] [--color-focus-root:var(--spark-11)]',\n outline:\n 'border border-(--spark-card-c-border,var(--neutral-a6)) [--spark-card-bg:transparent]',\n ghost: '[--spark-card-bg:transparent]',\n solid:\n 'bg-(--spark-card-c-solid,var(--neutral-1)) [--spark-card-bg:var(--spark-card-c-solid,var(--neutral-1))] [--spark-card-fg-muted:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-fg:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-icon:var(--spark-card-c-contrast,var(--neutral-12))] [--spark-card-focus:var(--spark-card-c-contrast,var(--neutral-12))] [--color-focus-root:var(--spark-card-focus)]',\n}\n\nexport const containerPaddingX: Record<ContainerVariant, string> = {\n ambient: 'px-(--spark-card-px,1rem)',\n soft: 'px-4',\n surface: 'px-4',\n outline: 'px-4',\n ghost: '',\n solid: 'px-4',\n}\n\nexport const containerPaddingAll: Record<ContainerVariant, string> = {\n ambient: 'p-(--spark-card-px,1rem)',\n soft: 'p-4',\n surface: 'p-4',\n outline: 'p-4',\n ghost: '',\n solid: 'p-4',\n}\n\n// `elevated`: the hover tint targets the gradient layer instead of `background-color` —\n// the base stays the opaque --spark-elevated fill, so a hover never leaks the backdrop.\nexport function containerInteractiveClasses(\n resolved: ContainerVariant,\n elevated?: boolean,\n) {\n const softHover =\n (resolved === 'ambient' || resolved === 'soft') &&\n (elevated\n ? 'hover:[background-image:linear-gradient(var(--spark-card-c-soft-hover,var(--neutral-a4)),var(--spark-card-c-soft-hover,var(--neutral-a4)))]'\n : 'hover:bg-(--spark-card-c-soft-hover,var(--neutral-a4))')\n return [\n 'cursor-pointer text-left no-underline transition-colors motion-reduce:transition-none',\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50',\n // hover deepens the fill one step; bordered/bare variants only ring\n softHover,\n ]\n}\n\n// Opaque base + the variant's own fill painted as an image layer over it — no\n// variant/color combination can render translucent, which matters when the container\n// sits over an arbitrary backdrop (a photo) rather than the flat app canvas.\nexport const containerElevated =\n 'bg-(--spark-elevated) ' +\n '[background-image:linear-gradient(var(--spark-card-bg,transparent),var(--spark-card-bg,transparent))] ' +\n 'shadow-(--spark-card-shadow,var(--spark-shadow-1))'\n"],"mappings":";;AAgBA,MAAa,gBAAiD;CAC5D,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,MAAM;AACR;AASA,MAAa,kBAAoD;CAC/D,SACE;CACF,MAAM;CACN,SACE;CACF,SACE;CACF,OAAO;CACP,OACE;AACJ;AAEA,MAAa,oBAAsD;CACjE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAEA,MAAa,sBAAwD;CACnE,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;CACP,OAAO;AACT;AAIA,SAAgB,4BACd,UACA,UACA;CAMA,OAAO;EACL;EACA;EACA;GAPC,aAAa,aAAa,aAAa,YACvC,WACG,gJACA;CAON;AACF;AAKA,MAAa,oBACX"}
|
|
@@ -3,20 +3,20 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
let cn = require("cn");
|
|
4
4
|
//#region src/lib/input-box-variants.ts
|
|
5
5
|
const GHOST_UNDERLINE = "h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled";
|
|
6
|
-
const SOFT_BASE = "user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-
|
|
7
|
-
const BORDERED = "border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-
|
|
6
|
+
const SOFT_BASE = "user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-(--color-error-active) disabled:bg-base-gray-soft disabled:opacity-50 aria-invalid:bg-base-error-soft aria-invalid:text-error aria-invalid:not-disabled:hover:bg-red-a4 aria-invalid:focus-visible:ring-(--color-error-active) group-data-[invalid=true]/field:bg-base-error-soft group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:not-disabled:hover:bg-red-a4 group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)";
|
|
7
|
+
const BORDERED = "border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:border-input-invalid! user-invalid:focus-visible:ring-(--color-error-active)! disabled:border-input-disabled disabled:opacity-50 aria-invalid:border-input-invalid aria-invalid:text-error aria-invalid:focus-visible:border-input-invalid! aria-invalid:focus-visible:ring-(--color-error-active)! group-data-[invalid=true]/field:border-input-invalid group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus-visible:border-input-invalid! group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)!";
|
|
8
8
|
const boxChrome = {
|
|
9
9
|
soft: {
|
|
10
|
-
brand: (0, cn.cn)(SOFT_BASE, "bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-
|
|
11
|
-
gray: (0, cn.cn)(SOFT_BASE, "bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-
|
|
10
|
+
brand: (0, cn.cn)(SOFT_BASE, "bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-(--color-focus-root)"),
|
|
11
|
+
gray: (0, cn.cn)(SOFT_BASE, "bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-(--color-focus-root)")
|
|
12
12
|
},
|
|
13
13
|
surface: {
|
|
14
|
-
brand: (0, cn.cn)(BORDERED, "border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-
|
|
15
|
-
gray: (0, cn.cn)(BORDERED, "border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-
|
|
14
|
+
brand: (0, cn.cn)(BORDERED, "border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-(--color-focus-root)"),
|
|
15
|
+
gray: (0, cn.cn)(BORDERED, "border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)")
|
|
16
16
|
},
|
|
17
17
|
outlined: {
|
|
18
|
-
brand: (0, cn.cn)(BORDERED, "border-input focus-visible:border-input-active focus-visible:ring-
|
|
19
|
-
gray: (0, cn.cn)(BORDERED, "border-input-gray focus-visible:border-gray-a8 focus-visible:ring-
|
|
18
|
+
brand: (0, cn.cn)(BORDERED, "border-input focus-visible:border-input-active focus-visible:ring-(--color-focus-root)"),
|
|
19
|
+
gray: (0, cn.cn)(BORDERED, "border-input-gray focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)")
|
|
20
20
|
},
|
|
21
21
|
ghost: {
|
|
22
22
|
brand: (0, cn.cn)(GHOST_UNDERLINE, "border-b-input"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-box-variants.cjs","names":[],"sources":["../../src/lib/input-box-variants.ts"],"sourcesContent":["import { cn } from '../utils/cn'\nimport type { SparkInputColor, SparkInputStyle } from './theme-types'\n\nexport const GHOST_UNDERLINE =\n 'h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled'\n\nconst SOFT_BASE =\n 'user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-
|
|
1
|
+
{"version":3,"file":"input-box-variants.cjs","names":[],"sources":["../../src/lib/input-box-variants.ts"],"sourcesContent":["import { cn } from '../utils/cn'\nimport type { SparkInputColor, SparkInputStyle } from './theme-types'\n\nexport const GHOST_UNDERLINE =\n 'h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled'\n\nconst SOFT_BASE =\n 'user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-(--color-error-active) disabled:bg-base-gray-soft disabled:opacity-50 aria-invalid:bg-base-error-soft aria-invalid:text-error aria-invalid:not-disabled:hover:bg-red-a4 aria-invalid:focus-visible:ring-(--color-error-active) group-data-[invalid=true]/field:bg-base-error-soft group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:not-disabled:hover:bg-red-a4 group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)'\n\nconst BORDERED =\n 'border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:border-input-invalid! user-invalid:focus-visible:ring-(--color-error-active)! disabled:border-input-disabled disabled:opacity-50 aria-invalid:border-input-invalid aria-invalid:text-error aria-invalid:focus-visible:border-input-invalid! aria-invalid:focus-visible:ring-(--color-error-active)! group-data-[invalid=true]/field:border-input-invalid group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus-visible:border-input-invalid! group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)!'\nexport const boxChrome: Record<\n SparkInputStyle,\n Record<SparkInputColor, string>\n> = {\n soft: {\n brand: cn(\n SOFT_BASE,\n 'bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-(--color-focus-root)',\n ),\n gray: cn(\n SOFT_BASE,\n 'bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-(--color-focus-root)',\n ),\n },\n surface: {\n brand: cn(\n BORDERED,\n 'border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-(--color-focus-root)',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)',\n ),\n },\n outlined: {\n brand: cn(\n BORDERED,\n 'border-input focus-visible:border-input-active focus-visible:ring-(--color-focus-root)',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)',\n ),\n },\n ghost: {\n brand: cn(GHOST_UNDERLINE, 'border-b-input'),\n gray: cn(GHOST_UNDERLINE, 'border-b-input-gray'),\n },\n}\n"],"mappings":";;;;AAGA,MAAa,kBACX;AAEF,MAAM,YACJ;AAEF,MAAM,WACJ;AACF,MAAa,YAGT;CACF,MAAM;EACJ,QAAA,GAAA,GAAA,IACE,WACA,8FACF;EACA,OAAA,GAAA,GAAA,IACE,WACA,yFACF;CACF;CACA,SAAS;EACP,QAAA,GAAA,GAAA,IACE,UACA,+GACF;EACA,OAAA,GAAA,GAAA,IACE,UACA,6GACF;CACF;CACA,UAAU;EACR,QAAA,GAAA,GAAA,IACE,UACA,wFACF;EACA,OAAA,GAAA,GAAA,IACE,UACA,wFACF;CACF;CACA,OAAO;EACL,QAAA,GAAA,GAAA,IAAU,iBAAiB,gBAAgB;EAC3C,OAAA,GAAA,GAAA,IAAS,iBAAiB,qBAAqB;CACjD;AACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { c as SparkInputColor, l as SparkInputStyle } from "../theme-types-CKZzOmSa.cjs";
|
|
4
4
|
|
|
5
5
|
//#region src/lib/input-box-variants.d.ts
|
|
6
6
|
declare const GHOST_UNDERLINE = "h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { c as SparkInputColor, l as SparkInputStyle } from "../theme-types-CKZzOmSa.js";
|
|
4
4
|
|
|
5
5
|
//#region src/lib/input-box-variants.d.ts
|
|
6
6
|
declare const GHOST_UNDERLINE = "h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled";
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
import { cn } from "../utils/cn.js";
|
|
3
3
|
//#region src/lib/input-box-variants.ts
|
|
4
4
|
const GHOST_UNDERLINE = "h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled";
|
|
5
|
-
const SOFT_BASE = "user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-
|
|
6
|
-
const BORDERED = "border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-
|
|
5
|
+
const SOFT_BASE = "user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-(--color-error-active) disabled:bg-base-gray-soft disabled:opacity-50 aria-invalid:bg-base-error-soft aria-invalid:text-error aria-invalid:not-disabled:hover:bg-red-a4 aria-invalid:focus-visible:ring-(--color-error-active) group-data-[invalid=true]/field:bg-base-error-soft group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:not-disabled:hover:bg-red-a4 group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)";
|
|
6
|
+
const BORDERED = "border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:border-input-invalid! user-invalid:focus-visible:ring-(--color-error-active)! disabled:border-input-disabled disabled:opacity-50 aria-invalid:border-input-invalid aria-invalid:text-error aria-invalid:focus-visible:border-input-invalid! aria-invalid:focus-visible:ring-(--color-error-active)! group-data-[invalid=true]/field:border-input-invalid group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus-visible:border-input-invalid! group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)!";
|
|
7
7
|
const boxChrome = {
|
|
8
8
|
soft: {
|
|
9
|
-
brand: cn(SOFT_BASE, "bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-
|
|
10
|
-
gray: cn(SOFT_BASE, "bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-
|
|
9
|
+
brand: cn(SOFT_BASE, "bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-(--color-focus-root)"),
|
|
10
|
+
gray: cn(SOFT_BASE, "bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-(--color-focus-root)")
|
|
11
11
|
},
|
|
12
12
|
surface: {
|
|
13
|
-
brand: cn(BORDERED, "border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-
|
|
14
|
-
gray: cn(BORDERED, "border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-
|
|
13
|
+
brand: cn(BORDERED, "border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-(--color-focus-root)"),
|
|
14
|
+
gray: cn(BORDERED, "border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)")
|
|
15
15
|
},
|
|
16
16
|
outlined: {
|
|
17
|
-
brand: cn(BORDERED, "border-input focus-visible:border-input-active focus-visible:ring-
|
|
18
|
-
gray: cn(BORDERED, "border-input-gray focus-visible:border-gray-a8 focus-visible:ring-
|
|
17
|
+
brand: cn(BORDERED, "border-input focus-visible:border-input-active focus-visible:ring-(--color-focus-root)"),
|
|
18
|
+
gray: cn(BORDERED, "border-input-gray focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)")
|
|
19
19
|
},
|
|
20
20
|
ghost: {
|
|
21
21
|
brand: cn(GHOST_UNDERLINE, "border-b-input"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-box-variants.js","names":[],"sources":["../../src/lib/input-box-variants.ts"],"sourcesContent":["import { cn } from '../utils/cn'\nimport type { SparkInputColor, SparkInputStyle } from './theme-types'\n\nexport const GHOST_UNDERLINE =\n 'h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled'\n\nconst SOFT_BASE =\n 'user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-
|
|
1
|
+
{"version":3,"file":"input-box-variants.js","names":[],"sources":["../../src/lib/input-box-variants.ts"],"sourcesContent":["import { cn } from '../utils/cn'\nimport type { SparkInputColor, SparkInputStyle } from './theme-types'\n\nexport const GHOST_UNDERLINE =\n 'h-10 rounded-none border-0 border-b-2 px-0 py-2 text-base focus:border-b-input-active focus-visible:border-b-input-active user-valid:border-b-input-active user-invalid:border-b-input-invalid user-invalid:text-error user-invalid:focus:border-b-red-a8! user-invalid:focus-visible:border-b-red-a8! aria-invalid:border-b-input-invalid aria-invalid:text-error aria-invalid:focus:border-b-red-a8! aria-invalid:focus-visible:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus:border-b-red-a8! group-data-[invalid=true]/field:focus-visible:border-b-red-a8! disabled:border-b-input-disabled'\n\nconst SOFT_BASE =\n 'user-invalid:bg-base-error-soft user-invalid:text-error user-invalid:not-disabled:hover:bg-red-a4 focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:ring-(--color-error-active) disabled:bg-base-gray-soft disabled:opacity-50 aria-invalid:bg-base-error-soft aria-invalid:text-error aria-invalid:not-disabled:hover:bg-red-a4 aria-invalid:focus-visible:ring-(--color-error-active) group-data-[invalid=true]/field:bg-base-error-soft group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:not-disabled:hover:bg-red-a4 group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)'\n\nconst BORDERED =\n 'border user-invalid:border-input-invalid user-invalid:text-error focus-visible:ring-2 focus-visible:ring-offset-2 user-invalid:focus-visible:border-input-invalid! user-invalid:focus-visible:ring-(--color-error-active)! disabled:border-input-disabled disabled:opacity-50 aria-invalid:border-input-invalid aria-invalid:text-error aria-invalid:focus-visible:border-input-invalid! aria-invalid:focus-visible:ring-(--color-error-active)! group-data-[invalid=true]/field:border-input-invalid group-data-[invalid=true]/field:text-error group-data-[invalid=true]/field:focus-visible:border-input-invalid! group-data-[invalid=true]/field:focus-visible:ring-(--color-error-active)!'\nexport const boxChrome: Record<\n SparkInputStyle,\n Record<SparkInputColor, string>\n> = {\n soft: {\n brand: cn(\n SOFT_BASE,\n 'bg-input-base not-disabled:hover:bg-input-base-hover focus-visible:ring-(--color-focus-root)',\n ),\n gray: cn(\n SOFT_BASE,\n 'bg-base-gray-soft not-disabled:hover:bg-gray-a4 focus-visible:ring-(--color-focus-root)',\n ),\n },\n surface: {\n brand: cn(\n BORDERED,\n 'border-input bg-base-accent-surface focus-visible:border-input-active focus-visible:ring-(--color-focus-root)',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray bg-base-gray-surface focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)',\n ),\n },\n outlined: {\n brand: cn(\n BORDERED,\n 'border-input focus-visible:border-input-active focus-visible:ring-(--color-focus-root)',\n ),\n gray: cn(\n BORDERED,\n 'border-input-gray focus-visible:border-gray-a8 focus-visible:ring-(--color-focus-root)',\n ),\n },\n ghost: {\n brand: cn(GHOST_UNDERLINE, 'border-b-input'),\n gray: cn(GHOST_UNDERLINE, 'border-b-input-gray'),\n },\n}\n"],"mappings":";;;AAGA,MAAa,kBACX;AAEF,MAAM,YACJ;AAEF,MAAM,WACJ;AACF,MAAa,YAGT;CACF,MAAM;EACJ,OAAO,GACL,WACA,8FACF;EACA,MAAM,GACJ,WACA,yFACF;CACF;CACA,SAAS;EACP,OAAO,GACL,UACA,+GACF;EACA,MAAM,GACJ,UACA,6GACF;CACF;CACA,UAAU;EACR,OAAO,GACL,UACA,wFACF;EACA,MAAM,GACJ,UACA,wFACF;CACF;CACA,OAAO;EACL,OAAO,GAAG,iBAAiB,gBAAgB;EAC3C,MAAM,GAAG,iBAAiB,qBAAqB;CACjD;AACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
//#region src/lib/selection-list.ts
|
|
4
|
+
const BOXED = "overflow-hidden rounded-md border border-input-gray divide-y divide-input-gray data-[invalid=true]:border-input-invalid data-[invalid=true]:divide-input-invalid";
|
|
5
|
+
/** Group chrome per `listStyle`; the group also sets `data-list-style` for its rows. */
|
|
6
|
+
const selectionListClasses = {
|
|
7
|
+
soft: "group/selection-list gap-px overflow-hidden rounded-md",
|
|
8
|
+
surface: `group/selection-list gap-0 bg-base-gray-surface ${BOXED}`,
|
|
9
|
+
outlined: `group/selection-list gap-0 ${BOXED}`,
|
|
10
|
+
ghost: "group/selection-list gap-0"
|
|
11
|
+
};
|
|
12
|
+
const selectionRowClasses = "group-data-[list-style=soft]/selection-list:bg-base-gray-soft group-data-[list-style=soft]/selection-list:px-3 group-data-[list-style=soft]/selection-list:group-data-[invalid=true]/selection-list:bg-base-error-soft group-data-[list-style=surface]/selection-list:px-3 group-data-[list-style=outlined]/selection-list:px-3";
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.selectionListClasses = selectionListClasses;
|
|
15
|
+
exports.selectionRowClasses = selectionRowClasses;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=selection-list.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-list.cjs","names":[],"sources":["../../src/lib/selection-list.ts"],"sourcesContent":["import type { SparkInputStyle } from './theme-types'\n\nconst BOXED =\n 'overflow-hidden rounded-md border border-input-gray divide-y divide-input-gray data-[invalid=true]:border-input-invalid data-[invalid=true]:divide-input-invalid'\n\n/** Group chrome per `listStyle`; the group also sets `data-list-style` for its rows. */\nexport const selectionListClasses: Record<SparkInputStyle, string> = {\n soft: 'group/selection-list gap-px overflow-hidden rounded-md',\n surface: `group/selection-list gap-0 bg-base-gray-surface ${BOXED}`,\n outlined: `group/selection-list gap-0 ${BOXED}`,\n ghost: 'group/selection-list gap-0',\n}\n\nexport const selectionRowClasses =\n 'group-data-[list-style=soft]/selection-list:bg-base-gray-soft group-data-[list-style=soft]/selection-list:px-3 group-data-[list-style=soft]/selection-list:group-data-[invalid=true]/selection-list:bg-base-error-soft group-data-[list-style=surface]/selection-list:px-3 group-data-[list-style=outlined]/selection-list:px-3'\n"],"mappings":";;;AAEA,MAAM,QACJ;;AAGF,MAAa,uBAAwD;CACnE,MAAM;CACN,SAAS,mDAAmD;CAC5D,UAAU,8BAA8B;CACxC,OAAO;AACT;AAEA,MAAa,sBACX"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { l as SparkInputStyle } from "../theme-types-CKZzOmSa.cjs";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/selection-list.d.ts
|
|
6
|
+
/** Group chrome per `listStyle`; the group also sets `data-list-style` for its rows. */
|
|
7
|
+
declare const selectionListClasses: Record<SparkInputStyle, string>;
|
|
8
|
+
declare const selectionRowClasses = "group-data-[list-style=soft]/selection-list:bg-base-gray-soft group-data-[list-style=soft]/selection-list:px-3 group-data-[list-style=soft]/selection-list:group-data-[invalid=true]/selection-list:bg-base-error-soft group-data-[list-style=surface]/selection-list:px-3 group-data-[list-style=outlined]/selection-list:px-3";
|
|
9
|
+
//#endregion
|
|
10
|
+
export { selectionListClasses, selectionRowClasses };
|
|
11
|
+
//# sourceMappingURL=selection-list.d.cts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { l as SparkInputStyle } from "../theme-types-CKZzOmSa.js";
|
|
4
|
+
|
|
5
|
+
//#region src/lib/selection-list.d.ts
|
|
6
|
+
/** Group chrome per `listStyle`; the group also sets `data-list-style` for its rows. */
|
|
7
|
+
declare const selectionListClasses: Record<SparkInputStyle, string>;
|
|
8
|
+
declare const selectionRowClasses = "group-data-[list-style=soft]/selection-list:bg-base-gray-soft group-data-[list-style=soft]/selection-list:px-3 group-data-[list-style=soft]/selection-list:group-data-[invalid=true]/selection-list:bg-base-error-soft group-data-[list-style=surface]/selection-list:px-3 group-data-[list-style=outlined]/selection-list:px-3";
|
|
9
|
+
//#endregion
|
|
10
|
+
export { selectionListClasses, selectionRowClasses };
|
|
11
|
+
//# sourceMappingURL=selection-list.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/lib/selection-list.ts
|
|
3
|
+
const BOXED = "overflow-hidden rounded-md border border-input-gray divide-y divide-input-gray data-[invalid=true]:border-input-invalid data-[invalid=true]:divide-input-invalid";
|
|
4
|
+
/** Group chrome per `listStyle`; the group also sets `data-list-style` for its rows. */
|
|
5
|
+
const selectionListClasses = {
|
|
6
|
+
soft: "group/selection-list gap-px overflow-hidden rounded-md",
|
|
7
|
+
surface: `group/selection-list gap-0 bg-base-gray-surface ${BOXED}`,
|
|
8
|
+
outlined: `group/selection-list gap-0 ${BOXED}`,
|
|
9
|
+
ghost: "group/selection-list gap-0"
|
|
10
|
+
};
|
|
11
|
+
const selectionRowClasses = "group-data-[list-style=soft]/selection-list:bg-base-gray-soft group-data-[list-style=soft]/selection-list:px-3 group-data-[list-style=soft]/selection-list:group-data-[invalid=true]/selection-list:bg-base-error-soft group-data-[list-style=surface]/selection-list:px-3 group-data-[list-style=outlined]/selection-list:px-3";
|
|
12
|
+
//#endregion
|
|
13
|
+
export { selectionListClasses, selectionRowClasses };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=selection-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-list.js","names":[],"sources":["../../src/lib/selection-list.ts"],"sourcesContent":["import type { SparkInputStyle } from './theme-types'\n\nconst BOXED =\n 'overflow-hidden rounded-md border border-input-gray divide-y divide-input-gray data-[invalid=true]:border-input-invalid data-[invalid=true]:divide-input-invalid'\n\n/** Group chrome per `listStyle`; the group also sets `data-list-style` for its rows. */\nexport const selectionListClasses: Record<SparkInputStyle, string> = {\n soft: 'group/selection-list gap-px overflow-hidden rounded-md',\n surface: `group/selection-list gap-0 bg-base-gray-surface ${BOXED}`,\n outlined: `group/selection-list gap-0 ${BOXED}`,\n ghost: 'group/selection-list gap-0',\n}\n\nexport const selectionRowClasses =\n 'group-data-[list-style=soft]/selection-list:bg-base-gray-soft group-data-[list-style=soft]/selection-list:px-3 group-data-[list-style=soft]/selection-list:group-data-[invalid=true]/selection-list:bg-base-error-soft group-data-[list-style=surface]/selection-list:px-3 group-data-[list-style=outlined]/selection-list:px-3'\n"],"mappings":";;AAEA,MAAM,QACJ;;AAGF,MAAa,uBAAwD;CACnE,MAAM;CACN,SAAS,mDAAmD;CAC5D,UAAU,8BAA8B;CACxC,OAAO;AACT;AAEA,MAAa,sBACX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-types.cjs","names":[],"sources":["../../src/lib/theme-types.ts"],"sourcesContent":["/** The 6 curated Radix gray families — the only values `getMatchingNeutral` ever returns. */\nexport const SPARK_NEUTRAL_FAMILIES = [\n 'slate',\n 'mauve',\n 'gray',\n 'sage',\n 'olive',\n 'sand',\n] as const\nexport type SparkNeutralFamily = (typeof SPARK_NEUTRAL_FAMILIES)[number]\nexport function isSparkNeutralFamily(\n value: string,\n): value is SparkNeutralFamily {\n return (SPARK_NEUTRAL_FAMILIES as readonly string[]).includes(value)\n}\n\n/**\n * `'auto'` pairs a neutral automatically; one of the 6 curated families picks it by\n * name; any other string is a literal color seed (regenerated against `backgroundColor`\n * exactly like a custom family — see `resolveAutoNeutral`/`generateAccentScale`).\n */\nexport type SparkNeutral = 'auto' | SparkNeutralFamily | (string & {})\nexport type SparkRadius = 'none' | 'small' | 'medium' | 'large' | 'full'\nexport type SparkScaling = '90%' | '95%' | '100%' | '105%' | '110%'\nexport type SparkSpacing = 'dense' | 'default' | 'roomy'\nexport type SparkStyle = 'solid' | 'soft' | 'surface' | 'ghost' | 'outline'\n/**\n * Card chrome variants. `solid` pairs the neutral scale's own background/text\n * extremes (`--neutral-1` fill, `--neutral-12` ink) — the same pairing Radix\n * guarantees stays AA-compliant in both light and dark, so it needs no fixed\n * (non-appearance-tracking) override the way accent's solid ink does.\n */\nexport type SparkCardVariant = SparkStyle\n/**\n * Card container chrome palette. `neutral` (default) paints through the app\n * theme's neutral scale, so a card inherits the configured neutral colour;\n * `accent` tints the card's private mini-scale with the brand accent (chrome\n * only — never the content controls inside). Open union: grows into feedback\n * colours / custom palettes later.\n */\nexport type SparkCardColor = 'neutral' | 'accent'\nexport type SparkLabelPosition = 'outset' | 'inset'\nexport type SparkInputStyle = 'soft' | 'surface' | 'outlined' | 'ghost'\nexport type SparkInputColor = 'brand' | 'gray'\n"],"mappings":";;;;AACA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,SAAgB,qBACd,OAC6B;CAC7B,OAAQ,uBAA6C,SAAS,KAAK;AACrE"}
|
|
1
|
+
{"version":3,"file":"theme-types.cjs","names":[],"sources":["../../src/lib/theme-types.ts"],"sourcesContent":["/** The 6 curated Radix gray families — the only values `getMatchingNeutral` ever returns. */\nexport const SPARK_NEUTRAL_FAMILIES = [\n 'slate',\n 'mauve',\n 'gray',\n 'sage',\n 'olive',\n 'sand',\n] as const\nexport type SparkNeutralFamily = (typeof SPARK_NEUTRAL_FAMILIES)[number]\nexport function isSparkNeutralFamily(\n value: string,\n): value is SparkNeutralFamily {\n return (SPARK_NEUTRAL_FAMILIES as readonly string[]).includes(value)\n}\n\n/**\n * `'auto'` pairs a neutral automatically; one of the 6 curated families picks it by\n * name; any other string is a literal color seed (regenerated against `backgroundColor`\n * exactly like a custom family — see `resolveAutoNeutral`/`generateAccentScale`).\n */\nexport type SparkNeutral = 'auto' | SparkNeutralFamily | (string & {})\nexport type SparkRadius = 'none' | 'small' | 'medium' | 'large' | 'full'\nexport type SparkScaling = '90%' | '95%' | '100%' | '105%' | '110%'\nexport type SparkSpacing = 'dense' | 'default' | 'roomy'\nexport type SparkStyle = 'solid' | 'soft' | 'surface' | 'ghost' | 'outline'\n/**\n * Card chrome variants. `solid` pairs the neutral scale's own background/text\n * extremes (`--neutral-1` fill, `--neutral-12` ink) — the same pairing Radix\n * guarantees stays AA-compliant in both light and dark, so it needs no fixed\n * (non-appearance-tracking) override the way accent's solid ink does.\n */\nexport type SparkCardVariant = SparkStyle\n/**\n * Card container chrome palette. `neutral` (default) paints through the app\n * theme's neutral scale, so a card inherits the configured neutral colour;\n * `accent` tints the card's private mini-scale with the brand accent (chrome\n * only — never the content controls inside). Open union: grows into feedback\n * colours / custom palettes later.\n */\nexport type SparkCardColor = 'neutral' | 'accent'\nexport type SparkLabelPosition = 'outset' | 'inset'\nexport type SparkInputStyle = 'soft' | 'surface' | 'outlined' | 'ghost'\nexport type SparkInputColor = 'brand' | 'gray'\n/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */\nexport type SparkButtonColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'destructive'\n | 'danger'\nexport type SparkButtonEmphasis = 'primary' | 'secondary' | 'tertiary'\nexport interface SparkButtonRole {\n style?: SparkStyle\n color?: SparkButtonColor\n}\n/** Per-emphasis `<Button>` look; a nested `<Theme>` replaces only the roles it sets. */\nexport type SparkButtonRoles = Partial<\n Record<SparkButtonEmphasis, SparkButtonRole>\n>\n"],"mappings":";;;;AACA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,SAAgB,qBACd,OAC6B;CAC7B,OAAQ,uBAA6C,SAAS,KAAK;AACrE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { a as
|
|
4
|
-
export { SPARK_NEUTRAL_FAMILIES, SparkCardColor, SparkCardVariant, SparkInputColor, SparkInputStyle, SparkLabelPosition, SparkNeutral, SparkNeutralFamily, SparkRadius, SparkScaling, SparkSpacing, SparkStyle, isSparkNeutralFamily };
|
|
3
|
+
import { _ as isSparkNeutralFamily, a as SparkButtonRoles, c as SparkInputColor, d as SparkNeutral, f as SparkNeutralFamily, g as SparkStyle, h as SparkSpacing, i as SparkButtonRole, l as SparkInputStyle, m as SparkScaling, n as SparkButtonColor, o as SparkCardColor, p as SparkRadius, r as SparkButtonEmphasis, s as SparkCardVariant, t as SPARK_NEUTRAL_FAMILIES, u as SparkLabelPosition } from "../theme-types-CKZzOmSa.cjs";
|
|
4
|
+
export { SPARK_NEUTRAL_FAMILIES, SparkButtonColor, SparkButtonEmphasis, SparkButtonRole, SparkButtonRoles, SparkCardColor, SparkCardVariant, SparkInputColor, SparkInputStyle, SparkLabelPosition, SparkNeutral, SparkNeutralFamily, SparkRadius, SparkScaling, SparkSpacing, SparkStyle, isSparkNeutralFamily };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { a as
|
|
4
|
-
export { SPARK_NEUTRAL_FAMILIES, SparkCardColor, SparkCardVariant, SparkInputColor, SparkInputStyle, SparkLabelPosition, SparkNeutral, SparkNeutralFamily, SparkRadius, SparkScaling, SparkSpacing, SparkStyle, isSparkNeutralFamily };
|
|
3
|
+
import { _ as isSparkNeutralFamily, a as SparkButtonRoles, c as SparkInputColor, d as SparkNeutral, f as SparkNeutralFamily, g as SparkStyle, h as SparkSpacing, i as SparkButtonRole, l as SparkInputStyle, m as SparkScaling, n as SparkButtonColor, o as SparkCardColor, p as SparkRadius, r as SparkButtonEmphasis, s as SparkCardVariant, t as SPARK_NEUTRAL_FAMILIES, u as SparkLabelPosition } from "../theme-types-CKZzOmSa.js";
|
|
4
|
+
export { SPARK_NEUTRAL_FAMILIES, SparkButtonColor, SparkButtonEmphasis, SparkButtonRole, SparkButtonRoles, SparkCardColor, SparkCardVariant, SparkInputColor, SparkInputStyle, SparkLabelPosition, SparkNeutral, SparkNeutralFamily, SparkRadius, SparkScaling, SparkSpacing, SparkStyle, isSparkNeutralFamily };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-types.js","names":[],"sources":["../../src/lib/theme-types.ts"],"sourcesContent":["/** The 6 curated Radix gray families — the only values `getMatchingNeutral` ever returns. */\nexport const SPARK_NEUTRAL_FAMILIES = [\n 'slate',\n 'mauve',\n 'gray',\n 'sage',\n 'olive',\n 'sand',\n] as const\nexport type SparkNeutralFamily = (typeof SPARK_NEUTRAL_FAMILIES)[number]\nexport function isSparkNeutralFamily(\n value: string,\n): value is SparkNeutralFamily {\n return (SPARK_NEUTRAL_FAMILIES as readonly string[]).includes(value)\n}\n\n/**\n * `'auto'` pairs a neutral automatically; one of the 6 curated families picks it by\n * name; any other string is a literal color seed (regenerated against `backgroundColor`\n * exactly like a custom family — see `resolveAutoNeutral`/`generateAccentScale`).\n */\nexport type SparkNeutral = 'auto' | SparkNeutralFamily | (string & {})\nexport type SparkRadius = 'none' | 'small' | 'medium' | 'large' | 'full'\nexport type SparkScaling = '90%' | '95%' | '100%' | '105%' | '110%'\nexport type SparkSpacing = 'dense' | 'default' | 'roomy'\nexport type SparkStyle = 'solid' | 'soft' | 'surface' | 'ghost' | 'outline'\n/**\n * Card chrome variants. `solid` pairs the neutral scale's own background/text\n * extremes (`--neutral-1` fill, `--neutral-12` ink) — the same pairing Radix\n * guarantees stays AA-compliant in both light and dark, so it needs no fixed\n * (non-appearance-tracking) override the way accent's solid ink does.\n */\nexport type SparkCardVariant = SparkStyle\n/**\n * Card container chrome palette. `neutral` (default) paints through the app\n * theme's neutral scale, so a card inherits the configured neutral colour;\n * `accent` tints the card's private mini-scale with the brand accent (chrome\n * only — never the content controls inside). Open union: grows into feedback\n * colours / custom palettes later.\n */\nexport type SparkCardColor = 'neutral' | 'accent'\nexport type SparkLabelPosition = 'outset' | 'inset'\nexport type SparkInputStyle = 'soft' | 'surface' | 'outlined' | 'ghost'\nexport type SparkInputColor = 'brand' | 'gray'\n"],"mappings":";;;AACA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,SAAgB,qBACd,OAC6B;CAC7B,OAAQ,uBAA6C,SAAS,KAAK;AACrE"}
|
|
1
|
+
{"version":3,"file":"theme-types.js","names":[],"sources":["../../src/lib/theme-types.ts"],"sourcesContent":["/** The 6 curated Radix gray families — the only values `getMatchingNeutral` ever returns. */\nexport const SPARK_NEUTRAL_FAMILIES = [\n 'slate',\n 'mauve',\n 'gray',\n 'sage',\n 'olive',\n 'sand',\n] as const\nexport type SparkNeutralFamily = (typeof SPARK_NEUTRAL_FAMILIES)[number]\nexport function isSparkNeutralFamily(\n value: string,\n): value is SparkNeutralFamily {\n return (SPARK_NEUTRAL_FAMILIES as readonly string[]).includes(value)\n}\n\n/**\n * `'auto'` pairs a neutral automatically; one of the 6 curated families picks it by\n * name; any other string is a literal color seed (regenerated against `backgroundColor`\n * exactly like a custom family — see `resolveAutoNeutral`/`generateAccentScale`).\n */\nexport type SparkNeutral = 'auto' | SparkNeutralFamily | (string & {})\nexport type SparkRadius = 'none' | 'small' | 'medium' | 'large' | 'full'\nexport type SparkScaling = '90%' | '95%' | '100%' | '105%' | '110%'\nexport type SparkSpacing = 'dense' | 'default' | 'roomy'\nexport type SparkStyle = 'solid' | 'soft' | 'surface' | 'ghost' | 'outline'\n/**\n * Card chrome variants. `solid` pairs the neutral scale's own background/text\n * extremes (`--neutral-1` fill, `--neutral-12` ink) — the same pairing Radix\n * guarantees stays AA-compliant in both light and dark, so it needs no fixed\n * (non-appearance-tracking) override the way accent's solid ink does.\n */\nexport type SparkCardVariant = SparkStyle\n/**\n * Card container chrome palette. `neutral` (default) paints through the app\n * theme's neutral scale, so a card inherits the configured neutral colour;\n * `accent` tints the card's private mini-scale with the brand accent (chrome\n * only — never the content controls inside). Open union: grows into feedback\n * colours / custom palettes later.\n */\nexport type SparkCardColor = 'neutral' | 'accent'\nexport type SparkLabelPosition = 'outset' | 'inset'\nexport type SparkInputStyle = 'soft' | 'surface' | 'outlined' | 'ghost'\nexport type SparkInputColor = 'brand' | 'gray'\n/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */\nexport type SparkButtonColor =\n | 'primary'\n | 'accent'\n | 'neutral'\n | 'destructive'\n | 'danger'\nexport type SparkButtonEmphasis = 'primary' | 'secondary' | 'tertiary'\nexport interface SparkButtonRole {\n style?: SparkStyle\n color?: SparkButtonColor\n}\n/** Per-emphasis `<Button>` look; a nested `<Theme>` replaces only the roles it sets. */\nexport type SparkButtonRoles = Partial<\n Record<SparkButtonEmphasis, SparkButtonRole>\n>\n"],"mappings":";;;AACA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,SAAgB,qBACd,OAC6B;CAC7B,OAAQ,uBAA6C,SAAS,KAAK;AACrE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { n as SparkButtonColor } from "../theme-types-CKZzOmSa.cjs";
|
|
4
|
+
import { ButtonProps } from "../components/button.cjs";
|
|
4
5
|
import { ToggleStyle } from "../components/toggle.cjs";
|
|
5
6
|
import * as React$1 from "react";
|
|
6
7
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { n as SparkButtonColor } from "../theme-types-CKZzOmSa.js";
|
|
4
|
+
import { ButtonProps } from "../components/button.js";
|
|
4
5
|
import { ToggleStyle } from "../components/toggle.js";
|
|
5
6
|
import * as React$1 from "react";
|
|
6
7
|
|
|
@@ -852,7 +852,8 @@
|
|
|
852
852
|
|
|
853
853
|
/*
|
|
854
854
|
* Card container chrome — a CONTAINER-only knob (contract §11). Everything here
|
|
855
|
-
* writes only --spark-card-* / --spark-card-c-*, tokens read
|
|
855
|
+
* writes only --spark-card-* / --spark-card-c-*, tokens read only by <Card> and an ambient <List>
|
|
856
|
+
* (--spark-card-list-gapped is List's 0|1 row-gap switch);
|
|
856
857
|
* it never touches data-style, --spark-style-*, or the --spark-* scale, so styling
|
|
857
858
|
* OR colouring a card never cascades into the Buttons/Checkboxes inside it.
|
|
858
859
|
*
|
|
@@ -890,6 +891,8 @@
|
|
|
890
891
|
[data-card-variant='soft'],
|
|
891
892
|
:where([data-card-variant='soft'] .spark-theme),
|
|
892
893
|
:where([data-card-variant='soft'] [data-card-color]) {
|
|
894
|
+
--spark-card-focus: initial;
|
|
895
|
+
--spark-card-list-gapped: 1;
|
|
893
896
|
--spark-card-px: 1rem;
|
|
894
897
|
--spark-card-bg: var(--spark-card-c-soft, var(--neutral-a3));
|
|
895
898
|
--spark-card-border: transparent;
|
|
@@ -902,6 +905,8 @@
|
|
|
902
905
|
[data-card-variant='surface'],
|
|
903
906
|
:where([data-card-variant='surface'] .spark-theme),
|
|
904
907
|
:where([data-card-variant='surface'] [data-card-color]) {
|
|
908
|
+
--spark-card-focus: initial;
|
|
909
|
+
--spark-card-list-gapped: 0;
|
|
905
910
|
--spark-card-px: 1rem;
|
|
906
911
|
--spark-card-bg: var(--spark-card-c-surface, var(--neutral-2));
|
|
907
912
|
--spark-card-border: var(--spark-card-c-border, var(--neutral-a6));
|
|
@@ -914,6 +919,8 @@
|
|
|
914
919
|
[data-card-variant='outline'],
|
|
915
920
|
:where([data-card-variant='outline'] .spark-theme),
|
|
916
921
|
:where([data-card-variant='outline'] [data-card-color]) {
|
|
922
|
+
--spark-card-focus: initial;
|
|
923
|
+
--spark-card-list-gapped: 0;
|
|
917
924
|
--spark-card-px: 1rem;
|
|
918
925
|
--spark-card-bg: transparent;
|
|
919
926
|
--spark-card-border: var(--spark-card-c-border, var(--neutral-a6));
|
|
@@ -926,7 +933,9 @@
|
|
|
926
933
|
[data-card-variant='ghost'],
|
|
927
934
|
:where([data-card-variant='ghost'] .spark-theme),
|
|
928
935
|
:where([data-card-variant='ghost'] [data-card-color]) {
|
|
936
|
+
--spark-card-focus: initial;
|
|
929
937
|
/* flush horizontally (no chrome to inset against); vertical rhythm kept by py-3 */
|
|
938
|
+
--spark-card-list-gapped: 1;
|
|
930
939
|
--spark-card-px: 0px;
|
|
931
940
|
--spark-card-bg: transparent;
|
|
932
941
|
--spark-card-border: transparent;
|
|
@@ -942,6 +951,7 @@
|
|
|
942
951
|
/* neutral: --neutral-1/--neutral-12 fill/ink — Radix's own bg+text pair, so
|
|
943
952
|
contrast holds in both appearances with no fixed override needed. accent:
|
|
944
953
|
--spark-9/--spark-contrast (AA-enforced) instead, via the accent block above. */
|
|
954
|
+
--spark-card-list-gapped: 1;
|
|
945
955
|
--spark-card-px: 1rem;
|
|
946
956
|
--spark-card-bg: var(--spark-card-c-solid, var(--neutral-1));
|
|
947
957
|
--spark-card-border: transparent;
|
|
@@ -949,6 +959,7 @@
|
|
|
949
959
|
--spark-card-fg: var(--spark-card-c-contrast, var(--neutral-12));
|
|
950
960
|
--spark-card-fg-muted: var(--spark-card-c-contrast, var(--neutral-12));
|
|
951
961
|
--spark-card-icon: var(--spark-card-c-contrast, var(--neutral-12));
|
|
962
|
+
--spark-card-focus: var(--spark-card-c-contrast, var(--neutral-12));
|
|
952
963
|
}
|
|
953
964
|
|
|
954
965
|
/*
|