seam-react 0.1.1 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../src/styles.generated.ts","../src/SeamStyles.tsx"],"sourcesContent":["// Generated by scripts/generate-styles.mjs. Do not edit.\nexport const UI_CSS: string =\n '@layer uk.tokens {\\n :root {\\n color-scheme: light dark;\\n\\n --uk-bg: light-dark(#ffffff, #0b0d12);\\n --uk-surface: light-dark(#f6f7fb, #141821);\\n --uk-surface-raised: light-dark(#ffffff, #1a1f2b);\\n --uk-text: light-dark(#0f172a, #e7eaf0);\\n --uk-text-muted: light-dark(#64748b, #98a2b3);\\n --uk-border: light-dark(#e2e8f0, #2a3141);\\n --uk-border-strong: light-dark(#cbd5e1, #3b4457);\\n\\n --uk-primary: light-dark(#4338ca, #a5b4fc);\\n --uk-primary-solid: light-dark(#4338ca, #4f46e5);\\n --uk-primary-solid-hover: light-dark(#3730a3, #6366f1);\\n --uk-primary-contrast: #ffffff;\\n --uk-danger: light-dark(#b91c1c, #fca5a5);\\n --uk-danger-solid: light-dark(#b91c1c, #b91c1c);\\n --uk-danger-solid-hover: light-dark(#991b1b, #991b1b);\\n --uk-danger-contrast: #ffffff;\\n --uk-success: light-dark(#15803d, #86efac);\\n --uk-warning: light-dark(#b45309, #fcd34d);\\n --uk-info: light-dark(#0369a1, #7dd3fc);\\n\\n --uk-focus-ring: light-dark(#6366f1, #a5b4fc);\\n --uk-overlay: light-dark(rgb(15 23 42 / 0.45), rgb(0 0 0 / 0.65));\\n\\n --uk-space-1: 0.25rem;\\n --uk-space-2: 0.5rem;\\n --uk-space-3: 0.75rem;\\n --uk-space-4: 1rem;\\n --uk-space-5: 1.25rem;\\n --uk-space-6: 1.5rem;\\n --uk-space-8: 2rem;\\n\\n --uk-radius-sm: 0.375rem;\\n --uk-radius-md: 0.625rem;\\n --uk-radius-lg: 0.875rem;\\n --uk-radius-full: 9999px;\\n\\n --uk-font-sans:\\n -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\",\\n \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\\n --uk-font-mono: ui-monospace, \"SFMono-Regular\", Consolas, monospace;\\n\\n --uk-text-xs: 0.75rem;\\n --uk-text-sm: 0.8125rem;\\n --uk-text-md: 0.875rem;\\n --uk-text-lg: 1rem;\\n --uk-text-xl: 1.125rem;\\n\\n --uk-shadow-sm: 0 1px 2px rgb(15 23 42 / 0.08);\\n --uk-shadow-md: 0 6px 16px -6px rgb(15 23 42 / 0.24);\\n --uk-shadow-lg:\\n 0 24px 48px -16px rgb(15 23 42 / 0.32), 0 2px 6px rgb(15 23 42 / 0.08);\\n\\n --uk-transition: 160ms cubic-bezier(0.2, 0.8, 0.2, 1);\\n\\n --uk-z-dialog: 1000;\\n --uk-z-toast: 1100;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n :root {\\n --uk-transition: 0ms;\\n }\\n }\\n}\\n\\n@layer uk.components {\\n .uk-button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: var(--uk-space-2);\\n border: 1px solid transparent;\\n border-radius: var(--uk-button-radius, var(--uk-radius-md));\\n font-family: var(--uk-font-sans);\\n font-weight: var(--uk-button-font-weight, 600);\\n line-height: 1;\\n white-space: nowrap;\\n cursor: pointer;\\n user-select: none;\\n text-decoration: none;\\n transition:\\n background-color var(--uk-transition),\\n border-color var(--uk-transition),\\n color var(--uk-transition),\\n box-shadow var(--uk-transition);\\n }\\n\\n .uk-button:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 2px;\\n }\\n\\n .uk-button:disabled,\\n .uk-button[data-loading=\"true\"] {\\n cursor: not-allowed;\\n opacity: 0.6;\\n }\\n\\n .uk-button[data-size=\"sm\"] {\\n height: var(--uk-button-height-sm, 2rem);\\n padding: 0 var(--uk-space-3);\\n font-size: var(--uk-text-sm);\\n }\\n\\n .uk-button[data-size=\"md\"] {\\n height: var(--uk-button-height-md, 2.5rem);\\n padding: 0 var(--uk-space-4);\\n font-size: var(--uk-text-md);\\n }\\n\\n .uk-button[data-size=\"lg\"] {\\n height: var(--uk-button-height-lg, 3rem);\\n padding: 0 var(--uk-space-5);\\n font-size: var(--uk-text-lg);\\n }\\n\\n .uk-button[data-icon-only=\"true\"] {\\n aspect-ratio: 1;\\n padding: 0;\\n }\\n\\n .uk-button[data-variant=\"primary\"] {\\n background: var(--uk-primary-solid);\\n color: var(--uk-primary-contrast);\\n }\\n\\n .uk-button[data-variant=\"primary\"]:hover:not(:disabled) {\\n background: var(--uk-primary-solid-hover);\\n }\\n\\n .uk-button[data-variant=\"secondary\"] {\\n background: var(--uk-surface);\\n border-color: var(--uk-border);\\n color: var(--uk-text);\\n }\\n\\n .uk-button[data-variant=\"secondary\"]:hover:not(:disabled) {\\n border-color: var(--uk-border-strong);\\n }\\n\\n .uk-button[data-variant=\"outline\"] {\\n background: transparent;\\n border-color: var(--uk-border-strong);\\n color: var(--uk-text);\\n }\\n\\n .uk-button[data-variant=\"outline\"]:hover:not(:disabled) {\\n background: var(--uk-surface);\\n }\\n\\n .uk-button[data-variant=\"ghost\"] {\\n background: transparent;\\n color: var(--uk-text);\\n }\\n\\n .uk-button[data-variant=\"ghost\"]:hover:not(:disabled) {\\n background: var(--uk-surface);\\n }\\n\\n .uk-button[data-variant=\"danger\"] {\\n background: var(--uk-danger-solid);\\n color: var(--uk-danger-contrast);\\n }\\n\\n .uk-button[data-variant=\"danger\"]:hover:not(:disabled) {\\n background: var(--uk-danger-solid-hover);\\n }\\n\\n .uk-button__spinner {\\n width: 1em;\\n height: 1em;\\n flex: none;\\n border: 2px solid currentColor;\\n border-right-color: transparent;\\n border-radius: 50%;\\n animation: uk-button-spin 0.6s linear infinite;\\n }\\n\\n @keyframes uk-button-spin {\\n to {\\n transform: rotate(360deg);\\n }\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n .uk-button__spinner {\\n animation-duration: 1.6s;\\n }\\n }\\n}\\n\\n@layer uk.components {\\n .uk-input {\\n width: 100%;\\n border: 1px solid var(--uk-border-strong);\\n border-radius: var(--uk-input-radius, var(--uk-radius-md));\\n background: var(--uk-bg);\\n color: var(--uk-text);\\n font-family: var(--uk-font-sans);\\n transition:\\n border-color var(--uk-transition),\\n box-shadow var(--uk-transition);\\n }\\n\\n .uk-input[data-size=\"sm\"] {\\n height: 2rem;\\n padding: 0 var(--uk-space-3);\\n font-size: var(--uk-text-sm);\\n }\\n\\n .uk-input[data-size=\"md\"] {\\n height: 2.5rem;\\n padding: 0 var(--uk-space-3);\\n font-size: var(--uk-text-md);\\n }\\n\\n .uk-input[data-size=\"lg\"] {\\n height: 3rem;\\n padding: 0 var(--uk-space-4);\\n font-size: var(--uk-text-lg);\\n }\\n\\n .uk-input::placeholder {\\n color: var(--uk-text-muted);\\n }\\n\\n .uk-input:hover:not(:disabled) {\\n border-color: var(--uk-border-strong);\\n }\\n\\n .uk-input:focus-visible {\\n outline: none;\\n border-color: var(--uk-primary);\\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--uk-primary) 24%, transparent);\\n }\\n\\n .uk-input:disabled {\\n cursor: not-allowed;\\n opacity: 0.6;\\n background: var(--uk-surface);\\n }\\n\\n .uk-input[aria-invalid=\"true\"] {\\n border-color: var(--uk-danger);\\n }\\n\\n .uk-input[aria-invalid=\"true\"]:focus-visible {\\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--uk-danger) 24%, transparent);\\n }\\n}\\n\\n@layer uk.components {\\n .uk-switch {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--uk-space-3);\\n color: var(--uk-text);\\n font-family: var(--uk-font-sans);\\n font-size: var(--uk-text-md);\\n cursor: pointer;\\n user-select: none;\\n }\\n\\n .uk-switch__input {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n margin: -1px;\\n padding: 0;\\n overflow: hidden;\\n clip: rect(0 0 0 0);\\n white-space: nowrap;\\n border: 0;\\n }\\n\\n .uk-switch__track {\\n position: relative;\\n flex: none;\\n width: 2.5rem;\\n height: 1.5rem;\\n border-radius: var(--uk-radius-full);\\n background: var(--uk-switch-track, var(--uk-border-strong));\\n transition: background-color var(--uk-transition);\\n }\\n\\n .uk-switch__thumb {\\n position: absolute;\\n top: 2px;\\n left: 2px;\\n width: 1.25rem;\\n height: 1.25rem;\\n border-radius: 50%;\\n background: var(--uk-switch-thumb, #ffffff);\\n box-shadow: var(--uk-shadow-sm);\\n transition: transform var(--uk-transition);\\n }\\n\\n .uk-switch__input:checked + .uk-switch__track {\\n background: var(--uk-switch-track-checked, var(--uk-primary-solid));\\n }\\n\\n .uk-switch__input:checked + .uk-switch__track .uk-switch__thumb {\\n transform: translateX(1rem);\\n }\\n\\n .uk-switch__input:focus-visible + .uk-switch__track {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 2px;\\n }\\n\\n .uk-switch[data-disabled=\"true\"] {\\n cursor: not-allowed;\\n opacity: 0.6;\\n }\\n}\\n\\n@layer uk.components {\\n .uk-tabs {\\n font-family: var(--uk-font-sans);\\n color: var(--uk-text);\\n }\\n\\n .uk-tabs__list {\\n display: flex;\\n gap: var(--uk-space-1);\\n border-bottom: 1px solid var(--uk-border);\\n }\\n\\n .uk-tabs__trigger {\\n position: relative;\\n appearance: none;\\n border: 0;\\n background: transparent;\\n color: var(--uk-text-muted);\\n font: inherit;\\n font-size: var(--uk-text-md);\\n font-weight: 500;\\n padding: var(--uk-space-2) var(--uk-space-3);\\n border-radius: var(--uk-radius-sm) var(--uk-radius-sm) 0 0;\\n cursor: pointer;\\n transition:\\n color var(--uk-transition),\\n background-color var(--uk-transition);\\n }\\n\\n .uk-tabs__trigger:hover:not(:disabled) {\\n color: var(--uk-text);\\n background: var(--uk-surface);\\n }\\n\\n .uk-tabs__trigger[data-state=\"active\"] {\\n color: var(--uk-primary);\\n }\\n\\n .uk-tabs__trigger[data-state=\"active\"]::after {\\n content: \"\";\\n position: absolute;\\n right: var(--uk-space-2);\\n bottom: -1px;\\n left: var(--uk-space-2);\\n height: var(--uk-tabs-indicator-size, 2px);\\n border-radius: 2px;\\n background: var(--uk-tabs-indicator, var(--uk-primary));\\n }\\n\\n .uk-tabs__trigger:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: -2px;\\n }\\n\\n .uk-tabs__trigger:disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n\\n .uk-tabs__panel {\\n padding-top: var(--uk-space-4);\\n color: var(--uk-text);\\n }\\n\\n .uk-tabs__panel:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 2px;\\n border-radius: var(--uk-radius-sm);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] {\\n display: flex;\\n gap: var(--uk-space-4);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__list {\\n flex-direction: column;\\n border-bottom: 0;\\n border-inline-end: 1px solid var(--uk-border);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__trigger {\\n text-align: start;\\n border-radius: var(--uk-radius-sm) 0 0 var(--uk-radius-sm);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"]\\n .uk-tabs__trigger[data-state=\"active\"]::after {\\n top: var(--uk-space-2);\\n right: -1px;\\n bottom: var(--uk-space-2);\\n left: auto;\\n width: var(--uk-tabs-indicator-size, 2px);\\n height: auto;\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__panel {\\n flex: 1;\\n padding-top: 0;\\n }\\n}\\n\\n@layer uk.components {\\n .uk-dialog {\\n width: min(var(--uk-dialog-width, 32rem), calc(100vw - var(--uk-space-8)));\\n max-width: none;\\n max-height: none;\\n margin: auto;\\n padding: 0;\\n border: 0;\\n background: transparent;\\n color: var(--uk-text);\\n z-index: var(--uk-z-dialog);\\n }\\n\\n .uk-dialog::backdrop {\\n background: var(--uk-overlay);\\n backdrop-filter: blur(2px);\\n }\\n\\n .uk-dialog[open] {\\n animation: uk-dialog-in 180ms cubic-bezier(0.2, 0.8, 0.2, 1);\\n }\\n\\n .uk-dialog__panel {\\n display: flex;\\n flex-direction: column;\\n max-height: min(85vh, 42rem);\\n border: 1px solid var(--uk-border);\\n border-radius: var(--uk-dialog-radius, var(--uk-radius-lg));\\n background: var(--uk-surface-raised);\\n box-shadow: var(--uk-shadow-lg);\\n font-family: var(--uk-font-sans);\\n overflow: hidden;\\n }\\n\\n .uk-dialog__header {\\n display: flex;\\n align-items: flex-start;\\n gap: var(--uk-space-4);\\n padding: var(--uk-space-5);\\n border-bottom: 1px solid var(--uk-border);\\n }\\n\\n .uk-dialog__heading {\\n flex: 1;\\n min-width: 0;\\n }\\n\\n .uk-dialog__title {\\n margin: 0;\\n color: var(--uk-text);\\n font-size: var(--uk-text-xl);\\n font-weight: 600;\\n line-height: 1.3;\\n }\\n\\n .uk-dialog__description {\\n margin: var(--uk-space-1) 0 0;\\n color: var(--uk-text-muted);\\n font-size: var(--uk-text-md);\\n line-height: 1.5;\\n }\\n\\n .uk-dialog__close {\\n flex: none;\\n }\\n\\n .uk-dialog__body {\\n padding: var(--uk-space-5);\\n overflow-y: auto;\\n font-size: var(--uk-text-md);\\n line-height: 1.6;\\n }\\n\\n .uk-dialog__footer {\\n display: flex;\\n justify-content: flex-end;\\n gap: var(--uk-space-2);\\n padding: var(--uk-space-4) var(--uk-space-5);\\n border-top: 1px solid var(--uk-border);\\n background: var(--uk-surface);\\n }\\n\\n @keyframes uk-dialog-in {\\n from {\\n opacity: 0;\\n transform: translateY(8px) scale(0.98);\\n }\\n\\n to {\\n opacity: 1;\\n transform: translateY(0) scale(1);\\n }\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n .uk-dialog[open] {\\n animation: none;\\n }\\n }\\n}\\n\\n@layer uk.components {\\n .uk-toast-viewport {\\n position: fixed;\\n z-index: var(--uk-z-toast);\\n display: flex;\\n flex-direction: column;\\n gap: var(--uk-space-2);\\n width: min(var(--uk-toast-width, 22rem), calc(100vw - var(--uk-space-8)));\\n padding: var(--uk-space-4);\\n pointer-events: none;\\n font-family: var(--uk-font-sans);\\n }\\n\\n .uk-toast-viewport[data-placement=\"top-right\"] {\\n top: 0;\\n right: 0;\\n }\\n\\n .uk-toast-viewport[data-placement=\"top-center\"] {\\n top: 0;\\n left: 50%;\\n transform: translateX(-50%);\\n }\\n\\n .uk-toast-viewport[data-placement=\"bottom-right\"] {\\n right: 0;\\n bottom: 0;\\n flex-direction: column-reverse;\\n }\\n\\n .uk-toast-viewport[data-placement=\"bottom-center\"] {\\n bottom: 0;\\n left: 50%;\\n flex-direction: column-reverse;\\n transform: translateX(-50%);\\n }\\n\\n .uk-toast {\\n display: flex;\\n align-items: flex-start;\\n gap: var(--uk-space-3);\\n padding: var(--uk-space-3) var(--uk-space-4);\\n border: 1px solid var(--uk-border);\\n border-inline-start: 3px solid var(--uk-toast-accent, var(--uk-info));\\n border-radius: var(--uk-toast-radius, var(--uk-radius-md));\\n background: var(--uk-surface-raised);\\n color: var(--uk-text);\\n box-shadow: var(--uk-shadow-md);\\n pointer-events: auto;\\n font-size: var(--uk-text-md);\\n line-height: 1.5;\\n }\\n\\n .uk-toast[data-variant=\"info\"] {\\n --uk-toast-accent: var(--uk-info);\\n }\\n\\n .uk-toast[data-variant=\"success\"] {\\n --uk-toast-accent: var(--uk-success);\\n }\\n\\n .uk-toast[data-variant=\"warning\"] {\\n --uk-toast-accent: var(--uk-warning);\\n }\\n\\n .uk-toast[data-variant=\"danger\"] {\\n --uk-toast-accent: var(--uk-danger);\\n }\\n\\n .uk-toast[data-state=\"open\"] {\\n animation: uk-toast-in 180ms cubic-bezier(0.2, 0.8, 0.2, 1);\\n }\\n\\n .uk-toast[data-state=\"closed\"] {\\n animation: uk-toast-out 180ms cubic-bezier(0.4, 0, 1, 1) forwards;\\n }\\n\\n .uk-toast__body {\\n flex: 1;\\n min-width: 0;\\n }\\n\\n .uk-toast__title {\\n color: var(--uk-text);\\n font-weight: 600;\\n }\\n\\n .uk-toast__description {\\n margin-top: 2px;\\n color: var(--uk-text-muted);\\n }\\n\\n .uk-toast__title + .uk-toast__description {\\n margin-top: var(--uk-space-1);\\n }\\n\\n .uk-toast__close {\\n flex: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n width: 1.5rem;\\n height: 1.5rem;\\n margin: -2px -4px 0 0;\\n padding: 0;\\n border: 0;\\n border-radius: var(--uk-radius-sm);\\n background: transparent;\\n color: var(--uk-text-muted);\\n cursor: pointer;\\n }\\n\\n .uk-toast__close:hover {\\n color: var(--uk-text);\\n background: var(--uk-surface);\\n }\\n\\n .uk-toast__close:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 1px;\\n }\\n\\n @keyframes uk-toast-in {\\n from {\\n opacity: 0;\\n transform: translateY(-6px) scale(0.98);\\n }\\n\\n to {\\n opacity: 1;\\n transform: translateY(0) scale(1);\\n }\\n }\\n\\n @keyframes uk-toast-out {\\n from {\\n opacity: 1;\\n transform: translateY(0) scale(1);\\n }\\n\\n to {\\n opacity: 0;\\n transform: translateY(-4px) scale(0.98);\\n }\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n .uk-toast[data-state=\"open\"],\\n .uk-toast[data-state=\"closed\"] {\\n animation: none;\\n }\\n }\\n}';\n","import type { ReactElement } from \"react\";\nimport { UI_CSS } from \"./styles.generated\";\n\nexport interface SeamStylesProps {\n /** 与 Content Security Policy 的 style-src nonce 保持一致。 */\n nonce?: string;\n}\n\n/**\n * JSR 不支持 CSS package exports,因此将样式以内联 style 标签提供。\n *\n * 在应用根部渲染一次即可。使用 npm 构建时仍可继续导入 styles.css。\n */\nexport function SeamStyles({ nonce }: SeamStylesProps): ReactElement {\n return (\n <style data-seam-ui=\"\" nonce={nonce}>\n {UI_CSS}\n </style>\n );\n}\n"],"names":["UI_CSS","SeamStyles","nonce","jsx"],"mappings":";AACO,MAAMA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACWK,SAASC,EAAW,EAAE,OAAAC,KAAwC;AACnE,SACE,gBAAAC,EAAC,SAAA,EAAM,gBAAa,IAAG,OAAAD,GACpB,UAAAF,GACH;AAEJ;"}
1
+ {"version":3,"file":"styles.js","sources":["../src/styles.generated.ts","../src/SeamStyles.tsx"],"sourcesContent":["// Generated by scripts/generate-styles.mjs. Do not edit.\nexport const UI_CSS: string =\n '@layer uk.tokens {\\n :root {\\n color-scheme: light dark;\\n\\n --uk-bg: light-dark(#ffffff, #0b0d12);\\n --uk-surface: light-dark(#f6f7fb, #141821);\\n --uk-surface-raised: light-dark(#ffffff, #1a1f2b);\\n --uk-text: light-dark(#0f172a, #e7eaf0);\\n --uk-text-muted: light-dark(#64748b, #98a2b3);\\n --uk-border: light-dark(#e2e8f0, #2a3141);\\n --uk-border-strong: light-dark(#cbd5e1, #3b4457);\\n\\n --uk-primary: light-dark(#4338ca, #a5b4fc);\\n --uk-primary-solid: light-dark(#4338ca, #4f46e5);\\n --uk-primary-solid-hover: light-dark(#3730a3, #6366f1);\\n --uk-primary-contrast: #ffffff;\\n --uk-danger: light-dark(#b91c1c, #fca5a5);\\n --uk-danger-solid: light-dark(#b91c1c, #b91c1c);\\n --uk-danger-solid-hover: light-dark(#991b1b, #991b1b);\\n --uk-danger-contrast: #ffffff;\\n --uk-success: light-dark(#15803d, #86efac);\\n --uk-warning: light-dark(#b45309, #fcd34d);\\n --uk-info: light-dark(#0369a1, #7dd3fc);\\n\\n --uk-focus-ring: light-dark(#6366f1, #a5b4fc);\\n --uk-overlay: light-dark(rgb(15 23 42 / 0.45), rgb(0 0 0 / 0.65));\\n\\n --uk-space-1: 0.25rem;\\n --uk-space-2: 0.5rem;\\n --uk-space-3: 0.75rem;\\n --uk-space-4: 1rem;\\n --uk-space-5: 1.25rem;\\n --uk-space-6: 1.5rem;\\n --uk-space-8: 2rem;\\n\\n --uk-radius-sm: 0.375rem;\\n --uk-radius-md: 0.625rem;\\n --uk-radius-lg: 0.875rem;\\n --uk-radius-full: 9999px;\\n\\n --uk-font-sans:\\n -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\",\\n \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;\\n --uk-font-mono: ui-monospace, \"SFMono-Regular\", Consolas, monospace;\\n\\n --uk-text-xs: 0.75rem;\\n --uk-text-sm: 0.8125rem;\\n --uk-text-md: 0.875rem;\\n --uk-text-lg: 1rem;\\n --uk-text-xl: 1.125rem;\\n\\n --uk-shadow-sm: 0 1px 2px rgb(15 23 42 / 0.08);\\n --uk-shadow-md: 0 6px 16px -6px rgb(15 23 42 / 0.24);\\n --uk-shadow-lg:\\n 0 24px 48px -16px rgb(15 23 42 / 0.32), 0 2px 6px rgb(15 23 42 / 0.08);\\n\\n --uk-duration-fast: 120ms;\\n --uk-duration-base: 160ms;\\n --uk-duration-control: 200ms;\\n --uk-duration-overlay: 240ms;\\n --uk-duration-exit: 180ms;\\n --uk-ease-out: cubic-bezier(0.23, 1, 0.32, 1);\\n --uk-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);\\n --uk-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);\\n --uk-transition: var(--uk-duration-base) var(--uk-ease-out);\\n --uk-scale-press: 0.97;\\n\\n --uk-z-dialog: 1000;\\n --uk-z-tooltip: 1100;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n :root {\\n --uk-duration-fast: 100ms;\\n --uk-duration-base: 100ms;\\n --uk-duration-control: 100ms;\\n --uk-duration-overlay: 100ms;\\n --uk-duration-exit: 100ms;\\n --uk-transition: 100ms ease;\\n }\\n }\\n}\\n\\n@layer uk.components {\\n .uk-button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n gap: var(--uk-space-2);\\n border: 1px solid transparent;\\n border-radius: var(--uk-button-radius, var(--uk-radius-md));\\n font-family: var(--uk-font-sans);\\n font-weight: var(--uk-button-font-weight, 600);\\n line-height: 1;\\n white-space: nowrap;\\n cursor: pointer;\\n user-select: none;\\n text-decoration: none;\\n transition:\\n background-color var(--uk-transition),\\n border-color var(--uk-transition),\\n color var(--uk-transition),\\n box-shadow var(--uk-transition),\\n transform var(--uk-duration-fast) var(--uk-ease-out);\\n }\\n\\n .uk-button:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 2px;\\n }\\n\\n .uk-button:active:not(:disabled) {\\n transform: scale(var(--uk-scale-press));\\n }\\n\\n .uk-button:disabled,\\n .uk-button[data-loading=\"true\"] {\\n cursor: not-allowed;\\n opacity: 0.6;\\n }\\n\\n .uk-button[data-size=\"sm\"] {\\n height: var(--uk-button-height-sm, 2rem);\\n padding: 0 var(--uk-space-3);\\n font-size: var(--uk-text-sm);\\n }\\n\\n .uk-button[data-size=\"md\"] {\\n height: var(--uk-button-height-md, 2.5rem);\\n padding: 0 var(--uk-space-4);\\n font-size: var(--uk-text-md);\\n }\\n\\n .uk-button[data-size=\"lg\"] {\\n height: var(--uk-button-height-lg, 3rem);\\n padding: 0 var(--uk-space-5);\\n font-size: var(--uk-text-lg);\\n }\\n\\n .uk-button[data-icon-only=\"true\"] {\\n aspect-ratio: 1;\\n padding: 0;\\n }\\n\\n .uk-button[data-variant=\"primary\"] {\\n background: var(--uk-primary-solid);\\n color: var(--uk-primary-contrast);\\n }\\n\\n .uk-button[data-variant=\"secondary\"] {\\n background: var(--uk-surface);\\n border-color: var(--uk-border);\\n color: var(--uk-text);\\n }\\n\\n .uk-button[data-variant=\"outline\"] {\\n background: transparent;\\n border-color: var(--uk-border-strong);\\n color: var(--uk-text);\\n }\\n\\n .uk-button[data-variant=\"ghost\"] {\\n background: transparent;\\n color: var(--uk-text);\\n }\\n\\n .uk-button[data-variant=\"danger\"] {\\n background: var(--uk-danger-solid);\\n color: var(--uk-danger-contrast);\\n }\\n\\n @media (hover: hover) and (pointer: fine) {\\n .uk-button[data-variant=\"primary\"]:hover:not(:disabled) {\\n background: var(--uk-primary-solid-hover);\\n }\\n\\n .uk-button[data-variant=\"secondary\"]:hover:not(:disabled) {\\n border-color: var(--uk-border-strong);\\n }\\n\\n .uk-button[data-variant=\"outline\"]:hover:not(:disabled) {\\n background: var(--uk-surface);\\n }\\n\\n .uk-button[data-variant=\"ghost\"]:hover:not(:disabled) {\\n background: var(--uk-surface);\\n }\\n\\n .uk-button[data-variant=\"danger\"]:hover:not(:disabled) {\\n background: var(--uk-danger-solid-hover);\\n }\\n }\\n\\n .uk-button__spinner {\\n width: 1em;\\n height: 1em;\\n flex: none;\\n border: 2px solid currentColor;\\n border-right-color: transparent;\\n border-radius: 50%;\\n animation: uk-button-spin 0.6s linear infinite;\\n }\\n\\n @keyframes uk-button-spin {\\n to {\\n transform: rotate(360deg);\\n }\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n .uk-button:active:not(:disabled) {\\n transform: none;\\n }\\n\\n .uk-button__spinner {\\n animation-duration: 1.6s;\\n }\\n }\\n}\\n\\n@layer uk.components {\\n .uk-input {\\n width: 100%;\\n border: 1px solid var(--uk-border-strong);\\n border-radius: var(--uk-input-radius, var(--uk-radius-md));\\n background: var(--uk-bg);\\n color: var(--uk-text);\\n font-family: var(--uk-font-sans);\\n transition:\\n border-color var(--uk-transition),\\n box-shadow var(--uk-transition);\\n }\\n\\n .uk-input[data-size=\"sm\"] {\\n height: 2rem;\\n padding: 0 var(--uk-space-3);\\n font-size: var(--uk-text-sm);\\n }\\n\\n .uk-input[data-size=\"md\"] {\\n height: 2.5rem;\\n padding: 0 var(--uk-space-3);\\n font-size: var(--uk-text-md);\\n }\\n\\n .uk-input[data-size=\"lg\"] {\\n height: 3rem;\\n padding: 0 var(--uk-space-4);\\n font-size: var(--uk-text-lg);\\n }\\n\\n .uk-input::placeholder {\\n color: var(--uk-text-muted);\\n }\\n\\n .uk-input:hover:not(:disabled) {\\n border-color: var(--uk-border-strong);\\n }\\n\\n .uk-input:focus-visible {\\n outline: none;\\n border-color: var(--uk-primary);\\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--uk-primary) 24%, transparent);\\n }\\n\\n .uk-input:disabled {\\n cursor: not-allowed;\\n opacity: 0.6;\\n background: var(--uk-surface);\\n }\\n\\n .uk-input[aria-invalid=\"true\"] {\\n border-color: var(--uk-danger);\\n }\\n\\n .uk-input[aria-invalid=\"true\"]:focus-visible {\\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--uk-danger) 24%, transparent);\\n }\\n}\\n\\n@layer uk.components {\\n .uk-switch {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--uk-space-3);\\n color: var(--uk-text);\\n font-family: var(--uk-font-sans);\\n font-size: var(--uk-text-md);\\n cursor: pointer;\\n user-select: none;\\n }\\n\\n .uk-switch__input {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n margin: -1px;\\n padding: 0;\\n overflow: hidden;\\n clip: rect(0 0 0 0);\\n white-space: nowrap;\\n border: 0;\\n }\\n\\n .uk-switch__track {\\n position: relative;\\n flex: none;\\n width: 2.5rem;\\n height: 1.5rem;\\n border-radius: var(--uk-radius-full);\\n background: var(--uk-switch-track, var(--uk-border-strong));\\n cursor: pointer;\\n touch-action: none;\\n user-select: none;\\n transition: background-color var(--uk-transition);\\n }\\n\\n .uk-switch__thumb {\\n position: absolute;\\n top: 2px;\\n left: 2px;\\n width: 1.25rem;\\n height: 1.25rem;\\n border-radius: 50%;\\n background: var(--uk-switch-thumb, #ffffff);\\n box-shadow: var(--uk-shadow-sm);\\n }\\n\\n .uk-switch__input:checked + .uk-switch__track {\\n background: var(--uk-switch-track-checked, var(--uk-primary-solid));\\n }\\n\\n .uk-switch__input:focus-visible + .uk-switch__track {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 2px;\\n }\\n\\n .uk-switch[data-disabled=\"true\"] {\\n cursor: not-allowed;\\n opacity: 0.6;\\n }\\n\\n .uk-switch[data-disabled=\"true\"] .uk-switch__track {\\n cursor: not-allowed;\\n }\\n}\\n\\n@layer uk.components {\\n .uk-tabs {\\n font-family: var(--uk-font-sans);\\n color: var(--uk-text);\\n }\\n\\n .uk-tabs__list {\\n display: flex;\\n gap: var(--uk-space-1);\\n border-bottom: 1px solid var(--uk-border);\\n }\\n\\n .uk-tabs__trigger {\\n position: relative;\\n appearance: none;\\n border: 0;\\n background: transparent;\\n color: var(--uk-text-muted);\\n font: inherit;\\n font-size: var(--uk-text-md);\\n font-weight: 500;\\n padding: var(--uk-space-2) var(--uk-space-3);\\n border-radius: var(--uk-radius-sm) var(--uk-radius-sm) 0 0;\\n cursor: pointer;\\n transition:\\n color var(--uk-transition),\\n background-color var(--uk-transition);\\n }\\n\\n .uk-tabs__trigger:hover:not(:disabled) {\\n color: var(--uk-text);\\n background: var(--uk-surface);\\n }\\n\\n .uk-tabs__trigger[data-state=\"active\"] {\\n color: var(--uk-primary);\\n }\\n\\n .uk-tabs__indicator {\\n position: absolute;\\n right: var(--uk-space-2);\\n bottom: -1px;\\n left: var(--uk-space-2);\\n height: var(--uk-tabs-indicator-size, 2px);\\n border-radius: 2px;\\n background: var(--uk-tabs-indicator, var(--uk-primary));\\n pointer-events: none;\\n }\\n\\n .uk-tabs__trigger:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: -2px;\\n }\\n\\n .uk-tabs__trigger:disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n\\n .uk-tabs__panel {\\n padding-top: var(--uk-space-4);\\n color: var(--uk-text);\\n }\\n\\n .uk-tabs__panel:focus-visible {\\n outline: 2px solid var(--uk-focus-ring);\\n outline-offset: 2px;\\n border-radius: var(--uk-radius-sm);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] {\\n display: flex;\\n gap: var(--uk-space-4);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__list {\\n flex-direction: column;\\n border-bottom: 0;\\n border-inline-end: 1px solid var(--uk-border);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__trigger {\\n text-align: start;\\n border-radius: var(--uk-radius-sm) 0 0 var(--uk-radius-sm);\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__indicator {\\n top: var(--uk-space-2);\\n right: -1px;\\n bottom: var(--uk-space-2);\\n left: auto;\\n width: var(--uk-tabs-indicator-size, 2px);\\n height: auto;\\n }\\n\\n .uk-tabs[data-orientation=\"vertical\"] .uk-tabs__panel {\\n flex: 1;\\n padding-top: 0;\\n }\\n}\\n\\n@layer uk.components {\\n .uk-dialog {\\n width: min(var(--uk-dialog-width, 32rem), calc(100vw - var(--uk-space-8)));\\n max-width: none;\\n max-height: none;\\n margin: auto;\\n padding: 0;\\n border: 0;\\n background: transparent;\\n color: var(--uk-text);\\n z-index: var(--uk-z-dialog);\\n }\\n\\n .uk-dialog::backdrop {\\n background: var(--uk-overlay);\\n backdrop-filter: blur(8px) saturate(125%);\\n opacity: 1;\\n transition: opacity var(--uk-duration-exit) var(--uk-ease-out);\\n }\\n\\n .uk-dialog[data-state=\"closed\"]::backdrop {\\n opacity: 0;\\n transition-delay: 220ms;\\n }\\n\\n .uk-dialog[data-state=\"closed\"] {\\n pointer-events: none;\\n }\\n\\n @starting-style {\\n .uk-dialog[data-state=\"open\"]::backdrop {\\n opacity: 0;\\n }\\n }\\n\\n .uk-dialog__panel {\\n display: flex;\\n flex-direction: column;\\n max-height: min(85vh, 42rem);\\n border: 1px solid var(--uk-border);\\n border-radius: var(--uk-dialog-radius, var(--uk-radius-lg));\\n background: var(--uk-surface-raised);\\n box-shadow: var(--uk-shadow-lg);\\n font-family: var(--uk-font-sans);\\n overflow: hidden;\\n transform-origin: center;\\n }\\n\\n .uk-dialog__header {\\n display: grid;\\n grid-template-columns: minmax(0, 1fr) auto;\\n align-items: flex-start;\\n column-gap: var(--uk-space-4);\\n row-gap: 0;\\n padding: var(--uk-space-5);\\n border-bottom: 1px solid var(--uk-border);\\n }\\n\\n .uk-dialog__header > .uk-dialog__title,\\n .uk-dialog__header > .uk-dialog__description {\\n grid-column: 1;\\n }\\n\\n .uk-dialog__header > .uk-dialog__description {\\n grid-row: 2;\\n }\\n\\n .uk-dialog__header > .uk-dialog__close {\\n grid-column: 2;\\n grid-row: 1 / span 2;\\n }\\n\\n .uk-dialog__heading {\\n flex: 1;\\n min-width: 0;\\n }\\n\\n .uk-dialog__title {\\n margin: 0;\\n color: var(--uk-text);\\n font-size: var(--uk-text-xl);\\n font-weight: 600;\\n line-height: 1.3;\\n }\\n\\n .uk-dialog__description {\\n margin: var(--uk-space-1) 0 0;\\n color: var(--uk-text-muted);\\n font-size: var(--uk-text-md);\\n line-height: 1.5;\\n }\\n\\n .uk-dialog__close {\\n flex: none;\\n }\\n\\n .uk-dialog__body {\\n padding: var(--uk-space-5);\\n overflow-y: auto;\\n font-size: var(--uk-text-md);\\n line-height: 1.6;\\n }\\n\\n .uk-dialog__footer {\\n display: flex;\\n justify-content: flex-end;\\n gap: var(--uk-space-2);\\n padding: var(--uk-space-4) var(--uk-space-5);\\n border-top: 1px solid var(--uk-border);\\n background: transparent;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n .uk-dialog::backdrop {\\n transition-duration: var(--uk-duration-fast);\\n transition-timing-function: ease;\\n transition-delay: 0ms;\\n }\\n }\\n\\n @media (prefers-reduced-transparency: reduce) {\\n .uk-dialog::backdrop {\\n backdrop-filter: none;\\n }\\n }\\n\\n @media (prefers-contrast: more) {\\n .uk-dialog__panel {\\n border-color: var(--uk-text-muted);\\n background: var(--uk-surface-raised);\\n backdrop-filter: none;\\n }\\n }\\n}\\n\\n@layer uk.components {\\n .uk-tooltip {\\n position: fixed;\\n z-index: var(--uk-z-tooltip);\\n pointer-events: none;\\n }\\n\\n .uk-tooltip__surface {\\n position: relative;\\n width: max-content;\\n max-width: min(\\n var(--uk-tooltip-max-width, 20rem),\\n calc(100vw - var(--uk-space-4))\\n );\\n padding: var(--uk-space-2) var(--uk-space-3);\\n border: 1px solid var(--uk-tooltip-border, var(--uk-border-strong));\\n border-radius: var(--uk-tooltip-radius, var(--uk-radius-sm));\\n background: var(--uk-tooltip-background, var(--uk-surface-raised));\\n color: var(--uk-tooltip-text, var(--uk-text));\\n box-shadow: var(--uk-shadow-md);\\n font-family: var(--uk-font-sans);\\n font-size: var(--uk-text-xs);\\n font-weight: 500;\\n line-height: 1.45;\\n overflow-wrap: anywhere;\\n pointer-events: none;\\n user-select: none;\\n }\\n\\n .uk-tooltip--group {\\n position: fixed;\\n }\\n\\n .uk-tooltip__content {\\n display: block;\\n }\\n\\n .uk-tooltip__arrow {\\n position: absolute;\\n width: 8px;\\n height: 8px;\\n border: 1px solid var(--uk-tooltip-border, var(--uk-border-strong));\\n background: var(--uk-tooltip-background, var(--uk-surface-raised));\\n transform: rotate(45deg);\\n pointer-events: none;\\n }\\n\\n .uk-tooltip[data-side=\"top\"] .uk-tooltip__arrow {\\n bottom: -5px;\\n left: var(--uk-tooltip-arrow-offset);\\n border-top: 0;\\n border-left: 0;\\n translate: -50% 0;\\n }\\n\\n .uk-tooltip[data-side=\"bottom\"] .uk-tooltip__arrow {\\n top: -5px;\\n left: var(--uk-tooltip-arrow-offset);\\n border-right: 0;\\n border-bottom: 0;\\n translate: -50% 0;\\n }\\n\\n .uk-tooltip[data-side=\"left\"] .uk-tooltip__arrow {\\n top: var(--uk-tooltip-arrow-offset);\\n right: -5px;\\n border-bottom: 0;\\n border-left: 0;\\n translate: 0 -50%;\\n }\\n\\n .uk-tooltip[data-side=\"right\"] .uk-tooltip__arrow {\\n top: var(--uk-tooltip-arrow-offset);\\n left: -5px;\\n border-top: 0;\\n border-right: 0;\\n translate: 0 -50%;\\n }\\n\\n @media (prefers-contrast: more) {\\n .uk-tooltip__surface {\\n border-color: currentColor;\\n }\\n\\n .uk-tooltip__arrow {\\n border-color: currentColor;\\n }\\n }\\n}';\n","import type { ReactElement } from \"react\";\nimport { UI_CSS } from \"./styles.generated\";\n\nexport interface SeamStylesProps {\n /** 与 Content Security Policy 的 style-src nonce 保持一致。 */\n nonce?: string;\n}\n\n/**\n * JSR 不支持 CSS package exports,因此将样式以内联 style 标签提供。\n *\n * 在应用根部渲染一次即可。使用 npm 构建时仍可继续导入 styles.css。\n */\nexport function SeamStyles({ nonce }: SeamStylesProps): ReactElement {\n return (\n <style data-seam-ui=\"\" nonce={nonce}>\n {UI_CSS}\n </style>\n );\n}\n"],"names":["UI_CSS","SeamStyles","nonce","jsx"],"mappings":";AACO,MAAMA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACWK,SAASC,EAAW,EAAE,OAAAC,KAAwC;AACnE,SACE,gBAAAC,EAAC,SAAA,EAAM,gBAAa,IAAG,OAAAD,GACpB,UAAAF,GACH;AAEJ;"}
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "seam-react",
3
- "version": "0.1.1",
4
- "description": "基于 seam-hooks 的 React 组件库:Button、Input、Switch、Tabs、Dialog、Toast",
3
+ "version": "0.3.0",
4
+ "description": "基于 seam-hooks 与 Motion 的 Fluid React 组件库",
5
5
  "keywords": [
6
6
  "component-library",
7
7
  "dialog",
8
+ "fluid",
9
+ "motion",
8
10
  "react",
9
11
  "tabs",
12
+ "tooltip",
10
13
  "typescript",
11
14
  "ui"
12
15
  ],
