plume-ui-react 0.0.0-stage → 0.2.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.
Files changed (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +53 -2
  3. package/dist/chunk-PZGR7IS5.mjs +1 -0
  4. package/dist/chunk-XCMY6VPH.mjs +1 -0
  5. package/dist/components/form/datepicker/calendar.mjs +1 -0
  6. package/dist/components/form/datepicker/datepicker-input.mjs +1 -0
  7. package/dist/components/form/datepicker/datepicker-reducer.mjs +1 -0
  8. package/dist/components/form/datepicker/datepicker.mjs +2 -0
  9. package/dist/components/form/datepicker/index.mjs +1 -0
  10. package/dist/components/form/datepicker/use-datepicker.mjs +1 -0
  11. package/dist/components/form/field/field.mjs +1 -0
  12. package/dist/components/form/field/index.mjs +1 -0
  13. package/dist/components/form/input/index.mjs +1 -0
  14. package/dist/components/form/input/input.mjs +2 -0
  15. package/dist/components/interaction/button/button.mjs +2 -0
  16. package/dist/components/interaction/button/index.mjs +1 -0
  17. package/dist/components/navigation/tabs/index.mjs +1 -0
  18. package/dist/components/navigation/tabs/tab-list.mjs +1 -0
  19. package/dist/components/navigation/tabs/tab-panel.mjs +1 -0
  20. package/dist/components/navigation/tabs/tab-panels.mjs +1 -0
  21. package/dist/components/navigation/tabs/tab.mjs +1 -0
  22. package/dist/components/navigation/tabs/tabs-reducer.mjs +1 -0
  23. package/dist/components/navigation/tabs/tabs.mjs +1 -0
  24. package/dist/components/navigation/tabs/use-tabs.mjs +1 -0
  25. package/dist/components/presentation/spinner/index.mjs +1 -0
  26. package/dist/components/presentation/spinner/spinner.mjs +5 -0
  27. package/dist/hooks/index.mjs +1 -0
  28. package/dist/hooks/use-click-outside.mjs +1 -0
  29. package/dist/hooks/use-debounce.mjs +1 -0
  30. package/dist/hooks/use-mask.mjs +1 -0
  31. package/dist/index.d.mts +374 -0
  32. package/dist/index.d.ts +374 -0
  33. package/dist/index.js +8 -0
  34. package/dist/index.mjs +1 -0
  35. package/dist/overlay/index.mjs +1 -0
  36. package/dist/overlay/layer.mjs +1 -0
  37. package/dist/overlay/portal.mjs +1 -0
  38. package/dist/overlay/position.mjs +1 -0
  39. package/dist/overlay/use-dismiss.mjs +1 -0
  40. package/dist/overlay/use-focus-trap.mjs +1 -0
  41. package/dist/overlay/use-isomorphic-layout-effect.mjs +1 -0
  42. package/dist/overlay/use-position.mjs +1 -0
  43. package/dist/overlay/use-scroll-lock.mjs +1 -0
  44. package/dist/styles.css +1 -0
  45. package/dist/theme/config.mjs +1 -0
  46. package/dist/theme/index.mjs +1 -0
  47. package/dist/theme/shared.types.mjs +0 -0
  48. package/dist/theme/shared.utils.mjs +1 -0
  49. package/dist/theme/theme-provider.mjs +1 -0
  50. package/dist/theme/theme-root.mjs +1 -0
  51. package/dist/theme/theme-to-css-vars.mjs +1 -0
  52. package/dist/theme/theme.types.mjs +0 -0
  53. package/dist/utils/colors.mjs +1 -0
  54. package/dist/utils/dates.mjs +1 -0
  55. package/dist/utils/index.mjs +1 -0
  56. package/dist/utils/lazy.mjs +1 -0
  57. package/dist/utils/merge.mjs +1 -0
  58. package/package.json +86 -3
@@ -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 };
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";var Ye=Object.defineProperty;var Yt=Object.getOwnPropertyDescriptor;var Gt=Object.getOwnPropertyNames;var Ut=Object.prototype.hasOwnProperty;var Wt=(e,t)=>{for(var r in t)Ye(e,r,{get:t[r],enumerable:!0})},Kt=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Gt(t))!Ut.call(e,a)&&a!==r&&Ye(e,a,{get:()=>t[a],enumerable:!(o=Yt(t,a))||o.enumerable});return e};var Zt=e=>Kt(Ye({},"__esModule",{value:!0}),e);var xr={};Wt(xr,{Button:()=>R,DatePicker:()=>ut,Field:()=>_t,Input:()=>Ce,Spinner:()=>he,Tab:()=>ht,TabList:()=>ft,TabPanel:()=>yt,TabPanels:()=>gt,Tabs:()=>bt,ThemeProvider:()=>or,applyMask:()=>Re,colorVar:()=>We,deepMerge:()=>ke,defaultDarkTheme:()=>Ue,defaultTheme:()=>Ge,formatDate:()=>se,getContrastColor:()=>Ke,getContrastRatio:()=>ie,getDarkenColor:()=>ge,getDateFormatByLanguage:()=>fe,getDateFromDateString:()=>de,getDateStringByLanguage:()=>Ae,getDaysOfWeekByLanguage:()=>rt,getLightenColor:()=>Pe,getMonthsByLanguage:()=>ot,lazyLoadContent:()=>at,themeToCssVars:()=>Xe,useClickOutside:()=>Qe,useDebounce:()=>et,useMask:()=>tt,useTheme:()=>rr,validateFormatDate:()=>De});module.exports=Zt(xr);var Ge={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"}},Ue={semantic:{background:"#18181b",surface:"#27272a",surfaceMuted:"#3f3f46",foreground:"#fafafa",muted:"#a1a1aa",border:"#3f3f46"}};function We(e){if(e.includes(".")){let[t,r]=e.split(".");return`var(--plume-color-${t}-${r})`}return`var(--plume-color-${e}-500)`}function Se(e){let t=Jt(e)?.groups;return e.startsWith("#")&&t?[parseInt(t.red,16),parseInt(t.green,16),parseInt(t.blue,16)]:Xt(e)?.map(Number)||[]}function Xt(e){return e.match(/\d+/g)}function Jt(e){return/^#?(?<red>[a-f\d]{2})(?<green>[a-f\d]{2})(?<blue>[a-f\d]{2})$/i.exec(e)}function Ke(e){let t=Se(e);if(t.length<3)return"#000000";let[r,o,a]=t;return(r*299+o*587+a*114)/1e3>140?"#000000":"#ffffff"}function xt(e){let t=Se(e);if(t.length<3)return 0;let[r,o,a]=t.map(n=>{let l=n/255;return l<=.03928?l/12.92:((l+.055)/1.055)**2.4});return .2126*r+.7152*o+.0722*a}function ie(e,t){let r=xt(e),o=xt(t),[a,n]=r>=o?[r,o]:[o,r];return(a+.05)/(n+.05)}function Pe(e,t=10){let r=Se(e);return r.length<3?e:`rgb(${r.map(a=>Math.min(255,a+(255-a)*(t/100))).join(", ")})`}function ge(e,t=10){let r=Se(e);return r.length<3?e:`rgb(${r.map(a=>Math.max(0,a-a*t/100)).join(", ")})`}var E="--plume",ye="#ffffff",Ze="#000000",we=4.5,Tt=e=>ie(ye,e)>=ie(Ze,e);function Qt(e){for(let r of["500","600","700"]){let o=String(e[r]);if(ie(ye,o)>=we)return{bg:o,fg:ye}}let t=String(e[500]);if(ie(Ze,t)>=we)return{bg:t,fg:Ze};for(let r of["800","900"]){let o=String(e[r]);if(ie(ye,o)>=we)return{bg:o,fg:ye}}return{bg:String(e[900]),fg:ye}}function er(e,t){let r=Tt(t[0]),o=r?["500","400","300","200","100","50"]:["500","600","700","800","900","950"];for(let a of o){let n=String(e[a]);if(t.every(l=>ie(n,l)>=we))return n}return String(e[r?"50":"950"])}function K(e,t,r){for(let[o,a]of Object.entries(t))r[`${e}-${o}`]=String(a)}var tr=e=>e.replace(/(?<lower>[a-z0-9])(?<upper>[A-Z])/g,"$<lower>-$<upper>").toLowerCase();function Xe(e){let t={},{background:r,surface:o,surfaceMuted:a}=e.semantic,n=[r,o,a],l=Tt(r),s=e.colors;for(let[d,u]of Object.entries(s)){K(`${E}-color-${d}`,u,t),t[`${E}-color-${d}-contrast`]=Ke(String(u[500]));let{bg:h,fg:D}=Qt(u);t[`${E}-color-${d}-solid`]=h,t[`${E}-color-${d}-solid-contrast`]=D,t[`${E}-color-${d}-solid-hover`]=ge(h,12),t[`${E}-color-${d}-solid-active`]=ge(h,24);let b=er(u,n);t[`${E}-color-${d}-text`]=b,t[`${E}-color-${d}-text-hover`]=l?Pe(b,12):ge(b,12),t[`${E}-color-${d}-text-active`]=l?Pe(b,24):ge(b,24),t[`${E}-color-${d}-tint`]=String(u[l?"900":"100"]),t[`${E}-color-${d}-tint-strong`]=String(u[l?"800":"200"])}let i=e.semantic;for(let[d,u]of Object.entries(i))t[`${E}-${tr(d)}`]=u;return t[`${E}-font-family`]=e.typography.fontFamily,K(`${E}-font-size`,e.typography.fontSizes,t),K(`${E}-font-weight`,e.typography.fontWeights,t),K(`${E}-line-height`,e.typography.lineHeights,t),K(`${E}-space`,e.spaces,t),K(`${E}-size`,e.sizes,t),K(`${E}-radius`,e.radii,t),K(`${E}-z`,e.zIndeces,t),K(`${E}-shadow`,e.shadows,t),K(`${E}-breakpoint`,e.breakpoints,t),t}var O=require("react");function ke(e,...t){function r(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function o(n,l){if(!r(n)||!r(l))return l;let s={...n};for(let i of Object.keys(l))s[i]=i in n?o(n[i],l[i]):l[i];return s}let a=r(e)?{...e}:e;for(let n of t)n!==void 0&&(a=o(a,n));return a}var Je=require("react"),kt=(0,Je.createContext)(void 0);var Ee=require("react/jsx-runtime"),Dt=(0,O.createContext)(null);function rr(){let e=(0,O.useContext)(Dt);if(!e)throw new Error("useTheme must be used within a <ThemeProvider>");return e}function or({children:e,theme:t,darkTheme:r,defaultColorMode:o="light",applyToBody:a=!0,className:n="",style:l}){let s=(0,O.useMemo)(()=>ke(Ge,t??{}),[t]),i=(0,O.useMemo)(()=>ke(ke(s,Ue),r??{}),[s,r]),[d,u]=(0,O.useState)(o),[h,D]=(0,O.useState)(null),[b,C]=(0,O.useState)(o==="system"?"light":o);(0,O.useEffect)(()=>{if(d!=="system"){C(d);return}let T=window.matchMedia("(prefers-color-scheme: dark)"),y=()=>C(T.matches?"dark":"light");return y(),T.addEventListener("change",y),()=>T.removeEventListener("change",y)},[d]);let m=b==="dark"?i:s,v=(0,O.useMemo)(()=>Xe(m),[m]);(0,O.useEffect)(()=>{if(!a||typeof document>"u")return;let{documentElement:T,body:y}=document,L=T.getAttribute("data-plume-color-mode"),p=y.style.backgroundColor,f=y.style.color;return T.setAttribute("data-plume-color-mode",b),y.style.backgroundColor=m.semantic.background,y.style.color=m.semantic.foreground,()=>{L===null?T.removeAttribute("data-plume-color-mode"):T.setAttribute("data-plume-color-mode",L),y.style.backgroundColor=p,y.style.color=f}},[a,b,m]);let x=(0,O.useMemo)(()=>({theme:m,colorMode:b,setColorMode:u}),[m,b]);return(0,Ee.jsx)(Dt.Provider,{value:x,children:(0,Ee.jsx)("div",{className:`plume-root ${n}`.trim(),"data-plume-color-mode":b,ref:D,style:{...v,backgroundColor:"var(--plume-background)",color:"var(--plume-foreground)",...l},children:(0,Ee.jsx)(kt.Provider,{value:h,children:e})})})}var Me=require("react");function Qe({callback:e}){let t=(0,Me.useRef)(null);return(0,Me.useEffect)(()=>{function r(o){t.current&&!t.current.contains(o.target)&&e()}return document.addEventListener("mousedown",r),()=>{document.removeEventListener("mousedown",r)}},[t,e]),t}var ve=require("react");function et({value:e,delay:t}){let[r,o]=(0,ve.useState)(e),a=(0,ve.useRef)(null);return(0,ve.useEffect)(()=>(a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{o(e)},t),()=>{a.current&&clearTimeout(a.current)}),[e,t]),r}var St=require("react"),Ct={"#":/^[0-9]$/,A:/^\p{L}$/u,"*":/^[\p{L}0-9]$/u};function ar(e){let t=[];for(let r=0;r<e.length;r+=1){let o=e[r];o==="\\"&&r+1<e.length?(r+=1,t.push({literal:e[r]})):o in Ct?t.push({slot:Ct[o]}):t.push({literal:o})}return t}function Re(e,t){if(!t)return e;let r="",o="",a=0;for(let n of ar(t)){if(a>=e.length)break;if("literal"in n){o+=n.literal,e[a]===n.literal&&(a+=1);continue}for(;a<e.length&&!n.slot.test(e[a]);)a+=1;if(a>=e.length)break;r+=o+e[a],o="",a+=1}return r}function tt({mask:e,value:t,defaultValue:r="",onChange:o}){let a=t!==void 0,[n,l]=(0,St.useState)(()=>Re(r,e??"")),s=i=>{if(e){let d=Re(i.target.value,e);i.target.value=d,a||l(d)}o?.(i)};return e?{value:a?Re(t,e):n,onChange:s}:{value:t,onChange:s}}function Le(e){if(e){if(e.length===2)return`${e}-${e.toUpperCase()}`}else return navigator.language;return e}function nr(e){let t={dd:"\\d{2}",mm:"\\d{2}",yyyy:"\\d{4}"},r=e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/dd|mm|yyyy/g,o=>t[o]);return new RegExp(`^${r}$`)}function fe(e){let t=Le(e),o=new Intl.DateTimeFormat(t,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date),a=o.map(s=>s.type),n={year:"yyyy",month:"MM",day:"dd"};return a.map((s,i)=>n[s]||o[i].value).join("").toLocaleLowerCase()}function rt(e){let t=Le(e),r=[],o=new Intl.DateTimeFormat(t,{weekday:"short",timeZone:"UTC"});for(let a=0;a<7;a++){let n=new Date(Date.UTC(2024,0,1+a)),l=o.format(n).replace(/^\w/,s=>s.toUpperCase());r.push(l)}return r}function ot(e){let t=Le(e),r=new Intl.DateTimeFormat(t,{month:"long"});return Array.from({length:12},(o,a)=>{let n=new Date;return n.setMonth(a),r.format(n).replace(/^\w/,l=>l.toUpperCase())})}function Ae({displayFormat:e,isRange:t,startDate:r,endDate:o,language:a}){let n={year:"numeric",month:"2-digit",day:"2-digit"};if(e)return t&&r&&o?`${se(r,e)} - ${se(o,e)}`:r?se(r,e):"";let l=Le(a);return t&&r&&o?`${new Intl.DateTimeFormat(l,n).format(r)} - ${new Intl.DateTimeFormat(l,n).format(o)}`:r?new Intl.DateTimeFormat(l,n).format(r):""}function se(e,t){let r={yyyy:String(e.getFullYear()),mm:String(e.getMonth()+1).padStart(2,"0"),dd:String(e.getDate()).padStart(2,"0")};return t.replace(/yyyy|mm|dd/gi,o=>r[o.toLowerCase()])}function De(e,t,r){let o=r??fe(t);if(!nr(o).test(e))return!1;let a=de(e,o);return!Number.isNaN(a.getTime())&&se(a,o)===e}function de(e,t="mm/dd/yyyy"){let r=t.toLowerCase(),o=a=>{let n=r.indexOf(a);return n===-1?Number.NaN:Number(e.slice(n,n+a.length))};return new Date(o("yyyy"),o("mm")-1,o("dd"))}var Pt=require("react");function at(e){return(0,Pt.lazy)(()=>new Promise(t=>{t({default:()=>e})}))}var Mt=require("react");var wt=require("react");var nt={"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 Et=require("react/jsx-runtime"),lr=({color:e,style:t,speed:r,thickness:o})=>({"--spinner-scheme":We(e),...o&&{"--spinner-border-width":`${o}px`},"--spinner-animation-duration":r?.length?r:"1s",...t??{}}),he=(0,wt.forwardRef)(({color:e="secondary.900",style:t,speed:r,className:o="",thickness:a=3,variant:n="solid",size:l=n!=="unstyled"?"md":void 0,...s},i)=>{let d=l&&(l!=="md"||n==="unstyled")?nt[l]:"",u=n!=="unstyled"?nt[n]:"",h=`
2
+ ${d}
3
+ ${u}
4
+ ${o}
5
+ `.trim();return(0,Et.jsx)("output",{"aria-label":"loading",className:h,ref:i,style:lr({color:e,style:t,speed:r,thickness:a}),...s})});he.displayName="Spinner";var ee={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 Z=require("react/jsx-runtime"),ir=(e,t,r,o,a,n)=>{let l=a?ee.iconMarginNone:ee.iconMargin,s=t&&!e?ee.hidden:l,i=t&&e?e:n;return(0,Z.jsxs)(Z.Fragment,{children:[r?(0,Z.jsx)("span",{className:l,children:r}):null,i?(0,Z.jsx)("span",{className:s,children:i}):null,o?(0,Z.jsx)("span",{className:l,children:o}):null]})},sr=(e,t,r,o,a,n)=>{let l=r||o?ee.disabled:"",s=e!=="unstyled"?ee[n]:"",i=e!=="unstyled"?ee[a]:"",d=e!=="unstyled"?ee[e]:"";return`${i} ${s} ${d}
6
+ ${l} ${t}`.trim()},dr=e=>({"--button-color":`var(--plume-color-${e}-text)`,"--button-contrast-color":`var(--plume-color-${e}-solid-contrast)`,"--button-solid-bg":`var(--plume-color-${e}-solid)`,"--button-solid-hover":`var(--plume-color-${e}-solid-hover)`,"--button-solid-active":`var(--plume-color-${e}-solid-active)`,"--button-hover-color":`var(--plume-color-${e}-text-hover)`,"--button-focus-color":`var(--plume-color-${e}-text-active)`,"--button-hover-alt-color":`var(--plume-color-${e}-tint)`,"--button-focus-alt-color":`var(--plume-color-${e}-tint-strong)`}),R=(0,Mt.forwardRef)(({children:e,iconLeft:t,iconRight:r,label:o,style:a,busyText:n="",className:l="",colorScheme:s="secondary",disabled:i=!1,isBusy:d=!1,shape:u="rounded",size:h="md",type:D="button",variant:b="solid",...C},m)=>{let v=sr(b,l,i,d,h,u);return(0,Z.jsxs)("button",{className:v,disabled:i||d,ref:m,style:{...dr(s),...a},type:D,...C,children:[ir(n,d,t,r,b==="unstyled",o),e,d?(0,Z.jsx)(he,{style:{"--spinner-scheme":"var(--button-contrast-color)"},...n&&{className:ee.spinnerMargin},size:"sm"}):null]})});R.displayName="Button";var G=require("react");var Oe=require("react"),lt=(0,Oe.createContext)(void 0),Ne=()=>{let e=(0,Oe.useContext)(lt);if(!e)throw new Error("useDatePicker must be used within a DatePickerProvider");return e};var $e={startDate:null,endDate:null},Rt=new Date(new Date().getFullYear(),new Date().getMonth()+1,1),it={value:$e,tempValue:$e,modalOpen:!1,year:new Date().getFullYear(),secondYear:Rt.getFullYear(),month:new Date().getMonth(),secondMonth:Rt.getMonth(),rangeDays:[]},st=(e,t)=>{switch(t.type){case"SET_VALUE":{let{startDate:r,endDate:o}=t.payload,a=r?.getFullYear()??e.year,n=r?.getMonth()??e.month,l=o?.getFullYear()??e.secondYear,s=o&&(o.getMonth()>e.secondMonth||r&&r.getMonth()===11)?o.getMonth():e.secondMonth;return{...e,value:t.payload,tempValue:t.payload,year:a,month:n,secondYear:l,secondMonth:s}}case"TOGGLE_MODAL":return{...e,modalOpen:!e.modalOpen};case"CLOSE_MODAL":return e.modalOpen?{...e,modalOpen:!1}:e;case"SET_YEAR":return{...e,year:t.payload};case"SET_SECOND_YEAR":return{...e,secondYear:t.payload};case"SET_MONTH":return{...e,month:t.payload};case"SET_SECOND_MONTH":return{...e,secondMonth:t.payload};case"SET_RANGE_DAYS":return{...e,rangeDays:t.payload};default:return{...e,tempValue:t.payload}}};var te=require("react");var c={"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 g=require("react/jsx-runtime"),dt="yyyy-mm-dd",xe=(e,t)=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+t),Lt=(e,t)=>{let r=new Date(e.getFullYear(),e.getMonth()+t+1,0).getDate();return new Date(e.getFullYear(),e.getMonth()+t,Math.min(e.getDate(),r))},ct=e=>(e.getDay()+6)%7,cr={ArrowLeft:e=>xe(e,-1),ArrowRight:e=>xe(e,1),ArrowUp:e=>xe(e,-7),ArrowDown:e=>xe(e,7),Home:e=>xe(e,-ct(e)),End:e=>xe(e,6-ct(e)),PageUp:e=>Lt(e,-1),PageDown:e=>Lt(e,1)},ze=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();function pr({day:e}){return(0,g.jsx)("span",{className:c.dayOfWeek,children:e})}function ur({selectedMonth:e,months:t,onChange:r}){let o=a=>{r(a)};return(0,g.jsx)("div",{className:c.monthSelectorGrid,children:t.map((a,n)=>(0,g.jsx)(R,{"aria-pressed":n===e,className:`${n===e?c.selected:""} ${c.month}`,label:a,onClick:()=>{o(n)},variant:"unstyled"},a))})}function _r({selectedYear:e,startYear:t,onChange:r}){let o=n=>{r(n)},a=()=>{let n=[];for(let l=t;l<t+20;l++)n.push((0,g.jsx)(R,{"aria-pressed":e===l,className:`${e===l?c.selected:""} ${c.year}`,onClick:()=>{o(l)},variant:"unstyled",children:l},l));return n};return(0,g.jsx)("div",{className:c.yearSelectorGrid,children:a()})}function pt({language:e,isRange:t,isSecondCalendar:r,minDate:o,maxDate:a,onMonthChange:n,onSelectDate:l,onYearChange:s}){let{state:i}=Ne(),[d,u]=(0,te.useState)("day"),[h,D]=(0,te.useState)(r?i.secondYear:i.year),[b,C]=(0,te.useState)(null),m=(0,te.useRef)(!1),v=(0,te.useRef)(null),x=r?i.secondYear:i.year,T=r?i.secondMonth:i.month,y=qe(),L=ot(e);(0,te.useEffect)(()=>{!m.current||!b||(m.current=!1,v.current?.querySelector(`[data-date="${se(b,dt)}"]:enabled`)?.focus())});let p=M=>{let Q=v.current?.closest('[role="dialog"]')??document,z=Q.querySelectorAll(`.${c.day}:enabled`),I=Array.from(z).findIndex(F=>F.dataset.date===M),W=Q.querySelector(`.${c.day}.${c.selected}`),H=t&&i.tempValue.startDate&&!i.tempValue.endDate&&W;z.forEach((F,le)=>{let be=F.classList.contains(c.selected),S=le===I;if(H){let w=Array.from(z).indexOf(W),[V,Y]=[Math.min(w,I),Math.max(w,I)];F.classList.toggle(c.rangeItem,le>=V&&le<=Y),F.classList.toggle(c.selectedHover,S)}else F.classList.toggle(c.selectedHover,be&&S),F.classList.toggle(c.hovered,!be&&S)})},f=()=>d==="month"?(0,g.jsx)(ur,{months:L,onChange:j,selectedMonth:r?i.secondMonth:i.month}):d==="year"?(0,g.jsx)(_r,{onChange:k,selectedYear:r?i.secondYear:i.year,startYear:h}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)("div",{className:c.daysOfWeek,children:rt(e).map(M=>(0,g.jsx)(pr,{day:M},M))}),(0,g.jsx)("div",{className:c.calendarGrid,children:y})]}),j=M=>{n(M),u("day")},k=M=>{s(M),u("day")},U=M=>{u(d!=="day"&&d===M?"day":M)},ne=()=>{D(h-20)},Ve=()=>{D(h+20)};function qe(){let M=ct(new Date(x,T,1)),Q=o?ze(o):-1/0,z=a?ze(a):1/0,I=new Date().toDateString(),W=new Intl.DateTimeFormat(e,{dateStyle:"full"}),H=(S,w)=>S?.toDateString()===w.toDateString(),F=Array.from({length:42},(S,w)=>{let V=new Date(x,T,w-M+1),Y=V.getMonth()===T,_=!Y||V.getTime()<Q||V.getTime()>z;return{date:V,isCurrentMonth:Y,isDisabled:_}}),le=F.filter(({isDisabled:S})=>!S).map(({date:S})=>S),be=[b,i.tempValue.startDate,new Date].map(S=>le.find(w=>H(S,w))).find(Boolean)??le[0];return F.map(({date:S,isCurrentMonth:w,isDisabled:V})=>{let Y=se(S,dt),_=w&&H(i.tempValue.startDate,S),P=w&&H(i.tempValue.endDate,S),N=_||P,A=i.rangeDays.some(jt=>H(jt,S)),vt=w&&S.toDateString()===I;return(0,g.jsx)(R,{"aria-current":vt?"date":void 0,"aria-hidden":w?void 0:!0,"aria-label":W.format(S),"aria-pressed":w?N:void 0,className:`${c.day} ${w?"":c.disabledDay} ${N?c.selected:""} ${A&&!N&&w?c.rangeItem:""} ${w&&V?c.outOfRangeDay:""} ${vt?c.today:""}`,"data-date":Y,disabled:V,onClick:()=>{w&&l(S.getDate(),r)},onFocus:()=>{w&&p(Y)},onKeyDown:je,onMouseEnter:()=>{w&&p(Y)},tabIndex:be&&H(be,S)?0:-1,variant:"unstyled",children:(0,g.jsx)("span",{className:c.dayText,children:S.getDate()})},Y)})}function je(M){let Q=M.currentTarget.dataset.date,z=cr[M.key];if(!Q||!z)return;M.preventDefault();let I=z(de(Q,dt)),W=I.getTime();if(o&&W<ze(o)||a&&W>ze(a))return;let H=(I.getFullYear()-x)*12+I.getMonth()-T;H!==0&&n(T+H),m.current=!0,C(I)}return(0,g.jsxs)("div",{className:c.calendar,ref:v,children:[(0,g.jsx)("div",{className:c.calendarHeader,children:(0,g.jsxs)("div",{className:c.monthYearSelectors,children:[d!=="year"?(0,g.jsx)(R,{"aria-label":"Previous month",onClick:()=>{n((r?i.secondMonth:i.month)-1)},variant:"icon",children:(0,g.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:(0,g.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"})})}):(0,g.jsx)(R,{"aria-label":"Previous years",onClick:ne,variant:"icon",children:(0,g.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:(0,g.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"})})}),(0,g.jsx)(R,{className:c.monthSelector,label:L[r?i.secondMonth:i.month],onClick:()=>{U("month")},variant:"unstyled"}),(0,g.jsx)("strong",{children:"/"}),(0,g.jsx)(R,{className:c.yearSelector,label:`${r?i.secondYear:i.year}`,onClick:()=>{U("year")},variant:"unstyled"}),d!=="year"?(0,g.jsx)(R,{"aria-label":"Next month",onClick:()=>{n((r?i.secondMonth:i.month)+1)},variant:"icon",children:(0,g.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:(0,g.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"})})}):(0,g.jsx)(R,{"aria-label":"Next years",onClick:Ve,variant:"icon",children:(0,g.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:(0,g.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"})})})]})}),f()]})}var X=require("react");var At=require("react");var q={"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 re=require("react/jsx-runtime"),mr=(e,t,r,o,a,n,l)=>{let s=t?q.disabled:"",i=r&&o?q.invalid:"",d=o?q[a]:"",u=o?q[n]:"",h=o?q[l]:"";return`${q.base} ${u} ${d} ${h}
7
+ ${s} ${i} ${e}`.trim()},br=e=>({"--input-color":`var(--plume-color-${e}-text)`}),Ce=(0,At.forwardRef)(({addonBefore:e,addonAfter:t,elementBefore:r,elementAfter:o,style:a,className:n="",colorScheme:l="secondary",disabled:s=!1,readOnly:i=!1,shape:d="rounded",size:u="md",type:h="text",variant:D="outline",mask:b,value:C,defaultValue:m,onChange:v,...x},T)=>{let y=D!=="unstyled",L=x["aria-invalid"]===!0||x["aria-invalid"]==="true",p=mr(n,s,L,y,d,u,D),f={...br(L?"error":l),...a},j=e||t||r||o,{value:k,onChange:U}=tt({mask:b,value:typeof C=="string"?C:void 0,defaultValue:typeof m=="string"?m:void 0,onChange:v}),ne={onChange:U,value:b?k:C,defaultValue:b?void 0:m};return j?(0,re.jsxs)("div",{className:y?q.inputGroup:"",style:f,children:[e?(0,re.jsx)("span",{className:y?q.addOn:"",children:e}):null,r?(0,re.jsx)("span",{className:y?q.element:"",children:r}):null,(0,re.jsx)("input",{className:p,disabled:s,readOnly:i,ref:T,type:h,...ne,...x}),t?(0,re.jsx)("span",{className:y?q.addOn:"",children:t}):null,o?(0,re.jsx)("span",{className:y?q.element:"",children:o}):null]}):(0,re.jsx)("input",{className:p,disabled:s,readOnly:i,ref:T,style:f,type:h,...ne,...x})});Ce.displayName="Input";var oe=require("react/jsx-runtime");function Ot({disabled:e,displayFormat:t,inputRef:r,isRange:o,language:a,onClick:n,onBlur:l,readOnly:s,...i}){let{state:{modalOpen:d,value:{startDate:u,endDate:h}},dispatch:D}=Ne(),[b,C]=(0,X.useState)(Ae({displayFormat:t,isRange:o,...u&&{startDate:u},...h&&{endDate:h},language:a})),[m,v]=(0,X.useState)(!0),x=et({value:b,delay:500}),T=(0,X.useRef)(null),y=(0,X.useCallback)(k=>{T.current=k,typeof r=="function"?r(k):r&&(r.current=k)},[r]);(0,X.useEffect)(()=>{if(![10,23].includes(x.length)||m)return;let k=t??fe(a);if(x.length===10&&!o&&De(x,a,t)){let U=de(x,k);D({type:"SET_VALUE",payload:{startDate:U,endDate:null}})}else if(x.length===23&&De(x.split(" - ")[0],a,t)&&De(x.split(" - ")[1],a,t)){let[U,ne]=x.split(" - ");D({type:"SET_VALUE",payload:{startDate:de(U,k),endDate:de(ne,k)}})}},[x,D,t,m,o,a]),(0,X.useEffect)(()=>{C(Ae({displayFormat:t,isRange:o,...u&&{startDate:u},...h&&{endDate:h},language:a}))},[u,h,t,o,a]);let L=()=>{v(!0),T.current?.focus(),n()},p=k=>{v(!1),C(k.target.value)},f=(t??fe(a)).replace(/[a-zA-Z]/g,"#"),j=o?`${f} - ${f}`:f;return(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)(Ce,{disabled:e,inputMode:"numeric",mask:j,onBlur:()=>{l?.({startDate:u,endDate:h})},onChange:p,readOnly:s,ref:y,type:"text",value:b,variant:"unstyled",...i}),(0,oe.jsx)(R,{"aria-expanded":d,"aria-haspopup":"dialog","aria-label":"Open calendar",className:c.inputButton,disabled:e||s,onClick:L,shape:"pill",variant:"icon",children:(0,oe.jsx)("svg",{className:c.inputButtonIcon,viewBox:"0 -960 960 960",xmlns:"http://www.w3.org/2000/svg",children:(0,oe.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 B=require("react/jsx-runtime"),fr="en",Nt={apply:"Apply",cancel:"Cancel"},hr=(e,t)=>({"--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)`,...t??{}});function gr({colorScheme:e,labels:{cancel:t,apply:r},onApply:o,onCancel:a}){return(0,B.jsxs)("div",{className:c.footerActions,children:[(0,B.jsx)(R,{className:c.footerButton,label:t,onClick:a,variant:"ghost"}),(0,B.jsx)(R,{className:c.footerButtonApply,colorScheme:e,label:r,onClick:o})]})}var yr=(e,t,r,o,a,n)=>{let l=n&&(n!=="md"||o==="unstyled")?c[n]:"",s=a&&(a!=="rounded"||o==="unstyled")?c[a]:"",i=o!=="unstyled"?c[o]:"",d=t?c.disabled:"",u=r&&o!=="unstyled"?c.invalid:"";return`${l} ${s} ${i}
8
+ ${d} ${u} ${e}`.trim()},ut=(0,G.forwardRef)(({onChange:e,onBlur:t,inputRef:r,displayFormat:o,style:a,showFooter:n,minDate:l,maxDate:s,placeholder:i,value:d,disabled:u=!1,className:h="",colorScheme:D="secondary",variant:b="outline",config:C,isCalendar:m=!1,isRange:v=!1,...x},T)=>{let y=C?.language??fr,L={apply:C?.footer?.apply??Nt.apply,cancel:C?.footer?.cancel??Nt.cancel},[p,f]=(0,G.useReducer)(st,d,_=>_?st(it,{type:"SET_VALUE",payload:_}):it),j=(0,G.useRef)(!0),k=Qe({callback:()=>{f({type:"CLOSE_MODAL"})}}),U=_=>{k.current=_,typeof T=="function"?T(_):T&&(T.current=_)},{size:ne=b!=="unstyled"?"md":void 0,shape:Ve=b!=="unstyled"?"rounded":void 0}=x,qe=yr(h,u,x["aria-invalid"]===!0||x["aria-invalid"]==="true",b,Ve,ne);(0,G.useEffect)(()=>{if(p.modalOpen)if(v&&p.tempValue.startDate&&p.tempValue.endDate){let _=[],P=new Date(p.tempValue.startDate);for(;P<=p.tempValue.endDate;)_.push(new Date(P)),P.setDate(P.getDate()+1);f({type:"SET_RANGE_DAYS",payload:_})}else f({type:"SET_RANGE_DAYS",payload:[]})},[v,p.tempValue,p.modalOpen]),(0,G.useEffect)(()=>{if(j.current){j.current=!1;return}f({type:"SET_VALUE",payload:d??$e})},[d]),(0,G.useEffect)(()=>{p.modalOpen&&k.current?.querySelector('[role="dialog"] [data-date][tabindex="0"]')?.focus()},[p.modalOpen,k]);let je=()=>{f({type:"TOGGLE_MODAL"})},M=()=>{m||(f({type:"CLOSE_MODAL"}),k.current?.querySelector("input")?.focus())};(0,G.useEffect)(()=>{if(!p.modalOpen||m)return;let _=P=>{P.key!=="Escape"||!k.current?.contains(P.target)||(f({type:"CLOSE_MODAL"}),k.current.querySelector("input")?.focus())};return document.addEventListener("keydown",_),()=>{document.removeEventListener("keydown",_)}},[p.modalOpen,m,k]);let Q=_=>{let P=_.relatedTarget;P&&!_.currentTarget.contains(P)&&f({type:"CLOSE_MODAL"})},z=(_,P)=>_*12+P,I=(_,P)=>{f({type:"SET_YEAR",payload:Math.floor(_/12)}),f({type:"SET_MONTH",payload:_%12}),f({type:"SET_SECOND_YEAR",payload:Math.floor(P/12)}),f({type:"SET_SECOND_MONTH",payload:P%12})},W=(_,P)=>{let N=z(_,P);I(N,Math.max(z(p.secondYear,p.secondMonth),N+1))},H=(_,P)=>{let N=z(_,P);I(Math.min(z(p.year,p.month),N-1),N)},F=_=>{W(_,p.month)},le=_=>{W(p.year,_)},be=_=>{H(_,p.secondMonth)},S=_=>{H(p.secondYear,_)},w=()=>{f({type:"SET_VALUE",payload:p.tempValue}),p.tempValue.startDate&&e({startDate:p.tempValue.startDate,endDate:p.tempValue.endDate}),M()},V=(_,P)=>{let N=new Date(P?p.secondYear:p.year,P?p.secondMonth:p.month,_),A={...p.tempValue};n||!v||!A.startDate||A.endDate?(A.startDate=N,A.endDate=null):N<A.startDate?(A.endDate=A.startDate,A.startDate=N):A.endDate=N,f({type:"SET_TEMP_VALUE",payload:A}),!n&&(!v||A.endDate)&&(e({startDate:A.startDate,endDate:A.endDate}),f({type:"SET_VALUE",payload:A}),M())},Y=()=>{let _=o??fe(y);return v?`${_} - ${_}`:_};return(0,B.jsx)(lt.Provider,{value:{state:p,dispatch:f},children:(0,B.jsxs)("div",{className:c.datePicker,onBlur:Q,ref:U,style:hr(D,a),children:[!m&&(0,B.jsx)(Ot,{className:qe,disabled:u,displayFormat:o,inputRef:r,isRange:v,language:y,onBlur:t,onClick:je,placeholder:i??Y(),...x}),m||p.modalOpen?(0,B.jsxs)("div",{"aria-label":"Calendar",className:c.datePickerModal,role:"dialog",children:[(0,B.jsxs)("div",{className:v?c.calendarContainerDouble:c.calendarContainer,children:[(0,B.jsx)(pt,{isRange:v,language:y,maxDate:s,minDate:l,onMonthChange:le,onSelectDate:V,onYearChange:F}),v?(0,B.jsx)(pt,{isRange:v,isSecondCalendar:!0,language:y,maxDate:s,minDate:l,onMonthChange:S,onSelectDate:V,onYearChange:be}):null]}),n?(0,B.jsx)(gr,{colorScheme:D,labels:L,onApply:w,onCancel:M}):null]}):null]})})});ut.displayName="DatePicker";var pe=require("react");var ae={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 ce=require("react/jsx-runtime"),_t=(0,pe.forwardRef)(({children:e,className:t="",disabled:r=!1,errorText:o,helperText:a,invalid:n=!!o,label:l,optionalText:s,orientation:i="vertical",readOnly:d=!1,required:u=!1,style:h},D)=>{let b=(0,pe.useId)(),C=pe.Children.only(e),m=C.props,v=m.id??`${b}-control`,x=`${b}-helper`,T=`${b}-error`,y=n&&!!o,L=[m["aria-describedby"],y?T:null,a?x:null].filter(Boolean).join(" ")||void 0,p=`${ae.field} ${ae[i]} ${r?ae.disabled:""} ${t}`.trim();return(0,ce.jsxs)("div",{className:p,ref:D,style:h,children:[l?(0,ce.jsxs)("label",{className:ae.label,htmlFor:v,children:[l,u?(0,ce.jsx)("span",{"aria-hidden":"true",className:ae.requiredIndicator,children:"*"}):null,!u&&s?(0,ce.jsx)("span",{className:ae.optionalText,children:s}):null]}):null,(0,pe.cloneElement)(C,{id:v,"aria-describedby":L,"aria-invalid":n||m["aria-invalid"]||void 0,disabled:r||m.disabled,readOnly:d||m.readOnly,required:u||m.required}),a?(0,ce.jsx)("p",{className:ae.helperText,id:x,children:a}):null,y?(0,ce.jsx)("p",{className:ae.errorText,id:T,children:o}):null]})});_t.displayName="Field";var Be=require("react");var J=require("react");var $t=(e,{type:t,payload:r})=>{switch(t){case"SET_ACTIVE_TAB_INDEX":return{...e,index:r};case"SET_CONFIG":return{...e,...r};default:return e}};var $={"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 Ht=require("react/jsx-runtime"),zt=(0,J.createContext)(void 0);function It({config:e,children:t}){let[r,o]=(0,J.useReducer)($t,e),a=r.alignment!=="left"||r.isStyled?$[r.alignment]:"",n=r.isStyled?$[r.size]:"",l=r.isStyled?$[r.variant]:"";(0,J.useEffect)(()=>{o({type:"SET_CONFIG",payload:e})},[e.alignment,e.baseId,e.colorScheme,e.index,e.isLazy,e.orientation,e.size,e.variant]);let s=i=>{o({type:"SET_ACTIVE_TAB_INDEX",payload:i})};return(0,Ht.jsx)(zt.Provider,{value:(0,J.useMemo)(()=>({...r,alignmentClass:a,sizeClass:n,variantClass:l,setActiveTabIndex:s}),[a,n,r,l]),children:t})}var Ie=(e,t)=>`${e}-tab-${t}`,He=(e,t)=>`${e}-panel-${t}`,ue=()=>{let e=(0,J.useContext)(zt);if(!e)throw new Error("useTabs must be used within a TabsProvider");return e};var mt=require("react/jsx-runtime"),vr=(e,t)=>({"--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)`,...t??{}}),bt=(0,Be.forwardRef)(({children:e,style:t,onChange:r,index:o=0,alignment:a="left",className:n="",colorScheme:l="secondary",orientation:s="horizontal",size:i="md",variant:d="underline",isLazy:u=!1,...h},D)=>{let b=(0,Be.useId)(),C=h.id??b,m=d!=="unstyled",v=`${s!=="horizontal"||m?$[s]:""} ${m?$.tabs:""} ${n}`.trim();return(0,mt.jsx)(It,{config:{index:o,alignment:a,baseId:C,colorScheme:l,isLazy:u,isStyled:m,orientation:s,size:i,variant:d,onChange:r},children:(0,mt.jsx)("div",{className:v,ref:D,style:vr(l,t),...h,children:e})})});bt.displayName="Tabs";var _e=require("react");var Bt=require("react/jsx-runtime"),ft=(0,_e.forwardRef)(({children:e,...t},r)=>{let{index:o,alignmentClass:a,isStyled:n,orientation:l,variantClass:s}=ue();return(0,Bt.jsx)("div",{"aria-orientation":l,className:`${n?$.tablist:""} ${s} ${a}`.trim(),ref:r,role:"tablist",...t,children:_e.Children.map(e,(i,d)=>(0,_e.isValidElement)(i)?(0,_e.cloneElement)(i,{index:d,isActive:d===o}):i)})});ft.displayName="TabList";var Ft=require("react");var Vt=require("react/jsx-runtime"),ht=(0,Ft.forwardRef)(({label:e,isActive:t,disabled:r,extraContentLeft:o,extraContentRight:a,index:n=0,children:l,className:s=""},i)=>{let{alignmentClass:d,baseId:u,isStyled:h,orientation:D,sizeClass:b,setActiveTabIndex:C,onChange:m}=ue(),[v,x]=D==="vertical"?["ArrowUp","ArrowDown"]:["ArrowLeft","ArrowRight"],T=()=>{m&&m(n),C(n)},y=L=>{let p=L.currentTarget.closest('[role="tablist"]');if(!p)return;let f=Array.from(p.querySelectorAll('[role="tab"]:enabled')),j=f.indexOf(L.currentTarget),k={[v]:f[(j-1+f.length)%f.length],[x]:f[(j+1)%f.length],Home:f[0],End:f[f.length-1]}[L.key];k&&(L.preventDefault(),k.focus(),k.click())};return(0,Vt.jsx)(R,{"aria-controls":t?He(u,n):void 0,"aria-selected":!!t,className:`${h?$.tab:""} ${d} ${b} ${t&&h?$.active:""} ${s}`.trim(),disabled:r,iconLeft:o,iconRight:a,id:Ie(u,n),label:e??"",onClick:T,onKeyDown:y,ref:i,role:"tab",tabIndex:t?0:-1,variant:"unstyled",children:l})});ht.displayName="Tab";var me=require("react");var qt=require("react/jsx-runtime"),gt=(0,me.forwardRef)(({children:e,...t},r)=>{let{index:o}=ue();return(0,qt.jsx)("div",{ref:r,...t,children:me.Children.map(e,(a,n)=>n!==o?null:(0,me.isValidElement)(a)?(0,me.cloneElement)(a,{index:n}):a)})});gt.displayName="TabPanels";var Te=require("react");var Fe=require("react/jsx-runtime"),yt=(0,Te.forwardRef)(({children:e,className:t="",index:r=0},o)=>{let{baseId:a,colorScheme:n,isLazy:l,isStyled:s}=ue(),i=l?at(e):e;return(0,Fe.jsx)("div",{"aria-labelledby":Ie(a,r),className:`${s?$.panel:""} ${t}`.trim(),id:He(a,r),ref:o,role:"tabpanel",tabIndex:0,children:l?(0,Fe.jsx)(Te.Suspense,{fallback:(0,Fe.jsx)(he,{color:n}),children:(0,Te.createElement)(i)}):i})});yt.displayName="TabPanel";0&&(module.exports={Button,DatePicker,Field,Input,Spinner,Tab,TabList,TabPanel,TabPanels,Tabs,ThemeProvider,applyMask,colorVar,deepMerge,defaultDarkTheme,defaultTheme,formatDate,getContrastColor,getContrastRatio,getDarkenColor,getDateFormatByLanguage,getDateFromDateString,getDateStringByLanguage,getDaysOfWeekByLanguage,getLightenColor,getMonthsByLanguage,lazyLoadContent,themeToCssVars,useClickOutside,useDebounce,useMask,useTheme,validateFormatDate});
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ export*from"./theme/index.mjs";export*from"./hooks/index.mjs";export*from"./utils/index.mjs";export*from"./components/interaction/button/index.mjs";export*from"./components/form/datepicker/index.mjs";export*from"./components/form/field/index.mjs";export*from"./components/form/input/index.mjs";export*from"./components/presentation/spinner/index.mjs";export*from"./components/navigation/tabs/index.mjs";
@@ -0,0 +1 @@
1
+ import{Portal as o}from"./portal.mjs";import{useLayer as p}from"./layer.mjs";import{useScrollLock as r}from"./use-scroll-lock.mjs";import{useDismiss as n}from"./use-dismiss.mjs";import{getTabbableElements as a,useFocusTrap as l}from"./use-focus-trap.mjs";import{computePosition as P,parsePlacement as c}from"./position.mjs";import{usePosition as x}from"./use-position.mjs";export{o as Portal,P as computePosition,a as getTabbableElements,c as parsePlacement,n as useDismiss,l as useFocusTrap,p as useLayer,x as usePosition,r as useScrollLock};
@@ -0,0 +1 @@
1
+ "use client";import{useCallback as c,useEffect as u,useRef as s}from"react";var e=[];function i(n){let t=s({});return u(()=>{if(!n)return;let o=t.current;return e.push(o),()=>{let r=e.indexOf(o);r!==-1&&e.splice(r,1)}},[n]),c(()=>e[e.length-1]===t.current,[])}export{i as useLayer};
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as c,useState as u}from"react";import{createPortal as l}from"react-dom";import{useThemeRoot as m}from"../theme/theme-root.mjs";function s({children:o,container:r}){let[n,a]=u(!1),e=m();c(()=>{a(!0)},[]);let t=r??(e===void 0?document.body:e);return!n||!t?null:l(o,t)}export{s as Portal};
@@ -0,0 +1 @@
1
+ var f={top:"bottom",bottom:"top",left:"right",right:"left"};function w(i){let[t,e="center"]=i.split("-");return{side:t,align:e}}function c(i,t,e,r,n){let m=i==="top"||i==="bottom",x=()=>t==="start"?e.x:t==="end"?e.x+e.width-r.width:e.x+(e.width-r.width)/2,b=()=>t==="start"?e.y:t==="end"?e.y+e.height-r.height:e.y+(e.height-r.height)/2;return m?{x:x(),y:i==="top"?e.y-r.height-n:e.y+e.height+n}:{x:i==="left"?e.x-r.width-n:e.x+e.width+n,y:b()}}function y(i,t,e,r,n){return i==="top"?Math.max(0,n-t.y):i==="bottom"?Math.max(0,t.y+e.height-(r.height-n)):i==="left"?Math.max(0,n-t.x):Math.max(0,t.x+e.width-(r.width-n))}var d=(i,t,e)=>Math.max(t,Math.min(i,e));function P({anchor:i,floating:t,viewport:e,placement:r="bottom",offset:n=8,padding:m=8,flip:x=!0,shift:b=!0}){let{side:S,align:h}=w(r),o=S,u=c(o,h,i,t,n);if(x){let s=y(o,u,t,e,m);if(s>0){let p=f[o],l=c(p,h,i,t,n);y(p,l,t,e,m)<s&&(o=p,u=l)}}return b&&(u=o==="top"||o==="bottom"?{x:d(u.x,m,e.width-m-t.width),y:u.y}:{x:u.x,y:d(u.y,m,e.height-m-t.height)}),{x:u.x,y:u.y,side:o,placement:h==="center"&&!r.includes("-")?o:`${o}-${h}`}}export{P as computePosition,w as parsePlacement};
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as a,useRef as p}from"react";function D({enabled:t,onDismiss:s,elements:o,isTopmost:i=()=>!0,escapeKey:r=!0,outsidePress:u=!0}){let e=p({onDismiss:s,elements:o,isTopmost:i});a(()=>{e.current={onDismiss:s,elements:o,isTopmost:i}}),a(()=>{if(!t)return;let d=n=>{n.key!=="Escape"||!e.current.isTopmost()||e.current.onDismiss("escape")},c=n=>{if(!e.current.isTopmost())return;let m=n.target;e.current.elements.some(l=>l?.contains(m))||e.current.onDismiss("outside")};return r&&document.addEventListener("keydown",d),u&&document.addEventListener("pointerdown",c),()=>{document.removeEventListener("keydown",d),document.removeEventListener("pointerdown",c)}},[t,r,u])}export{D as useDismiss};
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as m,useRef as T}from"react";var h=["a[href]","area[href]","button","input","select","textarea","summary","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"[tabindex]"].join(",");function y(e){return Array.from(e.querySelectorAll(h)).filter(n=>{if(n.tabIndex<0||n.disabled||n instanceof HTMLInputElement&&n.type==="hidden"||n.closest("[hidden], [inert]"))return!1;let s=window.getComputedStyle(n);return s.display!=="none"&&s.visibility!=="hidden"})}function v(e,{active:n,initialFocus:s,restoreFocus:l=!0,returnFocus:a,isTopmost:c=()=>!0}){let o=T({initialFocus:s,restoreFocus:l,returnFocus:a,isTopmost:c});m(()=>{o.current={initialFocus:s,restoreFocus:l,returnFocus:a,isTopmost:c}}),m(()=>{if(!n||!e)return;let E=document.activeElement,f=()=>{e.hasAttribute("tabindex")||e.setAttribute("tabindex","-1"),e.focus()},d=o.current.initialFocus??y(e)[0];d?d.focus():f();let b=t=>{if(t.key!=="Tab"||!o.current.isTopmost())return;let r=y(e);if(r.length===0){t.preventDefault(),f();return}let i=r[0],p=r[r.length-1],u=document.activeElement;e.contains(u)?t.shiftKey&&(u===i||u===e)?(t.preventDefault(),p.focus()):!t.shiftKey&&u===p&&(t.preventDefault(),i.focus()):(t.preventDefault(),i.focus())};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b);let t=o.current.returnFocus??E;o.current.restoreFocus&&t?.isConnected&&t.focus()}},[n,e])}export{y as getTabbableElements,v as useFocusTrap};
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as e,useLayoutEffect as o}from"react";var f=typeof window>"u"?e:o;export{f as useIsomorphicLayoutEffect};
@@ -0,0 +1 @@
1
+ "use client";import{useCallback as w,useEffect as h,useState as b}from"react";import{computePosition as y}from"./position.mjs";import{useIsomorphicLayoutEffect as v}from"./use-isomorphic-layout-effect.mjs";function R({anchor:i,floating:o,enabled:r,placement:d="bottom",offset:c,padding:m,flip:p,shift:a}){let[l,u]=b({x:0,y:0,placement:d,isPositioned:!1}),t=w(()=>{if(!i||!o)return;let e=i.getBoundingClientRect(),f=o.getBoundingClientRect(),{documentElement:P}=document,n=y({anchor:{x:e.left,y:e.top,width:e.width,height:e.height},floating:{width:f.width,height:f.height},viewport:{width:P.clientWidth||window.innerWidth,height:P.clientHeight||window.innerHeight},placement:d,offset:c,padding:m,flip:p,shift:a});u(s=>s.isPositioned&&s.x===n.x&&s.y===n.y&&s.placement===n.placement?s:{x:n.x,y:n.y,placement:n.placement,isPositioned:!0})},[i,o,d,c,m,p,a]);return v(()=>{if(!r)return;t(),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0);let e=typeof ResizeObserver>"u"?void 0:new ResizeObserver(t);return i&&e?.observe(i),o&&e?.observe(o),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0),e?.disconnect()}},[r,t,i,o]),h(()=>{r||u(e=>e.isPositioned?{...e,isPositioned:!1}:e)},[r]),{placement:l.placement,isPositioned:l.isPositioned,style:{position:"fixed",top:l.y,left:l.x}}}export{R as usePosition};
@@ -0,0 +1 @@
1
+ "use client";import{useEffect as l}from"react";var t=0,n;function u(){if(t+=1,t>1)return;let{body:e,documentElement:d}=document,o={overflow:e.style.overflow,paddingRight:e.style.paddingRight},i=window.innerWidth-d.clientWidth;if(i>0){let r=Number.parseFloat(window.getComputedStyle(e).paddingRight)||0;e.style.paddingRight=`${r+i}px`}e.style.overflow="hidden",n=()=>{e.style.overflow=o.overflow,e.style.paddingRight=o.paddingRight}}function c(){t=Math.max(0,t-1),!(t>0)&&(n?.(),n=void 0)}function s(e){l(()=>{if(e)return u(),c},[e])}export{s as useScrollLock};
@@ -0,0 +1 @@
1
+ ._spinner_q8rz1_7{animation:_spin_q8rz1_7 var(--spinner-animation-duration) linear infinite;border-color:var(--spinner-scheme, currentColor);border-radius:50%;border-top-color:transparent;border-width:var(--spinner-border-width, 3px);display:inline-block;width:var(--plume-space-8);height:var(--plume-space-8)}._sm_q8rz1_18{width:var(--plume-space-4);height:var(--plume-space-4)}._md_q8rz1_23{width:var(--plume-space-8);height:var(--plume-space-8)}._lg_q8rz1_28{width:var(--plume-space-12);height:var(--plume-space-12)}._solid_q8rz1_33{border-style:solid}._dashed_q8rz1_38{border-style:dashed}._dotted_q8rz1_43{border-style:dotted}._double_q8rz1_48{border-style:double}@keyframes _spin_q8rz1_7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._loader_q8rz1_63{width:45px;aspect-ratio:.75;--c: no-repeat linear-gradient(#000 0 0);background:var(--c) 0% 50%,var(--c) 50% 50%,var(--c) 100% 50%;animation:_l7_q8rz1_1 1s infinite linear alternate}@keyframes _l7_q8rz1_1{0%{background-size:20% 50%,20% 50%,20% 50%}20%{background-size:20% 20%,20% 50%,20% 50%}40%{background-size:20% 100%,20% 20%,20% 50%}60%{background-size:20% 50%,20% 100%,20% 20%}80%{background-size:20% 50%,20% 50%,20% 100%}to{background-size:20% 50%,20% 50%,20% 50%}}._loader_q8rz1_63{width:15px;aspect-ratio:1;border-radius:50%;animation:_l5_q8rz1_1 1s infinite linear alternate}@keyframes _l5_q8rz1_1{0%{box-shadow:20px 0 #000,-20px 0 #0002;background:#000}33%{box-shadow:20px 0 #000,-20px 0 #0002;background:#0002}66%{box-shadow:20px 0 #0002,-20px 0 #000;background:#0002}to{box-shadow:20px 0 #0002,-20px 0 #000;background:#000}}._loader_q8rz1_63{display:inline-grid;padding:5px;background:#fff;filter:blur(4px) contrast(12)}._loader_q8rz1_63:before{content:"";height:40px;aspect-ratio:3;--c: #0000 64%, #000 66% 98%, #0000 101%;background:radial-gradient(35% 146% at 50% 159%,var(--c)) 0 0,radial-gradient(35% 146% at 50% -59%,var(--c)) 100% 100%;background-size:calc(200% / 3) 50%;background-repeat:repeat-x;animation:_l11_q8rz1_1 .8s infinite linear}@keyframes _l11_q8rz1_1{to{background-position:-200% 0,-100% 100%}}._loader_q8rz1_63{--d: 22px;width:4px;height:4px;border-radius:50%;color:#25b09b;box-shadow:calc(1 * var(--d)) calc(0 * var(--d)) 0 0,calc(.707 * var(--d)) calc(.707 * var(--d)) 0 1px,calc(0 * var(--d)) calc(1 * var(--d)) 0 2px,calc(-.707 * var(--d)) calc(.707 * var(--d)) 0 3px,calc(-1 * var(--d)) calc(0 * var(--d)) 0 4px,calc(-.707 * var(--d)) calc(-.707 * var(--d)) 0 5px,calc(0 * var(--d)) calc(-1 * var(--d)) 0 6px;animation:_l27_q8rz1_1 1s infinite steps(8)}@keyframes _l27_q8rz1_1{to{transform:rotate(1turn)}}._loader_q8rz1_63{width:48px;height:48px;background:#fff;display:inline-block;border-radius:50%;box-sizing:border-box;animation:_animloader_q8rz1_1 1s ease-in infinite}@keyframes _animloader_q8rz1_1{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}._button_1l5be_3{align-items:center;background-color:transparent;border:none;border-radius:var(--plume-radius-4);display:inline-flex;font-weight:var(--plume-font-weight-semibold);justify-content:center;padding-inline:var(--plume-space-4);transition:color .3s,background-color .3s;user-select:none}._sm_1l5be_18{font-size:var(--plume-font-size-xs);height:var(--plume-space-8);padding-inline:var(--plume-space-2)}._md_1l5be_24{height:var(--plume-space-10);padding-inline:var(--plume-space-4)}._lg_1l5be_29{font-size:var(--plume-font-size-lg);height:var(--plume-space-12);padding-inline:var(--plume-space-6)}._rounded_1l5be_35{border-radius:var(--plume-radius-4)}._pill_1l5be_39{border-radius:var(--plume-radius-full)}._solid_1l5be_43{background-color:var(--button-solid-bg);color:var(--button-contrast-color)}._outline_1l5be_49{border:1px solid var(--button-color);color:var(--button-color)}._ghost_1l5be_55{color:var(--button-color)}._link_1l5be_60{color:var(--button-color);text-decoration-line:underline;text-underline-offset:var(--plume-space-2)}._icon_1l5be_67{color:var(--button-color);padding:var(--plume-space-2)}:is(._outline_1l5be_49,._ghost_1l5be_55,._icon_1l5be_67):enabled:hover{background-color:var(--button-hover-alt-color)}._link_1l5be_60:enabled:hover{color:var(--button-hover-color);text-decoration-color:var(--button-hover-color)}._solid_1l5be_43:enabled:hover{background-color:var(--button-solid-hover)}._outline_1l5be_49:enabled:hover{border-color:var(--button-hover-color)}._button_1l5be_3:enabled:focus-visible{outline:2px solid var(--button-color);outline-offset:2px}:is(._outline_1l5be_49,._ghost_1l5be_55):enabled:active{background-color:var(--button-focus-alt-color)}:is(._icon_1l5be_67,._link_1l5be_60):enabled:active{color:var(--button-focus-color)}._solid_1l5be_43:enabled:active{background-color:var(--button-solid-active)}._link_1l5be_60:enabled:active{text-decoration-color:var(--button-focus-color)}button._disabled_1l5be_111{opacity:.5;cursor:not-allowed}._iconMargin_1l5be_116{margin:0 var(--plume-space-1)}._hidden_1l5be_120{display:none}._spinnerMargin_1l5be_124{margin-left:var(--plume-space-1)}._datePicker_87pta_8{position:relative}._datePickerInputText_87pta_12{border:none;border-radius:var(--plume-radius-4);box-sizing:border-box;min-width:min(18rem,100%);width:100%;height:var(--plume-space-10);padding:0 var(--plume-space-4);position:relative;display:block;outline:2px solid transparent;outline-offset:2px;color:var(--plume-muted);background:none}._inputButton_87pta_28{position:absolute;top:0;bottom:0;right:0;background-color:transparent;border-color:transparent;margin-right:var(--plume-space-2);margin-block-start:.125rem;margin-block-end:.125rem}._inputButtonIcon_87pta_40{height:var(--plume-space-5);width:var(--plume-space-5);fill:var(--plume-muted)}._sm_87pta_46{font-size:var(--plume-font-size-xs);height:var(--plume-space-8);padding:0 var(--plume-space-2)}._md_87pta_52{height:var(--plume-space-10);padding:0 var(--plume-space-4)}._lg_87pta_57{font-size:var(--plume-font-size-lg);height:var(--plume-space-12);padding:0 var(--plume-space-6)}:is(._datePickerInputText_87pta_12,._sm_87pta_46,._md_87pta_52,._lg_87pta_57){padding-inline-end:3rem}._lg_87pta_57{padding-inline-end:3.25rem}._sm_87pta_46+._inputButton_87pta_28>._inputButtonIcon_87pta_40{height:1.125rem;width:1.125rem}._lg_87pta_57+._inputButton_87pta_28>._inputButtonIcon_87pta_40{height:var(--plume-space-6);width:var(--plume-space-6)}._rounded_87pta_81{border-radius:var(--plume-radius-4)}:is(._outline_87pta_85)._pill_87pta_85{border-radius:var(--plume-radius-full)}._outline_87pta_85{border:1px solid var(--plume-border)}._filled_87pta_94{background-color:var(--plume-surface-muted);border-block-end:1px solid var(--plume-border);border-bottom-left-radius:0;border-bottom-right-radius:0}._underline_87pta_102{border-radius:0;border-block-end:1px solid var(--plume-border)}:is(._outline_87pta_85,._filled_87pta_94,._underline_87pta_102):enabled:hover{border-color:color-mix(in hsl,var(--plume-border),black 10%)}:is(._outline_87pta_85,._filled_87pta_94,._underline_87pta_102)._invalid_87pta_112,:is(._outline_87pta_85,._filled_87pta_94,._underline_87pta_102)._invalid_87pta_112:enabled:hover,:is(._outline_87pta_85,._filled_87pta_94,._underline_87pta_102)._invalid_87pta_112:enabled:focus{border-color:var(--plume-color-error-text)}._outline_87pta_85._invalid_87pta_112:enabled:focus{outline-color:var(--plume-color-error-text)}._filled_87pta_94:enabled:hover{background-color:color-mix(in hsl,var(--plume-surface-muted),black 2%)}._outline_87pta_85:enabled:focus{border-color:var(--datepicker-scheme);outline-color:var(--datepicker-scheme)}:is(._filled_87pta_94,._underline_87pta_102):enabled:focus{border-block-end-color:var(--datepicker-scheme);border-block-end-width:2px}._datePickerModal_87pta_136{margin-top:var(--plume-space-2);display:flex;flex-direction:column;background-color:var(--plume-surface);border:1px solid var(--plume-border);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border-radius:var(--plume-radius-6);overflow:hidden;position:absolute;z-index:var(--plume-z-1)}._calendarContainer_87pta_151{display:flex;width:21rem}._calendarContainerDouble_87pta_156{display:flex;width:42rem}._calendar_87pta_151{width:21rem;padding:var(--plume-space-3)}._calendarHeader_87pta_166{display:flex;justify-content:center;margin-bottom:var(--plume-space-3)}._day_87pta_173,._year_87pta_174,._month_87pta_175,._monthYearSelectors_87pta_176 button{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit}._day_87pta_173:focus-visible,._year_87pta_174:focus-visible,._month_87pta_175:focus-visible,._monthYearSelectors_87pta_176 button:focus-visible{outline:2px solid var(--datepicker-scheme);outline-offset:1px}._monthYearSelectors_87pta_176{display:flex;justify-content:center;align-items:center;column-gap:var(--plume-space-1)}._monthYearSelectors_87pta_176 button:not([class*=icon]){padding:var(--plume-space-2) var(--plume-space-4);border-radius:var(--plume-radius-4)}._monthYearSelectors_87pta_176 button[class*=icon]{padding:var(--plume-space-2);border-radius:var(--plume-radius-full)}._monthYearSelectors_87pta_176 button:hover{background-color:var(--datepicker-hover-color)}._monthSelector_87pta_213,._yearSelector_87pta_214{font-weight:700}._yearSelectorGrid_87pta_218{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--plume-space-2)}._year_87pta_174,._month_87pta_175{display:inline-flex;justify-content:center;padding:var(--plume-space-2) var(--plume-space-4);border-radius:var(--plume-radius-4)}._year_87pta_174:not(._selected_87pta_232):hover,._month_87pta_175:not(._selected_87pta_232):hover{background-color:var(--datepicker-hover-color)}._year_87pta_174:hover,._month_87pta_175:hover{background-color:var(--datepicker-selected-hover-color)}._monthSelectorGrid_87pta_242{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--plume-space-2)}._daysOfWeek_87pta_248{display:flex;justify-content:center;column-gap:var(--plume-space-1);padding-bottom:.375rem}._dayOfWeek_87pta_255{margin:1px;width:var(--plume-space-10);display:block;text-align:center;font-size:var(--plume-font-size-sm);color:var(--plume-muted)}._calendarGrid_87pta_264{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--plume-space-1)}._day_87pta_173{margin-left:1px;margin-right:1px;display:flex;height:var(--plume-space-10);width:var(--plume-space-10);align-items:center;justify-content:center;border-radius:var(--plume-radius-full)}._today_87pta_281{color:var(--datepicker-scheme)}._rangeItem_87pta_285{background-color:var(--datepicker-range-item-color);color:var(--datepicker-range-item-text)}._selected_87pta_232{background-color:var(--datepicker-solid);color:var(--datepicker-contrast)}._selectedHover_87pta_295{background-color:var(--datepicker-selected-hover-color);color:var(--datepicker-contrast)}._hovered_87pta_300{background-color:var(--datepicker-hover-color)}._disabledDay_87pta_304{color:var(--plume-muted);cursor:not-allowed}._outOfRangeDay_87pta_309{text-decoration-line:line-through}._footerActions_87pta_313{display:flex;justify-content:flex-end;padding:var(--plume-space-3);border-top:1px solid var(--plume-border)}button._footerButton_87pta_320{color:var(--plume-foreground)}button._footerButtonApply_87pta_324{color:var(--datepicker-contrast);margin-left:var(--plume-space-2)}._disabled_87pta_304,._disabled_87pta_304+._inputButton_87pta_28{opacity:.5;cursor:not-allowed}:where(._base_h3ylb_9){background:transparent;border:none;outline:2px solid transparent;outline-offset:2px}._input_h3ylb_16{border-radius:var(--plume-radius-4);box-sizing:border-box;color:var(--plume-foreground);display:block;height:var(--plume-space-10);min-width:min(18rem,100%);padding-inline:var(--plume-space-4);position:relative;width:100%}._input_h3ylb_16::placeholder{color:var(--plume-muted)}._sm_h3ylb_32{font-size:var(--plume-font-size-xs);height:var(--plume-space-8);padding-inline:var(--plume-space-2)}._md_h3ylb_38{height:var(--plume-space-10);padding-inline:var(--plume-space-4)}._lg_h3ylb_43{font-size:var(--plume-font-size-lg);height:var(--plume-space-12);padding-inline:var(--plume-space-6)}._rounded_h3ylb_49{border-radius:var(--plume-radius-4)}:is(._outline_h3ylb_53)._pill_h3ylb_53{border-radius:var(--plume-radius-full)}._outline_h3ylb_53{border:1px solid var(--plume-border)}._filled_h3ylb_62{background-color:var(--plume-surface-muted);border-block-end:1px solid var(--plume-border);border-bottom-left-radius:0;border-bottom-right-radius:0}._underline_h3ylb_70{border-radius:0;border-block-end:1px solid var(--plume-border)}:is(._outline_h3ylb_53,._filled_h3ylb_62,._underline_h3ylb_70):enabled:hover{border-color:color-mix(in hsl,var(--plume-border),black 10%)}:is(._outline_h3ylb_53,._filled_h3ylb_62,._underline_h3ylb_70)._invalid_h3ylb_80,:is(._outline_h3ylb_53,._filled_h3ylb_62,._underline_h3ylb_70)._invalid_h3ylb_80:enabled:hover{border-color:var(--input-color)}._filled_h3ylb_62:enabled:hover{background-color:color-mix(in hsl,var(--plume-surface-muted),black 2%)}:not(._inputGroup_h3ylb_89)>._outline_h3ylb_53:enabled:focus,._inputGroup_h3ylb_89:has(._outline_h3ylb_53:enabled):focus-within{border-color:var(--input-color);outline:2px solid var(--input-color);outline-offset:2px}:is(._filled_h3ylb_62,._underline_h3ylb_70):enabled:focus{border-block-end-color:var(--input-color);border-block-end-width:2px}._disabled_h3ylb_101{opacity:.5;cursor:not-allowed}._inputGroup_h3ylb_89{position:relative;display:flex;border-radius:var(--plume-radius-4);min-width:min(18rem,100%)}._inputGroup_h3ylb_89>._input_h3ylb_16{flex:1 1 auto;min-width:0}._inputGroup_h3ylb_89>._addOn_h3ylb_120{flex-shrink:0;white-space:nowrap}._inputGroup_h3ylb_89:has(._outline_h3ylb_53,._filled_h3ylb_62)>._addOn_h3ylb_120{background-color:var(--plume-surface-muted)}._inputGroup_h3ylb_89:has(._outline_h3ylb_53)>._addOn_h3ylb_120{border:1px solid var(--plume-border)}._inputGroup_h3ylb_89:has(._filled_h3ylb_62)>._addOn_h3ylb_120{border-block-end:1px solid var(--plume-border)}._inputGroup_h3ylb_89:has(._outline_h3ylb_53,._filled_h3ylb_62)>._addOn_h3ylb_120:first-child{border-top-left-radius:var(--plume-radius-4)}._inputGroup_h3ylb_89:has(._outline_h3ylb_53)>._addOn_h3ylb_120:first-child{border-bottom-left-radius:var(--plume-radius-4)}._inputGroup_h3ylb_89:has(._outline_h3ylb_53,._filled_h3ylb_62)>._addOn_h3ylb_120:first-child+._input_h3ylb_16{border-top-left-radius:0;border-top-right-radius:var(--plume-radius-4)}._inputGroup_h3ylb_89:has(._outline_h3ylb_53)>._addOn_h3ylb_120:first-child+._input_h3ylb_16{border-bottom-left-radius:0;border-bottom-right-radius:var(--plume-radius-4)}._inputGroup_h3ylb_89:has(._addOn_h3ylb_120)>._input_h3ylb_16:is(._outline_h3ylb_53,._filled_h3ylb_62){border-top-right-radius:0}._inputGroup_h3ylb_89:has(._addOn_h3ylb_120)>._input_h3ylb_16:is(._outline_h3ylb_53){border-bottom-right-radius:0}._inputGroup_h3ylb_89:has(._outline_h3ylb_53,._filled_h3ylb_62)>._addOn_h3ylb_120:last-child{border-top-right-radius:var(--plume-radius-4);border-inline-start:0}._inputGroup_h3ylb_89:has(._outline_h3ylb_53)>._addOn_h3ylb_120:last-child{border-bottom-right-radius:var(--plume-radius-4)}._inputGroup_h3ylb_89:has(._underline_h3ylb_70)>._addOn_h3ylb_120{border-block-end:1px solid var(--plume-border)}._inputGroup_h3ylb_89:has(._element_h3ylb_176:first-child)>._input_h3ylb_16{padding-inline-start:2.5rem}._inputGroup_h3ylb_89:has(._element_h3ylb_176:last-child)>._input_h3ylb_16{padding-inline-end:2.5rem}._element_h3ylb_176,._addOn_h3ylb_120{display:flex;align-items:center;justify-content:center}._element_h3ylb_176:first-child{left:0}._element_h3ylb_176:last-child{right:0}._element_h3ylb_176{position:absolute;top:0;height:2.5rem;width:2.5rem;z-index:2}._addOn_h3ylb_120{padding:0 .75rem}._field_wdljj_3{color:var(--plume-foreground);display:flex;flex-direction:column;gap:var(--plume-space-1)}._horizontal_wdljj_14{align-items:center;column-gap:var(--plume-space-4);display:grid;grid-template-columns:var(--field-label-width, 8rem) minmax(0,1fr)}._horizontal_wdljj_14>:not(._label_wdljj_22){grid-column:2}._label_wdljj_22{font-size:var(--plume-font-size-sm);font-weight:var(--plume-font-weight-medium);line-height:var(--plume-line-height-snug)}._requiredIndicator_wdljj_32{color:var(--plume-color-error-text);margin-inline-start:var(--plume-space-1)}._optionalText_wdljj_37{color:var(--plume-muted);font-weight:var(--plume-font-weight-normal);margin-inline-start:var(--plume-space-1)}._helperText_wdljj_43,._errorText_wdljj_44{font-size:var(--plume-font-size-sm);line-height:var(--plume-line-height-snug);margin:0}._helperText_wdljj_43{color:var(--plume-muted)}._errorText_wdljj_44{color:var(--plume-color-error-text)}._disabled_wdljj_58 ._label_wdljj_22{opacity:.5}._tabs_1ct2b_6{display:flex;flex-direction:column}._horizontal_1ct2b_11{flex-direction:column}._vertical_1ct2b_15{flex-direction:row}._left_1ct2b_19{justify-content:flex-start}._center_1ct2b_23{justify-content:center}._right_1ct2b_27{justify-content:flex-end}._sm_1ct2b_31{padding:var(--plume-space-1) var(--plume-space-2);font-size:small}._md_1ct2b_36{padding:var(--plume-space-2) var(--plume-space-3)}._lg_1ct2b_40{padding:var(--plume-space-3) var(--plume-space-4);font-size:large}._vertical_1ct2b_15 ._underline_1ct2b_45{border-inline-end:solid 1px var(--plume-border);border-block-end:none}._underline_1ct2b_45{gap:var(--plume-space-4);border-block-end:solid 1px var(--plume-border)}._vertical_1ct2b_15 ._tablist_1ct2b_55{flex-direction:column;align-items:stretch}._tablist_1ct2b_55{width:inherit;display:flex;flex-direction:row;align-items:center}._tab_1ct2b_6{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;display:inline-flex;justify-content:center;align-items:center;gap:var(--plume-space-2);outline:2px solid transparent;outline-offset:2px}:is(._rounded_1ct2b_82,._segment_1ct2b_82) ._tab_1ct2b_6{border-radius:var(--plume-radius-4)}._vertical_1ct2b_15 ._underline_1ct2b_45 ._tab_1ct2b_6{border-inline-end:2px solid transparent;border-block-end:none;transition:border-inline-end .2s}._underline_1ct2b_45 ._tab_1ct2b_6{border-block-end:2px solid transparent;transition:border-block-end .2s}._vertical_1ct2b_15 ._underline_1ct2b_45 ._tab_1ct2b_6._active_1ct2b_97{border-inline-end:2px solid var(--tabs-scheme);border-block-end:none}._underline_1ct2b_45 ._tab_1ct2b_6._active_1ct2b_97{border-block-end:2px solid var(--tabs-scheme);color:var(--tabs-scheme);transition:color .2s}._rounded_1ct2b_82 ._tab_1ct2b_6._active_1ct2b_97{background-color:var(--tabs-solid);color:var(--tabs-text-color);border-radius:var(--plume-radius-4);transition:color .2s}._vertical_1ct2b_15 ._enclosed_1ct2b_115{border-inline-end:1px solid var(--tabs-scheme);border-block-end:none}._enclosed_1ct2b_115{border-block-end:1px solid var(--tabs-scheme)}._vertical_1ct2b_15 ._enclosed_1ct2b_115 ._tab_1ct2b_6._active_1ct2b_97{border:1px solid var(--tabs-scheme);border-radius:var(--plume-radius-4);border-inline-end:none;border-end-end-radius:0;border-start-end-radius:0;margin-inline-end:-1px;transition:color .2s}._enclosed_1ct2b_115 ._tab_1ct2b_6._active_1ct2b_97{border:1px solid var(--tabs-scheme);border-radius:var(--plume-radius-4);background:var(--plume-surface);border-block-end:none;border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--tabs-scheme);margin-block-end:-1px;transition:color .2s}._segment_1ct2b_82{background-color:var(--tabs-solid);color:var(--tabs-text-color);gap:var(--plume-space-1);padding:var(--plume-space-3) var(--plume-space-4);transition:background-color .2s;border-radius:var(--plume-radius-4)}._segment_1ct2b_82 ._tab_1ct2b_6._active_1ct2b_97{background-color:var(--tabs-solid-active);color:var(--tabs-text-color);border-radius:var(--plume-radius-4);transition:color .2s}._tab_1ct2b_6:not(._active_1ct2b_97,:disabled):hover{color:color-mix(in hsl,var(--tabs-scheme),black 10%)}._tab_1ct2b_6:focus-visible{outline-color:var(--tabs-scheme)}._segment_1ct2b_82 ._tab_1ct2b_6:focus-visible{outline-color:var(--tabs-text-color)}._panel_1ct2b_174:focus-visible{outline:2px solid var(--tabs-scheme);outline-offset:2px}._vertical_1ct2b_15 ._panel_1ct2b_174{padding:var(--plume-space-2) var(--plume-space-4)}._panel_1ct2b_174{padding:var(--plume-space-4) var(--plume-space-2);border:none}
@@ -0,0 +1 @@
1
+ var e={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"}},f={semantic:{background:"#18181b",surface:"#27272a",surfaceMuted:"#3f3f46",foreground:"#fafafa",muted:"#a1a1aa",border:"#3f3f46"}};export{f as defaultDarkTheme,e as defaultTheme};
@@ -0,0 +1 @@
1
+ export*from"./config.mjs";export*from"./shared.types.mjs";export*from"./shared.utils.mjs";export*from"./theme.types.mjs";export*from"./theme-to-css-vars.mjs";export*from"./theme-provider.mjs";
File without changes
@@ -0,0 +1 @@
1
+ function t(r){if(r.includes(".")){let[e,o]=r.split(".");return`var(--plume-color-${e}-${o})`}return`var(--plume-color-${r}-500)`}export{t as colorVar};
@@ -0,0 +1 @@
1
+ "use client";import{createContext as E,useContext as V,useEffect as C,useMemo as n,useState as a}from"react";import{deepMerge as c}from"../utils/merge.mjs";import{defaultDarkTheme as w,defaultTheme as N}from"./config.mjs";import{ThemeRootContext as A}from"./theme-root.mjs";import{themeToCssVars as L}from"./theme-to-css-vars.mjs";import{jsx as i}from"react/jsx-runtime";var g=E(null);function F(){let m=V(g);if(!m)throw new Error("useTheme must be used within a <ThemeProvider>");return m}function G({children:m,theme:u,darkTheme:h,defaultColorMode:l="light",applyToBody:p=!0,className:f="",style:y}){let s=n(()=>c(N,u??{}),[u]),M=n(()=>c(c(s,w),h??{}),[s,h]),[d,x]=a(l),[P,b]=a(null),[r,T]=a(l==="system"?"light":l);C(()=>{if(d!=="system"){T(d);return}let o=window.matchMedia("(prefers-color-scheme: dark)"),e=()=>T(o.matches?"dark":"light");return e(),o.addEventListener("change",e),()=>o.removeEventListener("change",e)},[d]);let t=r==="dark"?M:s,k=n(()=>L(t),[t]);C(()=>{if(!p||typeof document>"u")return;let{documentElement:o,body:e}=document,v=o.getAttribute("data-plume-color-mode"),R=e.style.backgroundColor,D=e.style.color;return o.setAttribute("data-plume-color-mode",r),e.style.backgroundColor=t.semantic.background,e.style.color=t.semantic.foreground,()=>{v===null?o.removeAttribute("data-plume-color-mode"):o.setAttribute("data-plume-color-mode",v),e.style.backgroundColor=R,e.style.color=D}},[p,r,t]);let S=n(()=>({theme:t,colorMode:r,setColorMode:x}),[t,r]);return i(g.Provider,{value:S,children:i("div",{className:`plume-root ${f}`.trim(),"data-plume-color-mode":r,ref:b,style:{...k,backgroundColor:"var(--plume-background)",color:"var(--plume-foreground)",...y},children:i(A.Provider,{value:P,children:m})})})}export{G as ThemeProvider,F as useTheme};
@@ -0,0 +1 @@
1
+ "use client";import{createContext as e,useContext as t}from"react";var n=e(void 0),u=()=>t(n);export{n as ThemeRootContext,u as useThemeRoot};
@@ -0,0 +1 @@
1
+ import{getContrastColor as v,getContrastRatio as f,getDarkenColor as k,getLightenColor as R}from"../utils/colors.mjs";var r="--plume",a="#ffffff",y="#000000",u=4.5,b=n=>f(a,n)>=f(y,n);function C(n){for(let s of["500","600","700"]){let e=String(n[s]);if(f(a,e)>=u)return{bg:e,fg:a}}let o=String(n[500]);if(f(y,o)>=u)return{bg:o,fg:y};for(let s of["800","900"]){let e=String(n[s]);if(f(a,e)>=u)return{bg:e,fg:a}}return{bg:String(n[900]),fg:a}}function z(n,o){let s=b(o[0]),e=s?["500","400","300","200","100","50"]:["500","600","700","800","900","950"];for(let l of e){let d=String(n[l]);if(o.every(g=>f(d,g)>=u))return d}return String(n[s?"50":"950"])}function c(n,o,s){for(let[e,l]of Object.entries(o))s[`${n}-${e}`]=String(l)}var x=n=>n.replace(/(?<lower>[a-z0-9])(?<upper>[A-Z])/g,"$<lower>-$<upper>").toLowerCase();function O(n){let o={},{background:s,surface:e,surfaceMuted:l}=n.semantic,d=[s,e,l],g=b(s),T=n.colors;for(let[t,i]of Object.entries(T)){c(`${r}-color-${t}`,i,o),o[`${r}-color-${t}-contrast`]=v(String(i[500]));let{bg:p,fg:w}=C(i);o[`${r}-color-${t}-solid`]=p,o[`${r}-color-${t}-solid-contrast`]=w,o[`${r}-color-${t}-solid-hover`]=k(p,12),o[`${r}-color-${t}-solid-active`]=k(p,24);let $=z(i,d);o[`${r}-color-${t}-text`]=$,o[`${r}-color-${t}-text-hover`]=g?R($,12):k($,12),o[`${r}-color-${t}-text-active`]=g?R($,24):k($,24),o[`${r}-color-${t}-tint`]=String(i[g?"900":"100"]),o[`${r}-color-${t}-tint-strong`]=String(i[g?"800":"200"])}let S=n.semantic;for(let[t,i]of Object.entries(S))o[`${r}-${x(t)}`]=i;return o[`${r}-font-family`]=n.typography.fontFamily,c(`${r}-font-size`,n.typography.fontSizes,o),c(`${r}-font-weight`,n.typography.fontWeights,o),c(`${r}-line-height`,n.typography.lineHeights,o),c(`${r}-space`,n.spaces,o),c(`${r}-size`,n.sizes,o),c(`${r}-radius`,n.radii,o),c(`${r}-z`,n.zIndeces,o),c(`${r}-shadow`,n.shadows,o),c(`${r}-breakpoint`,n.breakpoints,o),o}export{O as themeToCssVars};
File without changes