plume-ui-react 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Dario Gonzalez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,54 @@
1
- # Temporary Holding Version
1
+ # Plume UI React
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A lightweight design system for React. Components ship their own scoped styles and are themed entirely through CSS variables, so they adapt to your brand and switch between light and dark without runtime color math.
4
+
5
+ - **Themeable**: every design token is a CSS variable emitted by `<ThemeProvider>`.
6
+ - **Light & dark**: built in, driven by a single `colorMode`.
7
+ - **Framework-agnostic**: use the components as they are, or set `variant="unstyled"` and style them with Tailwind or Bootstrap.
8
+ - **Typed**: written in TypeScript, with React 18 and 19 support.
9
+
10
+ ## Installation
11
+
12
+ ```sh
13
+ npm install plume-ui-react
14
+ # or
15
+ pnpm add plume-ui-react
16
+ # or
17
+ yarn add plume-ui-react
18
+ ```
19
+
20
+ It includes every component, the theme (`ThemeProvider`, `useTheme`, tokens and types), the hooks and the utilities. `react` and `react-dom` (>= 18) are peer dependencies.
21
+
22
+ ## Usage
23
+
24
+ Import the stylesheet once and wrap your app in `<ThemeProvider>`:
25
+
26
+ ```tsx
27
+ import 'plume-ui-react/styles.css'
28
+ import { Button, ThemeProvider } from 'plume-ui-react'
29
+
30
+ export function App() {
31
+ return (
32
+ <ThemeProvider defaultColorMode="light">
33
+ <Button colorScheme="primary" label="Click me" />
34
+ </ThemeProvider>
35
+ )
36
+ }
37
+ ```
38
+
39
+ ## Components
40
+
41
+ `Button`, `DatePicker`, `Field`, `Input`, `Spinner` and `Tabs` (with `TabList`, `Tab`, `TabPanels` and `TabPanel`).
42
+
43
+ The [documentation site](https://darioegb.github.io/plume-ui-react/) has a live playground, props and examples for each one, plus the color palette, design tokens and framework integration guides.
44
+
45
+ ## Links
46
+
47
+ - [Documentation](https://darioegb.github.io/plume-ui-react/)
48
+ - [GitHub repository](https://github.com/darioegb/plume-ui-react)
49
+ - [Changelog](https://github.com/darioegb/plume-ui-react/blob/main/packages/plume-ui-react/CHANGELOG.md)
50
+ - [Report an issue](https://github.com/darioegb/plume-ui-react/issues)
51
+
52
+ ## License
53
+
54
+ [MIT](https://github.com/darioegb/plume-ui-react/blob/main/LICENSE)
@@ -0,0 +1 @@
1
+ import {a as a$1}from'./chunk-WM4KUIPD.mjs';import {a,d,c,b as b$1}from'./chunk-AOJBMSYA.mjs';import {createContext,useContext,useMemo,useState,useEffect}from'react';import {jsx}from'react/jsx-runtime';var M={colors:{primary:{50:"#ecf2ff",100:"#dce8ff",200:"#c1d2ff",300:"#9bb4ff",400:"#738bff",500:"#5263ff",600:"#3a3df8",700:"#2727db",800:"#2223b1",900:"#24278b",950:"#151551"},secondary:{50:"#f5f6f6",100:"#e5e7e8",200:"#cdd1d4",300:"#aab0b6",400:"#808990",500:"#6c757d",600:"#565c64",700:"#4a4f54",800:"#414449",900:"#3a3c3f",950:"#242628"},info:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c6fd",400:"#60a6fa",500:"#3b83f6",600:"#2564eb",700:"#1d4fd8",800:"#1e41af",900:"#1e3b8a",950:"#172554"},warning:{50:"#fef9e8",100:"#fef0c3",200:"#fee28a",300:"#fdd147",400:"#fac215",500:"#eab308",600:"#ca9a04",700:"#a17c07",800:"#85680e",900:"#715a12",950:"#423306"},error:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},success:{50:"#f0fdf5",100:"#dcfce8",200:"#bbf7d1",300:"#86efad",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803c",800:"#166533",900:"#14532b",950:"#052e14"},brown:{50:"#f6f3f0",100:"#e9e1d8",200:"#d4c5b4",300:"#bba289",400:"#a78568",500:"#98745a",600:"#825f4c",700:"#6d4c41",800:"#5a3f39",900:"#4f3834",950:"#2c1e1c"},pink:{50:"#fff1f3",100:"#ffe3e7",200:"#ffc0cb",300:"#ffa2b3",400:"#fe6e8b",500:"#f83b66",600:"#e51951",700:"#c20e43",800:"#a20f40",900:"#8a113c",950:"#4d041c"},purple:{50:"#fcf4ff",100:"#f9e6ff",200:"#f3d2ff",300:"#eaaeff",400:"#dd7bff",500:"#d149ff",600:"#c325f8",700:"#ab15db",800:"#8f17b2",900:"#74148f",950:"#680085"},teal:{50:"#eefffc",100:"#c5fffa",200:"#8bfff5",300:"#4afef0",400:"#15ece2",500:"#00d0c9",600:"#00a8a5",700:"#008080",800:"#066769",900:"#0a5757",950:"#003235"},yellow:{50:"#fcffe7",100:"#f5ffc1",200:"#f0ff86",300:"#efff41",400:"#f6ff0d",500:"#f0ec00",600:"#d1bb00",700:"#a68802",800:"#896a0a",900:"#74560f",950:"#442f04"}},semantic:{background:"#ffffff",surface:"#ffffff",surfaceMuted:"#f3f4f6",foreground:"#18181b",muted:"#71717a",border:"#d4d4d8"},typography:{fontFamily:"'Inter', sans-serif",fontSizes:{xs:"0.75rem",sm:"0.875rem",base:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem"},fontWeights:{thin:100,extralight:200,light:300,normal:400,medium:500,semibold:600,bold:700,extrabold:800,black:900},lineHeights:{none:1,tight:1.25,snug:1.375,normal:1.5,relaxed:1.625,loose:2}},spaces:{0:"0rem",1:"0.25rem",2:"0.5rem",3:"0.75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",13:"3.25rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",68:"17rem",72:"18rem",76:"19rem",80:"20rem",84:"21rem",88:"22rem",92:"23rem",96:"24rem"},sizes:{max:"max-content",min:"min-content",full:"100%"},radii:{0:"0px",1:"0.125rem",2:"0.25rem",3:"0.375rem",4:"0.5rem",5:"0.625rem",6:"0.75rem",full:"9999px"},zIndeces:{0:0,1:10,2:20,3:30,4:40,5:50,6:60,7:70,8:80,9:90,10:100},shadows:{none:"none",sm:"0 1px 2px rgba(0, 0, 0, 0.05)",md:"0 4px 6px rgba(0, 0, 0, 0.1)",lg:"0 10px 15px rgba(0, 0, 0, 0.15)",xl:"0 20px 25px rgba(0, 0, 0, 0.2)","2xl":"0 25px 50px rgba(0, 0, 0, 0.25)"},breakpoints:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"}},P={semantic:{background:"#18181b",surface:"#27272a",surfaceMuted:"#3f3f46",foreground:"#fafafa",muted:"#a1a1aa",border:"#3f3f46"}};function _(e){if(e.includes(".")){let[o,n]=e.split(".");return `var(--plume-color-${o}-${n})`}return `var(--plume-color-${e}-500)`}var r="--plume",b="#ffffff",S="#000000",y=4.5,z=e=>b$1(b,e)>=b$1(S,e);function H(e){for(let n of ["500","600","700"]){let f=String(e[n]);if(b$1(b,f)>=y)return {bg:f,fg:b}}let o=String(e[500]);if(b$1(S,o)>=y)return {bg:o,fg:S};for(let n of ["800","900"]){let f=String(e[n]);if(b$1(b,f)>=y)return {bg:f,fg:b}}return {bg:String(e[900]),fg:b}}function W(e,o){let n=z(o[0]),f=n?["500","400","300","200","100","50"]:["500","600","700","800","900","950"];for(let d of f){let g=String(e[d]);if(o.every(l=>b$1(g,l)>=y))return g}return String(e[n?"50":"950"])}function m(e,o,n){for(let[f,d]of Object.entries(o))n[`${e}-${f}`]=String(d);}var j=e=>e.replace(/(?<lower>[a-z0-9])(?<upper>[A-Z])/g,"$<lower>-$<upper>").toLowerCase();function D(e){let o={},{background:n,surface:f,surfaceMuted:d$1}=e.semantic,g=[n,f,d$1],l=z(n),h=e.colors;for(let[t,s]of Object.entries(h)){m(`${r}-color-${t}`,s,o),o[`${r}-color-${t}-contrast`]=a(String(s[500]));let{bg:c$1,fg:k}=H(s);o[`${r}-color-${t}-solid`]=c$1,o[`${r}-color-${t}-solid-contrast`]=k,o[`${r}-color-${t}-solid-hover`]=d(c$1,12),o[`${r}-color-${t}-solid-active`]=d(c$1,24);let a$1=W(s,g);o[`${r}-color-${t}-text`]=a$1,o[`${r}-color-${t}-text-hover`]=l?c(a$1,12):d(a$1,12),o[`${r}-color-${t}-text-active`]=l?c(a$1,24):d(a$1,24),o[`${r}-color-${t}-tint`]=String(s[l?"900":"100"]),o[`${r}-color-${t}-tint-strong`]=String(s[l?"800":"200"]);}let C=e.semantic;for(let[t,s]of Object.entries(C))o[`${r}-${j(t)}`]=s;return o[`${r}-font-family`]=e.typography.fontFamily,m(`${r}-font-size`,e.typography.fontSizes,o),m(`${r}-font-weight`,e.typography.fontWeights,o),m(`${r}-line-height`,e.typography.lineHeights,o),m(`${r}-space`,e.spaces,o),m(`${r}-size`,e.sizes,o),m(`${r}-radius`,e.radii,o),m(`${r}-z`,e.zIndeces,o),m(`${r}-shadow`,e.shadows,o),m(`${r}-breakpoint`,e.breakpoints,o),o}var L=createContext(null);function ee(){let e=useContext(L);if(!e)throw new Error("useTheme must be used within a <ThemeProvider>");return e}function oe({children:e,theme:o,darkTheme:n,defaultColorMode:f="light",applyToBody:d=true,className:g="",style:l}){let h=useMemo(()=>a$1(M,o??{}),[o]),C=useMemo(()=>a$1(a$1(h,P),n??{}),[h,n]),[t,s]=useState(f),[c,k]=useState(f==="system"?"light":f);useEffect(()=>{if(t!=="system"){k(t);return}let p=window.matchMedia("(prefers-color-scheme: dark)"),i=()=>k(p.matches?"dark":"light");return i(),p.addEventListener("change",i),()=>p.removeEventListener("change",i)},[t]);let a=c==="dark"?C:h,N=useMemo(()=>D(a),[a]);useEffect(()=>{if(!d||typeof document>"u")return;let{documentElement:p,body:i}=document,R=p.getAttribute("data-plume-color-mode"),O=i.style.backgroundColor,F=i.style.color;return p.setAttribute("data-plume-color-mode",c),i.style.backgroundColor=a.semantic.background,i.style.color=a.semantic.foreground,()=>{R===null?p.removeAttribute("data-plume-color-mode"):p.setAttribute("data-plume-color-mode",R),i.style.backgroundColor=O,i.style.color=F;}},[d,c,a]);let I=useMemo(()=>({theme:a,colorMode:c,setColorMode:s}),[a,c]);return jsx(L.Provider,{value:I,children:jsx("div",{className:`plume-root ${g}`.trim(),"data-plume-color-mode":c,style:{...N,backgroundColor:"var(--plume-background)",color:"var(--plume-foreground)",...l},children:e})})}export{M as a,P as b,_ as c,D as d,ee as e,oe as f};
@@ -0,0 +1 @@
1
+ import*as v from'react';import {forwardRef,Children,cloneElement,useState}from'react';import {jsxs,jsx}from'react/jsx-runtime';var e={field:"_field_wdljj_3",vertical:"_vertical_wdljj_10 _field_wdljj_3",horizontal:"_horizontal_wdljj_14 _field_wdljj_3",label:"_label_wdljj_22",requiredIndicator:"_requiredIndicator_wdljj_32",optionalText:"_optionalText_wdljj_37",helperText:"_helperText_wdljj_43",errorText:"_errorText_wdljj_44",disabled:"_disabled_wdljj_58"};var C=0,b=v.useId;function $(){let o=b?b():void 0,[t]=useState(()=>`plume-field-${++C}`);return o??t}var g=forwardRef(({children:o,className:t="",disabled:s=false,errorText:i,helperText:a,invalid:p=!!i,label:_,optionalText:c,orientation:x="vertical",readOnly:y=false,required:d=false,style:F},I)=>{let n=$(),m=Children.only(o),l=m.props,u=l.id??`${n}-control`,j=`${n}-helper`,f=`${n}-error`,w=p&&!!i,R=[l["aria-describedby"],w?f:null,a?j:null].filter(Boolean).join(" ")||void 0,T=`${e.field} ${e[x]} ${s?e.disabled:""} ${t}`.trim();return jsxs("div",{className:T,ref:I,style:F,children:[_?jsxs("label",{className:e.label,htmlFor:u,children:[_,d?jsx("span",{"aria-hidden":"true",className:e.requiredIndicator,children:"*"}):null,!d&&c?jsx("span",{className:e.optionalText,children:c}):null]}):null,cloneElement(m,{id:u,"aria-describedby":R,"aria-invalid":p||l["aria-invalid"]||void 0,disabled:s||l.disabled,readOnly:y||l.readOnly,required:d||l.required}),a?jsx("p",{className:e.helperText,id:j,children:a}):null,w?jsx("p",{className:e.errorText,id:f,children:i}):null]})});g.displayName="Field";export{g as a};
@@ -0,0 +1 @@
1
+ function i(t){let n=c(t)?.groups;return t.startsWith("#")&&n?[parseInt(n.red,16),parseInt(n.green,16),parseInt(n.blue,16)]:u(t)?.map(Number)||[]}function u(t){return t.match(/\d+/g)}function c(t){return /^#?(?<red>[a-f\d]{2})(?<green>[a-f\d]{2})(?<blue>[a-f\d]{2})$/i.exec(t)}function b(t){let n=i(t);if(n.length<3)return "#000000";let[r,g,e]=n;return (r*299+g*587+e*114)/1e3>140?"#000000":"#ffffff"}function a(t){let n=i(t);if(n.length<3)return 0;let[r,g,e]=n.map(s=>{let o=s/255;return o<=.03928?o/12.92:((o+.055)/1.055)**2.4});return .2126*r+.7152*g+.0722*e}function f(t,n){let r=a(t),g=a(n),[e,s]=r>=g?[r,g]:[g,r];return (e+.05)/(s+.05)}function d(t,n=10){let r=i(t);return r.length<3?t:`rgb(${r.map(e=>Math.min(255,e+(255-e)*(n/100))).join(", ")})`}function h(t,n=10){let r=i(t);return r.length<3?t:`rgb(${r.map(e=>Math.max(0,e-e*n/100)).join(", ")})`}export{b as a,f as b,d as c,h as d};
@@ -0,0 +1 @@
1
+ function g(t){if(t){if(t.length===2)return `${t}-${t.toUpperCase()}`}else return navigator.language;return t}function y(t){let n={dd:"\\d{2}",mm:"\\d{2}",yyyy:"\\d{4}"},e=t.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/dd|mm|yyyy/g,r=>n[r]);return new RegExp(`^${e}$`)}function f(t){let n=g(t),r=new Intl.DateTimeFormat(n,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date),o=r.map(s=>s.type),a={year:"yyyy",month:"MM",day:"dd"};return o.map((s,c)=>a[s]||r[c].value).join("").toLocaleLowerCase()}function d(t){let n=g(t),e=[],r=new Intl.DateTimeFormat(n,{weekday:"short",timeZone:"UTC"});for(let o=0;o<7;o++){let a=new Date(Date.UTC(2024,0,1+o)),i=r.format(a).replace(/^\w/,s=>s.toUpperCase());e.push(i);}return e}function l(t){let n=g(t),e=new Intl.DateTimeFormat(n,{month:"long"});return Array.from({length:12},(r,o)=>{let a=new Date;return a.setMonth(o),e.format(a).replace(/^\w/,i=>i.toUpperCase())})}function p({displayFormat:t,isRange:n,startDate:e,endDate:r,language:o}){let a={year:"numeric",month:"2-digit",day:"2-digit"};if(t)return n&&e&&r?`${m(e,t)} - ${m(r,t)}`:e?m(e,t):"";let i=g(o);return n&&e&&r?`${new Intl.DateTimeFormat(i,a).format(e)} - ${new Intl.DateTimeFormat(i,a).format(r)}`:e?new Intl.DateTimeFormat(i,a).format(e):""}function m(t,n){let e={yyyy:String(t.getFullYear()),mm:String(t.getMonth()+1).padStart(2,"0"),dd:String(t.getDate()).padStart(2,"0")};return n.replace(/yyyy|mm|dd/gi,r=>e[r.toLowerCase()])}function w(t,n,e){let r=e??f(n);if(!y(r).test(t))return false;let o=u(t,r);return !Number.isNaN(o.getTime())&&m(o,r)===t}function u(t,n="mm/dd/yyyy"){let e=n.toLowerCase(),r=o=>{let a=e.indexOf(o);return a===-1?Number.NaN:Number(t.slice(a,a+o.length))};return new Date(r("yyyy"),r("mm")-1,r("dd"))}export{f as a,d as b,l as c,p as d,m as e,w as f,u as g};
@@ -0,0 +1 @@
1
+ import {useRef,useEffect}from'react';function s({callback:t}){let e=useRef(null);return useEffect(()=>{function n(o){e.current&&!e.current.contains(o.target)&&t();}return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n);}},[e,t]),e}export{s as a};
@@ -0,0 +1 @@
1
+ import {useState,useRef,useEffect}from'react';function T({value:r,delay:u}){let[t,n]=useState(r),e=useRef(null);return useEffect(()=>(e.current&&clearTimeout(e.current),e.current=setTimeout(()=>{n(r);},u),()=>{e.current&&clearTimeout(e.current);}),[r,u]),t}export{T as a};
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-TQ7ENVY5.mjs';import {forwardRef}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var e={button:"_button_1l5be_3",sm:"_sm_1l5be_18",md:"_md_1l5be_24",lg:"_lg_1l5be_29",rounded:"_rounded_1l5be_35",pill:"_pill_1l5be_39",solid:"_solid_1l5be_43 _button_1l5be_3",outline:"_outline_1l5be_49 _button_1l5be_3",ghost:"_ghost_1l5be_55 _button_1l5be_3",link:"_link_1l5be_60 _button_1l5be_3",icon:"_icon_1l5be_67 _button_1l5be_3",disabled:"_disabled_1l5be_111",iconMargin:"_iconMargin_1l5be_116",hidden:"_hidden_1l5be_120",spinnerMargin:"_spinnerMargin_1l5be_124"};var B=(o,l,r,a,_,s)=>{let t=_?e.iconMarginNone:e.iconMargin,u=l&&!o?e.hidden:t,n=l&&o?o:s;return jsxs(Fragment,{children:[r?jsx("span",{className:t,children:r}):null,n?jsx("span",{className:u,children:n}):null,a?jsx("span",{className:t,children:a}):null]})},k=(o,l,r,a,_,s)=>{let t=r||a?e.disabled:"",u=o!=="unstyled"?e[s]:"",n=o!=="unstyled"?e[_]:"",i=o!=="unstyled"?e[o]:"";return `${n} ${u} ${i}
2
+ ${t} ${l}`.trim()},M=o=>({"--button-color":`var(--plume-color-${o}-text)`,"--button-contrast-color":`var(--plume-color-${o}-solid-contrast)`,"--button-solid-bg":`var(--plume-color-${o}-solid)`,"--button-solid-hover":`var(--plume-color-${o}-solid-hover)`,"--button-solid-active":`var(--plume-color-${o}-solid-active)`,"--button-hover-color":`var(--plume-color-${o}-text-hover)`,"--button-focus-color":`var(--plume-color-${o}-text-active)`,"--button-hover-alt-color":`var(--plume-color-${o}-tint)`,"--button-focus-alt-color":`var(--plume-color-${o}-tint-strong)`}),p=forwardRef(({children:o,iconLeft:l,iconRight:r,label:a$1,style:_,busyText:s="",className:t="",colorScheme:u="secondary",disabled:n=false,isBusy:i=false,shape:m="rounded",size:g="md",type:h="button",variant:d="solid",...f},C)=>{let y=k(d,t,n,i,g,m);return jsxs("button",{className:y,disabled:n||i,ref:C,style:{...M(u),..._},type:h,...f,children:[B(s,i,l,r,d==="unstyled",a$1),o,i?jsx(a,{style:{"--spinner-scheme":"var(--button-contrast-color)"},...s&&{className:e.spinnerMargin},size:"sm"}):null]})});p.displayName="Button";export{p as a};
@@ -0,0 +1 @@
1
+ import {a}from'./chunk-NNP2MCGD.mjs';import {a as a$2}from'./chunk-TQ7ENVY5.mjs';import {a as a$1}from'./chunk-QON6DQTA.mjs';import*as N from'react';import {createContext,forwardRef,Children,isValidElement,cloneElement,Suspense,createElement,useState,useReducer,useEffect,useMemo,useContext}from'react';import {jsx}from'react/jsx-runtime';var R=(e,{type:r,payload:t})=>{switch(r){case "SET_ACTIVE_TAB_INDEX":return {...e,index:t};case "SET_CONFIG":return {...e,...t};default:return e}};var n={"tabs-padding":"var(--plume-space-2) var(--plume-space-3)","tabs-border-width":"2px","tabs-border-radius":"var(--plume-radius-4)",tabs:"_tabs_1ct2b_6",horizontal:"_horizontal_1ct2b_11",vertical:"_vertical_1ct2b_15",left:"_left_1ct2b_19",center:"_center_1ct2b_23",right:"_right_1ct2b_27",sm:"_sm_1ct2b_31",md:"_md_1ct2b_36",lg:"_lg_1ct2b_40",underline:"_underline_1ct2b_45",tablist:"_tablist_1ct2b_55",tab:"_tab_1ct2b_6",rounded:"_rounded_1ct2b_82",segment:"_segment_1ct2b_82",active:"_active_1ct2b_97",enclosed:"_enclosed_1ct2b_115",panel:"_panel_1ct2b_174"};var I=createContext(void 0);function k({config:e,children:r}){let[t,s]=useReducer(R,e),o=t.alignment!=="left"||t.isStyled?n[t.alignment]:"",a=t.isStyled?n[t.size]:"",i=t.isStyled?n[t.variant]:"";useEffect(()=>{s({type:"SET_CONFIG",payload:e});},[e.alignment,e.baseId,e.colorScheme,e.index,e.isLazy,e.orientation,e.size,e.variant]);let b=l=>{s({type:"SET_ACTIVE_TAB_INDEX",payload:l});};return jsx(I.Provider,{value:useMemo(()=>({...t,alignmentClass:o,sizeClass:a,variantClass:i,setActiveTabIndex:b}),[o,a,t,i]),children:r})}var f=(e,r)=>`${e}-tab-${r}`,x=(e,r)=>`${e}-panel-${r}`,d=()=>{let e=useContext(I);if(!e)throw new Error("useTabs must be used within a TabsProvider");return e};var Y=(e,r)=>({"--tabs-scheme":`var(--plume-color-${e}-text)`,"--tabs-solid":`var(--plume-color-${e}-solid)`,"--tabs-solid-active":`var(--plume-color-${e}-solid-active)`,"--tabs-text-color":`var(--plume-color-${e}-solid-contrast)`,...r??{}}),Z=0,j=N.useId??(()=>{});function ee(e){let r=j(),[t]=useState(()=>`plume-tabs-${++Z}`);return e??r??t}var z=forwardRef(({children:e,style:r,onChange:t,index:s=0,alignment:o="left",className:a="",colorScheme:i="secondary",orientation:b="horizontal",size:l="md",variant:p="underline",isLazy:u=false,..._},y)=>{let g=ee(_.id),m=p!=="unstyled",T=`${b!=="horizontal"||m?n[b]:""} ${m?n.tabs:""} ${a}`.trim();return jsx(k,{config:{index:s,alignment:o,baseId:g,colorScheme:i,isLazy:u,isStyled:m,orientation:b,size:l,variant:p,onChange:t},children:jsx("div",{className:T,ref:y,style:Y(i,r),..._,children:e})})});z.displayName="Tabs";var H=forwardRef(({children:e,...r},t)=>{let{index:s,alignmentClass:o,isStyled:a,orientation:i,variantClass:b}=d();return jsx("div",{"aria-orientation":i,className:`${a?n.tablist:""} ${b} ${o}`.trim(),ref:t,role:"tablist",...r,children:Children.map(e,(l,p)=>isValidElement(l)?cloneElement(l,{index:p,isActive:p===s}):l)})});H.displayName="TabList";var M=forwardRef(({label:e,isActive:r,disabled:t,extraContentLeft:s,extraContentRight:o,index:a$1=0,children:i,className:b=""},l)=>{let{alignmentClass:p,baseId:u,isStyled:_,orientation:y,sizeClass:g,setActiveTabIndex:m,onChange:T}=d(),[O,B]=y==="vertical"?["ArrowUp","ArrowDown"]:["ArrowLeft","ArrowRight"],V=()=>{T&&T(a$1),m(a$1);},F=v=>{let C=v.currentTarget.closest('[role="tablist"]');if(!C)return;let c=Array.from(C.querySelectorAll('[role="tab"]:enabled')),L=c.indexOf(v.currentTarget),P={[O]:c[(L-1+c.length)%c.length],[B]:c[(L+1)%c.length],Home:c[0],End:c[c.length-1]}[v.key];P&&(v.preventDefault(),P.focus(),P.click());};return jsx(a,{"aria-controls":r?x(u,a$1):void 0,"aria-selected":!!r,className:`${_?n.tab:""} ${p} ${g} ${r&&_?n.active:""} ${b}`.trim(),disabled:t,iconLeft:s,iconRight:o,id:f(u,a$1),label:e??"",onClick:V,onKeyDown:F,ref:l,role:"tab",tabIndex:r?0:-1,variant:"unstyled",children:i})});M.displayName="Tab";var $=forwardRef(({children:e,...r},t)=>{let{index:s}=d();return jsx("div",{ref:t,...r,children:Children.map(e,(o,a)=>a!==s?null:isValidElement(o)?cloneElement(o,{index:a}):o)})});$.displayName="TabPanels";var D=forwardRef(({children:e,className:r="",index:t=0},s)=>{let{baseId:o,colorScheme:a,isLazy:i,isStyled:b}=d(),l=i?a$1(e):e;return jsx("div",{"aria-labelledby":f(o,t),className:`${b?n.panel:""} ${r}`.trim(),id:x(o,t),ref:s,role:"tabpanel",tabIndex:0,children:i?jsx(Suspense,{fallback:jsx(a$2,{color:a}),children:createElement(l)}):l})});D.displayName="TabPanel";export{z as a,H as b,M as c,$ as d,D as e};
@@ -0,0 +1,2 @@
1
+ import {b}from'./chunk-ZN4UC4TJ.mjs';import {forwardRef}from'react';import {jsxs,jsx}from'react/jsx-runtime';var e={"input-padding":"var(--plume-space-4)","input-border-radius":"var(--plume-radius-4)","input-color":"var(--plume-foreground)","input-border-color":"var(--plume-border)","input-background-color":"var(--plume-surface-muted)",base:"_base_h3ylb_9",input:"_input_h3ylb_16",sm:"_sm_h3ylb_32",md:"_md_h3ylb_38",lg:"_lg_h3ylb_43",rounded:"_rounded_h3ylb_49",outline:"_outline_h3ylb_53 _input_h3ylb_16",pill:"_pill_h3ylb_53",filled:"_filled_h3ylb_62 _input_h3ylb_16",underline:"_underline_h3ylb_70 _input_h3ylb_16",invalid:"_invalid_h3ylb_80",inputGroup:"_inputGroup_h3ylb_89",disabled:"_disabled_h3ylb_101",addOn:"_addOn_h3ylb_120",element:"_element_h3ylb_176"};var R=(r,n,o,l,p,s,b)=>{let t=n?e.disabled:"",a=o&&l?e.invalid:"",h=l?e[p]:"",y=l?e[s]:"",d=l?e[b]:"";return `${e.base} ${y} ${h} ${d}
2
+ ${t} ${a} ${r}`.trim()},$=r=>({"--input-color":`var(--plume-color-${r}-text)`}),k=forwardRef(({addonBefore:r,addonAfter:n,elementBefore:o,elementAfter:l,style:p,className:s="",colorScheme:b$1="secondary",disabled:t=false,readOnly:a=false,shape:h="rounded",size:y="md",type:d="text",variant:v="outline",mask:m,value:c,defaultValue:f,onChange:w,...u},g)=>{let _=v!=="unstyled",x=u["aria-invalid"]===true||u["aria-invalid"]==="true",O=R(s,t,x,_,h,y,v),G={...$(x?"error":b$1),...p},S=r||n||o||l,{value:N,onChange:P}=b({mask:m,value:typeof c=="string"?c:void 0,defaultValue:typeof f=="string"?f:void 0,onChange:w}),I={onChange:P,value:m?N:c,defaultValue:m?void 0:f};return S?jsxs("div",{className:_?e.inputGroup:"",style:G,children:[r?jsx("span",{className:_?e.addOn:"",children:r}):null,o?jsx("span",{className:_?e.element:"",children:o}):null,jsx("input",{className:O,disabled:t,readOnly:a,ref:g,type:d,...I,...u}),n?jsx("span",{className:_?e.addOn:"",children:n}):null,l?jsx("span",{className:_?e.element:"",children:l}):null]}):jsx("input",{className:O,disabled:t,readOnly:a,ref:g,style:G,type:d,...I,...u})});k.displayName="Input";export{k as a};
@@ -0,0 +1 @@
1
+ import {lazy}from'react';function n(e){return lazy(()=>new Promise(o=>{o({default:()=>e});}))}export{n as a};
@@ -0,0 +1,5 @@
1
+ import {c}from'./chunk-6RTAEXNN.mjs';import {forwardRef}from'react';import {jsx}from'react/jsx-runtime';var t={"spinner-border-width":"3px","spinner-border-style":"solid","primary-border-color":"currentColor","border-color":"transparent",spinner:"_spinner_q8rz1_7",spin:"_spin_q8rz1_7",sm:"_sm_q8rz1_18",md:"_md_q8rz1_23",lg:"_lg_q8rz1_28",solid:"_solid_q8rz1_33 _spinner_q8rz1_7",dashed:"_dashed_q8rz1_38 _spinner_q8rz1_7",dotted:"_dotted_q8rz1_43 _spinner_q8rz1_7",double:"_double_q8rz1_48 _spinner_q8rz1_7",loader:"_loader_q8rz1_63",l7:"_l7_q8rz1_1",l5:"_l5_q8rz1_1",l11:"_l11_q8rz1_1",l27:"_l27_q8rz1_1",animloader:"_animloader_q8rz1_1"};var z=({color:n,style:o,speed:r,thickness:e})=>({"--spinner-scheme":c(n),...e&&{"--spinner-border-width":`${e}px`},"--spinner-animation-duration":r?.length?r:"1s",...o??{}}),s=forwardRef(({color:n="secondary.900",style:o,speed:r,className:e="",thickness:p=3,variant:a="solid",size:i=a!=="unstyled"?"md":void 0,..._},l)=>{let c=i&&(i!=="md"||a==="unstyled")?t[i]:"",m=a!=="unstyled"?t[a]:"",b=`
2
+ ${c}
3
+ ${m}
4
+ ${e}
5
+ `.trim();return jsx("output",{"aria-label":"loading",className:b,ref:l,style:z({color:n,style:o,speed:r,thickness:p}),..._})});s.displayName="Spinner";export{s as a};
@@ -0,0 +1,2 @@
1
+ import {a as a$3}from'./chunk-PNXPX444.mjs';import {a as a$4}from'./chunk-NNP2MCGD.mjs';import {a}from'./chunk-D237D3H5.mjs';import {a as a$1}from'./chunk-NFXMVNGX.mjs';import {d,a as a$2,f,g,c,e,b}from'./chunk-BOTD5R53.mjs';import {createContext,forwardRef,useReducer,useRef,useEffect,useState,useCallback,useContext}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var de=createContext(void 0),Q=()=>{let e=useContext(de);if(!e)throw new Error("useDatePicker must be used within a DatePickerProvider");return e};var X={startDate:null,endDate:null},Se=new Date(new Date().getFullYear(),new Date().getMonth()+1,1),ce={value:X,tempValue:X,modalOpen:false,year:new Date().getFullYear(),secondYear:Se.getFullYear(),month:new Date().getMonth(),secondMonth:Se.getMonth(),rangeDays:[]},pe=(e,r)=>{switch(r.type){case "SET_VALUE":{let{startDate:n,endDate:l}=r.payload,i=n?.getFullYear()??e.year,c=n?.getMonth()??e.month,h=l?.getFullYear()??e.secondYear,O=l&&(l.getMonth()>e.secondMonth||n&&n.getMonth()===11)?l.getMonth():e.secondMonth;return {...e,value:r.payload,tempValue:r.payload,year:i,month:c,secondYear:h,secondMonth:O}}case "TOGGLE_MODAL":return {...e,modalOpen:!e.modalOpen};case "CLOSE_MODAL":return e.modalOpen?{...e,modalOpen:false}:e;case "SET_YEAR":return {...e,year:r.payload};case "SET_SECOND_YEAR":return {...e,secondYear:r.payload};case "SET_MONTH":return {...e,month:r.payload};case "SET_SECOND_MONTH":return {...e,secondMonth:r.payload};case "SET_RANGE_DAYS":return {...e,rangeDays:r.payload};default:return {...e,tempValue:r.payload}}};var t={"date-picker-padding":"var(--plume-space-4)","date-picker-border-radius":"var(--plume-radius-4)","date-picker-color":"var(--plume-muted)","date-picker-border-color":"var(--plume-border)",datePicker:"_datePicker_87pta_8",datePickerInputText:"_datePickerInputText_87pta_12",inputButton:"_inputButton_87pta_28",inputButtonIcon:"_inputButtonIcon_87pta_40",sm:"_sm_87pta_46",md:"_md_87pta_52",lg:"_lg_87pta_57",rounded:"_rounded_87pta_81",outline:"_outline_87pta_85 _datePickerInputText_87pta_12",pill:"_pill_87pta_85",filled:"_filled_87pta_94 _datePickerInputText_87pta_12",underline:"_underline_87pta_102 _datePickerInputText_87pta_12",invalid:"_invalid_87pta_112",datePickerModal:"_datePickerModal_87pta_136",calendarContainer:"_calendarContainer_87pta_151",calendarContainerDouble:"_calendarContainerDouble_87pta_156",calendar:"_calendar_87pta_151",calendarHeader:"_calendarHeader_87pta_166",day:"_day_87pta_173",year:"_year_87pta_174",month:"_month_87pta_175",monthYearSelectors:"_monthYearSelectors_87pta_176",monthSelector:"_monthSelector_87pta_213",yearSelector:"_yearSelector_87pta_214",yearSelectorGrid:"_yearSelectorGrid_87pta_218",selected:"_selected_87pta_232",monthSelectorGrid:"_monthSelectorGrid_87pta_242",daysOfWeek:"_daysOfWeek_87pta_248",dayOfWeek:"_dayOfWeek_87pta_255",calendarGrid:"_calendarGrid_87pta_264",today:"_today_87pta_281",rangeItem:"_rangeItem_87pta_285",selectedHover:"_selectedHover_87pta_295",hovered:"_hovered_87pta_300",disabledDay:"_disabledDay_87pta_304",outOfRangeDay:"_outOfRangeDay_87pta_309",footerActions:"_footerActions_87pta_313",footerButton:"_footerButton_87pta_320",footerButtonApply:"_footerButtonApply_87pta_324",disabled:"_disabled_87pta_304"};var _e="yyyy-mm-dd",Z=(e,r)=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+r),Pe=(e,r)=>{let n=new Date(e.getFullYear(),e.getMonth()+r+1,0).getDate();return new Date(e.getFullYear(),e.getMonth()+r,Math.min(e.getDate(),n))},ve=e=>(e.getDay()+6)%7,Be={ArrowLeft:e=>Z(e,-1),ArrowRight:e=>Z(e,1),ArrowUp:e=>Z(e,-7),ArrowDown:e=>Z(e,7),Home:e=>Z(e,-ve(e)),End:e=>Z(e,6-ve(e)),PageUp:e=>Pe(e,-1),PageDown:e=>Pe(e,1)},ee=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();function Ne({day:e}){return jsx("span",{className:t.dayOfWeek,children:e})}function Ye({selectedMonth:e,months:r,onChange:n}){let l=i=>{n(i);};return jsx("div",{className:t.monthSelectorGrid,children:r.map((i,c)=>jsx(a$4,{"aria-pressed":c===e,className:`${c===e?t.selected:""} ${t.month}`,label:i,onClick:()=>{l(c);},variant:"unstyled"},i))})}function Ie({selectedYear:e,startYear:r,onChange:n}){let l=c=>{n(c);},i=()=>{let c=[];for(let h=r;h<r+20;h++)c.push(jsx(a$4,{"aria-pressed":e===h,className:`${e===h?t.selected:""} ${t.year}`,onClick:()=>{l(h);},variant:"unstyled",children:h},h));return c};return jsx("div",{className:t.yearSelectorGrid,children:i()})}function ye({language:e$1,isRange:r,isSecondCalendar:n,minDate:l,maxDate:i,onMonthChange:c$1,onSelectDate:h,onYearChange:O}){let{state:s}=Q(),[S,b$1]=useState("day"),[M,Y]=useState(n?s.secondYear:s.year),[B,H]=useState(null),C=useRef(false),g$1=useRef(null),f=n?s.secondYear:s.year,P=n?s.secondMonth:s.month,V=ne(),z=c(e$1);useEffect(()=>{!C.current||!B||(C.current=false,g$1.current?.querySelector(`[data-date="${e(B,_e)}"]:enabled`)?.focus());});let o=v=>{let I=g$1.current?.closest('[role="dialog"]')??document,x=I.querySelectorAll(`.${t.day}:enabled`),T=Array.from(x).findIndex(w=>w.dataset.date===v),N=I.querySelector(`.${t.day}.${t.selected}`),A=r&&s.tempValue.startDate&&!s.tempValue.endDate&&N;x.forEach((w,$)=>{let G=w.classList.contains(t.selected),p=$===T;if(A){let m=Array.from(x).indexOf(N),[L,R]=[Math.min(m,T),Math.max(m,T)];w.classList.toggle(t.rangeItem,$>=L&&$<=R),w.classList.toggle(t.selectedHover,p);}else w.classList.toggle(t.selectedHover,G&&p),w.classList.toggle(t.hovered,!G&&p);});},_=()=>S==="month"?jsx(Ye,{months:z,onChange:W,selectedMonth:n?s.secondMonth:s.month}):S==="year"?jsx(Ie,{onChange:y,selectedYear:n?s.secondYear:s.year,startYear:M}):jsxs(Fragment,{children:[jsx("div",{className:t.daysOfWeek,children:b(e$1).map(v=>jsx(Ne,{day:v},v))}),jsx("div",{className:t.calendarGrid,children:V})]}),W=v=>{c$1(v),b$1("day");},y=v=>{O(v),b$1("day");},F=v=>{b$1(S!=="day"&&S===v?"day":v);},K=()=>{Y(M-20);},oe=()=>{Y(M+20);};function ne(){let v=ve(new Date(f,P,1)),I=l?ee(l):-1/0,x=i?ee(i):1/0,T=new Date().toDateString(),N=new Intl.DateTimeFormat(e$1,{dateStyle:"full"}),A=(p,m)=>p?.toDateString()===m.toDateString(),w=Array.from({length:42},(p,m)=>{let L=new Date(f,P,m-v+1),R=L.getMonth()===P,a=!R||L.getTime()<I||L.getTime()>x;return {date:L,isCurrentMonth:R,isDisabled:a}}),$=w.filter(({isDisabled:p})=>!p).map(({date:p})=>p),G=[B,s.tempValue.startDate,new Date].map(p=>$.find(m=>A(p,m))).find(Boolean)??$[0];return w.map(({date:p,isCurrentMonth:m,isDisabled:L})=>{let R=e(p,_e),a=m&&A(s.tempValue.startDate,p),u=m&&A(s.tempValue.endDate,p),E=a||u,D=s.rangeDays.some(we=>A(we,p)),he=m&&p.toDateString()===T;return jsx(a$4,{"aria-current":he?"date":void 0,"aria-hidden":m?void 0:true,"aria-label":N.format(p),"aria-pressed":m?E:void 0,className:`${t.day} ${m?"":t.disabledDay} ${E?t.selected:""} ${D&&!E&&m?t.rangeItem:""} ${m&&L?t.outOfRangeDay:""} ${he?t.today:""}`,"data-date":R,disabled:L,onClick:()=>{m&&h(p.getDate(),n);},onFocus:()=>{m&&o(R);},onKeyDown:le,onMouseEnter:()=>{m&&o(R);},tabIndex:G&&A(G,p)?0:-1,variant:"unstyled",children:jsx("span",{className:t.dayText,children:p.getDate()})},R)})}function le(v){let I=v.currentTarget.dataset.date,x=Be[v.key];if(!I||!x)return;v.preventDefault();let T=x(g(I,_e)),N=T.getTime();if(l&&N<ee(l)||i&&N>ee(i))return;let A=(T.getFullYear()-f)*12+T.getMonth()-P;A!==0&&c$1(P+A),C.current=true,H(T);}return jsxs("div",{className:t.calendar,ref:g$1,children:[jsx("div",{className:t.calendarHeader,children:jsxs("div",{className:t.monthYearSelectors,children:[S!=="year"?jsx(a$4,{"aria-label":"Previous month",onClick:()=>{c$1((n?s.secondMonth:s.month)-1);},variant:"icon",children:jsx("svg",{"aria-hidden":"true",fill:"currentColor",height:"16",stroke:"currentColor",strokeWidth:"10",viewBox:"0 0 256 256",width:"16",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M165.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L91.31,128Z"})})}):jsx(a$4,{"aria-label":"Previous years",onClick:K,variant:"icon",children:jsx("svg",{"aria-hidden":"true",fill:"currentColor",height:"16",stroke:"currentColor",strokeWidth:"10",viewBox:"0 0 256 256",width:"16",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M205.66,202.34a8,8,0,0,1-11.32,11.32l-80-80a8,8,0,0,1,0-11.32l80-80a8,8,0,0,1,11.32,11.32L131.31,128ZM51.31,128l74.35-74.34a8,8,0,0,0-11.32-11.32l-80,80a8,8,0,0,0,0,11.32l80,80a8,8,0,0,0,11.32-11.32Z"})})}),jsx(a$4,{className:t.monthSelector,label:z[n?s.secondMonth:s.month],onClick:()=>{F("month");},variant:"unstyled"}),jsx("strong",{children:"/"}),jsx(a$4,{className:t.yearSelector,label:`${n?s.secondYear:s.year}`,onClick:()=>{F("year");},variant:"unstyled"}),S!=="year"?jsx(a$4,{"aria-label":"Next month",onClick:()=>{c$1((n?s.secondMonth:s.month)+1);},variant:"icon",children:jsx("svg",{"aria-hidden":"true",fill:"currentColor",height:"16",stroke:"currentColor",strokeWidth:"10",viewBox:"0 0 256 256",width:"16",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z"})})}):jsx(a$4,{"aria-label":"Next years",onClick:oe,variant:"icon",children:jsx("svg",{"aria-hidden":"true",fill:"currentColor",height:"16",stroke:"currentColor",strokeWidth:"10",viewBox:"0 0 256 256",width:"16",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M141.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L124.69,128,50.34,53.66A8,8,0,0,1,61.66,42.34l80,80A8,8,0,0,1,141.66,133.66Zm80-11.32-80-80a8,8,0,0,0-11.32,11.32L204.69,128l-74.35,74.34a8,8,0,0,0,11.32,11.32l80-80A8,8,0,0,0,221.66,122.34Z"})})})]})}),_()]})}function Ae({disabled:e,displayFormat:r,inputRef:n,isRange:l,language:i,onClick:c,onBlur:h,readOnly:O,...s}){let{state:{modalOpen:S,value:{startDate:b,endDate:M}},dispatch:Y}=Q(),[B,H]=useState(d({displayFormat:r,isRange:l,...b&&{startDate:b},...M&&{endDate:M},language:i})),[C,g$1]=useState(true),f$1=a$1({value:B,delay:500}),P=useRef(null),V=useCallback(y=>{P.current=y,typeof n=="function"?n(y):n&&(n.current=y);},[n]);useEffect(()=>{if(![10,23].includes(f$1.length)||C)return;let y=r??a$2(i);if(f$1.length===10&&!l&&f(f$1,i,r)){let F=g(f$1,y);Y({type:"SET_VALUE",payload:{startDate:F,endDate:null}});}else if(f$1.length===23&&f(f$1.split(" - ")[0],i,r)&&f(f$1.split(" - ")[1],i,r)){let[F,K]=f$1.split(" - ");Y({type:"SET_VALUE",payload:{startDate:g(F,y),endDate:g(K,y)}});}},[f$1,Y,r,C,l,i]),useEffect(()=>{H(d({displayFormat:r,isRange:l,...b&&{startDate:b},...M&&{endDate:M},language:i}));},[b,M,r,l,i]);let z=()=>{g$1(true),P.current?.focus(),c();},o=y=>{g$1(false),H(y.target.value);},_=(r??a$2(i)).replace(/[a-zA-Z]/g,"#"),W=l?`${_} - ${_}`:_;return jsxs(Fragment,{children:[jsx(a$3,{disabled:e,inputMode:"numeric",mask:W,onBlur:()=>{h?.({startDate:b,endDate:M});},onChange:o,readOnly:O,ref:V,type:"text",value:B,variant:"unstyled",...s}),jsx(a$4,{"aria-expanded":S,"aria-haspopup":"dialog","aria-label":"Open calendar",className:t.inputButton,disabled:e||O,onClick:z,shape:"pill",variant:"icon",children:jsx("svg",{className:t.inputButtonIcon,viewBox:"0 -960 960 960",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z"})})})]})}var qe="en",Me={apply:"Apply",cancel:"Cancel"},Ze=(e,r)=>({"--datepicker-scheme":`var(--plume-color-${e}-text)`,"--datepicker-solid":`var(--plume-color-${e}-solid)`,"--datepicker-contrast":`var(--plume-color-${e}-solid-contrast)`,"--datepicker-range-item-color":`var(--plume-color-${e}-200)`,"--datepicker-range-item-text":`var(--plume-color-${e}-900)`,"--datepicker-hover-color":`var(--plume-color-${e}-100)`,"--datepicker-selected-hover-color":`var(--plume-color-${e}-solid-hover)`,...r??{}});function Ke({colorScheme:e,labels:{cancel:r,apply:n},onApply:l,onCancel:i}){return jsxs("div",{className:t.footerActions,children:[jsx(a$4,{className:t.footerButton,label:r,onClick:i,variant:"ghost"}),jsx(a$4,{className:t.footerButtonApply,colorScheme:e,label:n,onClick:l})]})}var je=(e,r,n,l,i,c)=>{let h=c&&(c!=="md"||l==="unstyled")?t[c]:"",O=i&&(i!=="rounded"||l==="unstyled")?t[i]:"",s=l!=="unstyled"?t[l]:"",S=r?t.disabled:"",b=n&&l!=="unstyled"?t.invalid:"";return `${h} ${O} ${s}
2
+ ${S} ${b} ${e}`.trim()},Ce=forwardRef(({onChange:e,onBlur:r,inputRef:n,displayFormat:l,style:i,showFooter:c,minDate:h,maxDate:O,placeholder:s,value:S,disabled:b=false,className:M="",colorScheme:Y="secondary",variant:B="outline",config:H,isCalendar:C=false,isRange:g=false,...f},P)=>{let V=H?.language??qe,z={apply:H?.footer?.apply??Me.apply,cancel:H?.footer?.cancel??Me.cancel},[o,_]=useReducer(pe,S,a=>a?pe(ce,{type:"SET_VALUE",payload:a}):ce),W=useRef(true),y=a({callback:()=>{_({type:"CLOSE_MODAL"});}}),F=a=>{y.current=a,typeof P=="function"?P(a):P&&(P.current=a);},{size:K=B!=="unstyled"?"md":void 0,shape:oe=B!=="unstyled"?"rounded":void 0}=f,ne=je(M,b,f["aria-invalid"]===true||f["aria-invalid"]==="true",B,oe,K);useEffect(()=>{if(o.modalOpen)if(g&&o.tempValue.startDate&&o.tempValue.endDate){let a=[],u=new Date(o.tempValue.startDate);for(;u<=o.tempValue.endDate;)a.push(new Date(u)),u.setDate(u.getDate()+1);_({type:"SET_RANGE_DAYS",payload:a});}else _({type:"SET_RANGE_DAYS",payload:[]});},[g,o.tempValue,o.modalOpen]),useEffect(()=>{if(W.current){W.current=false;return}_({type:"SET_VALUE",payload:S??X});},[S]),useEffect(()=>{o.modalOpen&&y.current?.querySelector('[role="dialog"] [data-date][tabindex="0"]')?.focus();},[o.modalOpen,y]);let le=()=>{_({type:"TOGGLE_MODAL"});},v=()=>{C||(_({type:"CLOSE_MODAL"}),y.current?.querySelector("input")?.focus());};useEffect(()=>{if(!o.modalOpen||C)return;let a=u=>{u.key!=="Escape"||!y.current?.contains(u.target)||(_({type:"CLOSE_MODAL"}),y.current.querySelector("input")?.focus());};return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a);}},[o.modalOpen,C,y]);let I=a=>{let u=a.relatedTarget;u&&!a.currentTarget.contains(u)&&_({type:"CLOSE_MODAL"});},x=(a,u)=>a*12+u,T=(a,u)=>{_({type:"SET_YEAR",payload:Math.floor(a/12)}),_({type:"SET_MONTH",payload:a%12}),_({type:"SET_SECOND_YEAR",payload:Math.floor(u/12)}),_({type:"SET_SECOND_MONTH",payload:u%12});},N=(a,u)=>{let E=x(a,u);T(E,Math.max(x(o.secondYear,o.secondMonth),E+1));},A=(a,u)=>{let E=x(a,u);T(Math.min(x(o.year,o.month),E-1),E);},w=a=>{N(a,o.month);},$=a=>{N(o.year,a);},G=a=>{A(a,o.secondMonth);},p=a=>{A(o.secondYear,a);},m=()=>{_({type:"SET_VALUE",payload:o.tempValue}),o.tempValue.startDate&&e({startDate:o.tempValue.startDate,endDate:o.tempValue.endDate}),v();},L=(a,u)=>{let E=new Date(u?o.secondYear:o.year,u?o.secondMonth:o.month,a),D={...o.tempValue};c||!g||!D.startDate||D.endDate?(D.startDate=E,D.endDate=null):E<D.startDate?(D.endDate=D.startDate,D.startDate=E):D.endDate=E,_({type:"SET_TEMP_VALUE",payload:D}),!c&&(!g||D.endDate)&&(e({startDate:D.startDate,endDate:D.endDate}),_({type:"SET_VALUE",payload:D}),v());},R=()=>{let a=l??a$2(V);return g?`${a} - ${a}`:a};return jsx(de.Provider,{value:{state:o,dispatch:_},children:jsxs("div",{className:t.datePicker,onBlur:I,ref:F,style:Ze(Y,i),children:[!C&&jsx(Ae,{className:ne,disabled:b,displayFormat:l,inputRef:n,isRange:g,language:V,onBlur:r,onClick:le,placeholder:s??R(),...f}),C||o.modalOpen?jsxs("div",{"aria-label":"Calendar",className:t.datePickerModal,role:"dialog",children:[jsxs("div",{className:g?t.calendarContainerDouble:t.calendarContainer,children:[jsx(ye,{isRange:g,language:V,maxDate:O,minDate:h,onMonthChange:$,onSelectDate:L,onYearChange:w}),g?jsx(ye,{isRange:g,isSecondCalendar:true,language:V,maxDate:O,minDate:h,onMonthChange:p,onSelectDate:L,onYearChange:G}):null]}),c?jsx(Ke,{colorScheme:Y,labels:z,onApply:m,onCancel:v}):null]}):null]})})});Ce.displayName="DatePicker";export{Ce as a};
@@ -0,0 +1 @@
1
+ function i(t,...s){function r(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function c(n,u){if(!r(n)||!r(u))return u;let f={...n};for(let o of Object.keys(u))f[o]=o in n?c(n[o],u[o]):u[o];return f}let e=r(t)?{...t}:t;for(let n of s)n!==void 0&&(e=c(e,n));return e}export{i as a};
@@ -0,0 +1 @@
1
+ import {useState}from'react';var u={"#":/^[0-9]$/,A:/^\p{L}$/u,"*":/^[\p{L}0-9]$/u};function h(e){let t=[];for(let r=0;r<e.length;r+=1){let s=e[r];s==="\\"&&r+1<e.length?(r+=1,t.push({literal:e[r]})):s in u?t.push({slot:u[s]}):t.push({literal:s});}return t}function l(e,t){if(!t)return e;let r="",s="",n=0;for(let a of h(t)){if(n>=e.length)break;if("literal"in a){s+=a.literal,e[n]===a.literal&&(n+=1);continue}for(;n<e.length&&!a.slot.test(e[n]);)n+=1;if(n>=e.length)break;r+=s+e[n],s="",n+=1;}return r}function d({mask:e,value:t,defaultValue:r="",onChange:s}){let n=t!==void 0,[a,p]=useState(()=>l(r,e??"")),o=i=>{if(e){let g=l(i.target.value,e);i.target.value=g,n||p(g);}s?.(i);};return e?{value:n?l(t,e):a,onChange:o}:{value:t,onChange:o}}export{l as a,d as b};
@@ -0,0 +1 @@
1
+ export{a as DatePicker}from'../../../chunk-V5DKNP76.mjs';import'../../../chunk-PNXPX444.mjs';import'../../../chunk-NNP2MCGD.mjs';import'../../../chunk-TQ7ENVY5.mjs';import'../../../chunk-D237D3H5.mjs';import'../../../chunk-NFXMVNGX.mjs';import'../../../chunk-ZN4UC4TJ.mjs';import'../../../chunk-6RTAEXNN.mjs';import'../../../chunk-WM4KUIPD.mjs';import'../../../chunk-AOJBMSYA.mjs';import'../../../chunk-BOTD5R53.mjs';
@@ -0,0 +1 @@
1
+ export{a as Field}from'../../../chunk-A72ZRKNC.mjs';
@@ -0,0 +1 @@
1
+ export{a as Input}from'../../../chunk-PNXPX444.mjs';import'../../../chunk-ZN4UC4TJ.mjs';
@@ -0,0 +1 @@
1
+ export{a as Button}from'../../../chunk-NNP2MCGD.mjs';import'../../../chunk-TQ7ENVY5.mjs';import'../../../chunk-6RTAEXNN.mjs';import'../../../chunk-WM4KUIPD.mjs';import'../../../chunk-AOJBMSYA.mjs';
@@ -0,0 +1 @@
1
+ export{c as Tab,b as TabList,e as TabPanel,d as TabPanels,a as Tabs}from'../../../chunk-PEVXLYX3.mjs';import'../../../chunk-NNP2MCGD.mjs';import'../../../chunk-TQ7ENVY5.mjs';import'../../../chunk-6RTAEXNN.mjs';import'../../../chunk-WM4KUIPD.mjs';import'../../../chunk-AOJBMSYA.mjs';import'../../../chunk-QON6DQTA.mjs';
@@ -0,0 +1 @@
1
+ export{a as Spinner}from'../../../chunk-TQ7ENVY5.mjs';import'../../../chunk-6RTAEXNN.mjs';import'../../../chunk-WM4KUIPD.mjs';import'../../../chunk-AOJBMSYA.mjs';
@@ -0,0 +1 @@
1
+ export{a as useClickOutside}from'../chunk-D237D3H5.mjs';
@@ -0,0 +1 @@
1
+ export{a as useDebounce}from'../chunk-NFXMVNGX.mjs';
@@ -0,0 +1 @@
1
+ export{a as applyMask,b as useMask}from'../chunk-ZN4UC4TJ.mjs';
@@ -0,0 +1,374 @@
1
+ import * as react from 'react';
2
+ import { CSSProperties, ReactNode, RefObject, ChangeEvent, LazyExoticComponent, ButtonHTMLAttributes, InputHTMLAttributes, Ref, ReactElement, HtmlHTMLAttributes, HTMLAttributes } from 'react';
3
+
4
+ type RadiusValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 'full';
5
+ type SizeValue = 'max' | 'min' | 'full';
6
+ type SpaceValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96;
7
+ type ZIndexValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
8
+ interface ShadeLevel {
9
+ 50: string;
10
+ 100: string;
11
+ 200: string;
12
+ 300: string;
13
+ 400: string;
14
+ 500: string;
15
+ 600: string;
16
+ 700: string;
17
+ 800: string;
18
+ 900: string;
19
+ 950: string;
20
+ }
21
+ interface ColorPalette {
22
+ primary: ShadeLevel;
23
+ secondary: ShadeLevel;
24
+ info: ShadeLevel;
25
+ warning: ShadeLevel;
26
+ error: ShadeLevel;
27
+ success: ShadeLevel;
28
+ brown: ShadeLevel;
29
+ pink: ShadeLevel;
30
+ purple: ShadeLevel;
31
+ teal: ShadeLevel;
32
+ yellow: ShadeLevel;
33
+ }
34
+ interface Typography {
35
+ fontFamily: string;
36
+ fontSizes: FontSizes;
37
+ fontWeights: FontWeights;
38
+ lineHeights: LineHeights;
39
+ }
40
+ interface FontSizes {
41
+ xs: string;
42
+ sm: string;
43
+ base: string;
44
+ lg: string;
45
+ xl: string;
46
+ '2xl': string;
47
+ }
48
+ interface FontWeights {
49
+ thin: number;
50
+ extralight: number;
51
+ light: number;
52
+ normal: number;
53
+ medium: number;
54
+ semibold: number;
55
+ bold: number;
56
+ extrabold: number;
57
+ black: number;
58
+ }
59
+ interface LineHeights {
60
+ none: number;
61
+ tight: number;
62
+ snug: number;
63
+ normal: number;
64
+ relaxed: number;
65
+ loose: number;
66
+ }
67
+ type Spaces = {
68
+ [key in SpaceValue]: string;
69
+ };
70
+ type Sizes = {
71
+ [key in SizeValue]: string;
72
+ };
73
+ type Radii = {
74
+ [key in RadiusValue]: string;
75
+ };
76
+ type ZIndeces = {
77
+ [key in ZIndexValue]: number;
78
+ };
79
+ interface Shadows {
80
+ none: string;
81
+ sm: string;
82
+ md: string;
83
+ lg: string;
84
+ xl: string;
85
+ '2xl': string;
86
+ }
87
+ interface Breakpoints {
88
+ sm: string;
89
+ md: string;
90
+ lg: string;
91
+ xl: string;
92
+ '2xl': string;
93
+ }
94
+ interface SemanticColors {
95
+ background: string;
96
+ surface: string;
97
+ surfaceMuted: string;
98
+ foreground: string;
99
+ muted: string;
100
+ border: string;
101
+ }
102
+ interface Theme {
103
+ colors: ColorPalette;
104
+ semantic: SemanticColors;
105
+ typography: Typography;
106
+ spaces: Spaces;
107
+ sizes: Sizes;
108
+ radii: Radii;
109
+ zIndeces: ZIndeces;
110
+ shadows: Shadows;
111
+ breakpoints: Breakpoints;
112
+ }
113
+ type DeepPartial<T> = {
114
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
115
+ };
116
+
117
+ declare const defaultTheme: Theme;
118
+ declare const defaultDarkTheme: DeepPartial<Theme>;
119
+
120
+ interface ComponentProps {
121
+ className?: string;
122
+ style?: CSSProperties;
123
+ index?: number;
124
+ }
125
+ type Size = 'sm' | 'md' | 'lg';
126
+ type Shape = 'pill' | 'rounded';
127
+ type ColorScheme = keyof ColorPalette;
128
+ type Shade = keyof ShadeLevel;
129
+ type ColorShade = ColorScheme | `${ColorScheme}.${Shade}`;
130
+
131
+ /**
132
+ * Maps a ColorShade (e.g. 'primary' or 'primary.900') to the matching CSS
133
+ * custom property emitted by <ThemeProvider> (e.g. `var(--plume-color-primary-900)`).
134
+ * A bare scheme defaults to shade 500.
135
+ */
136
+ declare function colorVar(colorShade: ColorShade): string;
137
+
138
+ /**
139
+ * Flattens a resolved Theme into a map of CSS custom properties
140
+ * (e.g. `--plume-color-primary-500`, `--plume-space-4`, `--plume-radius-2`).
141
+ * Custom color schemes added via module augmentation are included automatically.
142
+ */
143
+ declare function themeToCssVars(theme: Theme): Record<string, string>;
144
+
145
+ type ColorMode = 'light' | 'dark';
146
+ type ColorModeSetting = ColorMode | 'system';
147
+ interface ThemeContextValue {
148
+ theme: Theme;
149
+ colorMode: ColorMode;
150
+ setColorMode: (mode: ColorModeSetting) => void;
151
+ }
152
+ declare function useTheme(): ThemeContextValue;
153
+ interface ThemeProviderProps {
154
+ children: ReactNode;
155
+ theme?: DeepPartial<Theme>;
156
+ darkTheme?: DeepPartial<Theme>;
157
+ defaultColorMode?: ColorModeSetting;
158
+ /** Theme document.body and set data-plume-color-mode on <html> for full-page theming. Default true; set false for nested providers. */
159
+ applyToBody?: boolean;
160
+ className?: string;
161
+ style?: CSSProperties;
162
+ }
163
+ declare function ThemeProvider({ children, theme, darkTheme, defaultColorMode, applyToBody, className, style, }: ThemeProviderProps): ReactNode;
164
+
165
+ interface UseClickOutsideProps {
166
+ callback: () => void;
167
+ }
168
+ declare function useClickOutside({ callback }: UseClickOutsideProps): RefObject<HTMLDivElement | null>;
169
+
170
+ interface UseDebounceProps<T> {
171
+ value: T;
172
+ delay: number;
173
+ }
174
+ declare function useDebounce<T>({ value, delay }: UseDebounceProps<T>): T;
175
+
176
+ type MaskChangeHandler = (event: ChangeEvent<HTMLInputElement>) => void;
177
+ interface UseMaskProps {
178
+ mask?: string;
179
+ value?: string;
180
+ defaultValue?: string;
181
+ onChange?: MaskChangeHandler;
182
+ }
183
+ interface UseMaskResult {
184
+ value: string | undefined;
185
+ onChange: MaskChangeHandler;
186
+ }
187
+ /**
188
+ * Formats `value` according to `mask`. Mask characters: `#` a digit, `A` a
189
+ * letter, `*` a letter or digit; `\` escapes the next character as a literal;
190
+ * any other character is a literal that is auto-inserted as the user types.
191
+ * Input characters that don't fit the next slot are dropped.
192
+ * e.g. applyMask('15082024', '##/##/####') -> '15/08/2024'.
193
+ */
194
+ declare function applyMask(value: string, mask: string): string;
195
+ /**
196
+ * Masks an input's value. Works for both controlled (`value` provided) and
197
+ * uncontrolled (`defaultValue`) usage. When no `mask` is given it passes the
198
+ * value/handler through untouched, so callers can use it unconditionally.
199
+ */
200
+ declare function useMask({ mask, value, defaultValue, onChange, }: UseMaskProps): UseMaskResult;
201
+
202
+ declare function getContrastColor(inputColor: string): string;
203
+ declare function getContrastRatio(foreground: string, background: string): number;
204
+ declare function getLightenColor(inputColor: string, lightness?: number): string;
205
+ declare function getDarkenColor(inputColor: string, darkness?: number): string;
206
+
207
+ declare function getDateFormatByLanguage(language?: string): string;
208
+ declare function getDaysOfWeekByLanguage(language?: string): string[];
209
+ declare function getMonthsByLanguage(language?: string): string[];
210
+ declare function getDateStringByLanguage({ displayFormat, isRange, startDate, endDate, language, }: {
211
+ displayFormat?: string;
212
+ startDate?: Date;
213
+ isRange?: boolean;
214
+ endDate?: Date;
215
+ language?: string;
216
+ }): string;
217
+ declare function formatDate(date: Date, displayFormat: string): string;
218
+ declare function validateFormatDate(dateString: string, language: string, displayFormat?: string): boolean;
219
+ declare function getDateFromDateString(dateString: string, displayFormat?: string): Date;
220
+
221
+ interface LazyLoadedComponent {
222
+ default: () => ReactNode;
223
+ }
224
+ declare function lazyLoadContent(content: ReactNode): LazyExoticComponent<() => ReactNode>;
225
+
226
+ /**
227
+ * Deeply merges `sources` into `target` and returns a NEW object. Inputs are
228
+ * never mutated, so shared/base objects (e.g. a default theme) stay pristine.
229
+ * Later sources win; nested plain objects are merged recursively, everything
230
+ * else (primitives, arrays) is replaced.
231
+ */
232
+ declare function deepMerge<T>(target: T, ...sources: (Partial<T> | undefined)[]): T;
233
+
234
+ interface ButtonOwnProps {
235
+ busyText?: string;
236
+ colorScheme?: ColorScheme;
237
+ iconLeft?: ReactNode;
238
+ iconRight?: ReactNode;
239
+ isBusy?: boolean;
240
+ label?: string;
241
+ shape?: Shape;
242
+ size?: Size;
243
+ variant?: ButtonVariant;
244
+ }
245
+ type ButtonVariant = 'solid' | 'outline' | 'link' | 'icon' | 'ghost' | 'unstyled';
246
+ type ButtonRootAttributes = Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'aria-expanded' | 'aria-haspopup' | 'aria-label' | 'aria-labelledby' | 'children' | 'disabled' | 'hidden' | 'id' | 'onBlur' | 'onClick' | 'onFocus' | 'onKeyDown' | 'onMouseEnter' | 'role' | 'tabIndex' | 'title' | 'type'>;
247
+ type ButtonProps = ComponentProps & ButtonRootAttributes & ButtonOwnProps;
248
+ declare const Button: react.ForwardRefExoticComponent<ComponentProps & ButtonRootAttributes & ButtonOwnProps & react.RefAttributes<HTMLButtonElement>>;
249
+
250
+ interface DatePickerOwnProps {
251
+ colorScheme?: ColorScheme;
252
+ config?: DatePickerConfig;
253
+ displayFormat?: string;
254
+ inputRef?: Ref<HTMLInputElement>;
255
+ isCalendar?: boolean;
256
+ isRange?: boolean;
257
+ maxDate?: Date;
258
+ minDate?: Date;
259
+ onBlur?: (value?: DateRange) => void;
260
+ onChange: (value: DateRange) => void;
261
+ shape?: Shape;
262
+ showFooter?: boolean;
263
+ size?: Size;
264
+ value?: DateRange;
265
+ variant?: DatePickerVariant;
266
+ }
267
+ interface DateRange {
268
+ endDate: Date | null;
269
+ startDate: Date | null;
270
+ }
271
+ interface DatePickerConfig {
272
+ footer?: Partial<FooterLabels>;
273
+ language?: string;
274
+ }
275
+ interface FooterLabels {
276
+ apply: string;
277
+ cancel: string;
278
+ }
279
+ type DatePickerVariant = 'outline' | 'filled' | 'underline' | 'unstyled';
280
+ type DatePickerRootAttributes = Pick<InputHTMLAttributes<HTMLInputElement>, 'aria-describedby' | 'aria-invalid' | 'disabled' | 'readOnly' | 'id' | 'name' | 'required' | 'placeholder'>;
281
+ type DatePickerProps = ComponentProps & DatePickerRootAttributes & DatePickerOwnProps;
282
+ declare const DatePicker: react.ForwardRefExoticComponent<ComponentProps & DatePickerRootAttributes & DatePickerOwnProps & react.RefAttributes<HTMLDivElement>>;
283
+
284
+ interface FieldOwnProps {
285
+ disabled?: boolean;
286
+ errorText?: ReactNode;
287
+ helperText?: ReactNode;
288
+ invalid?: boolean;
289
+ label?: ReactNode;
290
+ optionalText?: ReactNode;
291
+ orientation?: FieldOrientation;
292
+ readOnly?: boolean;
293
+ required?: boolean;
294
+ }
295
+ type FieldOrientation = 'vertical' | 'horizontal';
296
+ interface FieldControlProps {
297
+ 'aria-describedby'?: string;
298
+ 'aria-invalid'?: boolean | 'true' | 'false';
299
+ disabled?: boolean;
300
+ id?: string;
301
+ readOnly?: boolean;
302
+ required?: boolean;
303
+ }
304
+ type FieldRootAttributes = {
305
+ children: ReactElement<FieldControlProps>;
306
+ };
307
+ type FieldProps = Omit<ComponentProps, 'index'> & FieldRootAttributes & FieldOwnProps;
308
+ declare const Field: react.ForwardRefExoticComponent<Omit<ComponentProps, "index"> & FieldRootAttributes & FieldOwnProps & react.RefAttributes<HTMLDivElement>>;
309
+
310
+ interface InputOwnProps {
311
+ addonBefore?: ReactNode;
312
+ addonAfter?: ReactNode;
313
+ elementBefore?: ReactNode;
314
+ elementAfter?: ReactNode;
315
+ colorScheme?: ColorScheme;
316
+ mask?: string;
317
+ shape?: Shape;
318
+ size?: Size;
319
+ variant?: InputVariant;
320
+ }
321
+ type InputRootAttributes = Pick<InputHTMLAttributes<HTMLInputElement>, 'aria-describedby' | 'aria-invalid' | 'defaultValue' | 'disabled' | 'id' | 'inputMode' | 'max' | 'maxLength' | 'min' | 'minLength' | 'name' | 'onBlur' | 'onChange' | 'pattern' | 'placeholder' | 'readOnly' | 'required' | 'type' | 'value'>;
322
+ type InputVariant = 'outline' | 'filled' | 'underline' | 'unstyled';
323
+ type InputProps = ComponentProps & InputRootAttributes & InputOwnProps;
324
+ declare const Input: react.ForwardRefExoticComponent<ComponentProps & InputRootAttributes & InputOwnProps & react.RefAttributes<HTMLInputElement>>;
325
+
326
+ interface SpinnerOwnProps {
327
+ color?: ColorShade;
328
+ size?: Size;
329
+ speed?: string;
330
+ thickness?: number;
331
+ variant?: SpinnerVariant;
332
+ }
333
+ type SpinnerVariant = 'solid' | 'dashed' | 'dotted' | 'double' | 'unstyled';
334
+ type SpinnerRootAttributes = Pick<HtmlHTMLAttributes<HTMLSpanElement>, 'hidden' | 'id' | 'tabIndex'>;
335
+ type SpinnerProps = ComponentProps & SpinnerRootAttributes & SpinnerOwnProps;
336
+ declare const Spinner: react.ForwardRefExoticComponent<ComponentProps & SpinnerRootAttributes & SpinnerOwnProps & react.RefAttributes<HTMLOutputElement>>;
337
+
338
+ interface TabsOwnProps {
339
+ alignment?: TabsAlignment;
340
+ colorScheme?: ColorScheme;
341
+ isLazy?: boolean;
342
+ onChange?: (index: number) => void;
343
+ orientation?: TabsOrientation;
344
+ size?: Size;
345
+ variant?: TabsVariant;
346
+ }
347
+ type TabsVariant = 'underline' | 'rounded' | 'enclosed' | 'segment' | 'unstyled';
348
+ type TabsOrientation = 'horizontal' | 'vertical';
349
+ type TabsAlignment = 'left' | 'center' | 'right';
350
+ type TabsRootAttributes = Pick<HTMLAttributes<HTMLDivElement>, 'hidden' | 'id' | 'tabIndex' | 'children'>;
351
+ type TabsProps = ComponentProps & TabsRootAttributes & TabsOwnProps;
352
+ declare const Tabs: react.ForwardRefExoticComponent<ComponentProps & TabsRootAttributes & TabsOwnProps & react.RefAttributes<HTMLDivElement>>;
353
+
354
+ type TabListProps = Pick<HTMLAttributes<HTMLDivElement>, 'aria-label' | 'aria-labelledby' | 'className' | 'id' | 'children'>;
355
+ declare const TabList: react.ForwardRefExoticComponent<TabListProps & react.RefAttributes<HTMLDivElement>>;
356
+
357
+ interface TabOwnProps {
358
+ label?: string;
359
+ isActive?: boolean;
360
+ disabled?: boolean;
361
+ extraContentLeft?: ReactNode;
362
+ extraContentRight?: ReactNode;
363
+ }
364
+ type TabRootAttributes = Pick<HTMLAttributes<HTMLButtonElement>, 'children'>;
365
+ type TabProps = ComponentProps & TabRootAttributes & TabOwnProps;
366
+ declare const Tab: react.ForwardRefExoticComponent<ComponentProps & TabRootAttributes & TabOwnProps & react.RefAttributes<HTMLButtonElement>>;
367
+
368
+ type TabPanelsProps = Pick<HTMLAttributes<HTMLDivElement>, 'className' | 'id' | 'children'>;
369
+ declare const TabPanels: react.ForwardRefExoticComponent<TabPanelsProps & react.RefAttributes<HTMLDivElement>>;
370
+
371
+ type TabPanelProps = Pick<HTMLAttributes<HTMLDivElement>, 'className' | 'children'> & Pick<ComponentProps, 'index'>;
372
+ declare const TabPanel: react.ForwardRefExoticComponent<Pick<HTMLAttributes<HTMLDivElement>, "children" | "className"> & Pick<ComponentProps, "index"> & react.RefAttributes<HTMLDivElement>>;
373
+
374
+ export { type Breakpoints, Button, type ButtonProps, type ColorMode, type ColorModeSetting, type ColorPalette, type ColorScheme, type ColorShade, type ComponentProps, DatePicker, type DatePickerConfig, type DatePickerProps, type DateRange, type DeepPartial, Field, type FieldControlProps, type FieldOrientation, type FieldProps, type FontSizes, type FontWeights, Input, type InputProps, type LazyLoadedComponent, type LineHeights, type MaskChangeHandler, type Radii, type SemanticColors, type Shade, type ShadeLevel, type Shadows, type Shape, type Size, type Sizes, type Spaces, Spinner, type SpinnerProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, TabPanels, type TabPanelsProps, type TabProps, Tabs, type TabsProps, type Theme, type ThemeContextValue, ThemeProvider, type ThemeProviderProps, type Typography, type UseClickOutsideProps, type UseDebounceProps, type UseMaskProps, type UseMaskResult, type ZIndeces, applyMask, colorVar, deepMerge, defaultDarkTheme, defaultTheme, formatDate, getContrastColor, getContrastRatio, getDarkenColor, getDateFormatByLanguage, getDateFromDateString, getDateStringByLanguage, getDaysOfWeekByLanguage, getLightenColor, getMonthsByLanguage, lazyLoadContent, themeToCssVars, useClickOutside, useDebounce, useMask, useTheme, validateFormatDate };