{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"tokens","type":"registry:item","title":"UI Polish tokens","description":"The --ui-* roles every UI Polish component reads, with UI Polish's own light and dark values, plus the Tailwind bridge (bg-ui-surface, text-ui-muted).","files":[{"path":"components/ui/uipolish/tokens.css","type":"registry:file","target":"components/ui/uipolish/tokens.css","content":"/*\n * UI Polish foundation tokens. Components read these roles and nothing else;\n * map them onto your own design system:\n *\n *   :root {\n *     --ui-surface: var(--background);\n *     --ui-foreground: var(--foreground);\n *     --ui-radius-md: var(--radius);\n *   }\n *\n * Colors use light-dark() and follow `color-scheme`; force a theme with\n * [data-theme=\"light\" | \"dark\"] on any ancestor. Roles are redeclared on\n * [data-theme] because light-dark() resolves where it is declared, not used.\n */\n\n:root,\n[data-theme] {\n  color-scheme: light dark;\n\n  /* Space */\n  --ui-space-1: 4px;\n  --ui-space-2: 8px;\n  --ui-space-3: 12px;\n  --ui-space-4: 16px;\n  --ui-space-5: 24px;\n  --ui-space-6: 32px;\n  --ui-space-7: 48px;\n  --ui-space-8: 64px;\n\n  /* Spacing roles, on the scale above. Pick by the relationship between two\n     things, never by the component: the same relationship takes the same\n     token everywhere (foundation/rules/spacing.md §1).\n     The layout roles are fluid: they read the width of the nearest size\n     container (cqi; the viewport when there is none), so a block in a narrow\n     pane stays compact and the same block on a wide screen breathes, and\n     round to the 4px grid so nothing lands between pixels. */\n\n  /* Inside things: how far content sits in from its own edge. */\n  /* A badge, tag or count pill: half its 24px height, so the label starts\n     where the round end stops. */\n  --ui-pad-tag: var(--ui-space-3);\n  /* A 20px tag, and a tag inside a sentence. */\n  --ui-pad-tag-sm: var(--ui-space-2);\n  /* A row in a menu or a list in a panel, inline: never less than the row's\n     radius, so its text clears the curve. */\n  --ui-pad-row: var(--ui-space-3);\n  /* A menu's inset around its rows. The rows take the concentric radius,\n     panel − inset: 24 − 12 = 12, a rounded row, never a pill. */\n  --ui-inset-menu: var(--ui-space-3);\n  /* A card or panel: 16 in a phone-wide container, 24 from 560px. */\n  --ui-pad-card: round(clamp(16px, 4cqi + 1.6px, 24px), 4px);\n  /* A screen or page-level block: 24 narrow, 40 from 760px. */\n  --ui-pad-section: round(clamp(24px, 4cqi + 9.6px, 40px), 4px);\n\n  /* Between things. Each step is wider than the one inside it, so the\n     grouping reads before anything else does. */\n  /* Lines of one thing: a title and its description, a label and its value. */\n  --ui-gap-tight: var(--ui-space-1);\n  /* Side by side in a row: icon and label, tag and tag, button and button. */\n  --ui-gap-inline: var(--ui-space-2);\n  /* Items of one group: fields in a cluster, the rows of a card. */\n  --ui-gap-stack: var(--ui-space-3);\n  /* Groups inside a card or section, and a section's heading above its\n     content: 16 narrow, 24 from 760px. */\n  --ui-gap-group: round(clamp(16px, 2cqi + 8.8px, 24px), 4px);\n  /* Cards and panels in a layout, and a screen's title above its content:\n     16 narrow, 24 at 560px, 32 from 760px. */\n  --ui-gap-block: round(clamp(16px, 4cqi + 1.6px, 32px), 4px);\n  /* Sections of a screen or page: 48 narrow, 56 at 600px, 72 from 960px. */\n  --ui-gap-section: round(clamp(48px, 4cqi + 33.6px, 72px), 8px);\n\n  /* Radius */\n  --ui-radius-sm: 10px;\n  --ui-radius-md: 14px;\n  /* Every box and card: 24, which is also the 8px inset around a 32px\n     button plus that button's half-height, so a code block's corner and\n     its Copy button stay concentric. */\n  --ui-radius-lg: 24px;\n  --ui-radius-full: 9999px;\n\n  /* Control heights */\n  --ui-control-sm: 32px;\n  --ui-control-md: 40px;\n  --ui-control-lg: 48px;\n  /* Icon-only buttons are capsules, this much wider than tall, not circles:\n     an easier target, and one shape for every button. */\n  --ui-capsule: 1.375;\n\n  /* Type */\n  --ui-font-sans: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI Variable Text\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\";\n  --ui-font-display: var(--ui-font-sans);\n  --ui-font-mono: ui-monospace, \"SF Mono\", SFMono-Regular, \"Cascadia Code\", \"Segoe UI Mono\", \"Roboto Mono\", Menlo, Consolas, monospace;\n\n  --ui-text-sm: 13px;\n  --ui-text-md: 15px;\n  --ui-text-2xl: 22px;\n  --ui-text-display: clamp(30px, 1.6vw + 1rem, 38px);\n  --ui-leading-sm: 18px;\n  --ui-leading-md: 22px;\n  --ui-leading-2xl: 28px;\n  /* Rounded: a fractional line height pushes everything below off the pixel grid. */\n  --ui-leading-display: round(calc(var(--ui-text-display) * 1.1), 1px);\n\n  --ui-leading-prose: 1.6;\n  --ui-measure: 65ch;\n\n  --ui-text-code: 0.875em;\n\n  /* Under 16px, iOS zooms the page when a field is focused. */\n  --ui-text-touch: 16px;\n\n  /* Weights. Fonts without a 550 round to 600. */\n  --ui-weight-regular: 400;\n  --ui-weight-medium: 500;\n  --ui-weight-semibold: 550;\n\n  /* Tracking. None for body text: any letter-spacing turns optional ligatures off. */\n  --ui-tracking-heading: -0.01em;\n  --ui-tracking-title: -0.02em;\n  --ui-tracking-control: -0.01em;\n  --ui-tracking-caps: 0.06em;\n\n  /* Icon stroke: two tiers, one per label weight, each the width of the\n     text's stem (DM Sans at 15px: 1.25px at 400, 1.48px at 500), in a\n     16-unit viewBox drawn at 16px. Icons beside regular text take regular;\n     beside a medium label (button, tab, nav or menu item) medium. A smaller\n     glyph that stands on its own keeps the line: calc(tier * 16 / size).\n     --ui-icon-stroke-semibold is the medium value, kept so older code\n     still resolves; don't use it in new code. */\n  --ui-icon-stroke-regular: 1.25;\n  --ui-icon-stroke-medium: 1.5;\n  --ui-icon-stroke-semibold: var(--ui-icon-stroke-medium);\n  --ui-icon-stroke: var(--ui-icon-stroke-medium);\n\n  /* Icon sizes: an icon is sized by the text it sits with, so every chevron,\n     check or glyph in the same role is the same size. md beside 14-16px text\n     and in every control; sm beside 13px text (sm controls, meta lines,\n     notes); xs only for tiny badges and marks inside a node; lg for a glyph\n     standing alone in a tile. Nothing between. */\n  --ui-icon-xs: 12px;\n  --ui-icon-sm: 14px;\n  --ui-icon-md: 16px;\n  --ui-icon-lg: 20px;\n  /* Every chevron, whatever the text beside it: a chevron is a hint, so it\n     sits a step under the icons around it and is one size everywhere. */\n  --ui-icon-chevron: var(--ui-icon-sm);\n\n  /* Motion. Exits run one step shorter than their entrance. */\n  --ui-dur-press: 80ms;    /* going down on press */\n  --ui-dur-instant: 120ms; /* color feedback; small things leaving */\n  --ui-dur-fast: 160ms;    /* small things arriving; blocks leaving */\n  --ui-dur-base: 200ms;    /* blocks arriving; height closing; strokes drawing */\n  --ui-dur-panel: 280ms;   /* height opening */\n\n  /* Enter: popovers, menus, tooltips, toasts, rows arriving. Between quint- and expo-out. */\n  --ui-ease-enter: cubic-bezier(0.2, 1, 0.3, 1);\n\n  /* Exit: anything leaving. Accelerates out; pair with the shorter step. */\n  --ui-ease-exit: cubic-bezier(0.4, 0, 1, 1);\n\n  --ui-scale-press: 0.985;\n  /* Move: layout moves (tab pill, toast stack). A spring sampled over --ui-dur-move,\n     a little underdamped (damping 0.72): it overshoots about 4% and settles. */\n  --ui-dur-move: 380ms;\n  --ui-ease-move: linear(0, 0.0197, 0.0712, 0.1442, 0.2303, 0.3231, 0.4171, 0.5086, 0.5948, 0.6739, 0.7446, 0.8066, 0.8597, 0.9043, 0.9409, 0.9702, 0.993, 1.0102, 1.0225, 1.0307, 1.0357, 1.038, 1.0383, 1.0371, 1.0348, 1.0318, 1.0284, 1.0248, 1.0212, 1.0177, 1.0145, 1.0116, 1.009, 1.0067, 1.0048, 1.0032, 1.0019, 1.0008, 1, 0.9994, 1);\n\n  /* Glide: the same move without the give, critically damped. For what is\n     held by a track or a count: a pill inside its group, a sheet against an\n     edge, a height, a number counting to its value. */\n  --ui-dur-glide: 320ms;\n  --ui-ease-glide: linear(0, 0.0319, 0.106, 0.2005, 0.3013, 0.3998, 0.4917, 0.5739, 0.6459, 0.7079, 0.7606, 0.8048, 0.8416, 0.872, 0.8969, 0.9172, 0.9337, 0.9471, 0.9578, 0.9665, 0.9734, 0.9789, 0.9834, 0.9869, 0.9896, 0.9918, 0.9936, 0.995, 0.996, 0.9969, 0.9976, 0.9981, 1);\n\n  /* Snap: short hops, press release, chevrons. A stiffer spring sampled over\n     --ui-dur-snap (damping 0.8): about 1.5% past, then back. */\n  --ui-dur-snap: 240ms;\n  --ui-ease-snap: linear(0, 0.0284, 0.0988, 0.1935, 0.2993, 0.4069, 0.5099, 0.6045, 0.6883, 0.7607, 0.8215, 0.8714, 0.9114, 0.9427, 0.9666, 0.9842, 0.9968, 1.0053, 1.0107, 1.0137, 1.015, 1.0151, 1.0143, 1.013, 1.0115, 1.0099, 1.0083, 1.0067, 1.0054, 1.0042, 1.0032, 1.0023, 1);\n\n  /* Bounce: a thumb landing on a stop. Overshoots, so not for anything that can hit its track's end. */\n  --ui-dur-bounce: 340ms;\n  --ui-ease-bounce: linear(0, 0.0293, 0.1033, 0.2045, 0.3192, 0.4369, 0.5503, 0.6543, 0.7461, 0.8243, 0.8886, 0.9397, 0.9787, 1.0072, 1.0266, 1.0388, 1.0451, 1.0471, 1.0458, 1.0424, 1.0377, 1.0323, 1.0268, 1.0214, 1.0165, 1.0122, 1.0084, 1.0054, 1.003, 1.0011, 0.9997, 0.9988, 0.9982, 0.9979, 0.9978, 0.9978, 1);\n\n  /* Expand: grid-template-rows height opening, over --ui-dur-panel. */\n  --ui-ease-expand: cubic-bezier(0.32, 0.72, 0, 1);\n\n  /* Collapse: height closing, over --ui-dur-base. Eases in while the content\n     fades, then folds and stops without a tail. */\n  --ui-ease-collapse: cubic-bezier(0.4, 0, 0.2, 1);\n\n  /* Color: in-place color and opacity feedback, over --ui-dur-instant. */\n  --ui-ease-color: cubic-bezier(0.2, 0, 0, 1);\n\n  /* Draw: SVG strokes drawn with stroke-dashoffset, over --ui-dur-base. */\n  --ui-ease-draw: cubic-bezier(0.35, 0, 0.15, 1);\n\n  /* Pulse: `alternate` loops, --ui-dur-pulse per half cycle; sweeps run linear. */\n  --ui-ease-pulse: cubic-bezier(0.37, 0, 0.63, 1);\n  --ui-dur-pulse: 700ms;\n  --ui-dur-sweep: 2400ms;\n\n  /* Color. Text roles hold 4.5:1 on canvas and surface in both themes, and\n     no more than they need: the darkest text isn't black and the lightest\n     isn't white, so a page reads firm without glaring. */\n  --ui-canvas: light-dark(oklch(0.99 0 0), oklch(0.145 0 0));\n  --ui-surface: light-dark(oklch(1 0 0), oklch(0.19 0 0));\n  --ui-foreground: light-dark(oklch(0.21 0 0), oklch(0.93 0 0));\n  --ui-muted: light-dark(oklch(0.5 0 0), oklch(0.71 0 0));\n  --ui-subtle: light-dark(oklch(0.55 0 0), oklch(0.62 0 0));\n  /* Edges: one solid neutral for every line, outline or divider. A card's\n     frame, a field, a button, a checkbox, a table's row rules, a key cap:\n     the same color at the same 1px weight, so no line reads darker,\n     lighter, thicker or thinner than another. Solid, not a see-through\n     tint: a tint came out darker over the page than over a card or a\n     field, so the same token drew two different lines.\n     --ui-border-strong (drawn by --ui-edge) and --ui-border are the same\n     value, two names kept so existing code resolves; --ui-border-subtle\n     too. Only hover, focus and selected step darker, to --ui-field-focus.\n     Colored ones mix a hue at --ui-border-tint: the status edges below, or\n     a component's own hue (a phase, a brand) at the same strength. */\n  --ui-border-strong: light-dark(oklch(0.954 0 0), oklch(0.26 0 0));\n  --ui-border: var(--ui-border-strong);\n  --ui-border-subtle: var(--ui-border);\n  --ui-border-tint: 32%;\n  --ui-fill: color-mix(in oklch, var(--ui-foreground) 4.5%, transparent);\n  --ui-fill-strong: color-mix(in oklch, var(--ui-foreground) 8%, transparent);\n  /* The same two fills, opaque, for what must hide what's under it (a\n     sticky cell, an avatar, a shell around panels): never a third gray. */\n  --ui-fill-solid: color-mix(in oklch, var(--ui-foreground) 4.5%, var(--ui-surface));\n  --ui-fill-strong-solid: color-mix(in oklch, var(--ui-foreground) 8%, var(--ui-surface));\n  --ui-ink: var(--ui-foreground);\n  --ui-on-ink: light-dark(oklch(0.99 0 0), oklch(0.17 0 0));\n  /* Secondary text on ink (a shortcut in a tooltip): the muted step. */\n  --ui-on-ink-muted: color-mix(in oklch, var(--ui-on-ink) 60%, var(--ui-ink));\n  /* Each theme has its own tuned hues; fills and icons hold 3:1, text 4.5:1. */\n  --ui-accent: light-dark(oklch(0.55 0.22 262), oklch(0.6 0.19 258));\n  --ui-on-accent: oklch(0.99 0 0);\n  --ui-success: light-dark(oklch(0.6 0.16 150), oklch(0.7 0.17 150));\n  /* Text on a success fill (a Merge button): white on light, ink on the lighter dark-theme green. */\n  --ui-on-success: light-dark(oklch(0.99 0 0), oklch(0.17 0 0));\n  --ui-warning: light-dark(oklch(0.67 0.155 58), oklch(0.78 0.15 72));\n  --ui-danger: light-dark(oklch(0.58 0.22 27), oklch(0.62 0.21 25));\n  --ui-on-danger: oklch(0.99 0 0);\n  --ui-accent-text: light-dark(oklch(0.49 0.21 263), oklch(0.76 0.12 255));\n  --ui-success-text: light-dark(oklch(0.5 0.13 150), oklch(0.8 0.17 152));\n  --ui-warning-text: light-dark(oklch(0.53 0.13 52), oklch(0.85 0.135 82));\n  --ui-danger-text: light-dark(oklch(0.51 0.2 27), oklch(0.74 0.15 22));\n  --ui-scrim: light-dark(oklch(0.2 0 0 / 0.2), oklch(0 0 0 / 0.5));\n  --ui-selection: color-mix(in oklch, var(--ui-accent) 24%, transparent);\n  --ui-border-accent: color-mix(in oklch, var(--ui-accent) var(--ui-border-tint), transparent);\n  --ui-border-success: color-mix(in oklch, var(--ui-success) var(--ui-border-tint), transparent);\n  --ui-border-warning: color-mix(in oklch, var(--ui-warning) var(--ui-border-tint), transparent);\n  --ui-border-danger: color-mix(in oklch, var(--ui-danger) var(--ui-border-tint), transparent);\n  /* Tints: the one fill behind status text (a badge, a pill, a changed\n     line). Stronger in dark, where a low-alpha hue disappears. */\n  --ui-accent-tint: light-dark(color-mix(in oklch, var(--ui-accent) 10%, transparent), color-mix(in oklch, var(--ui-accent) 16%, transparent));\n  --ui-success-tint: light-dark(color-mix(in oklch, var(--ui-success) 10%, transparent), color-mix(in oklch, var(--ui-success) 16%, transparent));\n  --ui-warning-tint: light-dark(color-mix(in oklch, var(--ui-warning) 10%, transparent), color-mix(in oklch, var(--ui-warning) 16%, transparent));\n  --ui-danger-tint: light-dark(color-mix(in oklch, var(--ui-danger) 10%, transparent), color-mix(in oklch, var(--ui-danger) 16%, transparent));\n\n  /* Focus: a line just inside the control's edge; fields darken their edge instead. */\n  --ui-ring-focus: 1px solid color-mix(in oklch, currentColor 45%, transparent);\n  --ui-ring-offset: -1px;\n  --ui-field-focus: color-mix(in oklch, var(--ui-foreground) 26%, var(--ui-border-strong));\n\n  /* Every edge and divider: one CSS pixel at a faint alpha, drawn as a\n     box-shadow (a ring, or an inset line on one side), never a `border`.\n     A half-pixel line drew crisp on straight sides but fuzzy and faint on\n     rounded corners; a full pixel at half the alpha carries the same ink\n     and draws the same on curves and straights. */\n  --ui-hairline: 1px;\n\n  /* Elevation, light mode only: three steps, each the edge plus a shadow in\n     the same ink, so the line and the shade read as one soft depth. Every\n     step is a tight contact layer under a wide, very faint ambient one; the\n     steps grow in reach, not in darkness at the edge.\n     Resting: cards and panels on the page. Raised: popovers, a featured\n     card, a hovered card. Floating: menus, dialogs, toasts.\n     Dark mode has no shadows at all: depth there comes from the surface\n     being lighter than the canvas, and from the edges. */\n  /* --ui-edge: a box's outline as a ring in place of a border, so it takes\n     no layout space. The same color as a field's edge: a card and the\n     controls in it read as one family. Already part of the resting and\n     floating shadows; never stack it on one of them, two rings read as a\n     darker edge. Raised carries no ring: pair it with --ui-edge. */\n  --ui-edge: 0 0 0 var(--ui-hairline) var(--ui-border-strong);\n  /* A track of choices (tabs, a segmented control): clear inside a hairline\n     edge, with one flat pill under the chosen item, inset from every side.\n     Both components read these, so they always look like one family. */\n  --ui-track-edge: inset 0 0 0 var(--ui-hairline) var(--ui-border-strong);\n  --ui-track-inset: 4px;\n  --ui-track-pill: var(--ui-fill-strong);\n  /* The ambient layer barely drops (2px) and spreads wide, so the soft\n     shade wraps the whole card instead of pooling at its bottom edge. */\n  /* The edge, then only a wide soft spread that starts below it: nothing\n     darkens the line itself, so a card's edge is the same line as a\n     field's or a code block's, which carry no shadow. */\n  --ui-shadow-resting:\n    var(--ui-edge),\n    0 12px 32px -12px light-dark(oklch(0.21 0 0 / 0.09), transparent);\n  --ui-shadow-raised:\n    0 1px 2px light-dark(oklch(0.21 0 0 / 0.05), transparent),\n    0 4px 12px -4px light-dark(oklch(0.21 0 0 / 0.06), transparent),\n    0 16px 40px -12px light-dark(oklch(0.21 0 0 / 0.12), transparent);\n  --ui-shadow-floating:\n    var(--ui-edge),\n    0 2px 4px light-dark(oklch(0.21 0 0 / 0.05), transparent),\n    0 12px 28px -8px light-dark(oklch(0.21 0 0 / 0.1), transparent),\n    0 32px 72px -24px light-dark(oklch(0.21 0 0 / 0.16), transparent);\n  /* Every button, filled or not: the resting shadow's soft spread at a\n     control's scale. It starts below the edge, so a button's bottom line\n     is the same line as its top, never a darker one. */\n  --ui-shadow-control: 0 3px 6px -4px light-dark(oklch(0.21 0 0 / 0.08), transparent);\n  /* A ring in the surface's color that cuts a dot or avatar out of what it\n     overlaps (a status dot on an avatar, a stack of faces). */\n  --ui-knockout: 2px;\n}\n\n[data-theme=\"light\"] { color-scheme: light; }\n[data-theme=\"dark\"] { color-scheme: dark; }\n\n/* Code drops ligatures, so != and => stay two characters. */\n:where(code, kbd, pre, samp) {\n  font-variant-ligatures: none;\n}\n\n/* A textarea wraps, so it never scrolls sideways: some browsers still show\n   a horizontal scrollbar for a long word or a trailing space. */\n:where(textarea) {\n  overflow-x: hidden;\n  overflow-wrap: break-word;\n}\n"},{"path":"components/ui/uipolish/tailwind.css","type":"registry:file","target":"components/ui/uipolish/tailwind.css","content":"/*\n * UI Polish for Tailwind CSS v4. Import it after Tailwind and the tokens:\n *\n *   @import \"tailwindcss\";\n *   @import \"./ui/tokens.css\";\n *   @import \"./ui/tailwind.css\";\n *\n * Exposes the roles as theme values (bg-ui-surface, rounded-ui-md, ease-ui-enter),\n * prefixed ui- so they never collide with a project's own names like muted or border.\n */\n\n@theme inline {\n  --color-ui-canvas: var(--ui-canvas);\n  --color-ui-surface: var(--ui-surface);\n  --color-ui-fill: var(--ui-fill);\n  --color-ui-fill-strong: var(--ui-fill-strong);\n  --color-ui-fill-solid: var(--ui-fill-solid);\n  --color-ui-fill-strong-solid: var(--ui-fill-strong-solid);\n  --color-ui-foreground: var(--ui-foreground);\n  --color-ui-muted: var(--ui-muted);\n  --color-ui-subtle: var(--ui-subtle);\n  --color-ui-border: var(--ui-border);\n  --color-ui-border-strong: var(--ui-border-strong);\n  --color-ui-ink: var(--ui-ink);\n  --color-ui-on-ink: var(--ui-on-ink);\n  --color-ui-on-ink-muted: var(--ui-on-ink-muted);\n  --color-ui-accent: var(--ui-accent);\n  --color-ui-accent-text: var(--ui-accent-text);\n  --color-ui-on-accent: var(--ui-on-accent);\n  --color-ui-danger: var(--ui-danger);\n  --color-ui-danger-text: var(--ui-danger-text);\n  --color-ui-on-danger: var(--ui-on-danger);\n  --color-ui-success: var(--ui-success);\n  --color-ui-success-text: var(--ui-success-text);\n  --color-ui-on-success: var(--ui-on-success);\n  --color-ui-warning: var(--ui-warning);\n  --color-ui-warning-text: var(--ui-warning-text);\n  --color-ui-accent-tint: var(--ui-accent-tint);\n  --color-ui-success-tint: var(--ui-success-tint);\n  --color-ui-warning-tint: var(--ui-warning-tint);\n  --color-ui-danger-tint: var(--ui-danger-tint);\n\n  --spacing-ui-icon-xs: var(--ui-icon-xs);\n  --spacing-ui-icon-sm: var(--ui-icon-sm);\n  --spacing-ui-icon-md: var(--ui-icon-md);\n  --spacing-ui-icon-lg: var(--ui-icon-lg);\n\n  --radius-ui-sm: var(--ui-radius-sm);\n  --radius-ui-md: var(--ui-radius-md);\n  --radius-ui-lg: var(--ui-radius-lg);\n\n  --shadow-ui-resting: var(--ui-shadow-resting);\n  --shadow-ui-raised: var(--ui-shadow-raised);\n  --shadow-ui-floating: var(--ui-shadow-floating);\n\n  --ease-ui-enter: var(--ui-ease-enter);\n  --ease-ui-exit: var(--ui-ease-exit);\n  --ease-ui-move: var(--ui-ease-move);\n  --ease-ui-glide: var(--ui-ease-glide);\n  --ease-ui-snap: var(--ui-ease-snap);\n  --ease-ui-color: var(--ui-ease-color);\n}\n"}],"css":{"@import \"../components/ui/uipolish/tokens.css\"":{},"@import \"../components/ui/uipolish/tailwind.css\"":{}},"docs":"Added to your global stylesheet: ../components/ui/uipolish/tokens.css, ../components/ui/uipolish/tailwind.css. If it lives somewhere else, fix those paths."}