seam-react 0.0.0-stage → 0.1.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.
@@ -0,0 +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;"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 拼接 className,忽略 false / null / undefined。
3
+ */
4
+ export declare function cx(...values: Array<string | false | null | undefined>): string;
package/package.json CHANGED
@@ -1,6 +1,76 @@
1
1
  {
2
2
  "name": "seam-react",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "基于 seam-hooks 的 React 组件库:Button、Input、Switch、Tabs、Dialog、Toast",
5
+ "keywords": [
6
+ "component-library",
7
+ "dialog",
8
+ "react",
9
+ "tabs",
10
+ "typescript",
11
+ "ui"
12
+ ],
13
+ "homepage": "https://chenhaojie9527.github.io/ui-kit/",
14
+ "bugs": {
15
+ "url": "https://github.com/ChenHaoJie9527/ui-kit/issues"
16
+ },
17
+ "license": "MIT",
18
+ "author": "ChenHaoJie9527",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/ChenHaoJie9527/ui-kit.git",
22
+ "directory": "packages/ui"
23
+ },
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "type": "module",
28
+ "sideEffects": [
29
+ "**/*.css"
30
+ ],
31
+ "main": "./dist/index.cjs",
32
+ "module": "./dist/index.js",
33
+ "types": "./dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js",
38
+ "require": "./dist/index.cjs"
39
+ },
40
+ "./styles": {
41
+ "types": "./dist/SeamStyles.d.ts",
42
+ "import": "./dist/styles.js",
43
+ "require": "./dist/styles.cjs"
44
+ },
45
+ "./styles.css": "./dist/styles.css"
46
+ },
47
+ "dependencies": {
48
+ "seam-hooks": "0.1.1"
49
+ },
50
+ "devDependencies": {
51
+ "@testing-library/dom": "^10.4.0",
52
+ "@testing-library/react": "^16.0.1",
53
+ "@types/node": "26.2.0",
54
+ "@types/react": "^19.0.0",
55
+ "@types/react-dom": "^19.0.0",
56
+ "jsdom": "^25.0.1",
57
+ "react": "^19.0.0",
58
+ "react-dom": "^19.0.0",
59
+ "typescript": "^7.0.2",
60
+ "vite": "^7.0.0",
61
+ "vitest": "^2.1.4"
62
+ },
63
+ "peerDependencies": {
64
+ "react": ">=18",
65
+ "react-dom": ">=18"
66
+ },
67
+ "engines": {
68
+ "node": ">=18"
69
+ },
70
+ "scripts": {
71
+ "generate:styles": "node scripts/generate-styles.mjs",
72
+ "build": "pnpm generate:styles && pnpm exec oxfmt src/styles.generated.ts && vite build && tsc -p tsconfig.build.json",
73
+ "test": "vitest run",
74
+ "typecheck": "tsc --noEmit"
75
+ }
6
76
  }