@@ -45,6 +48,7 @@
45
48
  "./styles.css": "./dist/styles.css"
46
49
  },
47
50
  "dependencies": {
51
+ "motion": "^14.4.0",
48
52
  "seam-hooks": "0.1.1"
49
53
  },
50
54
  "devDependencies": {
@@ -61,8 +65,8 @@
61
65
  "vitest": "^2.1.4"
62
66
  },
63
67
  "peerDependencies": {
64
- "react": ">=18",
65
- "react-dom": ">=18"
68
+ "react": ">=18.2",
69
+ "react-dom": ">=18.2"
66
70
  },
67
71
  "engines": {
68
72
  "node": ">=18"
package/dist/Toast.d.ts DELETED
@@ -1,43 +0,0 @@
1
- import { type ReactElement, type ReactNode } from "react";
2
- export type ToastVariant = "info" | "success" | "warning" | "danger";
3
- export type ToastPlacement = "top-right" | "top-center" | "bottom-right" | "bottom-center";
4
- export interface ToastOptions {
5
- title?: ReactNode;
6
- description?: ReactNode;
7
- /** 视觉变体,默认 info。 */
8
- variant?: ToastVariant;
9
- /** 自动关闭时间(毫秒),0 表示常驻;默认取 Provider 配置。 */
10
- duration?: number;
11
- }
12
- export interface ToastApi {
13
- /** 弹出一条提示,返回其 id。 */
14
- toast: (options: ToastOptions) => string;
15
- /** 关闭指定提示。 */
16
- dismiss: (id: string) => void;
17
- /** 关闭当前所有提示。 */
18
- dismissAll: () => void;
19
- }
20
- export interface ToastProviderProps {
21
- children: ReactNode;
22
- /** 提示出现的位置,默认 top-right。 */
23
- placement?: ToastPlacement;
24
- /** 默认自动关闭时间,默认 4000ms。 */
25
- duration?: number;
26
- /** 同屏最多保留的提示数量,默认 4。 */
27
- maxToasts?: number;
28
- /** 提示区域的屏幕阅读器名称。 */
29
- label?: string;
30
- /** 关闭按钮的无障碍名称,默认 Close。 */
31
- closeLabel?: string;
32
- }
33
- /**
34
- * Toast 上下文。
35
- *
36
- * 负责队列、自动关闭、悬停/聚焦暂停、退出动画和 portal 渲染。
37
- * 必须包在应用外层,子组件通过 useToast() 获取 toast()。
38
- */
39
- export declare function ToastProvider({ children, placement, duration, maxToasts, label, closeLabel, }: ToastProviderProps): ReactElement;
40
- /**
41
- * 获取 toast API。必须在 <ToastProvider> 内使用。
42
- */
43
- export declare function useToast(): ToastApi;