@vtspecian/ui-core-design-system 0.2.3 → 0.2.4
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/README.md +14 -4
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +63 -2
- package/dist/index.d.ts +63 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,12 +21,22 @@ npm install @vtspecian/ui-core-design-system
|
|
|
21
21
|
## 💻 **Usage**
|
|
22
22
|
|
|
23
23
|
```tsx
|
|
24
|
-
import { Button } from '@vtspecian/ui-core-design-system';
|
|
24
|
+
import { Button, Typography } from '@vtspecian/ui-core-design-system';
|
|
25
25
|
|
|
26
26
|
export const App = () => (
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
<main>
|
|
28
|
+
<Typography as="h1" variant="h1" weight="font-bold">
|
|
29
|
+
UI Core System
|
|
30
|
+
</Typography>
|
|
31
|
+
|
|
32
|
+
<Typography as="p" variant="p" className="mb-4">
|
|
33
|
+
A polymorphic and accessible design system.
|
|
34
|
+
</Typography>
|
|
35
|
+
|
|
36
|
+
<Button variant="primary" size="md">
|
|
37
|
+
Get Started
|
|
38
|
+
</Button>
|
|
39
|
+
</main>
|
|
30
40
|
);
|
|
31
41
|
```
|
|
32
42
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var c=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var u=(t,e)=>{for(var o in e)c(t,o,{get:e[o],enumerable:!0})},k=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of d(e))!b.call(t,s)&&s!==o&&c(t,s,{get:()=>e[s],enumerable:!(n=x(e,s))||n.enumerable});return t};var T=t=>k(c({},"__esModule",{value:!0}),t);var A={};u(A,{Button:()=>v,Typography:()=>R});module.exports=T(A);var a=require("react/jsx-runtime"),v=({children:t,variant:e="primary",size:o="md",isLoading:n=!1,className:s="",disabled:r,...l})=>{let i="inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50",p={primary:"bg-blue-600 text-white hover:bg-blue-700",secondary:"bg-gray-100 text-gray-900 hover:bg-gray-200",danger:"bg-red-600 text-white hover:bg-red-700",ghost:"hover:bg-gray-100 text-gray-700"},y={sm:"h-8 px-3 text-xs",md:"h-10 px-4 text-sm",lg:"h-12 px-6 text-base"},h=`${i} ${p[e]} ${y[o]} ${s}`;return(0,a.jsx)("button",{className:h,disabled:r||n,...l,children:n?(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsxs)("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4",fill:"none"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):t})};var g=require("clsx"),m=require("tailwind-merge"),f=require("react/jsx-runtime");function C(...t){return(0,m.twMerge)((0,g.clsx)(t))}var N={h1:"text-4xl font-bold tracking-tight lg:text-5xl block w-full",h2:"text-3xl font-semibold tracking-tight block w-full",h3:"text-2xl font-semibold tracking-tight block w-full",p:"text-base leading-7 block w-full",label:"text-sm font-medium leading-none inline-block",span:"text-sm leading-none inline-block"},w={xs:"text-xs",sm:"text-sm",base:"text-base",lg:"text-lg",xl:"text-xl","2xl":"text-2xl"},B={"font-light":"font-light","font-normal":"font-normal","font-medium":"font-medium","font-bold":"font-bold"},P={left:"text-left",center:"text-center",right:"text-right"},R=({as:t,variant:e="p",size:o,weight:n,align:s="left",children:r,className:l,...i})=>{let p=t||"p",y=C("block w-full",N[e],o&&w[o],n&&B[n],P[s],l);return(0,f.jsx)(p,{className:y,...i,children:r})};0&&(module.exports={Button,Typography});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
3
3
|
if (typeof document !== 'undefined' && !document.getElementById('vtspecian-ui-styles')) {
|
|
4
4
|
const style = document.createElement('style');
|
|
5
5
|
style.id = 'vtspecian-ui-styles';
|
|
6
|
-
style.textContent = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--font-weight-medium:500;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.2s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button{cursor:pointer}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.w-4{width:calc(var(--spacing)*4)}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.rounded-md{border-radius:var(--radius-md)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-600{background-color:var(--color-red-600)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-red-700:hover{background-color:var(--color-red-700)}}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:opacity-50:disabled{opacity:.5}.bg-blue-600{background-color:var(--color-blue-600)!important}.text-white{color:var(--color-white)!important}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}";
|
|
6
|
+
style.textContent = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.2s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button{cursor:pointer}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.w-4{width:calc(var(--spacing)*4)}.w-full{width:100%}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.rounded-md{border-radius:var(--radius-md)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-600{background-color:var(--color-red-600)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-red-700:hover{background-color:var(--color-red-700)}}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:opacity-50:disabled{opacity:.5}@media (min-width:64rem){.lg\\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}.bg-blue-600{background-color:var(--color-blue-600)!important}.text-white{color:var(--color-white)!important}}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}";
|
|
7
7
|
document.head.appendChild(style);
|
|
8
8
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components/Button.tsx"],"sourcesContent":["\nexport * from './components/Button'","import { ButtonHTMLAttributes, ReactNode } from 'react';\n\n// A interface estende ButtonHTMLAttributes para incluir onClick, disabled, className, etc.\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n variant?: 'primary' | 'secondary' | 'danger' | 'ghost';\n size?: 'sm' | 'md' | 'lg';\n isLoading?: boolean;\n}\n\nexport const Button = ({\n children,\n variant = 'primary',\n size = 'md',\n isLoading = false,\n className = '',\n disabled,\n ...props // Repassa todas as outras propriedades nativas (como onClick)\n}: ButtonProps) => {\n \n // Definição manual das classes caso não esteja usando uma lib de variants ainda\n const baseStyles = \"inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50\";\n \n const variants = {\n primary: \"bg-blue-600 text-white hover:bg-blue-700\",\n secondary: \"bg-gray-100 text-gray-900 hover:bg-gray-200\",\n danger: \"bg-red-600 text-white hover:bg-red-700\",\n ghost: \"hover:bg-gray-100 text-gray-700\",\n };\n\n const sizes = {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-4 text-sm\",\n lg: \"h-12 px-6 text-base\",\n };\n\n // Combinação das classes (recomendo usar a lib 'clsx' ou 'tailwind-merge' futuramente)\n const combinedClasses = `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`;\n\n return (\n <button\n className={combinedClasses}\n disabled={disabled || isLoading} // O botão fica desativado se estiver carregando\n {...props} // Aplica o onClick e outros atributos passados\n >\n {isLoading ? (\n <span className=\"flex items-center gap-2\">\n <svg className=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" fill=\"none\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n Loading...\n </span>\n ) : (\n children\n )}\n </button>\n );\n};"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/Button/Button.tsx","../src/components/Typography/Typography.tsx"],"sourcesContent":["\nexport * from './components/Button/Button'\nexport * from './components/Typography/Typography'","import { ButtonHTMLAttributes, ReactNode } from 'react';\n\n// A interface estende ButtonHTMLAttributes para incluir onClick, disabled, className, etc.\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n variant?: 'primary' | 'secondary' | 'danger' | 'ghost';\n size?: 'sm' | 'md' | 'lg';\n isLoading?: boolean;\n}\n\nexport const Button = ({\n children,\n variant = 'primary',\n size = 'md',\n isLoading = false,\n className = '',\n disabled,\n ...props // Repassa todas as outras propriedades nativas (como onClick)\n}: ButtonProps) => {\n \n // Definição manual das classes caso não esteja usando uma lib de variants ainda\n const baseStyles = \"inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50\";\n \n const variants = {\n primary: \"bg-blue-600 text-white hover:bg-blue-700\",\n secondary: \"bg-gray-100 text-gray-900 hover:bg-gray-200\",\n danger: \"bg-red-600 text-white hover:bg-red-700\",\n ghost: \"hover:bg-gray-100 text-gray-700\",\n };\n\n const sizes = {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-4 text-sm\",\n lg: \"h-12 px-6 text-base\",\n };\n\n // Combinação das classes (recomendo usar a lib 'clsx' ou 'tailwind-merge' futuramente)\n const combinedClasses = `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`;\n\n return (\n <button\n className={combinedClasses}\n disabled={disabled || isLoading} // O botão fica desativado se estiver carregando\n {...props} // Aplica o onClick e outros atributos passados\n >\n {isLoading ? (\n <span className=\"flex items-center gap-2\">\n <svg className=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" fill=\"none\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n Loading...\n </span>\n ) : (\n children\n )}\n </button>\n );\n};","import { ReactNode, ElementType, ComponentPropsWithoutRef, ReactElement } from 'react';\nimport { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Utility function to merge tailwind classes safely\n */\nfunction cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n/**\n * Visual variants mapping. \n * Added 'block w-full' to ensure text-alignment works correctly by occupying full width.\n */\nconst typographyVariants = {\n h1: 'text-4xl font-bold tracking-tight lg:text-5xl block w-full',\n h2: 'text-3xl font-semibold tracking-tight block w-full',\n h3: 'text-2xl font-semibold tracking-tight block w-full',\n p: 'text-base leading-7 block w-full',\n label: 'text-sm font-medium leading-none inline-block',\n span: 'text-sm leading-none inline-block',\n};\n\n/**\n * Explicit size mapping to prevent Tailwind CSS from purging dynamic classes.\n */\nconst typographySizes = {\n xs: 'text-xs',\n sm: 'text-sm',\n base: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n};\n\n/**\n * Font weight mapping based on design tokens.\n */\nconst typographyWeights = {\n 'font-light': 'font-light',\n 'font-normal': 'font-normal',\n 'font-medium': 'font-medium',\n 'font-bold': 'font-bold',\n};\n\n/**\n * Text alignment mapping. \n * Requires the element to have 'block' or 'inline-block' with width to be visible.\n */\nconst typographyAlign = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n};\n\ninterface BaseTypographyProps {\n variant?: keyof typeof typographyVariants;\n size?: keyof typeof typographySizes;\n weight?: keyof typeof typographyWeights;\n align?: keyof typeof typographyAlign;\n children: ReactNode;\n className?: string;\n}\n\n/**\n * Polymorphic props definition.\n */\nexport type TypographyProps<T extends ElementType> = BaseTypographyProps & { as?: T } & \n Omit<ComponentPropsWithoutRef<T>, keyof BaseTypographyProps | 'as'>;\n\n/**\n * Typography component: A flexible, polymorphic component for all text styles.\n * Simplified version without forwardRef for architectural consistency.\n */\nexport const Typography = <T extends ElementType = 'p'>({\n as,\n variant = 'p',\n size,\n weight,\n align = 'left',\n children,\n className,\n ...props\n}: TypographyProps<T>): ReactElement => {\n const Component = as || 'p';\n\n const classes = cn(\n // Base classes for alignment support\n 'block w-full',\n // Variant styles\n typographyVariants[variant as keyof typeof typographyVariants],\n // Optional scale overrides\n size && typographySizes[size],\n weight && typographyWeights[weight as keyof typeof typographyWeights],\n // Alignment applied last to ensure override\n typographyAlign[align as keyof typeof typographyAlign],\n // Custom external classes\n className\n );\n\n return (\n <Component className={classes} {...props}>\n {children}\n </Component>\n );\n};"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,eAAAC,IAAA,eAAAC,EAAAJ,GC+CU,IAAAK,EAAA,6BArCGC,EAAS,CAAC,CACrB,SAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,UAAAC,EAAY,GACZ,UAAAC,EAAY,GACZ,SAAAC,EACA,GAAGC,CACL,IAAmB,CAGjB,IAAMC,EAAa,oLAEbC,EAAW,CACf,QAAS,2CACT,UAAW,8CACX,OAAQ,yCACR,MAAO,iCACT,EAEMC,EAAQ,CACZ,GAAI,mBACJ,GAAI,oBACJ,GAAI,qBACN,EAGMC,EAAkB,GAAGH,CAAU,IAAIC,EAASP,CAAO,CAAC,IAAIQ,EAAMP,CAAI,CAAC,IAAIE,CAAS,GAEtF,SACE,OAAC,UACC,UAAWM,EACX,SAAUL,GAAYF,EACrB,GAAGG,EAEH,SAAAH,KACC,QAAC,QAAK,UAAU,0BACd,qBAAC,OAAI,UAAU,uBAAuB,QAAQ,YAC5C,oBAAC,UAAO,UAAU,aAAa,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,OAAO,eAAe,YAAY,IAAI,KAAK,OAAO,KACxG,OAAC,QAAK,UAAU,aAAa,KAAK,eAAe,EAAE,kHAAkH,GACvK,EAAM,cAER,EAEAH,EAEJ,CAEJ,ECzDA,IAAAW,EAAsC,gBACtCC,EAAwB,0BAoGpBC,EAAA,6BA/FJ,SAASC,KAAMC,EAAsB,CACnC,SAAO,cAAQ,QAAKA,CAAM,CAAC,CAC7B,CAMA,IAAMC,EAAqB,CACzB,GAAI,6DACJ,GAAI,qDACJ,GAAI,qDACJ,EAAG,mCACH,MAAO,gDACP,KAAM,mCACR,EAKMC,EAAkB,CACtB,GAAI,UACJ,GAAI,UACJ,KAAM,YACN,GAAI,UACJ,GAAI,UACJ,MAAO,UACT,EAKMC,EAAoB,CACxB,aAAc,aACd,cAAe,cACf,cAAe,cACf,YAAa,WACf,EAMMC,EAAkB,CACtB,KAAM,YACN,OAAQ,cACR,MAAO,YACT,EAqBaC,EAAa,CAA8B,CACtD,GAAAC,EACA,QAAAC,EAAU,IACV,KAAAC,EACA,OAAAC,EACA,MAAAC,EAAQ,OACR,SAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,IAAMC,EAAYR,GAAM,IAElBS,EAAUhB,EAEd,eAEAE,EAAmBM,CAA0C,EAE7DC,GAAQN,EAAgBM,CAAI,EAC5BC,GAAUN,EAAkBM,CAAwC,EAEpEL,EAAgBM,CAAqC,EAErDE,CACF,EAEA,SACE,OAACE,EAAA,CAAU,UAAWC,EAAU,GAAGF,EAChC,SAAAF,EACH,CAEJ","names":["index_exports","__export","Button","Typography","__toCommonJS","import_jsx_runtime","Button","children","variant","size","isLoading","className","disabled","props","baseStyles","variants","sizes","combinedClasses","import_clsx","import_tailwind_merge","import_jsx_runtime","cn","inputs","typographyVariants","typographySizes","typographyWeights","typographyAlign","Typography","as","variant","size","weight","align","children","className","props","Component","classes"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, ElementType, ComponentPropsWithoutRef, ReactElement } from 'react';
|
|
3
3
|
|
|
4
4
|
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
5
|
children: ReactNode;
|
|
@@ -9,4 +9,65 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
9
9
|
}
|
|
10
10
|
declare const Button: ({ children, variant, size, isLoading, className, disabled, ...props }: ButtonProps) => react_jsx_runtime.JSX.Element;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Visual variants mapping.
|
|
14
|
+
* Added 'block w-full' to ensure text-alignment works correctly by occupying full width.
|
|
15
|
+
*/
|
|
16
|
+
declare const typographyVariants: {
|
|
17
|
+
h1: string;
|
|
18
|
+
h2: string;
|
|
19
|
+
h3: string;
|
|
20
|
+
p: string;
|
|
21
|
+
label: string;
|
|
22
|
+
span: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Explicit size mapping to prevent Tailwind CSS from purging dynamic classes.
|
|
26
|
+
*/
|
|
27
|
+
declare const typographySizes: {
|
|
28
|
+
xs: string;
|
|
29
|
+
sm: string;
|
|
30
|
+
base: string;
|
|
31
|
+
lg: string;
|
|
32
|
+
xl: string;
|
|
33
|
+
'2xl': string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Font weight mapping based on design tokens.
|
|
37
|
+
*/
|
|
38
|
+
declare const typographyWeights: {
|
|
39
|
+
'font-light': string;
|
|
40
|
+
'font-normal': string;
|
|
41
|
+
'font-medium': string;
|
|
42
|
+
'font-bold': string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Text alignment mapping.
|
|
46
|
+
* Requires the element to have 'block' or 'inline-block' with width to be visible.
|
|
47
|
+
*/
|
|
48
|
+
declare const typographyAlign: {
|
|
49
|
+
left: string;
|
|
50
|
+
center: string;
|
|
51
|
+
right: string;
|
|
52
|
+
};
|
|
53
|
+
interface BaseTypographyProps {
|
|
54
|
+
variant?: keyof typeof typographyVariants;
|
|
55
|
+
size?: keyof typeof typographySizes;
|
|
56
|
+
weight?: keyof typeof typographyWeights;
|
|
57
|
+
align?: keyof typeof typographyAlign;
|
|
58
|
+
children: ReactNode;
|
|
59
|
+
className?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Polymorphic props definition.
|
|
63
|
+
*/
|
|
64
|
+
type TypographyProps<T extends ElementType> = BaseTypographyProps & {
|
|
65
|
+
as?: T;
|
|
66
|
+
} & Omit<ComponentPropsWithoutRef<T>, keyof BaseTypographyProps | 'as'>;
|
|
67
|
+
/**
|
|
68
|
+
* Typography component: A flexible, polymorphic component for all text styles.
|
|
69
|
+
* Simplified version without forwardRef for architectural consistency.
|
|
70
|
+
*/
|
|
71
|
+
declare const Typography: <T extends ElementType = "p">({ as, variant, size, weight, align, children, className, ...props }: TypographyProps<T>) => ReactElement;
|
|
72
|
+
|
|
73
|
+
export { Button, type ButtonProps, Typography, type TypographyProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, ElementType, ComponentPropsWithoutRef, ReactElement } from 'react';
|
|
3
3
|
|
|
4
4
|
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
5
|
children: ReactNode;
|
|
@@ -9,4 +9,65 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
9
9
|
}
|
|
10
10
|
declare const Button: ({ children, variant, size, isLoading, className, disabled, ...props }: ButtonProps) => react_jsx_runtime.JSX.Element;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Visual variants mapping.
|
|
14
|
+
* Added 'block w-full' to ensure text-alignment works correctly by occupying full width.
|
|
15
|
+
*/
|
|
16
|
+
declare const typographyVariants: {
|
|
17
|
+
h1: string;
|
|
18
|
+
h2: string;
|
|
19
|
+
h3: string;
|
|
20
|
+
p: string;
|
|
21
|
+
label: string;
|
|
22
|
+
span: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Explicit size mapping to prevent Tailwind CSS from purging dynamic classes.
|
|
26
|
+
*/
|
|
27
|
+
declare const typographySizes: {
|
|
28
|
+
xs: string;
|
|
29
|
+
sm: string;
|
|
30
|
+
base: string;
|
|
31
|
+
lg: string;
|
|
32
|
+
xl: string;
|
|
33
|
+
'2xl': string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Font weight mapping based on design tokens.
|
|
37
|
+
*/
|
|
38
|
+
declare const typographyWeights: {
|
|
39
|
+
'font-light': string;
|
|
40
|
+
'font-normal': string;
|
|
41
|
+
'font-medium': string;
|
|
42
|
+
'font-bold': string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Text alignment mapping.
|
|
46
|
+
* Requires the element to have 'block' or 'inline-block' with width to be visible.
|
|
47
|
+
*/
|
|
48
|
+
declare const typographyAlign: {
|
|
49
|
+
left: string;
|
|
50
|
+
center: string;
|
|
51
|
+
right: string;
|
|
52
|
+
};
|
|
53
|
+
interface BaseTypographyProps {
|
|
54
|
+
variant?: keyof typeof typographyVariants;
|
|
55
|
+
size?: keyof typeof typographySizes;
|
|
56
|
+
weight?: keyof typeof typographyWeights;
|
|
57
|
+
align?: keyof typeof typographyAlign;
|
|
58
|
+
children: ReactNode;
|
|
59
|
+
className?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Polymorphic props definition.
|
|
63
|
+
*/
|
|
64
|
+
type TypographyProps<T extends ElementType> = BaseTypographyProps & {
|
|
65
|
+
as?: T;
|
|
66
|
+
} & Omit<ComponentPropsWithoutRef<T>, keyof BaseTypographyProps | 'as'>;
|
|
67
|
+
/**
|
|
68
|
+
* Typography component: A flexible, polymorphic component for all text styles.
|
|
69
|
+
* Simplified version without forwardRef for architectural consistency.
|
|
70
|
+
*/
|
|
71
|
+
declare const Typography: <T extends ElementType = "p">({ as, variant, size, weight, align, children, className, ...props }: TypographyProps<T>) => ReactElement;
|
|
72
|
+
|
|
73
|
+
export { Button, type ButtonProps, Typography, type TypographyProps };
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as y,jsxs as c}from"react/jsx-runtime";var T=({children:t,variant:s="primary",size:o="md",isLoading:e=!1,className:n="",disabled:a,...r})=>{let l="inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50",i={primary:"bg-blue-600 text-white hover:bg-blue-700",secondary:"bg-gray-100 text-gray-900 hover:bg-gray-200",danger:"bg-red-600 text-white hover:bg-red-700",ghost:"hover:bg-gray-100 text-gray-700"},p={sm:"h-8 px-3 text-xs",md:"h-10 px-4 text-sm",lg:"h-12 px-6 text-base"},g=`${l} ${i[s]} ${p[o]} ${n}`;return y("button",{className:g,disabled:a||e,...r,children:e?c("span",{className:"flex items-center gap-2",children:[c("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",children:[y("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4",fill:"none"}),y("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Loading..."]}):t})};import{clsx as m}from"clsx";import{twMerge as f}from"tailwind-merge";import{jsx as k}from"react/jsx-runtime";function h(...t){return f(m(t))}var x={h1:"text-4xl font-bold tracking-tight lg:text-5xl block w-full",h2:"text-3xl font-semibold tracking-tight block w-full",h3:"text-2xl font-semibold tracking-tight block w-full",p:"text-base leading-7 block w-full",label:"text-sm font-medium leading-none inline-block",span:"text-sm leading-none inline-block"},d={xs:"text-xs",sm:"text-sm",base:"text-base",lg:"text-lg",xl:"text-xl","2xl":"text-2xl"},b={"font-light":"font-light","font-normal":"font-normal","font-medium":"font-medium","font-bold":"font-bold"},u={left:"text-left",center:"text-center",right:"text-right"},B=({as:t,variant:s="p",size:o,weight:e,align:n="left",children:a,className:r,...l})=>{let i=t||"p",p=h("block w-full",x[s],o&&d[o],e&&b[e],u[n],r);return k(i,{className:p,...l,children:a})};export{T as Button,B as Typography};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
3
3
|
if (typeof document !== 'undefined' && !document.getElementById('vtspecian-ui-styles')) {
|
|
4
4
|
const style = document.createElement('style');
|
|
5
5
|
style.id = 'vtspecian-ui-styles';
|
|
6
|
-
style.textContent = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--font-weight-medium:500;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.2s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button{cursor:pointer}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.w-4{width:calc(var(--spacing)*4)}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.rounded-md{border-radius:var(--radius-md)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-600{background-color:var(--color-red-600)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-red-700:hover{background-color:var(--color-red-700)}}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:opacity-50:disabled{opacity:.5}.bg-blue-600{background-color:var(--color-blue-600)!important}.text-white{color:var(--color-white)!important}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}";
|
|
6
|
+
style.textContent = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.2s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button{cursor:pointer}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.w-4{width:calc(var(--spacing)*4)}.w-full{width:100%}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.rounded-md{border-radius:var(--radius-md)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-600{background-color:var(--color-red-600)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-red-700:hover{background-color:var(--color-red-700)}}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:opacity-50:disabled{opacity:.5}@media (min-width:64rem){.lg\\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}.bg-blue-600{background-color:var(--color-blue-600)!important}.text-white{color:var(--color-white)!important}}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}";
|
|
7
7
|
document.head.appendChild(style);
|
|
8
8
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\n\n// A interface estende ButtonHTMLAttributes para incluir onClick, disabled, className, etc.\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n variant?: 'primary' | 'secondary' | 'danger' | 'ghost';\n size?: 'sm' | 'md' | 'lg';\n isLoading?: boolean;\n}\n\nexport const Button = ({\n children,\n variant = 'primary',\n size = 'md',\n isLoading = false,\n className = '',\n disabled,\n ...props // Repassa todas as outras propriedades nativas (como onClick)\n}: ButtonProps) => {\n \n // Definição manual das classes caso não esteja usando uma lib de variants ainda\n const baseStyles = \"inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50\";\n \n const variants = {\n primary: \"bg-blue-600 text-white hover:bg-blue-700\",\n secondary: \"bg-gray-100 text-gray-900 hover:bg-gray-200\",\n danger: \"bg-red-600 text-white hover:bg-red-700\",\n ghost: \"hover:bg-gray-100 text-gray-700\",\n };\n\n const sizes = {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-4 text-sm\",\n lg: \"h-12 px-6 text-base\",\n };\n\n // Combinação das classes (recomendo usar a lib 'clsx' ou 'tailwind-merge' futuramente)\n const combinedClasses = `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`;\n\n return (\n <button\n className={combinedClasses}\n disabled={disabled || isLoading} // O botão fica desativado se estiver carregando\n {...props} // Aplica o onClick e outros atributos passados\n >\n {isLoading ? (\n <span className=\"flex items-center gap-2\">\n <svg className=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" fill=\"none\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n Loading...\n </span>\n ) : (\n children\n )}\n </button>\n );\n};"],"mappings":"AA+CU,OACE,OAAAA,EADF,QAAAC,MAAA,oBArCH,IAAMC,EAAS,CAAC,CACrB,SAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,UAAAC,EAAY,GACZ,UAAAC,EAAY,GACZ,SAAAC,EACA,GAAGC,CACL,IAAmB,CAGjB,IAAMC,EAAa,oLAEbC,EAAW,CACf,QAAS,2CACT,UAAW,8CACX,OAAQ,yCACR,MAAO,iCACT,EAEMC,EAAQ,CACZ,GAAI,mBACJ,GAAI,oBACJ,GAAI,qBACN,EAGMC,EAAkB,GAAGH,CAAU,IAAIC,EAASP,CAAO,CAAC,IAAIQ,EAAMP,CAAI,CAAC,IAAIE,CAAS,GAEtF,OACEP,EAAC,UACC,UAAWa,EACX,SAAUL,GAAYF,EACrB,GAAGG,EAEH,SAAAH,EACCL,EAAC,QAAK,UAAU,0BACd,UAAAA,EAAC,OAAI,UAAU,uBAAuB,QAAQ,YAC5C,UAAAD,EAAC,UAAO,UAAU,aAAa,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,OAAO,eAAe,YAAY,IAAI,KAAK,OAAO,EACxGA,EAAC,QAAK,UAAU,aAAa,KAAK,eAAe,EAAE,kHAAkH,GACvK,EAAM,cAER,EAEAG,EAEJ,CAEJ","names":["jsx","jsxs","Button","children","variant","size","isLoading","className","disabled","props","baseStyles","variants","sizes","combinedClasses"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.tsx","../src/components/Typography/Typography.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\n\n// A interface estende ButtonHTMLAttributes para incluir onClick, disabled, className, etc.\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n variant?: 'primary' | 'secondary' | 'danger' | 'ghost';\n size?: 'sm' | 'md' | 'lg';\n isLoading?: boolean;\n}\n\nexport const Button = ({\n children,\n variant = 'primary',\n size = 'md',\n isLoading = false,\n className = '',\n disabled,\n ...props // Repassa todas as outras propriedades nativas (como onClick)\n}: ButtonProps) => {\n \n // Definição manual das classes caso não esteja usando uma lib de variants ainda\n const baseStyles = \"inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50\";\n \n const variants = {\n primary: \"bg-blue-600 text-white hover:bg-blue-700\",\n secondary: \"bg-gray-100 text-gray-900 hover:bg-gray-200\",\n danger: \"bg-red-600 text-white hover:bg-red-700\",\n ghost: \"hover:bg-gray-100 text-gray-700\",\n };\n\n const sizes = {\n sm: \"h-8 px-3 text-xs\",\n md: \"h-10 px-4 text-sm\",\n lg: \"h-12 px-6 text-base\",\n };\n\n // Combinação das classes (recomendo usar a lib 'clsx' ou 'tailwind-merge' futuramente)\n const combinedClasses = `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`;\n\n return (\n <button\n className={combinedClasses}\n disabled={disabled || isLoading} // O botão fica desativado se estiver carregando\n {...props} // Aplica o onClick e outros atributos passados\n >\n {isLoading ? (\n <span className=\"flex items-center gap-2\">\n <svg className=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" fill=\"none\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n Loading...\n </span>\n ) : (\n children\n )}\n </button>\n );\n};","import { ReactNode, ElementType, ComponentPropsWithoutRef, ReactElement } from 'react';\nimport { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Utility function to merge tailwind classes safely\n */\nfunction cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n/**\n * Visual variants mapping. \n * Added 'block w-full' to ensure text-alignment works correctly by occupying full width.\n */\nconst typographyVariants = {\n h1: 'text-4xl font-bold tracking-tight lg:text-5xl block w-full',\n h2: 'text-3xl font-semibold tracking-tight block w-full',\n h3: 'text-2xl font-semibold tracking-tight block w-full',\n p: 'text-base leading-7 block w-full',\n label: 'text-sm font-medium leading-none inline-block',\n span: 'text-sm leading-none inline-block',\n};\n\n/**\n * Explicit size mapping to prevent Tailwind CSS from purging dynamic classes.\n */\nconst typographySizes = {\n xs: 'text-xs',\n sm: 'text-sm',\n base: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n};\n\n/**\n * Font weight mapping based on design tokens.\n */\nconst typographyWeights = {\n 'font-light': 'font-light',\n 'font-normal': 'font-normal',\n 'font-medium': 'font-medium',\n 'font-bold': 'font-bold',\n};\n\n/**\n * Text alignment mapping. \n * Requires the element to have 'block' or 'inline-block' with width to be visible.\n */\nconst typographyAlign = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n};\n\ninterface BaseTypographyProps {\n variant?: keyof typeof typographyVariants;\n size?: keyof typeof typographySizes;\n weight?: keyof typeof typographyWeights;\n align?: keyof typeof typographyAlign;\n children: ReactNode;\n className?: string;\n}\n\n/**\n * Polymorphic props definition.\n */\nexport type TypographyProps<T extends ElementType> = BaseTypographyProps & { as?: T } & \n Omit<ComponentPropsWithoutRef<T>, keyof BaseTypographyProps | 'as'>;\n\n/**\n * Typography component: A flexible, polymorphic component for all text styles.\n * Simplified version without forwardRef for architectural consistency.\n */\nexport const Typography = <T extends ElementType = 'p'>({\n as,\n variant = 'p',\n size,\n weight,\n align = 'left',\n children,\n className,\n ...props\n}: TypographyProps<T>): ReactElement => {\n const Component = as || 'p';\n\n const classes = cn(\n // Base classes for alignment support\n 'block w-full',\n // Variant styles\n typographyVariants[variant as keyof typeof typographyVariants],\n // Optional scale overrides\n size && typographySizes[size],\n weight && typographyWeights[weight as keyof typeof typographyWeights],\n // Alignment applied last to ensure override\n typographyAlign[align as keyof typeof typographyAlign],\n // Custom external classes\n className\n );\n\n return (\n <Component className={classes} {...props}>\n {children}\n </Component>\n );\n};"],"mappings":"AA+CU,OACE,OAAAA,EADF,QAAAC,MAAA,oBArCH,IAAMC,EAAS,CAAC,CACrB,SAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,UAAAC,EAAY,GACZ,UAAAC,EAAY,GACZ,SAAAC,EACA,GAAGC,CACL,IAAmB,CAGjB,IAAMC,EAAa,oLAEbC,EAAW,CACf,QAAS,2CACT,UAAW,8CACX,OAAQ,yCACR,MAAO,iCACT,EAEMC,EAAQ,CACZ,GAAI,mBACJ,GAAI,oBACJ,GAAI,qBACN,EAGMC,EAAkB,GAAGH,CAAU,IAAIC,EAASP,CAAO,CAAC,IAAIQ,EAAMP,CAAI,CAAC,IAAIE,CAAS,GAEtF,OACEP,EAAC,UACC,UAAWa,EACX,SAAUL,GAAYF,EACrB,GAAGG,EAEH,SAAAH,EACCL,EAAC,QAAK,UAAU,0BACd,UAAAA,EAAC,OAAI,UAAU,uBAAuB,QAAQ,YAC5C,UAAAD,EAAC,UAAO,UAAU,aAAa,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,OAAO,eAAe,YAAY,IAAI,KAAK,OAAO,EACxGA,EAAC,QAAK,UAAU,aAAa,KAAK,eAAe,EAAE,kHAAkH,GACvK,EAAM,cAER,EAEAG,EAEJ,CAEJ,ECzDA,OAAS,QAAAW,MAA6B,OACtC,OAAS,WAAAC,MAAe,iBAoGpB,cAAAC,MAAA,oBA/FJ,SAASC,KAAMC,EAAsB,CACnC,OAAOH,EAAQD,EAAKI,CAAM,CAAC,CAC7B,CAMA,IAAMC,EAAqB,CACzB,GAAI,6DACJ,GAAI,qDACJ,GAAI,qDACJ,EAAG,mCACH,MAAO,gDACP,KAAM,mCACR,EAKMC,EAAkB,CACtB,GAAI,UACJ,GAAI,UACJ,KAAM,YACN,GAAI,UACJ,GAAI,UACJ,MAAO,UACT,EAKMC,EAAoB,CACxB,aAAc,aACd,cAAe,cACf,cAAe,cACf,YAAa,WACf,EAMMC,EAAkB,CACtB,KAAM,YACN,OAAQ,cACR,MAAO,YACT,EAqBaC,EAAa,CAA8B,CACtD,GAAAC,EACA,QAAAC,EAAU,IACV,KAAAC,EACA,OAAAC,EACA,MAAAC,EAAQ,OACR,SAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,IAAMC,EAAYR,GAAM,IAElBS,EAAUhB,EAEd,eAEAE,EAAmBM,CAA0C,EAE7DC,GAAQN,EAAgBM,CAAI,EAC5BC,GAAUN,EAAkBM,CAAwC,EAEpEL,EAAgBM,CAAqC,EAErDE,CACF,EAEA,OACEd,EAACgB,EAAA,CAAU,UAAWC,EAAU,GAAGF,EAChC,SAAAF,EACH,CAEJ","names":["jsx","jsxs","Button","children","variant","size","isLoading","className","disabled","props","baseStyles","variants","sizes","combinedClasses","clsx","twMerge","jsx","cn","inputs","typographyVariants","typographySizes","typographyWeights","typographyAlign","Typography","as","variant","size","weight","align","children","className","props","Component","classes"]}
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--font-weight-medium:500;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.2s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button{cursor:pointer}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.w-4{width:calc(var(--spacing)*4)}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.rounded-md{border-radius:var(--radius-md)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-600{background-color:var(--color-red-600)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.bg-blue-600{background-color:var(--color-blue-600)!important}.text-white{color:var(--color-white)!important}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-200:oklch(92.9% .013 255.508);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.2s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}button{cursor:pointer}button:disabled{cursor:not-allowed}}@layer components;@layer utilities{.mb-4{margin-bottom:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.w-4{width:calc(var(--spacing)*4)}.w-full{width:100%}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.rounded-md{border-radius:var(--radius-md)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-600{background-color:var(--color-red-600)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:64rem){.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}.bg-blue-600{background-color:var(--color-blue-600)!important}.text-white{color:var(--color-white)!important}}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}
|