@texturehq/edges 1.26.2 → 1.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{RichTextEditor-BhX77nTp.d.cts → RichTextEditor-CZCqHSPF.d.cts} +2 -2
- package/dist/{RichTextEditor-BhX77nTp.d.ts → RichTextEditor-CZCqHSPF.d.ts} +2 -2
- package/dist/{TimeField-BXmGlwVW.d.cts → TimeField-CDgde0qa.d.ts} +11 -2
- package/dist/{TimeField-DuBmntG7.d.ts → TimeField-DjLAyJkm.d.cts} +11 -2
- package/dist/{colors-B9nHitHg.d.ts → colors-CHRmTEal.d.ts} +6 -2
- package/dist/{colors-Cv1f3FIO.d.cts → colors-Ddk1k14x.d.cts} +6 -2
- package/dist/components.manifest.json +26 -11
- package/dist/form/index.cjs +1 -1
- package/dist/form/index.cjs.map +1 -1
- package/dist/form/index.js +1 -1
- package/dist/form/index.js.map +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +61 -10
- package/dist/index.d.ts +61 -10
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/rhf/index.cjs +1 -1
- package/dist/rhf/index.cjs.map +1 -1
- package/dist/rhf/index.d.cts +2 -2
- package/dist/rhf/index.d.ts +2 -2
- package/dist/rhf/index.js +1 -1
- package/dist/rhf/index.js.map +1 -1
- package/dist/server.d.cts +2 -2
- package/dist/server.d.ts +2 -2
- package/dist/styles.css +140 -17
- package/dist/utilities.manifest.json +8 -1
- package/package.json +1 -1
- package/scripts/setup-cursor-rules.js +1 -1
|
@@ -147,10 +147,10 @@ declare function useInputFocus(): {
|
|
|
147
147
|
/**
|
|
148
148
|
* Wrapper component for input containers
|
|
149
149
|
*/
|
|
150
|
-
declare
|
|
150
|
+
declare const InputWrapper: React__default.ForwardRefExoticComponent<{
|
|
151
151
|
children: React__default.ReactNode;
|
|
152
152
|
className?: string;
|
|
153
|
-
}
|
|
153
|
+
} & React__default.RefAttributes<HTMLDivElement>>;
|
|
154
154
|
/**
|
|
155
155
|
* Clear button component for inputs
|
|
156
156
|
*/
|
|
@@ -147,10 +147,10 @@ declare function useInputFocus(): {
|
|
|
147
147
|
/**
|
|
148
148
|
* Wrapper component for input containers
|
|
149
149
|
*/
|
|
150
|
-
declare
|
|
150
|
+
declare const InputWrapper: React__default.ForwardRefExoticComponent<{
|
|
151
151
|
children: React__default.ReactNode;
|
|
152
152
|
className?: string;
|
|
153
|
-
}
|
|
153
|
+
} & React__default.RefAttributes<HTMLDivElement>>;
|
|
154
154
|
/**
|
|
155
155
|
* Clear button component for inputs
|
|
156
156
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React__default, { ComponentProps, ReactNode } from 'react';
|
|
3
3
|
import { Key, ValidationResult, ButtonProps as ButtonProps$1, CheckboxProps as CheckboxProps$1, CheckboxRenderProps, CheckboxGroupProps as CheckboxGroupProps$1, TextFieldProps as TextFieldProps$1, NumberFieldProps as NumberFieldProps$1, RadioProps, RadioGroupProps as RadioGroupProps$1, SelectProps as SelectProps$1, SwitchProps as SwitchProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue } from 'react-aria-components';
|
|
4
|
-
import { S as Size, I as Icon, B as BaseInputProps } from './RichTextEditor-
|
|
4
|
+
import { S as Size, I as Icon, B as BaseInputProps } from './RichTextEditor-CZCqHSPF.js';
|
|
5
5
|
|
|
6
6
|
interface Item {
|
|
7
7
|
id: string;
|
|
@@ -70,8 +70,17 @@ interface AutocompleteProps {
|
|
|
70
70
|
* @default false
|
|
71
71
|
*/
|
|
72
72
|
hideChevron?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Whether to use a Tray (bottom sheet) on mobile devices instead of a Popover
|
|
75
|
+
* @default true
|
|
76
|
+
*/
|
|
77
|
+
useMobileTray?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Additional CSS classes to apply to the component
|
|
80
|
+
*/
|
|
81
|
+
className?: string;
|
|
73
82
|
}
|
|
74
|
-
declare function Autocomplete({ label, staticItems, sections, selectedKey, defaultSelectedKey, onSelectionChange, requestConfig, defaultFilter, placeholder, errorMessage, description, size, tooltip, isRequired, isDisabled, isInvalid, validationResult, showErrors, renderItem, renderLeftIcon, renderSection, autoFocus, reserveErrorSpace, hideChevron, }: AutocompleteProps): react_jsx_runtime.JSX.Element;
|
|
83
|
+
declare function Autocomplete({ label, staticItems, sections, selectedKey, defaultSelectedKey, onSelectionChange, requestConfig, defaultFilter, placeholder, errorMessage, description, size, tooltip, isRequired, isDisabled, isInvalid, validationResult, showErrors, renderItem, renderLeftIcon, renderSection, autoFocus, reserveErrorSpace, hideChevron, useMobileTray, className, }: AutocompleteProps): react_jsx_runtime.JSX.Element;
|
|
75
84
|
|
|
76
85
|
type IconName = ComponentProps<typeof Icon>["name"];
|
|
77
86
|
type BaseButtonProps = Omit<ButtonProps$1, "className">;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React__default, { ComponentProps, ReactNode } from 'react';
|
|
3
3
|
import { Key, ValidationResult, ButtonProps as ButtonProps$1, CheckboxProps as CheckboxProps$1, CheckboxRenderProps, CheckboxGroupProps as CheckboxGroupProps$1, TextFieldProps as TextFieldProps$1, NumberFieldProps as NumberFieldProps$1, RadioProps, RadioGroupProps as RadioGroupProps$1, SelectProps as SelectProps$1, SwitchProps as SwitchProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue } from 'react-aria-components';
|
|
4
|
-
import { S as Size, I as Icon, B as BaseInputProps } from './RichTextEditor-
|
|
4
|
+
import { S as Size, I as Icon, B as BaseInputProps } from './RichTextEditor-CZCqHSPF.cjs';
|
|
5
5
|
|
|
6
6
|
interface Item {
|
|
7
7
|
id: string;
|
|
@@ -70,8 +70,17 @@ interface AutocompleteProps {
|
|
|
70
70
|
* @default false
|
|
71
71
|
*/
|
|
72
72
|
hideChevron?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Whether to use a Tray (bottom sheet) on mobile devices instead of a Popover
|
|
75
|
+
* @default true
|
|
76
|
+
*/
|
|
77
|
+
useMobileTray?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Additional CSS classes to apply to the component
|
|
80
|
+
*/
|
|
81
|
+
className?: string;
|
|
73
82
|
}
|
|
74
|
-
declare function Autocomplete({ label, staticItems, sections, selectedKey, defaultSelectedKey, onSelectionChange, requestConfig, defaultFilter, placeholder, errorMessage, description, size, tooltip, isRequired, isDisabled, isInvalid, validationResult, showErrors, renderItem, renderLeftIcon, renderSection, autoFocus, reserveErrorSpace, hideChevron, }: AutocompleteProps): react_jsx_runtime.JSX.Element;
|
|
83
|
+
declare function Autocomplete({ label, staticItems, sections, selectedKey, defaultSelectedKey, onSelectionChange, requestConfig, defaultFilter, placeholder, errorMessage, description, size, tooltip, isRequired, isDisabled, isInvalid, validationResult, showErrors, renderItem, renderLeftIcon, renderSection, autoFocus, reserveErrorSpace, hideChevron, useMobileTray, className, }: AutocompleteProps): react_jsx_runtime.JSX.Element;
|
|
75
84
|
|
|
76
85
|
type IconName = ComponentProps<typeof Icon>["name"];
|
|
77
86
|
type BaseButtonProps = Omit<ButtonProps$1, "className">;
|
|
@@ -3,7 +3,7 @@ import { ScaleTime, ScaleLinear } from 'd3-scale';
|
|
|
3
3
|
import * as React$1 from 'react';
|
|
4
4
|
import React__default, { ReactNode, ComponentType } from 'react';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
|
-
import { d as IconName } from './RichTextEditor-
|
|
6
|
+
import { d as IconName } from './RichTextEditor-CZCqHSPF.js';
|
|
7
7
|
import * as react_map_gl from 'react-map-gl';
|
|
8
8
|
import { ViewState, MapRef } from 'react-map-gl';
|
|
9
9
|
import { MeterProps as MeterProps$1 } from 'react-aria-components';
|
|
@@ -356,6 +356,10 @@ interface ActionMenuProps {
|
|
|
356
356
|
* @default true
|
|
357
357
|
*/
|
|
358
358
|
useMobileTray?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Additional CSS classes for the Popover (desktop only)
|
|
361
|
+
*/
|
|
362
|
+
popoverClassName?: string;
|
|
359
363
|
}
|
|
360
364
|
/**
|
|
361
365
|
* ActionMenu
|
|
@@ -363,7 +367,7 @@ interface ActionMenuProps {
|
|
|
363
367
|
* A dropdown menu for actions, typically triggered by a button.
|
|
364
368
|
* Supports icons, destructive actions, and flexible alignment.
|
|
365
369
|
*/
|
|
366
|
-
declare function ActionMenu({ children, items, className, align, textAlign, size, onAction, header, footer, useMobileTray, }: ActionMenuProps): react_jsx_runtime.JSX.Element;
|
|
370
|
+
declare function ActionMenu({ children, items, className, align, textAlign, size, onAction, header, footer, useMobileTray, popoverClassName, }: ActionMenuProps): react_jsx_runtime.JSX.Element;
|
|
367
371
|
|
|
368
372
|
type SideNavItem = {
|
|
369
373
|
id: string;
|
|
@@ -3,7 +3,7 @@ import { ScaleTime, ScaleLinear } from 'd3-scale';
|
|
|
3
3
|
import * as React$1 from 'react';
|
|
4
4
|
import React__default, { ReactNode, ComponentType } from 'react';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
|
-
import { d as IconName } from './RichTextEditor-
|
|
6
|
+
import { d as IconName } from './RichTextEditor-CZCqHSPF.cjs';
|
|
7
7
|
import * as react_map_gl from 'react-map-gl';
|
|
8
8
|
import { ViewState, MapRef } from 'react-map-gl';
|
|
9
9
|
import { MeterProps as MeterProps$1 } from 'react-aria-components';
|
|
@@ -356,6 +356,10 @@ interface ActionMenuProps {
|
|
|
356
356
|
* @default true
|
|
357
357
|
*/
|
|
358
358
|
useMobileTray?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Additional CSS classes for the Popover (desktop only)
|
|
361
|
+
*/
|
|
362
|
+
popoverClassName?: string;
|
|
359
363
|
}
|
|
360
364
|
/**
|
|
361
365
|
* ActionMenu
|
|
@@ -363,7 +367,7 @@ interface ActionMenuProps {
|
|
|
363
367
|
* A dropdown menu for actions, typically triggered by a button.
|
|
364
368
|
* Supports icons, destructive actions, and flexible alignment.
|
|
365
369
|
*/
|
|
366
|
-
declare function ActionMenu({ children, items, className, align, textAlign, size, onAction, header, footer, useMobileTray, }: ActionMenuProps): react_jsx_runtime.JSX.Element;
|
|
370
|
+
declare function ActionMenu({ children, items, className, align, textAlign, size, onAction, header, footer, useMobileTray, popoverClassName, }: ActionMenuProps): react_jsx_runtime.JSX.Element;
|
|
367
371
|
|
|
368
372
|
type SideNavItem = {
|
|
369
373
|
id: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.26.
|
|
2
|
+
"version": "1.26.3",
|
|
3
3
|
"components": [
|
|
4
4
|
{
|
|
5
5
|
"name": "ActionCell",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
{
|
|
98
98
|
"name": "Autocomplete",
|
|
99
99
|
"category": "Form Controls",
|
|
100
|
-
"description": "
|
|
100
|
+
"description": "Additional CSS classes to apply to the component",
|
|
101
101
|
"importRoot": "@texturehq/edges",
|
|
102
102
|
"importPath": "@texturehq/edges/components/Autocomplete",
|
|
103
103
|
"props": [
|
|
@@ -822,6 +822,16 @@
|
|
|
822
822
|
"relatedComponents": [],
|
|
823
823
|
"storybookPath": "Display/Chip"
|
|
824
824
|
},
|
|
825
|
+
{
|
|
826
|
+
"name": "ChipInputField",
|
|
827
|
+
"category": "Uncategorized",
|
|
828
|
+
"description": "ChipInputField A clean, zero-dependency tags input component. Press Enter or comma to add tags, Backspace when empty to remove last tag. Based on Chakra UI / Ark UI patterns.",
|
|
829
|
+
"importRoot": "@texturehq/edges",
|
|
830
|
+
"importPath": "@texturehq/edges/components/ChipInputField",
|
|
831
|
+
"props": [],
|
|
832
|
+
"relatedComponents": [],
|
|
833
|
+
"storybookPath": "Uncategorized/ChipInputField"
|
|
834
|
+
},
|
|
825
835
|
{
|
|
826
836
|
"name": "CodeEditor",
|
|
827
837
|
"category": "Form Controls",
|
|
@@ -1832,6 +1842,10 @@
|
|
|
1832
1842
|
"name": "autoFocus",
|
|
1833
1843
|
"type": "boolean"
|
|
1834
1844
|
},
|
|
1845
|
+
{
|
|
1846
|
+
"name": "countryRestrictions",
|
|
1847
|
+
"type": "string[]; // Array of ISO 3166-1 alpha-2 country codes proximity?: \"ip\" | [number, number]; // Either \"ip\" for IP-based location or [longitude, latitude] coordinates hideCountry?: boolean; // Hide country from results (useful when using countryRestrictions) showIcon?: boolean; // Show location type icons in results (default: true) className?: string"
|
|
1848
|
+
},
|
|
1835
1849
|
{
|
|
1836
1850
|
"name": "defaultFilter",
|
|
1837
1851
|
"type": "(textValue: string, inputValue: string) => boolean"
|
|
@@ -3046,15 +3060,6 @@
|
|
|
3046
3060
|
"CarouselRoot",
|
|
3047
3061
|
"HierarchyExplorer"
|
|
3048
3062
|
],
|
|
3049
|
-
"Charts": [
|
|
3050
|
-
"AreaSeries",
|
|
3051
|
-
"BarSeries",
|
|
3052
|
-
"ChartContainer",
|
|
3053
|
-
"ChartEventMarkers",
|
|
3054
|
-
"FunnelSeries",
|
|
3055
|
-
"LineSeries",
|
|
3056
|
-
"TimeControls"
|
|
3057
|
-
],
|
|
3058
3063
|
"Uncategorized": [
|
|
3059
3064
|
"ActionCell",
|
|
3060
3065
|
"BadgeCell",
|
|
@@ -3062,6 +3067,7 @@
|
|
|
3062
3067
|
"ChartAxis",
|
|
3063
3068
|
"ChartBottomBar",
|
|
3064
3069
|
"ChartTooltip",
|
|
3070
|
+
"ChipInputField",
|
|
3065
3071
|
"CommandPalette",
|
|
3066
3072
|
"ContactMetaCell",
|
|
3067
3073
|
"CustomCell",
|
|
@@ -3091,6 +3097,15 @@
|
|
|
3091
3097
|
"StaticMap",
|
|
3092
3098
|
"TextCell"
|
|
3093
3099
|
],
|
|
3100
|
+
"Charts": [
|
|
3101
|
+
"AreaSeries",
|
|
3102
|
+
"BarSeries",
|
|
3103
|
+
"ChartContainer",
|
|
3104
|
+
"ChartEventMarkers",
|
|
3105
|
+
"FunnelSeries",
|
|
3106
|
+
"LineSeries",
|
|
3107
|
+
"TimeControls"
|
|
3108
|
+
],
|
|
3094
3109
|
"Data": [
|
|
3095
3110
|
"AutoMobileRenderer",
|
|
3096
3111
|
"CardMobileRenderer",
|
package/dist/form/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var reactAriaComponents=require('react-aria-components'),tailwindMerge=require('tailwind-merge'),Ke=require('react'),lt=require('@phosphor-icons/react'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Ke__namespace=/*#__PURE__*/_interopNamespace(Ke);var lt__namespace=/*#__PURE__*/_interopNamespace(lt);var nt=Object.defineProperty;var at=(e,o,t)=>o in e?nt(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t;var be=(e,o,t)=>at(e,typeof o!="symbol"?o+"":o,t);function Se(e,o=false){let[t,r]=Ke.useState(o);return Ke.useEffect(()=>{if(typeof window>"u")return;let n=window.matchMedia(e);r(n.matches);let a=s=>{r(s.matches);};return n.addEventListener("change",a),()=>{n.removeEventListener("change",a);}},[e]),t}function Be(e=false){return `${e?"outline outline-1 outline-border-input data-[focus-visible]:outline-2 data-[focus-visible]:outline-action-default data-[focus-visible]:outline-offset-0 invalid:outline-2 invalid:outline-feedback-error-border group-invalid:outline-2 group-invalid:outline-feedback-error-border forced-colors:focus:outline-[Highlight] forced-colors:focus:outline-2 forced-colors:focus:outline-offset-2":"outline-none data-[focus-visible]:outline data-[focus-visible]:outline-2 data-[focus-visible]:outline-action-default data-[focus-visible]:outline-offset-0 invalid:outline-2 invalid:outline-feedback-error-border group-invalid:outline-2 group-invalid:outline-feedback-error-border forced-colors:focus:outline-[Highlight] forced-colors:focus:outline-2 forced-colors:focus:outline-offset-2"}`}var O={sm:{text:"text-[length:var(--control-text-sm)]",height:"h-[var(--control-sm-height)]",padding:"px-[var(--control-padding-sm)]",paddingY:"py-[var(--control-gap-sm)]",gap:"gap-[var(--control-gap-sm)]"},md:{text:"text-[length:var(--control-text-md)]",height:"h-[var(--control-md-height)]",padding:"px-[var(--control-padding-md)]",paddingY:"py-[var(--control-gap-md)]",gap:"gap-[var(--control-gap-md)]"},lg:{text:"text-[length:var(--control-text-lg)]",height:"h-[var(--control-lg-height)]",padding:"px-[var(--control-padding-lg)]",paddingY:"py-[var(--control-gap-lg)]",gap:"gap-[var(--control-gap-lg)]"},xl:{text:"text-[length:var(--control-text-xl)]",height:"h-[var(--control-xl-height)]",padding:"px-[var(--control-padding-xl)]",paddingY:"py-[var(--control-gap-xl)]",gap:"gap-[var(--control-gap-xl)]"}};var U={xs:16,sm:20,md:24,lg:32,xl:40,"2xl":48},R=Ke.memo(({name:e,size:o="md",color:t,weight:r="regular",className:n,ariaLabel:a,...s})=>{let i=lt__namespace[e];if(!i)return process.env.NODE_ENV==="development"&&console.error(`Icon "${e}" not found in @phosphor-icons/react`),null;let l=typeof o=="string"&&o in U?U[o]:o,d=tailwindMerge.twMerge("inline-block flex-shrink-0",!t&&"text-current",n);return jsxRuntime.jsx(i,{...s,size:l,color:t,weight:r,className:d,"aria-label":a||`${e} icon`,"data-testid":`icon-${e}`})});R.displayName="Icon";var Me=Ke.memo(({variant:e="subtle",shape:o="square",containerSize:t,containerClassName:r,size:n="md",className:a,name:s,color:i,weight:l,ariaLabel:d,ref:p,...c})=>{let g=typeof n=="string"&&n in U?U[n]:n,h=t?typeof t=="string"&&t in U?U[t]:t:g*1.75,v=tailwindMerge.twMerge("inline-flex items-center justify-center flex-shrink-0",o==="circle"?"rounded-full":"rounded-lg",e==="subtle"&&"bg-gray-100 dark:bg-gray-800",e==="solid"&&"bg-brand text-white",e==="outline"&&"border-2 border-current",r);return jsxRuntime.jsx("div",{className:v,style:{width:h,height:h},children:jsxRuntime.jsx(R,{...c,name:s,size:n,color:i,weight:l,className:a,ariaLabel:d})})});Me.displayName="IconWithContainer";var ut="flex font-medium justify-center items-center gap-2 text-center transition rounded-[var(--control-border-radius)] whitespace-nowrap box-border",pt={default:"bg-action-default text-[color:var(--color-action-default-text)] hover:bg-action-default-hover forced-colors:bg-[ButtonText] forced-colors:text-[ButtonFace] border-2 border-transparent",brand:"bg-action-brand text-[color:var(--color-action-brand-text)] hover:bg-action-brand-hover forced-colors:bg-[ButtonText] forced-colors:text-[ButtonFace] border-2 border-transparent",secondary:"bg-transparent text-text-body border-2 border-border-muted hover:bg-text-body/5 forced-colors:border-[ButtonBorder] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText]",ghost:"border-none text-text-body hover:bg-text-body/5 forced-colors:text-[ButtonText] forced-colors:hover:bg-[ButtonFace]",destructive:"bg-transparent text-feedback-error-text border-2 border-border-muted hover:bg-feedback-error-background/50 forced-colors:border-[ButtonBorder] forced-colors:bg-[ButtonFace] forced-colors:text-[Mark]",link:"!text-action-brand hover:text-action-brand/90 hover:underline hover:decoration-2 hover:underline-offset-4",icon:"border-none text-text-body hover:bg-background-hover hover:text-text-heading forced-colors:text-[ButtonText] forced-colors:hover:bg-[ButtonFace] p-1 flex-shrink-0 rounded-[var(--control-border-radius)]",unstyled:"bg-transparent"},Ee={full:"w-full",default:"w-fit"},ft="opacity-50 cursor-not-allowed pointer-events-none",mt="opacity-100 cursor-pointer",gt={"top-right":"-right-2 -top-2","top-left":"-left-2 -top-2","bottom-right":"-right-2 -bottom-2","bottom-left":"-left-2 -bottom-2"},bt={primary:"bg-action-brand text-white",destructive:"bg-action-destructive text-white"};function ht(e){return e?e==="primary"?"brand":e:"default"}function xt(e){let{variant:o="default",size:t="md",isDisabled:r,fullWidth:n=false,isLoading:a=false}=e,s=ht(o),i=s==="unstyled"?"":`${ut} ${pt[s]}`;s!=="unstyled"&&(i+=` ${O[t].text} ${O[t].height} ${O[t].padding} ${O[t].gap}`),r||a?i+=` ${ft}`:i+=` ${mt}`,n?i+=` ${Ee.full}`:i+=` ${Ee.default}`;let l=s==="brand"?"focus-visible:outline-action-brand":void 0;return [i,Be(),l].filter(Boolean).join(" ")}function k(e){let{icon:o,children:t,isLoading:r=false,loadingText:n,loadingIndicator:a,size:s="md",iconPosition:i="left",iconWeight:l,href:d,className:p,badgeNumber:c,badgeVariant:g="primary",badgePosition:h="top-right",style:v,target:D,rel:B,...P}=e,m=o?jsxRuntime.jsx(R,{name:o,size:s,weight:l}):null,y=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,typeof t=="function"?null:t,i==="right"&&m]}),w=jsxRuntime.jsxs("div",{className:"relative inline-flex items-center justify-center",children:[jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:a||jsxRuntime.jsx(R,{name:"CircleNotch",size:s,className:"animate-spin","aria-hidden":"true"})}),jsxRuntime.jsx("div",{className:"invisible","aria-hidden":"true",children:y}),n&&jsxRuntime.jsx("span",{className:"sr-only",role:"status","aria-live":"polite",children:n})]}),f=(c??0)>0,N=tailwindMerge.twMerge(xt(e),p),L=d?{href:d,target:D,rel:B,...P}:{};if(d){let{onPress:W,onPressStart:$,onPressEnd:le,onPressChange:Y,onPressUp:G,onAuxClick:Re,onContextMenu:ke,onDoubleClick:de,...ce}=P;Object.assign(L,ce);}let F=d?jsxRuntime.jsx(reactAriaComponents.Link,{...L,...r&&{"aria-busy":true},style:f?void 0:v,className:N,children:r?w:typeof t=="function"?(function(W){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t(W),i==="right"&&m]})}):y}):jsxRuntime.jsx(reactAriaComponents.Button,{...P,...r&&{"aria-busy":true},style:f?void 0:v,className:N,children:r?w:typeof t=="function"?(function(W){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t(W),i==="right"&&m]})}):y});return f?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex",p),style:v,children:[F,jsxRuntime.jsx("span",{className:`absolute ${gt[h]} flex h-5 w-5 items-center justify-center rounded-full ${bt[g]} text-xs font-medium`,"aria-label":`${c} items`,children:c})]}):F}function A({primaryAction:e,secondaryAction:o,tertiaryAction:t,footerContent:r}){let n=e||o||t;return !n&&!r?null:jsxRuntime.jsxs("div",{className:"flex h-28 w-full flex-col items-center justify-center border-t p-4",children:[r&&jsxRuntime.jsx("div",{className:"flex h-10 justify-center",children:r}),n&&jsxRuntime.jsxs("div",{className:"flex h-full w-full items-center justify-between gap-3",children:[jsxRuntime.jsx("div",{children:t&&jsxRuntime.jsx(k,{size:t.size||"lg",variant:t.variant||"destructive",onPress:t.onPress,isLoading:t.isLoading,isDisabled:t.isDisabled,children:t.label})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[o&&jsxRuntime.jsx(k,{size:o.size||"lg",variant:o.variant||"secondary",onPress:o.onPress,isLoading:o.isLoading,isDisabled:o.isDisabled,children:o.label}),e&&jsxRuntime.jsx(k,{size:e.size||"lg",variant:e.variant||"default",onPress:e.onPress,isLoading:e.isLoading,isDisabled:e.isDisabled,children:e.label})]})]})]})}var yt={xs:"text-lg font-semibold",sm:"text-xl font-semibold",md:"text-2xl font-semibold",lg:"text-3xl font-semibold",xl:"text-4xl font-semibold"},Pt={page:"h-16 leading-[62px]"};function V({tag:e="h1",size:o="lg",height:t,className:r="",children:n}){let a=yt[o],s=t?Pt[t]:"";return jsxRuntime.jsx(e,{className:tailwindMerge.twMerge(a,s,r),children:n})}var C=({title:e,onClose:o,hideCloseIcon:t=false,titleAlign:r="left",hasBackArrow:n=false,onBack:a,headerContent:s})=>jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex h-16 w-full flex-shrink-0 items-center justify-between border-b px-6",e&&"border-b",r==="center"?"justify-center":""),children:[n&&jsxRuntime.jsx(k,{variant:"icon",onPress:a,className:"absolute left-6","aria-label":"Go back",children:jsxRuntime.jsx(R,{name:"CaretLeft","data-testid":"back-arrow"})}),s||jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[e&&jsxRuntime.jsx(V,{size:"xs",children:e}),o&&!t&&jsxRuntime.jsx(k,{variant:"icon",onPress:o,"aria-label":"Close dialog",children:jsxRuntime.jsx(R,{name:"X","data-testid":"close-button"})})]})]});var S=({width:e,height:o,variant:t="rect",animation:r="pulse",gradient:n=false,flex:a=false,stack:s,responsive:i,delay:l=0,adjustAnimationSpeedBasedOnWidth:d=false,ariaLabel:p,className:c,"data-testid":g})=>{let[h,v]=Ke.useState(l===0);if(Ke.useEffect(()=>{if(l>0){let f=setTimeout(()=>v(true),l);return ()=>clearTimeout(f)}},[l]),!h)return null;let D=n?"bg-gradient-to-r from-[var(--color-skeleton-base)] via-[var(--color-skeleton-highlight)] to-[var(--color-skeleton-base)]":"bg-[var(--color-skeleton-base)]",B=d&&e?(()=>{let f=typeof e=="number"?e:parseFloat(String(e));return isNaN(f)?"":`animation-duration-[${Math.max(.8,f/100)}s]`})():"",P=r==="pulse"?`animate-pulse ${B}`:r==="wave"?`relative overflow-hidden before:absolute before:inset-0 before:bg-gradient-to-r before:from-transparent before:via-[var(--color-skeleton-wave)] before:to-transparent before:animate-wave ${B}`:"",m="rounded-sm";t==="circle"&&(m="rounded-full"),t==="text"&&(m="h-4 w-full rounded-sm");let y=a?"flex-1 min-w-0":"",w=i?Object.entries(i).map(([f,N])=>`${f}:w-[${N}]`).join(" "):"";return s?jsxRuntime.jsx("div",{className:"space-y-2","data-testid":g,children:s.map((f,N)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(D,P,m,y,w,c),style:{width:f,height:o}},N))}):jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(D,P,m,y,w,c),style:{width:e,height:o},role:"presentation","aria-hidden":!p,"aria-label":p??void 0,"data-testid":g})};var kt={outlined:"bg-background-surface border border-border-default",elevated:"bg-background-surface border-0 shadow-md",filled:"bg-background-muted border-0",ghost:"bg-transparent border-0 shadow-none"},St="rounded-lg",Pe={square:"aspect-square",video:"aspect-video",wide:"aspect-[2/1]",auto:""},Bt={start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between"};function T({variant:e="outlined",className:o,children:t,isLoading:r=false}){return jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("w-full overflow-hidden",kt[e],St,o),"data-testid":"card",children:r?jsxRuntime.jsx(S,{width:"100%",height:"100%",className:"rounded-none"}):t})}function ze({title:e,subtitle:o,actions:t,className:r,isLoading:n=false}){return n?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("p-6 pb-4",r),children:[jsxRuntime.jsxs("div",{className:"flex justify-between items-start mb-1",children:[jsxRuntime.jsx(S,{width:120,height:20}),jsxRuntime.jsx(S,{width:24,height:24})]}),o&&jsxRuntime.jsx(S,{width:200,height:16})]}):!e&&!o&&!t?null:jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("p-6 pb-4",r),children:jsxRuntime.jsxs("div",{className:"flex justify-between items-start gap-4",children:[jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[e&&jsxRuntime.jsx("div",{className:"mb-1",children:typeof e=="string"?jsxRuntime.jsx(V,{tag:"h3",size:"sm",className:"text-text-heading",children:e}):e}),o&&jsxRuntime.jsx("div",{className:"text-sm text-text-muted",children:o})]}),t&&jsxRuntime.jsx("div",{className:"flex-shrink-0",children:t})]})})}function Ae({src:e,alt:o,aspectRatio:t="auto",className:r,children:n,isLoading:a=false}){return a?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("bg-background-muted",Pe[t],r),children:jsxRuntime.jsx(S,{width:"100%",height:"100%"})}):n?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",Pe[t],r),children:n}):e?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",Pe[t],r),children:jsxRuntime.jsx("img",{src:e,alt:o||"",className:"w-full h-full object-cover",loading:"lazy"})}):null}function _e({className:e,children:o,isLoading:t=false}){let n=e?.match(/p(?:t|b|l|r|x|y)?-(?:\d+(?:\.\d+)?|px|\[.+?\])/)?"":"px-6 py-4";return t?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(n,e),children:jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx(S,{width:"100%",height:16}),jsxRuntime.jsx(S,{width:"80%",height:16}),jsxRuntime.jsx(S,{width:"60%",height:16})]})}):o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 text-text-body",e),children:o}):null}function We({className:e,children:o,align:t="end",isLoading:r=false}){return r?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("px-6 py-4 flex gap-2 justify-end",e),children:[jsxRuntime.jsx(S,{width:80,height:32}),jsxRuntime.jsx(S,{width:60,height:32})]}):o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 flex items-center gap-2",Bt[t],e),children:o}):null}T.Header=ze;T.Media=Ae;T.Content=_e;T.Footer=We;var M=class extends Ke.Component{constructor(){super(...arguments);be(this,"state",{hasError:false});be(this,"handleRetry",()=>{this.setState({hasError:false,error:void 0}),typeof window<"u"&&window.location.reload();});}static getDerivedStateFromError(t){return {hasError:true,error:t}}componentDidCatch(t,r){console.error("Error Boundary caught an error:",t,r);}render(){return this.state.hasError?this.props.fallback?this.props.fallback:jsxRuntime.jsxs(T,{children:[this.props.title&&jsxRuntime.jsx(T.Header,{title:this.props.title}),jsxRuntime.jsx(T.Content,{children:jsxRuntime.jsxs("div",{className:"flex flex-col items-center justify-center gap-4","data-testid":"error-boundary",children:[jsxRuntime.jsx("p",{className:"text-red-500",children:this.state.error?.message||"Something went wrong"}),jsxRuntime.jsx("button",{className:"rounded bg-blue-500 px-4 py-2 text-white hover:bg-blue-600",onClick:this.handleRetry,children:"Retry"})]})})]}):this.props.children}};function _({transparent:e=false,className:o,children:t,...r}){return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{...r,className:reactAriaComponents.composeRenderProps(o,(n,a)=>tailwindMerge.twMerge("fixed inset-0 z-50","outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",e?"bg-transparent":["bg-gradient-to-br from-black/20 via-black/15 to-black/20","backdrop-blur-[2px]","supports-[backdrop-filter]:bg-black/15"].join(" "),a.isEntering&&["animate-in fade-in","duration-300 ease-out"].join(" "),a.isExiting&&["animate-out fade-out","duration-200 ease-in"].join(" "),n)),children:t})}var zt=.3,At=.5;function oe({children:e,title:o,headerContent:t,titleAlign:r="left",hideCloseIcon:n=false,hasBackArrow:a=false,onBack:s,isOpen:i,onClose:l,isDismissable:d=true,transparentOverlay:p=false,primaryAction:c,secondaryAction:g,footerContent:h,maxHeight:v="80vh",height:D,maxWidth:B="640px",contentPadding:P=true,showHandle:m=true,animationVariant:y="scale",className:w}){let[f,N]=Ke.useState(false),[L,F]=Ke.useState(0),[W,$]=Ke.useState(false),le=Ke.useRef(null),Y=Ke.useRef(null),G=Ke.useRef({isDragging:false,startY:0,startTime:0,pointerId:null});Ke.useEffect(()=>{if(i){let x=setTimeout(()=>{N(true),setTimeout(()=>N(false),600);},400);return ()=>clearTimeout(x)}},[i]),Ke.useEffect(()=>{i||(F(0),$(false),G.current={isDragging:false,startY:0,startTime:0,pointerId:null});},[i]);let Re=Ke.useCallback(x=>{d&&(x.pointerType!=="touch"&&x.pointerType!=="pen"||(Y.current&&(clearTimeout(Y.current),Y.current=null),G.current={isDragging:true,startY:x.clientY,startTime:Date.now(),pointerId:x.pointerId},$(false),x.currentTarget.setPointerCapture(x.pointerId)));},[d]),ke=Ke.useCallback(x=>{let{isDragging:ue,startY:pe,pointerId:fe}=G.current;if(!ue||x.pointerId!==fe)return;let me=x.clientY-pe;F(Math.max(0,me));},[]),de=Ke.useCallback(x=>{let{isDragging:ue,startY:pe,startTime:fe,pointerId:me}=G.current;if(!ue||x.pointerId!==me)return;let ge=x.clientY-pe,tt=Date.now()-fe,ot=ge/tt;G.current={isDragging:false,startY:0,startTime:0,pointerId:null};let rt=(le.current?.getBoundingClientRect().height??0)*zt;(ge>rt||ot>At&&ge>50)&&d?(l?.(),F(0)):($(true),F(0),Y.current=setTimeout(()=>{$(false),Y.current=null;},200));},[d,l]);if(!i)return null;let ce=o||t,et=c||g||h;return jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{isOpen:i,onOpenChange:x=>{x||l?.();},isDismissable:d,transparent:p,className:"flex items-end justify-center p-0 sm:p-4",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full max-w-full p-0 sm:p-2 outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",isDismissable:d,children:jsxRuntime.jsx("div",{ref:le,className:tailwindMerge.twMerge("w-full",W&&"transition-transform duration-200"),style:{transform:L>0?`translateY(${L}px)`:void 0},children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("relative flex w-full flex-col overflow-hidden","bg-background-surface","shadow-2xl shadow-black/30 dark:shadow-black/60","border-t border-x border-border-default/40","outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0 focus:shadow-none","origin-bottom",y==="scale"?"animate-[tray-enter-scale_400ms_cubic-bezier(0.32,0.72,0,1)]":"animate-[tray-enter_400ms_cubic-bezier(0.32,0.72,0,1)]",y==="scale"?"data-[exiting]:animate-[tray-exit-scale_250ms_cubic-bezier(0.32,0,0.67,0)]":"data-[exiting]:animate-[tray-exit_250ms_cubic-bezier(0.32,0,0.67,0)]",w),style:{maxWidth:B,...D?{height:D}:{maxHeight:v}},children:[m&&jsxRuntime.jsx("div",{className:"absolute top-0 left-0 right-0 h-8 z-10 flex justify-center items-start pt-2 touch-none cursor-grab active:cursor-grabbing",onPointerDown:Re,onPointerMove:ke,onPointerUp:de,onPointerCancel:de,children:jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("h-1 w-12 rounded-full bg-border-muted transition-all duration-300","hover:bg-border-default hover:w-16",f&&"animate-[handle-wiggle_0.6s_ease-in-out]")})}),ce&&(a?jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n||!l,hasBackArrow:true,onBack:s??(()=>{}),onClose:l||(()=>{})}):jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n||!l,onClose:l||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto overscroll-contain",P?"p-4":"p-0"),children:e}),et&&jsxRuntime.jsx(A,{primaryAction:c,secondaryAction:g,footerContent:h})]})})})})})}oe.displayName="Tray";function De({isOpen:e,onClose:o,title:t,headerContent:r,titleAlign:n="left",hideCloseIcon:a=false,hasBackArrow:s=false,onBack:i,children:l,primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g,transparentOverlay:h=false,maxWidth:v="600px",minWidth:D="400px",maxHeight:B="85vh",height:P,mobileMaxHeight:m="90vh",mobileHeight:y,contentPadding:w=true,className:f}){if(e===false)return null;let N=t||r,L=d||p||c||g,F=e!==void 0;return Se("(max-width: 767px)")?F?jsxRuntime.jsx(oe,{isOpen:e,onClose:o,title:t,headerContent:r,titleAlign:n,hideCloseIcon:a,hasBackArrow:s,onBack:i,primaryAction:d,secondaryAction:p,footerContent:g,transparentOverlay:h,maxHeight:m,height:y,maxWidth:v,contentPadding:w,showHandle:true,animationVariant:"scale",className:f,children:l}):jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{isDismissable:true,transparent:h,className:"flex items-end justify-center",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full p-0 outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("relative flex w-full flex-col","bg-background-surface dark:bg-gray-800","shadow-2xl shadow-black/20","border-t border-x border-border-default/40","max-h-[90vh]","rounded-t-xl","overflow-hidden","animate-in slide-in-from-bottom","duration-300 ease-out","data-[exiting]:animate-out data-[exiting]:slide-out-to-bottom","data-[exiting]:duration-200 data-[exiting]:ease-in",f),style:{...y?{height:y}:{maxHeight:m}},children:[jsxRuntime.jsx("div",{className:"flex justify-center pt-2",children:jsxRuntime.jsx("div",{className:"h-1.5 w-12 rounded-full bg-border-muted"})}),N&&(s?jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,onClose:o||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto overscroll-contain",w?"px-6 py-6":"p-0"),children:l}),L&&jsxRuntime.jsx(A,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g})]})})})}):jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{...F?{isOpen:e,onOpenChange:$=>{!$&&o&&o();}}:{},isDismissable:true,transparent:h,className:"flex items-center justify-center",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full p-4 outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",style:{maxWidth:v},children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("relative flex w-full flex-col","bg-background-surface dark:bg-gray-800","shadow-2xl shadow-black/20","border border-border-default/50","rounded-md","overflow-hidden","outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0","animate-in fade-in zoom-in-96 slide-in-from-bottom-2","duration-300 ease-out","data-[exiting]:animate-out data-[exiting]:fade-out data-[exiting]:zoom-out-95","data-[exiting]:duration-200 data-[exiting]:ease-in",f),style:{minWidth:D,...P?{height:P}:{maxHeight:B}},children:[N&&(s?jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,onClose:o||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto",w?"px-6 py-6":"p-0"),children:l}),L&&jsxRuntime.jsx(A,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g})]})})})})}function K(e){return jsxRuntime.jsx(reactAriaComponents.Form,{validationBehavior:"aria",...e,className:tailwindMerge.twMerge("flex flex-col gap-6",e.className)})}function dn({formId:e="dialog-form",onSubmit:o,primaryLabel:t="Save",secondaryLabel:r="Cancel",onCancel:n,primaryVariant:a,secondaryVariant:s="secondary",children:i,title:l,...d}){return jsxRuntime.jsx(De,{title:l,primaryAction:{label:t,onPress:()=>{let c=document.getElementById(e);c&&c.requestSubmit();},variant:a},secondaryAction:n?{label:r,onPress:n,variant:s}:void 0,...d,children:jsxRuntime.jsx(K,{id:e,onSubmit:o,children:i})})}function ne({children:e,title:o,headerContent:t,titleAlign:r="left",hideCloseIcon:n=false,hasBackArrow:a=false,onBack:s,isOpen:i,slideInFrom:l="right",transparentOverlay:d=false,onClose:p,className:c,primaryAction:g,secondaryAction:h,footerContent:v,contentPadding:D=true,maxWidth:B="400px"}){let[P,m]=Ke.useState(false);if(Ke.useEffect(()=>{if(i){let f=setTimeout(()=>m(true),10);return ()=>clearTimeout(f)}m(false);},[i]),!i)return null;let y=o||t,w=g||h||v;return jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{isOpen:i,onOpenChange:f=>!f&&p?.(),isDismissable:true,transparent:d,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"flex justify-end outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",isDismissable:true,children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("fixed bottom-0 top-0 z-50 flex w-full flex-col bg-background-surface shadow-xl duration-300 h-full min-h-0 overflow-hidden dark:bg-gray-800","outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-action-default focus-visible:outline-offset-0",P?l==="right"?"animate-in slide-in-from-right":"animate-in slide-in-from-left":"",c),style:{[l==="right"?"right":"left"]:0,maxWidth:B,transform:P?void 0:l==="right"?"translateX(100%)":"translateX(-100%)"},children:[y&&(a&&s?jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,hasBackArrow:true,onBack:s,onClose:p}):jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,onClose:p})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 overflow-y-auto overscroll-contain",D?"px-6 py-6":"p-0"),children:e}),w&&jsxRuntime.jsx(A,{primaryAction:g,secondaryAction:h,footerContent:v})]})})})})}ne.displayName="Drawer";function Dn({formId:e="drawer-form",onSubmit:o,primaryLabel:t="Save",secondaryLabel:r="Cancel",onCancel:n,primaryVariant:a,secondaryVariant:s="secondary",children:i,...l}){return jsxRuntime.jsx(ne,{primaryAction:{label:t,onPress:()=>{let p=document.getElementById(e);p&&p.requestSubmit();},variant:a},secondaryAction:n?{label:r,onPress:n,variant:s}:void 0,...l,children:jsxRuntime.jsx(K,{id:e,onSubmit:o,className:"mt-2",children:i})})}function Bn({align:e="end",className:o,...t}){return jsxRuntime.jsx("div",{...t,className:tailwindMerge.twMerge("flex gap-2",e==="start"?"justify-start":e==="between"?"justify-between":"justify-end",o)})}var Jt={sm:"gap-2",md:"gap-4",lg:"gap-6"};function Kt(e){if(!e)return "";let o=e.base?`grid-cols-${e.base}`:"",t=e.md?`md:grid-cols-${e.md}`:"",r=e.lg?`lg:grid-cols-${e.lg}`:"";return [o,t,r].filter(Boolean).join(" ")}function Hn({cols:e={base:1},gap:o="lg",className:t,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("grid",Kt(e),Jt[o],t)})}function Qe({size:e="md",className:o,children:t,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("leading-[2.25] text-text-caption",O[e].text,o),children:t})}function Gn({title:e,description:o,showDivider:t,className:r,children:n,...a}){return jsxRuntime.jsxs("section",{...a,className:tailwindMerge.twMerge("flex flex-col",r),children:[(e||o)&&jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 mb-6",children:[typeof e=="string"?jsxRuntime.jsx(V,{tag:"h3",size:"sm",children:e}):e,o?jsxRuntime.jsx(Qe,{size:"lg",children:o}):null]}),jsxRuntime.jsx("div",{className:"flex flex-col gap-6",children:n}),t&&jsxRuntime.jsx("hr",{className:"mt-2 border-border-muted"})]})}function Un(){return jsxRuntime.jsx("hr",{className:"border-border-muted"})}function Kn({steps:e,currentStepId:o,onStepClick:t,className:r}){let n=e.findIndex(a=>a.id===o);return jsxRuntime.jsx("nav",{"aria-label":"Progress",className:tailwindMerge.twMerge("w-full",r),children:jsxRuntime.jsxs("div",{className:"relative mb-20",children:[jsxRuntime.jsxs("div",{className:"absolute top-5 left-0 right-0 flex items-center justify-between",children:[jsxRuntime.jsx("div",{className:"w-10 flex-shrink-0"}),e.slice(0,-1).map((a,s)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("h-0.5 flex-1 transition-colors",s<n?"bg-action-default":"bg-border-default")},s)),jsxRuntime.jsx("div",{className:"w-10 flex-shrink-0"})]}),jsxRuntime.jsx("ol",{className:"relative flex items-start justify-between",children:e.map((a,s)=>{let i=a.id===o,l=s<n,d=t&&(l||i);return jsxRuntime.jsxs("li",{className:"flex flex-col items-center",children:[jsxRuntime.jsx("button",{type:"button",disabled:!d,onClick:()=>d&&t?.(a.id),className:tailwindMerge.twMerge("relative z-10 flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full border-2 transition-colors bg-background-body",l&&"border-action-default bg-action-default text-text-onPrimary hover:bg-action-default/90",i&&"border-action-default bg-background-body text-action-default",!l&&!i&&"border-border-default bg-background-body text-text-muted",d&&"cursor-pointer",!d&&"cursor-default"),"aria-current":i?"step":void 0,children:l?jsxRuntime.jsx(R,{name:"Check",size:20,weight:"bold"}):jsxRuntime.jsx("span",{className:"text-sm font-semibold",children:s+1})}),jsxRuntime.jsxs("div",{className:"mt-3 flex flex-col items-center text-center w-32",children:[jsxRuntime.jsx("span",{className:tailwindMerge.twMerge("text-sm font-medium",i&&"text-text-default",l&&"text-text-body",!i&&!l&&"text-text-muted"),children:a.title}),a.description&&jsxRuntime.jsx("span",{className:"mt-1 text-xs text-text-caption",children:a.description})]})]},a.id)})})]})})}function ra({formId:e,show:o,isSubmitting:t,onCancel:r,primaryLabel:n="Save changes",secondaryLabel:a="Cancel",className:s}){return o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("fixed inset-x-0 bottom-0 z-40 border-t border-border-muted bg-background-surface/95 backdrop-blur supports-[backdrop-filter]:bg-background-surface/70",s),children:jsxRuntime.jsxs("div",{className:"mx-auto flex max-w-screen-lg items-center justify-between gap-3 p-3",children:[jsxRuntime.jsx("div",{className:"text-sm text-text-muted",children:"You have unsaved changes"}),jsxRuntime.jsxs("div",{className:"flex gap-2",children:[jsxRuntime.jsx(k,{variant:"secondary",onPress:r,children:a}),jsxRuntime.jsx(k,{type:"submit",form:e,isDisabled:!!t,children:t?"Saving...":n})]})]})}):null}function ia({when:e,message:o="You have unsaved changes. Leave anyway?"}){return Ke__namespace.useEffect(()=>{if(!e)return;let t=r=>(r.preventDefault(),r.returnValue=o,o);return window.addEventListener("beforeunload",t),()=>window.removeEventListener("beforeunload",t)},[e,o]),null}function la({steps:e,initialStepId:o,canNavigate:t}){if(e.length===0)throw new Error("useWizard: steps array cannot be empty");let[r,n]=Ke__namespace.useState(o||e[0].id),a=e.findIndex(c=>c.id===r),s=a>0,i=a<e.length-1,l=async c=>c===r?true:t&&!await t(r,c)?false:(n(c),true);return {steps:e,currentStepId:r,setCurrentStepId:l,next:async()=>!i||a===-1?false:l(e[a+1].id),prev:async()=>!s||a===-1?false:l(e[a-1].id),hasNext:i,hasPrev:s,stepIndex:a}}exports.DialogForm=dn;exports.DrawerForm=Dn;exports.FormActions=Bn;exports.FormDivider=Un;exports.FormGrid=Hn;exports.FormSection=Gn;exports.FormStepper=Kn;exports.SaveBar=ra;exports.UnsavedChangesPrompt=ia;exports.useWizard=la;//# sourceMappingURL=index.cjs.map
|
|
1
|
+
'use strict';var reactAriaComponents=require('react-aria-components'),tailwindMerge=require('tailwind-merge'),oo=require('react'),ct=require('@phosphor-icons/react'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var oo__namespace=/*#__PURE__*/_interopNamespace(oo);var ct__namespace=/*#__PURE__*/_interopNamespace(ct);var it=Object.defineProperty;var st=(e,o,t)=>o in e?it(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t;var me=(e,o,t)=>st(e,typeof o!="symbol"?o+"":o,t);function ke(e,o=false){let[t,r]=oo.useState(o);return oo.useEffect(()=>{if(typeof window>"u")return;let n=window.matchMedia(e);r(n.matches);let a=s=>{r(s.matches);};return n.addEventListener("change",a),()=>{n.removeEventListener("change",a);}},[e]),t}function Se(e=false){return `${e?"outline outline-1 outline-border-input data-[focus-visible]:outline-2 data-[focus-visible]:outline-action-default data-[focus-visible]:outline-offset-0 invalid:outline-2 invalid:outline-feedback-error-border group-invalid:outline-2 group-invalid:outline-feedback-error-border forced-colors:focus:outline-[Highlight] forced-colors:focus:outline-2 forced-colors:focus:outline-offset-2":"outline-none data-[focus-visible]:outline data-[focus-visible]:outline-2 data-[focus-visible]:outline-action-default data-[focus-visible]:outline-offset-0 invalid:outline-2 invalid:outline-feedback-error-border group-invalid:outline-2 group-invalid:outline-feedback-error-border forced-colors:focus:outline-[Highlight] forced-colors:focus:outline-2 forced-colors:focus:outline-offset-2"}`}var O={sm:{text:"text-[length:var(--control-text-sm)]",height:"h-[var(--control-sm-height)]",padding:"px-[var(--control-padding-sm)]",paddingY:"py-[var(--control-gap-sm)]",gap:"gap-[var(--control-gap-sm)]"},md:{text:"text-[length:var(--control-text-md)]",height:"h-[var(--control-md-height)]",padding:"px-[var(--control-padding-md)]",paddingY:"py-[var(--control-gap-md)]",gap:"gap-[var(--control-gap-md)]"},lg:{text:"text-[length:var(--control-text-lg)]",height:"h-[var(--control-lg-height)]",padding:"px-[var(--control-padding-lg)]",paddingY:"py-[var(--control-gap-lg)]",gap:"gap-[var(--control-gap-lg)]"},xl:{text:"text-[length:var(--control-text-xl)]",height:"h-[var(--control-xl-height)]",padding:"px-[var(--control-padding-xl)]",paddingY:"py-[var(--control-gap-xl)]",gap:"gap-[var(--control-gap-xl)]"}};var U={xs:16,sm:20,md:24,lg:32,xl:40,"2xl":48},R=oo.memo(({name:e,size:o="md",color:t,weight:r="regular",className:n,ariaLabel:a,...s})=>{let i=ct__namespace[e];if(!i)return process.env.NODE_ENV==="development"&&console.error(`Icon "${e}" not found in @phosphor-icons/react`),null;let l=typeof o=="string"&&o in U?U[o]:o,d=tailwindMerge.twMerge("inline-block flex-shrink-0",!t&&"text-current",n);return jsxRuntime.jsx(i,{...s,size:l,color:t,weight:r,className:d,"aria-label":a||`${e} icon`,"data-testid":`icon-${e}`})});R.displayName="Icon";var Fe=oo.memo(({variant:e="subtle",shape:o="square",containerSize:t,containerClassName:r,size:n="md",className:a,name:s,color:i,weight:l,ariaLabel:d,ref:p,...c})=>{let g=typeof n=="string"&&n in U?U[n]:n,h=t?typeof t=="string"&&t in U?U[t]:t:g*1.75,v=tailwindMerge.twMerge("inline-flex items-center justify-center flex-shrink-0",o==="circle"?"rounded-full":"rounded-lg",e==="subtle"&&"bg-gray-100 dark:bg-gray-800",e==="solid"&&"bg-brand text-white",e==="outline"&&"border-2 border-current",r);return jsxRuntime.jsx("div",{className:v,style:{width:h,height:h},children:jsxRuntime.jsx(R,{...c,name:s,size:n,color:i,weight:l,className:a,ariaLabel:d})})});Fe.displayName="IconWithContainer";var ft="flex font-medium justify-center items-center gap-2 text-center transition rounded-[var(--control-border-radius)] whitespace-nowrap box-border",mt={default:"bg-action-default text-[color:var(--color-action-default-text)] hover:bg-action-default-hover forced-colors:bg-[ButtonText] forced-colors:text-[ButtonFace] border-2 border-transparent",brand:"bg-action-brand text-[color:var(--color-action-brand-text)] hover:bg-action-brand-hover forced-colors:bg-[ButtonText] forced-colors:text-[ButtonFace] border-2 border-transparent",secondary:"bg-transparent text-text-body border-2 border-border-muted hover:bg-text-body/5 forced-colors:border-[ButtonBorder] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText]",ghost:"border-none text-text-body hover:bg-text-body/5 forced-colors:text-[ButtonText] forced-colors:hover:bg-[ButtonFace]",destructive:"bg-transparent text-feedback-error-text border-2 border-border-muted hover:bg-feedback-error-background/50 forced-colors:border-[ButtonBorder] forced-colors:bg-[ButtonFace] forced-colors:text-[Mark]",link:"!text-action-brand hover:text-action-brand/90 hover:underline hover:decoration-2 hover:underline-offset-4",icon:"border-none text-text-body hover:bg-background-hover hover:text-text-heading forced-colors:text-[ButtonText] forced-colors:hover:bg-[ButtonFace] p-1 flex-shrink-0 rounded-[var(--control-border-radius)]",unstyled:"bg-transparent"},He={full:"w-full",default:"w-fit"},gt="opacity-50 cursor-not-allowed pointer-events-none",bt="opacity-100 cursor-pointer",ht={"top-right":"-right-2 -top-2","top-left":"-left-2 -top-2","bottom-right":"-right-2 -bottom-2","bottom-left":"-left-2 -bottom-2"},xt={primary:"bg-action-brand text-white",destructive:"bg-action-destructive text-white"};function vt(e){return e?e==="primary"?"brand":e:"default"}function yt(e){let{variant:o="default",size:t="md",isDisabled:r,fullWidth:n=false,isLoading:a=false}=e,s=vt(o),i=s==="unstyled"?"":`${ft} ${mt[s]}`;s!=="unstyled"&&(i+=` ${O[t].text} ${O[t].height} ${O[t].padding} ${O[t].gap}`),r||a?i+=` ${gt}`:i+=` ${bt}`,n?i+=` ${He.full}`:i+=` ${He.default}`;let l=s==="brand"?"focus-visible:outline-action-brand":void 0;return [i,Se(),l].filter(Boolean).join(" ")}function k(e){let{icon:o,children:t,isLoading:r=false,loadingText:n,loadingIndicator:a,size:s="md",iconPosition:i="left",iconWeight:l,href:d,className:p,badgeNumber:c,badgeVariant:g="primary",badgePosition:h="top-right",style:v,target:D,rel:B,...P}=e,m=o?jsxRuntime.jsx(R,{name:o,size:s,weight:l}):null,y=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,typeof t=="function"?null:t,i==="right"&&m]}),w=jsxRuntime.jsxs("div",{className:"relative inline-flex items-center justify-center",children:[jsxRuntime.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:a||jsxRuntime.jsx(R,{name:"CircleNotch",size:s,className:"animate-spin","aria-hidden":"true"})}),jsxRuntime.jsx("div",{className:"invisible","aria-hidden":"true",children:y}),n&&jsxRuntime.jsx("span",{className:"sr-only",role:"status","aria-live":"polite",children:n})]}),f=(c??0)>0,N=tailwindMerge.twMerge(yt(e),p),L=d?{href:d,target:D,rel:B,...P}:{};if(d){let{onPress:W,onPressStart:$,onPressEnd:ie,onPressChange:Y,onPressUp:G,onAuxClick:De,onContextMenu:Re,onDoubleClick:se,...le}=P;Object.assign(L,le);}let I=d?jsxRuntime.jsx(reactAriaComponents.Link,{...L,...r&&{"aria-busy":true},style:f?void 0:v,className:N,children:r?w:typeof t=="function"?(function(W){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t(W),i==="right"&&m]})}):y}):jsxRuntime.jsx(reactAriaComponents.Button,{...P,...r&&{"aria-busy":true},style:f?void 0:v,className:N,children:r?w:typeof t=="function"?(function(W){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t(W),i==="right"&&m]})}):y});return f?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex",p),style:v,children:[I,jsxRuntime.jsx("span",{className:`absolute ${ht[h]} flex h-5 w-5 items-center justify-center rounded-full ${xt[g]} text-xs font-medium`,"aria-label":`${c} items`,children:c})]}):I}function A({primaryAction:e,secondaryAction:o,tertiaryAction:t,footerContent:r}){let n=e||o||t;return !n&&!r?null:jsxRuntime.jsxs("div",{className:"flex h-28 w-full flex-col items-center justify-center border-t p-4",children:[r&&jsxRuntime.jsx("div",{className:"flex h-10 justify-center",children:r}),n&&jsxRuntime.jsxs("div",{className:"flex h-full w-full items-center justify-between gap-3",children:[jsxRuntime.jsx("div",{children:t&&jsxRuntime.jsx(k,{size:t.size||"lg",variant:t.variant||"destructive",onPress:t.onPress,isLoading:t.isLoading,isDisabled:t.isDisabled,children:t.label})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[o&&jsxRuntime.jsx(k,{size:o.size||"lg",variant:o.variant||"secondary",onPress:o.onPress,isLoading:o.isLoading,isDisabled:o.isDisabled,children:o.label}),e&&jsxRuntime.jsx(k,{size:e.size||"lg",variant:e.variant||"default",onPress:e.onPress,isLoading:e.isLoading,isDisabled:e.isDisabled,children:e.label})]})]})]})}var wt={xs:"text-lg font-semibold",sm:"text-xl font-semibold",md:"text-2xl font-semibold",lg:"text-3xl font-semibold",xl:"text-4xl font-semibold"},Nt={page:"h-16 leading-[62px]"};function V({tag:e="h1",size:o="lg",height:t,className:r="",children:n}){let a=wt[o],s=t?Nt[t]:"";return jsxRuntime.jsx(e,{className:tailwindMerge.twMerge(a,s,r),children:n})}var C=({title:e,onClose:o,hideCloseIcon:t=false,titleAlign:r="left",hasBackArrow:n=false,onBack:a,headerContent:s})=>jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex h-16 w-full flex-shrink-0 items-center justify-between border-b px-6",e&&"border-b",r==="center"?"justify-center":""),children:[n&&jsxRuntime.jsx(k,{variant:"icon",onPress:a,className:"absolute left-6","aria-label":"Go back",children:jsxRuntime.jsx(R,{name:"CaretLeft","data-testid":"back-arrow"})}),s||jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[e&&jsxRuntime.jsx(V,{size:"xs",children:e}),o&&!t&&jsxRuntime.jsx(k,{variant:"icon",onPress:o,"aria-label":"Close dialog",children:jsxRuntime.jsx(R,{name:"X","data-testid":"close-button"})})]})]});var S=({width:e,height:o,variant:t="rect",animation:r="pulse",gradient:n=false,flex:a=false,stack:s,responsive:i,delay:l=0,adjustAnimationSpeedBasedOnWidth:d=false,ariaLabel:p,className:c,"data-testid":g})=>{let[h,v]=oo.useState(l===0);if(oo.useEffect(()=>{if(l>0){let f=setTimeout(()=>v(true),l);return ()=>clearTimeout(f)}},[l]),!h)return null;let D=n?"bg-gradient-to-r from-[var(--color-skeleton-base)] via-[var(--color-skeleton-highlight)] to-[var(--color-skeleton-base)]":"bg-[var(--color-skeleton-base)]",B=d&&e?(()=>{let f=typeof e=="number"?e:parseFloat(String(e));return isNaN(f)?"":`animation-duration-[${Math.max(.8,f/100)}s]`})():"",P=r==="pulse"?`animate-pulse ${B}`:r==="wave"?`relative overflow-hidden before:absolute before:inset-0 before:bg-gradient-to-r before:from-transparent before:via-[var(--color-skeleton-wave)] before:to-transparent before:animate-wave ${B}`:"",m="rounded-sm";t==="circle"&&(m="rounded-full"),t==="text"&&(m="h-4 w-full rounded-sm");let y=a?"flex-1 min-w-0":"",w=i?Object.entries(i).map(([f,N])=>`${f}:w-[${N}]`).join(" "):"";return s?jsxRuntime.jsx("div",{className:"space-y-2","data-testid":g,children:s.map((f,N)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(D,P,m,y,w,c),style:{width:f,height:o}},N))}):jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(D,P,m,y,w,c),style:{width:e,height:o},role:"presentation","aria-hidden":!p,"aria-label":p??void 0,"data-testid":g})};var Bt={outlined:"bg-background-surface border border-border-default",elevated:"bg-background-surface border-0 shadow-md",filled:"bg-background-muted border-0",ghost:"bg-transparent border-0 shadow-none"},It="rounded-lg",ve={square:"aspect-square",video:"aspect-video",wide:"aspect-[2/1]",auto:""},Ft={start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between"};function E({variant:e="outlined",className:o,children:t,isLoading:r=false}){return jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("w-full overflow-hidden",Bt[e],It,o),"data-testid":"card",children:r?jsxRuntime.jsx(S,{width:"100%",height:"100%",className:"rounded-none"}):t})}function Le({title:e,subtitle:o,actions:t,className:r,isLoading:n=false}){return n?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("p-6 pb-4",r),children:[jsxRuntime.jsxs("div",{className:"flex justify-between items-start mb-1",children:[jsxRuntime.jsx(S,{width:120,height:20}),jsxRuntime.jsx(S,{width:24,height:24})]}),o&&jsxRuntime.jsx(S,{width:200,height:16})]}):!e&&!o&&!t?null:jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("p-6 pb-4",r),children:jsxRuntime.jsxs("div",{className:"flex justify-between items-start gap-4",children:[jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[e&&jsxRuntime.jsx("div",{className:"mb-1",children:typeof e=="string"?jsxRuntime.jsx(V,{tag:"h3",size:"sm",className:"text-text-heading",children:e}):e}),o&&jsxRuntime.jsx("div",{className:"text-sm text-text-muted",children:o})]}),t&&jsxRuntime.jsx("div",{className:"flex-shrink-0",children:t})]})})}function ze({src:e,alt:o,aspectRatio:t="auto",className:r,children:n,isLoading:a=false}){return a?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("bg-background-muted",ve[t],r),children:jsxRuntime.jsx(S,{width:"100%",height:"100%"})}):n?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",ve[t],r),children:n}):e?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",ve[t],r),children:jsxRuntime.jsx("img",{src:e,alt:o||"",className:"w-full h-full object-cover",loading:"lazy"})}):null}function Ae({className:e,children:o,isLoading:t=false}){let n=e?.match(/p(?:t|b|l|r|x|y)?-(?:\d+(?:\.\d+)?|px|\[.+?\])/)?"":"px-6 py-4";return t?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(n,e),children:jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx(S,{width:"100%",height:16}),jsxRuntime.jsx(S,{width:"80%",height:16}),jsxRuntime.jsx(S,{width:"60%",height:16})]})}):o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 text-text-body",e),children:o}):null}function _e({className:e,children:o,align:t="end",isLoading:r=false}){return r?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("px-6 py-4 flex gap-2 justify-end",e),children:[jsxRuntime.jsx(S,{width:80,height:32}),jsxRuntime.jsx(S,{width:60,height:32})]}):o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 flex items-center gap-2",Ft[t],e),children:o}):null}E.Header=Le;E.Media=ze;E.Content=Ae;E.Footer=_e;var M=class extends oo.Component{constructor(){super(...arguments);me(this,"state",{hasError:false});me(this,"handleRetry",()=>{this.setState({hasError:false,error:void 0}),typeof window<"u"&&window.location.reload();});}static getDerivedStateFromError(t){return {hasError:true,error:t}}componentDidCatch(t,r){console.error("Error Boundary caught an error:",t,r);}render(){return this.state.hasError?this.props.fallback?this.props.fallback:jsxRuntime.jsxs(E,{children:[this.props.title&&jsxRuntime.jsx(E.Header,{title:this.props.title}),jsxRuntime.jsx(E.Content,{children:jsxRuntime.jsxs("div",{className:"flex flex-col items-center justify-center gap-4","data-testid":"error-boundary",children:[jsxRuntime.jsx("p",{className:"text-red-500",children:this.state.error?.message||"Something went wrong"}),jsxRuntime.jsx("button",{className:"rounded bg-blue-500 px-4 py-2 text-white hover:bg-blue-600",onClick:this.handleRetry,children:"Retry"})]})})]}):this.props.children}};function _({transparent:e=false,className:o,children:t,...r}){return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{...r,className:reactAriaComponents.composeRenderProps(o,(n,a)=>tailwindMerge.twMerge("fixed inset-0 z-50","outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",e?"bg-transparent":["bg-gradient-to-br from-black/20 via-black/15 to-black/20","backdrop-blur-[2px]","supports-[backdrop-filter]:bg-black/15"].join(" "),a.isEntering&&["animate-in fade-in","duration-300 ease-out"].join(" "),a.isExiting&&["animate-out fade-out","duration-200 ease-in"].join(" "),n)),children:t})}var _t=.3,Wt=.5;function oe({children:e,title:o,headerContent:t,titleAlign:r="left",hideCloseIcon:n=false,hasBackArrow:a=false,onBack:s,isOpen:i,onClose:l,isDismissable:d=true,transparentOverlay:p=false,primaryAction:c,secondaryAction:g,footerContent:h,maxHeight:v="80vh",height:D,maxWidth:B="640px",contentPadding:P=true,showHandle:m=true,animationVariant:y="scale",className:w}){let[f,N]=oo.useState(false),[L,I]=oo.useState(0),[W,$]=oo.useState(false),ie=oo.useRef(null),Y=oo.useRef(null),G=oo.useRef({isDragging:false,startY:0,startTime:0,pointerId:null});oo.useEffect(()=>{if(i){let x=setTimeout(()=>{N(true),setTimeout(()=>N(false),600);},400);return ()=>clearTimeout(x)}},[i]),oo.useEffect(()=>{i||(I(0),$(false),G.current={isDragging:false,startY:0,startTime:0,pointerId:null});},[i]);let De=oo.useCallback(x=>{d&&(x.pointerType!=="touch"&&x.pointerType!=="pen"||(Y.current&&(clearTimeout(Y.current),Y.current=null),G.current={isDragging:true,startY:x.clientY,startTime:Date.now(),pointerId:x.pointerId},$(false),x.currentTarget.setPointerCapture(x.pointerId)));},[d]),Re=oo.useCallback(x=>{let{isDragging:de,startY:ce,pointerId:ue}=G.current;if(!de||x.pointerId!==ue)return;let pe=x.clientY-ce;I(Math.max(0,pe));},[]),se=oo.useCallback(x=>{let{isDragging:de,startY:ce,startTime:ue,pointerId:pe}=G.current;if(!de||x.pointerId!==pe)return;let fe=x.clientY-ce,rt=Date.now()-ue,nt=fe/rt;G.current={isDragging:false,startY:0,startTime:0,pointerId:null};let at=(ie.current?.getBoundingClientRect().height??0)*_t;(fe>at||nt>Wt&&fe>50)&&d?(l?.(),I(0)):($(true),I(0),Y.current=setTimeout(()=>{$(false),Y.current=null;},200));},[d,l]);if(!i)return null;let le=o||t,ot=c||g||h;return jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{isOpen:i,onOpenChange:x=>{x||l?.();},isDismissable:d,transparent:p,className:"flex items-end justify-center p-0 sm:p-4",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full max-w-full p-0 sm:p-2 outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",isDismissable:d,children:jsxRuntime.jsx("div",{ref:ie,className:tailwindMerge.twMerge("w-full",W&&"transition-transform duration-200"),style:{transform:L>0?`translateY(${L}px)`:void 0},children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("relative flex w-full flex-col overflow-hidden","bg-background-surface","shadow-2xl shadow-black/30 dark:shadow-black/60","border-t border-x border-border-default/40","outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0 focus:shadow-none","origin-bottom",y==="scale"?"animate-[tray-enter-scale_400ms_cubic-bezier(0.32,0.72,0,1)]":"animate-[tray-enter_400ms_cubic-bezier(0.32,0.72,0,1)]",y==="scale"?"data-[exiting]:animate-[tray-exit-scale_250ms_cubic-bezier(0.32,0,0.67,0)]":"data-[exiting]:animate-[tray-exit_250ms_cubic-bezier(0.32,0,0.67,0)]",w),style:{maxWidth:B,...D?{height:D}:{maxHeight:v}},children:[m&&jsxRuntime.jsx("div",{className:"absolute top-0 left-0 right-0 h-8 z-10 flex justify-center items-start pt-2 touch-none cursor-grab active:cursor-grabbing",onPointerDown:De,onPointerMove:Re,onPointerUp:se,onPointerCancel:se,children:jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("h-1 w-12 rounded-full bg-border-muted transition-all duration-300","hover:bg-border-default hover:w-16",f&&"animate-[handle-wiggle_0.6s_ease-in-out]")})}),le&&(a?jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n||!l,hasBackArrow:true,onBack:s??(()=>{}),onClose:l||(()=>{})}):jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n||!l,onClose:l||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto overscroll-contain",P?"p-4":"p-0"),children:e}),ot&&jsxRuntime.jsx(A,{primaryAction:c,secondaryAction:g,footerContent:h})]})})})})})}oe.displayName="Tray";function Ne({isOpen:e,onClose:o,title:t,headerContent:r,titleAlign:n="left",hideCloseIcon:a=false,hasBackArrow:s=false,onBack:i,children:l,primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g,transparentOverlay:h=false,maxWidth:v="600px",minWidth:D="400px",maxHeight:B="85vh",height:P,mobileMaxHeight:m="90vh",mobileHeight:y,contentPadding:w=true,className:f}){if(e===false)return null;let N=t||r,L=d||p||c||g,I=e!==void 0;return ke("(max-width: 767px)")?I?jsxRuntime.jsx(oe,{isOpen:e,onClose:o,title:t,headerContent:r,titleAlign:n,hideCloseIcon:a,hasBackArrow:s,onBack:i,primaryAction:d,secondaryAction:p,footerContent:g,transparentOverlay:h,maxHeight:m,height:y,maxWidth:v,contentPadding:w,showHandle:true,animationVariant:"scale",className:f,children:l}):jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{isDismissable:true,transparent:h,className:"flex items-end justify-center",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full p-0 outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("relative flex w-full flex-col","bg-background-surface dark:bg-gray-800","shadow-2xl shadow-black/20","border-t border-x border-border-default/40","max-h-[90vh]","rounded-t-xl","overflow-hidden","animate-in slide-in-from-bottom","duration-300 ease-out","data-[exiting]:animate-out data-[exiting]:slide-out-to-bottom","data-[exiting]:duration-200 data-[exiting]:ease-in",f),style:{...y?{height:y}:{maxHeight:m}},children:[jsxRuntime.jsx("div",{className:"flex justify-center pt-2",children:jsxRuntime.jsx("div",{className:"h-1.5 w-12 rounded-full bg-border-muted"})}),N&&(s?jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,onClose:o||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto overscroll-contain",w?"px-6 py-6":"p-0"),children:l}),L&&jsxRuntime.jsx(A,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g})]})})})}):jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{...I?{isOpen:e,onOpenChange:$=>{!$&&o&&o();}}:{},isDismissable:true,transparent:h,className:"flex items-center justify-center",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full p-4 outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",style:{maxWidth:v},children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("relative flex w-full flex-col","bg-background-surface dark:bg-gray-800","shadow-2xl shadow-black/20","border border-border-default/50","rounded-md","overflow-hidden","outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0","animate-in fade-in zoom-in-96 slide-in-from-bottom-2","duration-300 ease-out","data-[exiting]:animate-out data-[exiting]:fade-out data-[exiting]:zoom-out-95","data-[exiting]:duration-200 data-[exiting]:ease-in",f),style:{minWidth:D,...P?{height:P}:{maxHeight:B}},children:[N&&(s?jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(C,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,onClose:o||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto",w?"px-6 py-6":"p-0"),children:l}),L&&jsxRuntime.jsx(A,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g})]})})})})}function K(e){return jsxRuntime.jsx(reactAriaComponents.Form,{validationBehavior:"aria",...e,className:tailwindMerge.twMerge("flex flex-col gap-6",e.className)})}function un({formId:e="dialog-form",onSubmit:o,primaryLabel:t="Save",secondaryLabel:r="Cancel",onCancel:n,primaryVariant:a,secondaryVariant:s="secondary",children:i,title:l,...d}){return jsxRuntime.jsx(Ne,{title:l,primaryAction:{label:t,onPress:()=>{let c=document.getElementById(e);c&&c.requestSubmit();},variant:a},secondaryAction:n?{label:r,onPress:n,variant:s}:void 0,...d,children:jsxRuntime.jsx(K,{id:e,onSubmit:o,children:i})})}function ne({children:e,title:o,headerContent:t,titleAlign:r="left",hideCloseIcon:n=false,hasBackArrow:a=false,onBack:s,isOpen:i,slideInFrom:l="right",transparentOverlay:d=false,onClose:p,className:c,primaryAction:g,secondaryAction:h,footerContent:v,contentPadding:D=true,maxWidth:B="400px"}){let[P,m]=oo.useState(false);if(oo.useEffect(()=>{if(i){let f=setTimeout(()=>m(true),10);return ()=>clearTimeout(f)}m(false);},[i]),!i)return null;let y=o||t,w=g||h||v;return jsxRuntime.jsx(M,{children:jsxRuntime.jsx(_,{isOpen:i,onOpenChange:f=>!f&&p?.(),isDismissable:true,transparent:d,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"flex justify-end outline-none focus:outline-none focus-visible:outline-none ring-0 focus:ring-0 focus-visible:ring-0",isDismissable:true,children:jsxRuntime.jsxs(reactAriaComponents.Dialog,{className:tailwindMerge.twMerge("fixed bottom-0 top-0 z-50 flex w-full flex-col bg-background-surface shadow-xl duration-300 h-full min-h-0 overflow-hidden dark:bg-gray-800","outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-action-default focus-visible:outline-offset-0",P?l==="right"?"animate-in slide-in-from-right":"animate-in slide-in-from-left":"",c),style:{[l==="right"?"right":"left"]:0,maxWidth:B,transform:P?void 0:l==="right"?"translateX(100%)":"translateX(-100%)"},children:[y&&(a&&s?jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,hasBackArrow:true,onBack:s,onClose:p}):jsxRuntime.jsx(C,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,onClose:p})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 overflow-y-auto overscroll-contain",D?"px-6 py-6":"p-0"),children:e}),w&&jsxRuntime.jsx(A,{primaryAction:g,secondaryAction:h,footerContent:v})]})})})})}ne.displayName="Drawer";function kn({formId:e="drawer-form",onSubmit:o,primaryLabel:t="Save",secondaryLabel:r="Cancel",onCancel:n,primaryVariant:a,secondaryVariant:s="secondary",children:i,...l}){return jsxRuntime.jsx(ne,{primaryAction:{label:t,onPress:()=>{let p=document.getElementById(e);p&&p.requestSubmit();},variant:a},secondaryAction:n?{label:r,onPress:n,variant:s}:void 0,...l,children:jsxRuntime.jsx(K,{id:e,onSubmit:o,className:"mt-2",children:i})})}function Fn({align:e="end",className:o,...t}){return jsxRuntime.jsx("div",{...t,className:tailwindMerge.twMerge("flex gap-2",e==="start"?"justify-start":e==="between"?"justify-between":"justify-end",o)})}var Zt={sm:"gap-2",md:"gap-4",lg:"gap-6"};function eo(e){if(!e)return "";let o=e.base?`grid-cols-${e.base}`:"",t=e.md?`md:grid-cols-${e.md}`:"",r=e.lg?`lg:grid-cols-${e.lg}`:"";return [o,t,r].filter(Boolean).join(" ")}function Tn({cols:e={base:1},gap:o="lg",className:t,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("grid",eo(e),Zt[o],t)})}var ro=oo__namespace.default.forwardRef(({children:e,className:o},t)=>jsxRuntime.jsx("div",{ref:t,className:tailwindMerge.twMerge("relative w-full",o),children:e}));ro.displayName="InputWrapper";function Qe({size:e="md",className:o,children:t,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("leading-[2.25] text-text-caption",O[e].text,o),children:t})}function Un({title:e,description:o,showDivider:t,className:r,children:n,...a}){return jsxRuntime.jsxs("section",{...a,className:tailwindMerge.twMerge("flex flex-col",r),children:[(e||o)&&jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 mb-6",children:[typeof e=="string"?jsxRuntime.jsx(V,{tag:"h3",size:"sm",children:e}):e,o?jsxRuntime.jsx(Qe,{size:"lg",children:o}):null]}),jsxRuntime.jsx("div",{className:"flex flex-col gap-6",children:n}),t&&jsxRuntime.jsx("hr",{className:"mt-2 border-border-muted"})]})}function qn(){return jsxRuntime.jsx("hr",{className:"border-border-muted"})}function Zn({steps:e,currentStepId:o,onStepClick:t,className:r}){let n=e.findIndex(a=>a.id===o);return jsxRuntime.jsx("nav",{"aria-label":"Progress",className:tailwindMerge.twMerge("w-full",r),children:jsxRuntime.jsx("div",{className:"relative mb-12",children:jsxRuntime.jsx("ol",{className:"relative flex items-start justify-between",children:e.map((a,s)=>{let i=a.id===o,l=s<n,d=t&&(l||i);return jsxRuntime.jsxs("li",{className:"relative flex flex-col items-center",style:{flex:`1 1 ${100/e.length}%`},children:[jsxRuntime.jsx("button",{type:"button",disabled:!d,onClick:()=>d&&t?.(a.id),className:tailwindMerge.twMerge("relative z-10 flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full border-2 transition-colors bg-background-body",l&&"border-action-default bg-action-default text-text-onPrimary hover:bg-action-default/90",i&&"border-action-default bg-background-body text-action-default",!l&&!i&&"border-border-default bg-background-body text-text-muted",d&&"cursor-pointer",!d&&"cursor-default"),"aria-current":i?"step":void 0,children:l?jsxRuntime.jsx(R,{name:"Check",size:20,weight:"bold"}):jsxRuntime.jsx("span",{className:"text-sm font-semibold",children:s+1})}),s<e.length-1&&jsxRuntime.jsx("div",{className:"absolute top-5 h-0.5 transition-colors",style:{left:"50%",width:"100%",marginLeft:"20px",backgroundColor:s<n?"var(--color-action-default)":"var(--color-border-default)"}}),jsxRuntime.jsxs("div",{className:"mt-3 flex flex-col items-center text-center w-32",children:[jsxRuntime.jsx("span",{className:tailwindMerge.twMerge("text-sm font-medium",i&&"text-text-default",l&&"text-text-body",!i&&!l&&"text-text-muted"),children:a.title}),a.description&&jsxRuntime.jsx("span",{className:"mt-1 text-xs text-text-caption",children:a.description})]})]},a.id)})})})})}function na({formId:e,show:o,isSubmitting:t,onCancel:r,primaryLabel:n="Save changes",secondaryLabel:a="Cancel",className:s}){return o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("fixed inset-x-0 bottom-0 z-40 border-t border-border-muted bg-background-surface/95 backdrop-blur supports-[backdrop-filter]:bg-background-surface/70",s),children:jsxRuntime.jsxs("div",{className:"mx-auto flex max-w-screen-lg items-center justify-between gap-3 p-3",children:[jsxRuntime.jsx("div",{className:"text-sm text-text-muted",children:"You have unsaved changes"}),jsxRuntime.jsxs("div",{className:"flex gap-2",children:[jsxRuntime.jsx(k,{variant:"secondary",onPress:r,children:a}),jsxRuntime.jsx(k,{type:"submit",form:e,isDisabled:!!t,children:t?"Saving...":n})]})]})}):null}function sa({when:e,message:o="You have unsaved changes. Leave anyway?"}){return oo__namespace.useEffect(()=>{if(!e)return;let t=r=>(r.preventDefault(),r.returnValue=o,o);return window.addEventListener("beforeunload",t),()=>window.removeEventListener("beforeunload",t)},[e,o]),null}function da({steps:e,initialStepId:o,canNavigate:t}){if(e.length===0)throw new Error("useWizard: steps array cannot be empty");let[r,n]=oo__namespace.useState(o||e[0].id),a=e.findIndex(c=>c.id===r),s=a>0,i=a<e.length-1,l=async c=>c===r?true:t&&!await t(r,c)?false:(n(c),true);return {steps:e,currentStepId:r,setCurrentStepId:l,next:async()=>!i||a===-1?false:l(e[a+1].id),prev:async()=>!s||a===-1?false:l(e[a-1].id),hasNext:i,hasPrev:s,stepIndex:a}}exports.DialogForm=un;exports.DrawerForm=kn;exports.FormActions=Fn;exports.FormDivider=qn;exports.FormGrid=Tn;exports.FormSection=Un;exports.FormStepper=Zn;exports.SaveBar=na;exports.UnsavedChangesPrompt=sa;exports.useWizard=da;//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|