@texturehq/edges 1.26.4 → 1.26.6

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.
@@ -1595,6 +1595,7 @@ interface TextLinkProps {
1595
1595
  asButton?: boolean;
1596
1596
  onPress?: () => void;
1597
1597
  showArrow?: boolean;
1598
+ alwaysUnderlined?: boolean;
1598
1599
  /**
1599
1600
  * Custom Link component (e.g., Next.js Link) to handle navigation
1600
1601
  * If provided, this component will be used instead of a standard <a> tag
@@ -1610,7 +1611,7 @@ interface TextLinkProps {
1610
1611
  *
1611
1612
  * @param LinkComponent - Optional custom Link component (e.g., Next.js Link) for client-side navigation
1612
1613
  */
1613
- declare const TextLink: ({ href, children, className, external, title, variant, onClick, asButton, onPress, showArrow, LinkComponent, }: TextLinkProps) => react_jsx_runtime.JSX.Element;
1614
+ declare const TextLink: ({ href, children, className, external, title, variant, onClick, asButton, onPress, showArrow, alwaysUnderlined, LinkComponent, }: TextLinkProps) => react_jsx_runtime.JSX.Element;
1614
1615
 
1615
1616
  /**
1616
1617
  * Entity Configuration
@@ -1835,4 +1836,4 @@ declare const isLightColor: (color: string) => boolean;
1835
1836
  */
1836
1837
  declare const getContrastingTextColor: (backgroundColor: string) => string;
1837
1838
 
1838
- export { type DateFormat as $, type ActionItem as A, type BadgeProps as B, type CodeEditorProps as C, getResolvedColor as D, type EntityConfig as E, getThemeCategoricalColors as F, isLightColor as G, Heading as H, type InteractiveMapProps as I, type TooltipData as J, type TooltipSeries as K, Loader as L, type MapPoint as M, type BaseDataPoint as N, type ChartMargin as O, createXScale as P, createYScale as Q, defaultMargin as R, type StaticMapProps as S, TextLink as T, getYFormatSettings as U, type YFormatSettings as V, type FieldValue as W, type BooleanFormat as X, type YFormatType as Y, type FormattedValue as Z, type CurrentFormat as _, type ActionMenuProps as a, type DistanceFormat as a0, type EnergyFormat as a1, type CurrencyFormat as a2, type NumberFormat as a3, type PhoneFormat as a4, type PowerFormat as a5, type FormatterFunction as a6, type ResistanceFormat as a7, type TemperatureUnitString as a8, type TemperatureUnit as a9, ChartContext as aA, useChartContext as aB, type ComponentFormatOptions as aC, formatComponentValue as aD, useComponentFormatter as aE, type BaseFormat as aF, type TextTransform as aG, type TextTruncatePosition as aH, type PercentageFormat as aI, type DateFormatStyle as aJ, type EnergyUnit as aK, type PowerUnit as aL, type VoltageUnit as aM, type CurrentUnit as aN, type ResistanceUnit as aO, type DistanceUnit as aP, type CustomFormat as aQ, type MetricFormat as aR, deviceStateMetricFormats as aS, activeDeviceStates as aT, deviceStateLabels as aU, isActiveState as aV, getDeviceStateLabel as aW, gridStateLabels as aX, getGridStateLabel as aY, type TemperatureFormat as aa, type TextFormat as ab, type VoltageFormat as ac, type FieldFormat as ad, type DeviceState as ae, type GridState as af, type ComponentFormatter as ag, type LayerSpec as ah, type CustomPinsSpec as ai, type GeoJsonLayerSpec as aj, type RasterLayerSpec as ak, type VectorLayerSpec as al, type ClusteredVectorLayerSpec as am, ActionMenu as an, Badge as ao, CodeEditor as ap, type ColorSpec as aq, type LayerFeature as ar, type LayerStyle as as, type RenderType as at, type ZoomStops as au, InteractiveMap as av, MAP_TYPES as aw, StaticMap as ax, Meter as ay, SegmentedControl as az, AppShell as b, type AppShellProps as c, type AvatarProps as d, Avatar as e, type CodeLanguage as f, type CodeTheme as g, Logo as h, type MeterProps as i, type SegmentedControlProps as j, type SegmentOption as k, SideNav as l, type SideNavItem as m, type SideNavProps as n, TopNav as o, type TopNavProps as p, type EntityType as q, ENTITY_CONFIG as r, getEntityConfig as s, getEntityIcon as t, getEntityLabel as u, clearColorCache as v, createCategoryColorMap as w, getContrastingTextColor as x, getDefaultChartColor as y, getDefaultColors as z };
1839
+ export { type DistanceFormat as $, type ActionItem as A, type BadgeProps as B, type CodeEditorProps as C, getThemeCategoricalColors as D, type EntityConfig as E, isLightColor as F, type TooltipData as G, Heading as H, type InteractiveMapProps as I, type TooltipSeries as J, type BaseDataPoint as K, Loader as L, type MapPoint as M, type ChartMargin as N, createXScale as O, createYScale as P, defaultMargin as Q, getYFormatSettings as R, type StaticMapProps as S, TextLink as T, type YFormatSettings as U, type FieldValue as V, type BooleanFormat as W, type FormattedValue as X, type YFormatType as Y, type CurrentFormat as Z, type DateFormat as _, type ActionMenuProps as a, type EnergyFormat as a0, type CurrencyFormat as a1, type NumberFormat as a2, type PhoneFormat as a3, type PowerFormat as a4, type FormatterFunction as a5, type ResistanceFormat as a6, type TemperatureUnitString as a7, type TemperatureUnit as a8, type TemperatureFormat as a9, ChartContext as aA, useChartContext as aB, type ComponentFormatOptions as aC, formatComponentValue as aD, useComponentFormatter as aE, type BaseFormat as aF, type TextTransform as aG, type TextTruncatePosition as aH, type PercentageFormat as aI, type DateFormatStyle as aJ, type EnergyUnit as aK, type PowerUnit as aL, type VoltageUnit as aM, type CurrentUnit as aN, type ResistanceUnit as aO, type DistanceUnit as aP, type CustomFormat as aQ, type MetricFormat as aR, deviceStateMetricFormats as aS, activeDeviceStates as aT, deviceStateLabels as aU, isActiveState as aV, getDeviceStateLabel as aW, gridStateLabels as aX, getGridStateLabel as aY, type TextFormat as aa, type VoltageFormat as ab, type FieldFormat as ac, type DeviceState as ad, type GridState as ae, type ComponentFormatter as af, type LayerSpec as ag, type CustomPinsSpec as ah, type GeoJsonLayerSpec as ai, type RasterLayerSpec as aj, type VectorLayerSpec as ak, type ClusteredVectorLayerSpec as al, ActionMenu as am, Avatar as an, Badge as ao, CodeEditor as ap, type ColorSpec as aq, type LayerFeature as ar, type LayerStyle as as, type RenderType as at, type ZoomStops as au, InteractiveMap as av, MAP_TYPES as aw, StaticMap as ax, Meter as ay, SegmentedControl as az, AppShell as b, type AppShellProps as c, type AvatarProps as d, type CodeLanguage as e, type CodeTheme as f, Logo as g, type MeterProps as h, type SegmentedControlProps as i, type SegmentOption as j, SideNav as k, type SideNavItem as l, type SideNavProps as m, TopNav as n, type TopNavProps as o, type EntityType as p, ENTITY_CONFIG as q, getEntityConfig as r, getEntityIcon as s, getEntityLabel as t, clearColorCache as u, createCategoryColorMap as v, getContrastingTextColor as w, getDefaultChartColor as x, getDefaultColors as y, getResolvedColor as z };
@@ -1595,6 +1595,7 @@ interface TextLinkProps {
1595
1595
  asButton?: boolean;
1596
1596
  onPress?: () => void;
1597
1597
  showArrow?: boolean;
1598
+ alwaysUnderlined?: boolean;
1598
1599
  /**
1599
1600
  * Custom Link component (e.g., Next.js Link) to handle navigation
1600
1601
  * If provided, this component will be used instead of a standard <a> tag
@@ -1610,7 +1611,7 @@ interface TextLinkProps {
1610
1611
  *
1611
1612
  * @param LinkComponent - Optional custom Link component (e.g., Next.js Link) for client-side navigation
1612
1613
  */
1613
- declare const TextLink: ({ href, children, className, external, title, variant, onClick, asButton, onPress, showArrow, LinkComponent, }: TextLinkProps) => react_jsx_runtime.JSX.Element;
1614
+ declare const TextLink: ({ href, children, className, external, title, variant, onClick, asButton, onPress, showArrow, alwaysUnderlined, LinkComponent, }: TextLinkProps) => react_jsx_runtime.JSX.Element;
1614
1615
 
1615
1616
  /**
1616
1617
  * Entity Configuration
@@ -1835,4 +1836,4 @@ declare const isLightColor: (color: string) => boolean;
1835
1836
  */
1836
1837
  declare const getContrastingTextColor: (backgroundColor: string) => string;
1837
1838
 
1838
- export { type DateFormat as $, type ActionItem as A, type BadgeProps as B, type CodeEditorProps as C, getResolvedColor as D, type EntityConfig as E, getThemeCategoricalColors as F, isLightColor as G, Heading as H, type InteractiveMapProps as I, type TooltipData as J, type TooltipSeries as K, Loader as L, type MapPoint as M, type BaseDataPoint as N, type ChartMargin as O, createXScale as P, createYScale as Q, defaultMargin as R, type StaticMapProps as S, TextLink as T, getYFormatSettings as U, type YFormatSettings as V, type FieldValue as W, type BooleanFormat as X, type YFormatType as Y, type FormattedValue as Z, type CurrentFormat as _, type ActionMenuProps as a, type DistanceFormat as a0, type EnergyFormat as a1, type CurrencyFormat as a2, type NumberFormat as a3, type PhoneFormat as a4, type PowerFormat as a5, type FormatterFunction as a6, type ResistanceFormat as a7, type TemperatureUnitString as a8, type TemperatureUnit as a9, ChartContext as aA, useChartContext as aB, type ComponentFormatOptions as aC, formatComponentValue as aD, useComponentFormatter as aE, type BaseFormat as aF, type TextTransform as aG, type TextTruncatePosition as aH, type PercentageFormat as aI, type DateFormatStyle as aJ, type EnergyUnit as aK, type PowerUnit as aL, type VoltageUnit as aM, type CurrentUnit as aN, type ResistanceUnit as aO, type DistanceUnit as aP, type CustomFormat as aQ, type MetricFormat as aR, deviceStateMetricFormats as aS, activeDeviceStates as aT, deviceStateLabels as aU, isActiveState as aV, getDeviceStateLabel as aW, gridStateLabels as aX, getGridStateLabel as aY, type TemperatureFormat as aa, type TextFormat as ab, type VoltageFormat as ac, type FieldFormat as ad, type DeviceState as ae, type GridState as af, type ComponentFormatter as ag, type LayerSpec as ah, type CustomPinsSpec as ai, type GeoJsonLayerSpec as aj, type RasterLayerSpec as ak, type VectorLayerSpec as al, type ClusteredVectorLayerSpec as am, ActionMenu as an, Badge as ao, CodeEditor as ap, type ColorSpec as aq, type LayerFeature as ar, type LayerStyle as as, type RenderType as at, type ZoomStops as au, InteractiveMap as av, MAP_TYPES as aw, StaticMap as ax, Meter as ay, SegmentedControl as az, AppShell as b, type AppShellProps as c, type AvatarProps as d, Avatar as e, type CodeLanguage as f, type CodeTheme as g, Logo as h, type MeterProps as i, type SegmentedControlProps as j, type SegmentOption as k, SideNav as l, type SideNavItem as m, type SideNavProps as n, TopNav as o, type TopNavProps as p, type EntityType as q, ENTITY_CONFIG as r, getEntityConfig as s, getEntityIcon as t, getEntityLabel as u, clearColorCache as v, createCategoryColorMap as w, getContrastingTextColor as x, getDefaultChartColor as y, getDefaultColors as z };
1839
+ export { type DistanceFormat as $, type ActionItem as A, type BadgeProps as B, type CodeEditorProps as C, getThemeCategoricalColors as D, type EntityConfig as E, isLightColor as F, type TooltipData as G, Heading as H, type InteractiveMapProps as I, type TooltipSeries as J, type BaseDataPoint as K, Loader as L, type MapPoint as M, type ChartMargin as N, createXScale as O, createYScale as P, defaultMargin as Q, getYFormatSettings as R, type StaticMapProps as S, TextLink as T, type YFormatSettings as U, type FieldValue as V, type BooleanFormat as W, type FormattedValue as X, type YFormatType as Y, type CurrentFormat as Z, type DateFormat as _, type ActionMenuProps as a, type EnergyFormat as a0, type CurrencyFormat as a1, type NumberFormat as a2, type PhoneFormat as a3, type PowerFormat as a4, type FormatterFunction as a5, type ResistanceFormat as a6, type TemperatureUnitString as a7, type TemperatureUnit as a8, type TemperatureFormat as a9, ChartContext as aA, useChartContext as aB, type ComponentFormatOptions as aC, formatComponentValue as aD, useComponentFormatter as aE, type BaseFormat as aF, type TextTransform as aG, type TextTruncatePosition as aH, type PercentageFormat as aI, type DateFormatStyle as aJ, type EnergyUnit as aK, type PowerUnit as aL, type VoltageUnit as aM, type CurrentUnit as aN, type ResistanceUnit as aO, type DistanceUnit as aP, type CustomFormat as aQ, type MetricFormat as aR, deviceStateMetricFormats as aS, activeDeviceStates as aT, deviceStateLabels as aU, isActiveState as aV, getDeviceStateLabel as aW, gridStateLabels as aX, getGridStateLabel as aY, type TextFormat as aa, type VoltageFormat as ab, type FieldFormat as ac, type DeviceState as ad, type GridState as ae, type ComponentFormatter as af, type LayerSpec as ag, type CustomPinsSpec as ah, type GeoJsonLayerSpec as ai, type RasterLayerSpec as aj, type VectorLayerSpec as ak, type ClusteredVectorLayerSpec as al, ActionMenu as am, Avatar as an, Badge as ao, CodeEditor as ap, type ColorSpec as aq, type LayerFeature as ar, type LayerStyle as as, type RenderType as at, type ZoomStops as au, InteractiveMap as av, MAP_TYPES as aw, StaticMap as ax, Meter as ay, SegmentedControl as az, AppShell as b, type AppShellProps as c, type AvatarProps as d, type CodeLanguage as e, type CodeTheme as f, Logo as g, type MeterProps as h, type SegmentedControlProps as i, type SegmentOption as j, SideNav as k, type SideNavItem as l, type SideNavProps as m, TopNav as n, type TopNavProps as o, type EntityType as p, ENTITY_CONFIG as q, getEntityConfig as r, getEntityIcon as s, getEntityLabel as t, clearColorCache as u, createCategoryColorMap as v, getContrastingTextColor as w, getDefaultChartColor as x, getDefaultColors as y, getResolvedColor as z };
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.26.4",
2
+ "version": "1.26.6",
3
3
  "components": [
4
4
  {
5
5
  "name": "ActionCell",
@@ -2670,6 +2670,10 @@
2670
2670
  "importRoot": "@texturehq/edges",
2671
2671
  "importPath": "@texturehq/edges/components/TextLink",
2672
2672
  "props": [
2673
+ {
2674
+ "name": "alwaysUnderlined",
2675
+ "type": "boolean"
2676
+ },
2673
2677
  {
2674
2678
  "name": "asButton",
2675
2679
  "type": "boolean"
@@ -1,2 +1,2 @@
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
1
+ 'use strict';var reactAriaComponents=require('react-aria-components'),tailwindMerge=require('tailwind-merge'),ro=require('react'),ut=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 ro__namespace=/*#__PURE__*/_interopNamespace(ro);var ut__namespace=/*#__PURE__*/_interopNamespace(ut);var st=Object.defineProperty;var lt=(e,o,t)=>o in e?st(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t;var me=(e,o,t)=>lt(e,typeof o!="symbol"?o+"":o,t);function Se(e,o=false){let[t,r]=ro.useState(o);return ro.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=ro.memo(({name:e,size:o="md",color:t,weight:r="regular",className:n,ariaLabel:a,...s})=>{let i=ut__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=ro.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 mt="flex font-medium justify-center items-center gap-2 text-center transition rounded-[var(--control-border-radius)] whitespace-nowrap box-border",gt={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"},bt="opacity-50 cursor-not-allowed pointer-events-none",ht="opacity-100 cursor-pointer",xt={"top-right":"-right-2 -top-2","top-left":"-left-2 -top-2","bottom-right":"-right-2 -bottom-2","bottom-left":"-left-2 -bottom-2"},vt={primary:"bg-action-brand text-white",destructive:"bg-action-destructive text-white"};function yt(e){return e?e==="primary"?"brand":e:"default"}function Pt(e){let{variant:o="default",size:t="md",isDisabled:r,fullWidth:n=false,isLoading:a=false}=e,s=yt(o),i=s==="unstyled"?"":`${mt} ${gt[s]}`;s!=="unstyled"&&(i+=` ${O[t].text} ${O[t].height} ${O[t].padding} ${O[t].gap}`),r||a?i+=` ${bt}`:i+=` ${ht}`,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 H(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:S,...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(Pt(e),p),L=d?{href:d,target:D,rel:S,...P}:{};if(d){let{onPress:$,onPressStart:W,onPressEnd:ie,onPressChange:Y,onPressUp:G,onAuxClick:Re,onContextMenu:ke,onDoubleClick:se,...le}=P;Object.assign(L,le);}let B=d?jsxRuntime.jsx(reactAriaComponents.Link,{...L,...r&&{"aria-busy":true},style:f?void 0:v,className:N,children:r?w:typeof t=="function"?(function($){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t($),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($){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t($),i==="right"&&m]})}):y});return f?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex",p),style:v,children:[B,jsxRuntime.jsx("span",{className:`absolute ${xt[h]} flex h-5 w-5 items-center justify-center rounded-full ${vt[g]} text-xs font-medium`,"aria-label":`${c} items`,children:c})]}):B}function he({action:e,defaultVariant:o,defaultSize:t="lg"}){let r=!!e.formId;return jsxRuntime.jsx(H,{type:r?"submit":"button",form:r?e.formId:void 0,size:e.size||t,variant:e.variant||o,onPress:r?void 0:e.onPress,isLoading:e.isLoading,isDisabled:e.isDisabled,children:e.label})}function z({primaryAction:e,secondaryAction:o,tertiaryAction:t,footerContent:r}){let n=e||o||t;return !n&&!r?null:jsxRuntime.jsxs("div",{className:`flex w-full flex-col items-center justify-center border-t p-4 ${r?"h-28":""}`,children:[r&&jsxRuntime.jsx("div",{className:"flex h-10 justify-center",children:r}),n&&jsxRuntime.jsxs("div",{className:"flex w-full items-center justify-between gap-3",children:[jsxRuntime.jsx("div",{children:t&&jsxRuntime.jsx(he,{action:t,defaultVariant:"destructive"})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[o&&jsxRuntime.jsx(he,{action:o,defaultVariant:"secondary"}),e&&jsxRuntime.jsx(he,{action:e,defaultVariant:"default"})]})]})]})}var Nt={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"},Ct={page:"h-16 leading-[62px]"};function V({tag:e="h1",size:o="lg",height:t,className:r="",children:n}){let a=Nt[o],s=t?Ct[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(H,{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(H,{variant:"icon",onPress:o,"aria-label":"Close dialog",children:jsxRuntime.jsx(R,{name:"X","data-testid":"close-button"})})]})]});var k=({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]=ro.useState(l===0);if(ro.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)]",S=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 ${S}`: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 ${S}`:"",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 It={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"},Ft="rounded-lg",ye={square:"aspect-square",video:"aspect-video",wide:"aspect-[2/1]",auto:""},Mt={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",It[e],Ft,o),"data-testid":"card",children:r?jsxRuntime.jsx(k,{width:"100%",height:"100%",className:"rounded-none"}):t})}function Ae({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(k,{width:120,height:20}),jsxRuntime.jsx(k,{width:24,height:24})]}),o&&jsxRuntime.jsx(k,{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",ye[t],r),children:jsxRuntime.jsx(k,{width:"100%",height:"100%"})}):n?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",ye[t],r),children:n}):e?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",ye[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(k,{width:"100%",height:16}),jsxRuntime.jsx(k,{width:"80%",height:16}),jsxRuntime.jsx(k,{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(k,{width:80,height:32}),jsxRuntime.jsx(k,{width:60,height:32})]}):o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 flex items-center gap-2",Mt[t],e),children:o}):null}E.Header=Ae;E.Media=ze;E.Content=_e;E.Footer=$e;var F=class extends ro.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:S="640px",contentPadding:P=true,showHandle:m=true,animationVariant:y="scale",className:w}){let[f,N]=ro.useState(false),[L,B]=ro.useState(0),[$,W]=ro.useState(false),ie=ro.useRef(null),Y=ro.useRef(null),G=ro.useRef({isDragging:false,startY:0,startTime:0,pointerId:null});ro.useEffect(()=>{if(i){let x=setTimeout(()=>{N(true),setTimeout(()=>N(false),600);},400);return ()=>clearTimeout(x)}},[i]),ro.useEffect(()=>{i||(B(0),W(false),G.current={isDragging:false,startY:0,startTime:0,pointerId:null});},[i]);let Re=ro.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},W(false),x.currentTarget.setPointerCapture(x.pointerId)));},[d]),ke=ro.useCallback(x=>{let{isDragging:de,startY:ce,pointerId:ue}=G.current;if(!de||x.pointerId!==ue)return;let pe=x.clientY-ce;B(Math.max(0,pe));},[]),se=ro.useCallback(x=>{let{isDragging:de,startY:ce,startTime:ue,pointerId:pe}=G.current;if(!de||x.pointerId!==pe)return;let fe=x.clientY-ce,nt=Date.now()-ue,at=fe/nt;G.current={isDragging:false,startY:0,startTime:0,pointerId:null};let it=(ie.current?.getBoundingClientRect().height??0)*$t;(fe>it||at>Wt&&fe>50)&&d?(l?.(),B(0)):(W(true),B(0),Y.current=setTimeout(()=>{W(false),Y.current=null;},200));},[d,l]);if(!i)return null;let le=o||t,rt=c||g||h;return jsxRuntime.jsx(F,{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",$&&"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:S,...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: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}),rt&&jsxRuntime.jsx(z,{primaryAction:c,secondaryAction:g,footerContent:h})]})})})})})}oe.displayName="Tray";function Ce({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:S="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,B=e!==void 0;return Se("(max-width: 767px)")?B?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(F,{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(z,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:g})]})})})}):jsxRuntime.jsx(F,{children:jsxRuntime.jsx(_,{...B?{isOpen:e,onOpenChange:W=>{!W&&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:S}},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(z,{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 pn({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(Ce,{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:S="400px"}){let[P,m]=ro.useState(false);if(ro.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(F,{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:S,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(z,{primaryAction:g,secondaryAction:h,footerContent:v})]})})})})}ne.displayName="Drawer";function Sn({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 Mn({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 eo={sm:"gap-2",md:"gap-4",lg:"gap-6"};function to(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 Ln({cols:e={base:1},gap:o="lg",className:t,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("grid",to(e),eo[o],t)})}var no=ro__namespace.default.forwardRef(({children:e,className:o},t)=>jsxRuntime.jsx("div",{ref:t,className:tailwindMerge.twMerge("relative w-full",o),children:e}));no.displayName="InputWrapper";function Xe({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 qn({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(Xe,{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 ea({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 aa({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(H,{variant:"secondary",onPress:r,children:a}),jsxRuntime.jsx(H,{type:"submit",form:e,isDisabled:!!t,children:t?"Saving...":n})]})]})}):null}function la({when:e,message:o="You have unsaved changes. Leave anyway?"}){return ro__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 ca({steps:e,initialStepId:o,canNavigate:t}){if(e.length===0)throw new Error("useWizard: steps array cannot be empty");let[r,n]=ro__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=pn;exports.DrawerForm=Sn;exports.FormActions=Mn;exports.FormDivider=Qn;exports.FormGrid=Ln;exports.FormSection=qn;exports.FormStepper=ea;exports.SaveBar=aa;exports.UnsavedChangesPrompt=la;exports.useWizard=ca;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map