@texturehq/edges 1.26.7 → 1.26.9

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.
@@ -229,6 +229,85 @@ interface NumberFieldProps extends Omit<NumberFieldProps$1, "size" | "className"
229
229
  }
230
230
  declare function NumberField({ label, description, errorMessage, size, tooltip, isRequired, transparent, validationResult, reserveErrorSpace, descriptionPlacement, ...props }: NumberFieldProps): react_jsx_runtime.JSX.Element;
231
231
 
232
+ interface RadioCardProps {
233
+ /**
234
+ * The value of the radio card
235
+ */
236
+ value: string;
237
+ /**
238
+ * Whether the radio card is disabled
239
+ */
240
+ isDisabled?: boolean;
241
+ /**
242
+ * Additional CSS classes
243
+ */
244
+ className?: string;
245
+ /**
246
+ * Children content
247
+ */
248
+ children: React__default.ReactNode;
249
+ /**
250
+ * Size variant
251
+ */
252
+ size?: "1" | "2" | "3";
253
+ /**
254
+ * Visual variant
255
+ */
256
+ variant?: "default" | "brand";
257
+ }
258
+ interface RadioCardGroupProps {
259
+ /**
260
+ * The selected value
261
+ */
262
+ value?: string;
263
+ /**
264
+ * Default selected value
265
+ */
266
+ defaultValue?: string;
267
+ /**
268
+ * Callback when selection changes
269
+ */
270
+ onChange?: (value: string) => void;
271
+ /**
272
+ * Whether the radio group is disabled
273
+ */
274
+ isDisabled?: boolean;
275
+ /**
276
+ * Whether the radio group is read-only
277
+ */
278
+ isReadOnly?: boolean;
279
+ /**
280
+ * Whether the radio group is required
281
+ */
282
+ isRequired?: boolean;
283
+ /**
284
+ * Additional CSS classes
285
+ */
286
+ className?: string;
287
+ /**
288
+ * Children content
289
+ */
290
+ children: React__default.ReactNode;
291
+ /**
292
+ * Size variant
293
+ */
294
+ size?: "1" | "2" | "3";
295
+ /**
296
+ * Visual variant
297
+ */
298
+ variant?: "default" | "brand";
299
+ /**
300
+ * Grid columns configuration
301
+ */
302
+ columns?: string;
303
+ /**
304
+ * Gap between items
305
+ */
306
+ gap?: string;
307
+ }
308
+ declare function RadioCard({ value, isDisabled, className, children, size, variant, }: RadioCardProps): react_jsx_runtime.JSX.Element;
309
+ declare function RadioCardGroup({ value, defaultValue, onChange, isDisabled, isReadOnly, isRequired, className, children, size, variant, columns, gap, }: RadioCardGroupProps): react_jsx_runtime.JSX.Element;
310
+
232
311
  interface RadioGroupProps extends Omit<RadioGroupProps$1, "children"> {
233
312
  /** Label for the radio group */
234
313
  label?: string;
@@ -452,4 +531,4 @@ interface TimeFieldProps extends Omit<TimeFieldProps$1<TimeValue>, "isRequired"
452
531
  */
453
532
  declare function TimeField({ label, description, errorMessage, size, tooltip, isRequired, isDisabled, isInvalid, reserveErrorSpace, validationResult, className, descriptionPlacement, ...props }: TimeFieldProps): react_jsx_runtime.JSX.Element;
454
533
 
455
- export { Autocomplete as A, Button as B, Checkbox as C, NumberField as N, RadioGroup as R, Select as S, TextArea as T, CheckboxGroup as a, ColorField as b, Switch as c, TextField as d, type TimeFieldProps as e, type ColorFieldProps as f, Radio as g, TimeField as h };
534
+ export { Autocomplete as A, Button as B, Checkbox as C, NumberField as N, RadioCardGroup as R, Select as S, TextArea as T, CheckboxGroup as a, ColorField as b, RadioGroup as c, Switch as d, TextField as e, type TimeFieldProps as f, type ColorFieldProps as g, type RadioCardGroupProps as h, type RadioCardProps as i, RadioCard as j, Radio as k, type SelectItem as l, TimeField as m };
@@ -229,6 +229,85 @@ interface NumberFieldProps extends Omit<NumberFieldProps$1, "size" | "className"
229
229
  }
230
230
  declare function NumberField({ label, description, errorMessage, size, tooltip, isRequired, transparent, validationResult, reserveErrorSpace, descriptionPlacement, ...props }: NumberFieldProps): react_jsx_runtime.JSX.Element;
231
231
 
232
+ interface RadioCardProps {
233
+ /**
234
+ * The value of the radio card
235
+ */
236
+ value: string;
237
+ /**
238
+ * Whether the radio card is disabled
239
+ */
240
+ isDisabled?: boolean;
241
+ /**
242
+ * Additional CSS classes
243
+ */
244
+ className?: string;
245
+ /**
246
+ * Children content
247
+ */
248
+ children: React__default.ReactNode;
249
+ /**
250
+ * Size variant
251
+ */
252
+ size?: "1" | "2" | "3";
253
+ /**
254
+ * Visual variant
255
+ */
256
+ variant?: "default" | "brand";
257
+ }
258
+ interface RadioCardGroupProps {
259
+ /**
260
+ * The selected value
261
+ */
262
+ value?: string;
263
+ /**
264
+ * Default selected value
265
+ */
266
+ defaultValue?: string;
267
+ /**
268
+ * Callback when selection changes
269
+ */
270
+ onChange?: (value: string) => void;
271
+ /**
272
+ * Whether the radio group is disabled
273
+ */
274
+ isDisabled?: boolean;
275
+ /**
276
+ * Whether the radio group is read-only
277
+ */
278
+ isReadOnly?: boolean;
279
+ /**
280
+ * Whether the radio group is required
281
+ */
282
+ isRequired?: boolean;
283
+ /**
284
+ * Additional CSS classes
285
+ */
286
+ className?: string;
287
+ /**
288
+ * Children content
289
+ */
290
+ children: React__default.ReactNode;
291
+ /**
292
+ * Size variant
293
+ */
294
+ size?: "1" | "2" | "3";
295
+ /**
296
+ * Visual variant
297
+ */
298
+ variant?: "default" | "brand";
299
+ /**
300
+ * Grid columns configuration
301
+ */
302
+ columns?: string;
303
+ /**
304
+ * Gap between items
305
+ */
306
+ gap?: string;
307
+ }
308
+ declare function RadioCard({ value, isDisabled, className, children, size, variant, }: RadioCardProps): react_jsx_runtime.JSX.Element;
309
+ declare function RadioCardGroup({ value, defaultValue, onChange, isDisabled, isReadOnly, isRequired, className, children, size, variant, columns, gap, }: RadioCardGroupProps): react_jsx_runtime.JSX.Element;
310
+
232
311
  interface RadioGroupProps extends Omit<RadioGroupProps$1, "children"> {
233
312
  /** Label for the radio group */
234
313
  label?: string;
@@ -452,4 +531,4 @@ interface TimeFieldProps extends Omit<TimeFieldProps$1<TimeValue>, "isRequired"
452
531
  */
453
532
  declare function TimeField({ label, description, errorMessage, size, tooltip, isRequired, isDisabled, isInvalid, reserveErrorSpace, validationResult, className, descriptionPlacement, ...props }: TimeFieldProps): react_jsx_runtime.JSX.Element;
454
533
 
455
- export { Autocomplete as A, Button as B, Checkbox as C, NumberField as N, RadioGroup as R, Select as S, TextArea as T, CheckboxGroup as a, ColorField as b, Switch as c, TextField as d, type TimeFieldProps as e, type ColorFieldProps as f, Radio as g, TimeField as h };
534
+ export { Autocomplete as A, Button as B, Checkbox as C, NumberField as N, RadioCardGroup as R, Select as S, TextArea as T, CheckboxGroup as a, ColorField as b, RadioGroup as c, Switch as d, TextField as e, type TimeFieldProps as f, type ColorFieldProps as g, type RadioCardGroupProps as h, type RadioCardProps as i, RadioCard as j, Radio as k, type SelectItem as l, TimeField as m };
@@ -1,7 +1,7 @@
1
- import * as d3_scale from 'd3-scale';
2
- import { ScaleTime, ScaleLinear } from 'd3-scale';
1
+ import * as _visx_vendor_d3_scale from '@visx/vendor/d3-scale';
3
2
  import * as React$1 from 'react';
4
3
  import React__default, { ReactNode, ComponentType } from 'react';
4
+ import { ScaleTime, ScaleLinear } from 'd3-scale';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { d as IconName } from './RichTextEditor-CZCqHSPF.js';
7
7
  import * as react_map_gl from 'react-map-gl';
@@ -269,8 +269,8 @@ interface YFormatSettings {
269
269
  * Uses the main formatting system for consistency across all components
270
270
  */
271
271
  declare function getYFormatSettings(formatter?: YFormatType): YFormatSettings;
272
- declare const createXScale: (data: BaseDataPoint[], width: number) => d3_scale.ScaleTime<number, number, never>;
273
- declare const createYScale: (data: BaseDataPoint[], height: number, formatType: YFormatType) => d3_scale.ScaleLinear<number, number, never>;
272
+ declare const createXScale: (data: BaseDataPoint[], width: number) => _visx_vendor_d3_scale.ScaleTime<number, number, never>;
273
+ declare const createYScale: (data: BaseDataPoint[], height: number, formatType: YFormatType) => _visx_vendor_d3_scale.ScaleLinear<number, number, never>;
274
274
 
275
275
  interface ActionItem {
276
276
  /**
@@ -310,6 +310,10 @@ interface ActionItem {
310
310
  * If provided, this will override the default name/subtitle rendering
311
311
  */
312
312
  render?: () => ReactNode;
313
+ /**
314
+ * Whether to remove padding from the menu item (useful for dividers)
315
+ */
316
+ noPadding?: boolean;
313
317
  }
314
318
  interface ActionMenuProps {
315
319
  /**
@@ -665,11 +669,11 @@ interface CodeEditorProps {
665
669
  declare function CodeEditor({ value, readOnly, onChange, language, theme, height, width, className, lineHeight, minLines, maxLines, showLineNumbers, showGutter, fontSize, wrapEnabled, }: CodeEditorProps): react_jsx_runtime.JSX.Element;
666
670
 
667
671
  declare const sizeVariants: {
668
- readonly xs: "text-lg font-semibold";
669
- readonly sm: "text-xl font-semibold";
670
- readonly md: "text-2xl font-semibold";
671
- readonly lg: "text-3xl font-semibold";
672
- readonly xl: "text-4xl font-semibold";
672
+ readonly xs: "text-base md:text-lg font-semibold";
673
+ readonly sm: "text-lg md:text-xl font-semibold";
674
+ readonly md: "text-xl md:text-2xl font-semibold";
675
+ readonly lg: "text-2xl md:text-3xl font-semibold";
676
+ readonly xl: "text-3xl md:text-4xl font-semibold";
673
677
  };
674
678
  declare const heightVariants: {
675
679
  readonly page: "h-16 leading-[62px]";
@@ -1,7 +1,7 @@
1
- import * as d3_scale from 'd3-scale';
2
- import { ScaleTime, ScaleLinear } from 'd3-scale';
1
+ import * as _visx_vendor_d3_scale from '@visx/vendor/d3-scale';
3
2
  import * as React$1 from 'react';
4
3
  import React__default, { ReactNode, ComponentType } from 'react';
4
+ import { ScaleTime, ScaleLinear } from 'd3-scale';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
6
  import { d as IconName } from './RichTextEditor-CZCqHSPF.cjs';
7
7
  import * as react_map_gl from 'react-map-gl';
@@ -269,8 +269,8 @@ interface YFormatSettings {
269
269
  * Uses the main formatting system for consistency across all components
270
270
  */
271
271
  declare function getYFormatSettings(formatter?: YFormatType): YFormatSettings;
272
- declare const createXScale: (data: BaseDataPoint[], width: number) => d3_scale.ScaleTime<number, number, never>;
273
- declare const createYScale: (data: BaseDataPoint[], height: number, formatType: YFormatType) => d3_scale.ScaleLinear<number, number, never>;
272
+ declare const createXScale: (data: BaseDataPoint[], width: number) => _visx_vendor_d3_scale.ScaleTime<number, number, never>;
273
+ declare const createYScale: (data: BaseDataPoint[], height: number, formatType: YFormatType) => _visx_vendor_d3_scale.ScaleLinear<number, number, never>;
274
274
 
275
275
  interface ActionItem {
276
276
  /**
@@ -310,6 +310,10 @@ interface ActionItem {
310
310
  * If provided, this will override the default name/subtitle rendering
311
311
  */
312
312
  render?: () => ReactNode;
313
+ /**
314
+ * Whether to remove padding from the menu item (useful for dividers)
315
+ */
316
+ noPadding?: boolean;
313
317
  }
314
318
  interface ActionMenuProps {
315
319
  /**
@@ -665,11 +669,11 @@ interface CodeEditorProps {
665
669
  declare function CodeEditor({ value, readOnly, onChange, language, theme, height, width, className, lineHeight, minLines, maxLines, showLineNumbers, showGutter, fontSize, wrapEnabled, }: CodeEditorProps): react_jsx_runtime.JSX.Element;
666
670
 
667
671
  declare const sizeVariants: {
668
- readonly xs: "text-lg font-semibold";
669
- readonly sm: "text-xl font-semibold";
670
- readonly md: "text-2xl font-semibold";
671
- readonly lg: "text-3xl font-semibold";
672
- readonly xl: "text-4xl font-semibold";
672
+ readonly xs: "text-base md:text-lg font-semibold";
673
+ readonly sm: "text-lg md:text-xl font-semibold";
674
+ readonly md: "text-xl md:text-2xl font-semibold";
675
+ readonly lg: "text-2xl md:text-3xl font-semibold";
676
+ readonly xl: "text-3xl md:text-4xl font-semibold";
673
677
  };
674
678
  declare const heightVariants: {
675
679
  readonly page: "h-16 leading-[62px]";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.26.7",
2
+ "version": "1.26.9",
3
3
  "components": [
4
4
  {
5
5
  "name": "ActionCell",
@@ -825,7 +825,7 @@
825
825
  {
826
826
  "name": "ChipInputField",
827
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.",
828
+ "description": "ChipInputField A tags input component with autocomplete suggestions. Press Enter or comma to add tags, Backspace when empty to remove last tag. Supports both static items and async fetching for suggestions.",
829
829
  "importRoot": "@texturehq/edges",
830
830
  "importPath": "@texturehq/edges/components/ChipInputField",
831
831
  "props": [],
@@ -1,2 +1,2 @@
1
- 'use strict';var reactAriaComponents=require('react-aria-components'),tailwindMerge=require('tailwind-merge'),to=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 to__namespace=/*#__PURE__*/_interopNamespace(to);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]=to.useState(o);return to.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=to.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=to.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 f=typeof n=="string"&&n in U?U[n]:n,x=t?typeof t=="string"&&t in U?U[t]:t:f*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:x,height:x},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",xt="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"},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+=` ${xt}`,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:f="primary",badgePosition:x="top-right",style:v,target:C,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]}),D=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})]}),g=(c??0)>0,w=tailwindMerge.twMerge(Pt(e),p),L=d?{href:d,target:C,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:g?void 0:v,className:w,children:r?D: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:g?void 0:v,className:w,children:r?D:typeof t=="function"?(function($){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t($),i==="right"&&m]})}):y});return g?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex",p),style:v,children:[B,jsxRuntime.jsx("span",{className:`absolute ${ht[x]} flex h-5 w-5 items-center justify-center rounded-full ${vt[f]} text-xs font-medium`,"aria-label":`${c} items`,children:c})]}):B}function xe({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(xe,{action:t,defaultVariant:"destructive"})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[o&&jsxRuntime.jsx(xe,{action:o,defaultVariant:"secondary"}),e&&jsxRuntime.jsx(xe,{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 N=({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":f})=>{let[x,v]=to.useState(l===0);if(to.useEffect(()=>{if(l>0){let g=setTimeout(()=>v(true),l);return ()=>clearTimeout(g)}},[l]),!x)return null;let C=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 g=typeof e=="number"?e:parseFloat(String(e));return isNaN(g)?"":`animation-duration-[${Math.max(.8,g/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":"",D=i?Object.entries(i).map(([g,w])=>`${g}:w-[${w}]`).join(" "):"";return s?jsxRuntime.jsx("div",{className:"space-y-2","data-testid":f,children:s.map((g,w)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(C,P,m,y,D,c),style:{width:g,height:o}},w))}):jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(C,P,m,y,D,c),style:{width:e,height:o},role:"presentation","aria-hidden":!p,"aria-label":p??void 0,"data-testid":f})};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,layout:n="default"}){return jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("w-full overflow-hidden",It[e],Ft,n==="flex"&&"flex flex-col",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,fill:r=false}){let a=e?.match(/p(?:t|b|l|r|x|y)?-(?:\d+(?:\.\d+)?|px|\[.+?\])/)?"":"px-6 py-4";return t?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(a,r&&"flex-1 flex flex-col min-h-0",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",r&&"flex-1 flex flex-col min-h-0",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 to.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:f,footerContent:x,maxHeight:v="80vh",height:C,maxWidth:S="640px",contentPadding:P=true,showHandle:m=true,animationVariant:y="scale",className:D}){let[g,w]=to.useState(false),[L,B]=to.useState(0),[$,W]=to.useState(false),ie=to.useRef(null),Y=to.useRef(null),G=to.useRef({isDragging:false,startY:0,startTime:0,pointerId:null});to.useEffect(()=>{if(i){let h=setTimeout(()=>{w(true),setTimeout(()=>w(false),600);},400);return ()=>clearTimeout(h)}},[i]),to.useEffect(()=>{i||(B(0),W(false),G.current={isDragging:false,startY:0,startTime:0,pointerId:null});},[i]);let Re=to.useCallback(h=>{d&&(h.pointerType!=="touch"&&h.pointerType!=="pen"||(Y.current&&(clearTimeout(Y.current),Y.current=null),G.current={isDragging:true,startY:h.clientY,startTime:Date.now(),pointerId:h.pointerId},W(false),h.currentTarget.setPointerCapture(h.pointerId)));},[d]),ke=to.useCallback(h=>{let{isDragging:de,startY:ce,pointerId:ue}=G.current;if(!de||h.pointerId!==ue)return;let pe=h.clientY-ce;B(Math.max(0,pe));},[]),se=to.useCallback(h=>{let{isDragging:de,startY:ce,startTime:ue,pointerId:pe}=G.current;if(!de||h.pointerId!==pe)return;let fe=h.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||f||x;return jsxRuntime.jsx(F,{children:jsxRuntime.jsx(_,{isOpen:i,onOpenChange:h=>{h||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)]",D),style:{maxWidth:S,...C?{height:C}:{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",g&&"animate-[handle-wiggle_0.6s_ease-in-out]")})}),le&&(a?jsxRuntime.jsx(N,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n||!l,hasBackArrow:true,onBack:s??(()=>{}),onClose:l||(()=>{})}):jsxRuntime.jsx(N,{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:f,footerContent:x})]})})})})})}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:f,transparentOverlay:x=false,maxWidth:v="600px",minWidth:C="400px",maxHeight:S="85vh",height:P,mobileMaxHeight:m="90vh",mobileHeight:y,contentPadding:D=true,className:g}){if(e===false)return null;let w=t||r,L=d||p||c||f,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:f,transparentOverlay:x,maxHeight:m,height:y,maxWidth:v,contentPadding:D,showHandle:true,animationVariant:"scale",className:g,children:l}):jsxRuntime.jsx(F,{children:jsxRuntime.jsx(_,{isDismissable:true,transparent:x,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","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",g),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"})}),w&&(s?jsxRuntime.jsx(N,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(N,{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",D?"px-6 py-6":"p-0"),children:l}),L&&jsxRuntime.jsx(z,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:f})]})})})}):jsxRuntime.jsx(F,{children:jsxRuntime.jsx(_,{...B?{isOpen:e,onOpenChange:W=>{!W&&o&&o();}}:{},isDismissable:true,transparent:x,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","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",g),style:{minWidth:C,...P?{height:P}:{maxHeight:S}},children:[w&&(s?jsxRuntime.jsx(N,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(N,{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",D?"px-6 py-6":"p-0"),children:l}),L&&jsxRuntime.jsx(z,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:f})]})})})})}function K(e){return jsxRuntime.jsx(reactAriaComponents.Form,{validationBehavior:"aria",...e,className:tailwindMerge.twMerge("flex flex-col gap-6",e.className)})}function cn({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:f,secondaryAction:x,footerContent:v,contentPadding:C=true,maxWidth:S="400px"}){if(!i)return null;let P=o||t,m=f||x||v;return jsxRuntime.jsx(F,{children:jsxRuntime.jsx(_,{isOpen:i,onOpenChange:y=>!y&&p?.(),isDismissable:true,transparent:d,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"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("fixed top-0 bottom-0 flex flex-col bg-background-surface shadow-xl overflow-hidden",l==="right"?"right-0":"left-0",l==="right"?"animate-in slide-in-from-right duration-300 ease-out":"animate-in slide-in-from-left duration-300 ease-out","data-[exiting]:animate-out",l==="right"?"data-[exiting]:slide-out-to-right":"data-[exiting]:slide-out-to-left","data-[exiting]:duration-200 data-[exiting]:ease-in","outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-action-default focus-visible:outline-offset-0",c),style:{maxWidth:S,width:"100%"},children:[P&&(a&&s?jsxRuntime.jsx(N,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,hasBackArrow:true,onBack:s,onClose:p}):jsxRuntime.jsx(N,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,onClose:p})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 overflow-y-auto overscroll-contain",C?"px-6 py-6":"p-0"),children:e}),m&&jsxRuntime.jsx(z,{primaryAction:f,secondaryAction:x,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 Kt={sm:"gap-2",md:"gap-4",lg:"gap-6"};function Zt(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",Zt(e),Kt[o],t)})}var oo=to__namespace.default.forwardRef(({children:e,className:o},t)=>jsxRuntime.jsx("div",{ref:t,className:tailwindMerge.twMerge("relative w-full",o),children:e}));oo.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 Yn({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 Gn(){return jsxRuntime.jsx("hr",{className:"border-border-muted"})}function Jn({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 oa({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 aa({when:e,message:o="You have unsaved changes. Leave anyway?"}){return to__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 sa({steps:e,initialStepId:o,canNavigate:t}){if(e.length===0)throw new Error("useWizard: steps array cannot be empty");let[r,n]=to__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=cn;exports.DrawerForm=Dn;exports.FormActions=Bn;exports.FormDivider=Gn;exports.FormGrid=Hn;exports.FormSection=Yn;exports.FormStepper=Jn;exports.SaveBar=oa;exports.UnsavedChangesPrompt=aa;exports.useWizard=sa;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var ro=require('react'),reactAriaComponents=require('react-aria-components'),tailwindMerge=require('tailwind-merge'),ft=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 ft__namespace=/*#__PURE__*/_interopNamespace(ft);var dt=Object.defineProperty;var ct=(e,o,t)=>o in e?dt(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t;var ge=(e,o,t)=>ct(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 j={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 q={xs:16,sm:20,md:24,lg:32,xl:40,"2xl":48},k=ro.memo(({name:e,size:o="md",color:t,weight:r="regular",className:n,ariaLabel:a,...s})=>{let i=ft__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 q?q[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}`})});k.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 f=typeof n=="string"&&n in q?q[n]:n,x=t?typeof t=="string"&&t in q?q[t]:t:f*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:x,height:x},children:jsxRuntime.jsx(k,{...c,name:s,size:n,color:i,weight:l,className:a,ariaLabel:d})})});Me.displayName="IconWithContainer";var bt="flex font-medium justify-center items-center gap-2 text-center transition rounded-[var(--control-border-radius)] whitespace-nowrap box-border",xt={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"},Te={full:"w-full",default:"w-fit"},ht="opacity-50 cursor-not-allowed pointer-events-none",vt="opacity-100 cursor-pointer",yt={"top-right":"-right-2 -top-2","top-left":"-left-2 -top-2","bottom-right":"-right-2 -bottom-2","bottom-left":"-left-2 -bottom-2"},Pt={primary:"bg-action-brand text-white",destructive:"bg-action-destructive text-white"};function wt(e){return e?e==="primary"?"brand":e:"default"}function Nt(e){let{variant:o="default",size:t="md",isDisabled:r,fullWidth:n=false,isLoading:a=false}=e,s=wt(o),i=s==="unstyled"?"":`${bt} ${xt[s]}`;s!=="unstyled"&&(i+=` ${j[t].text} ${j[t].height} ${j[t].padding} ${j[t].gap}`),r||a?i+=` ${ht}`:i+=` ${vt}`,n?i+=` ${Te.full}`:i+=` ${Te.default}`;let l=s==="brand"?"focus-visible:outline-action-brand":void 0;return [i,Be(),l].filter(Boolean).join(" ")}function A(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:f="primary",badgePosition:x="top-right",style:v,target:N,rel:B,...P}=e,m=o?jsxRuntime.jsx(k,{name:o,size:s,weight:l}):null,y=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,typeof t=="function"?null:t,i==="right"&&m]}),C=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(k,{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})]}),g=(c??0)>0,D=tailwindMerge.twMerge(Nt(e),p),I=d?{href:d,target:N,rel:B,...P}:{};if(d){let{onPress:R,onPressStart:V,onPressEnd:U,onPressChange:E,onPressUp:L,onAuxClick:te,onContextMenu:ke,onDoubleClick:le,...de}=P;Object.assign(I,de);}let T=d?jsxRuntime.jsx(reactAriaComponents.Link,{...I,...r&&{"aria-busy":true},style:g?void 0:v,className:D,children:r?C:typeof t=="function"?(function(R){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t(R),i==="right"&&m]})}):y}):jsxRuntime.jsx(reactAriaComponents.Button,{...P,...r&&{"aria-busy":true},style:g?void 0:v,className:D,children:r?C:typeof t=="function"?(function(R){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,t(R),i==="right"&&m]})}):y});return g?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex",p),style:v,children:[T,jsxRuntime.jsx("span",{className:`absolute ${yt[x]} flex h-5 w-5 items-center justify-center rounded-full ${Pt[f]} text-xs font-medium`,"aria-label":`${c} items`,children:c})]}):T}function he({action:e,defaultVariant:o,defaultSize:t="lg"}){let r=!!e.formId;return jsxRuntime.jsx(A,{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 W({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 Dt={xs:"text-base md:text-lg font-semibold",sm:"text-lg md:text-xl font-semibold",md:"text-xl md:text-2xl font-semibold",lg:"text-2xl md:text-3xl font-semibold",xl:"text-3xl md:text-4xl font-semibold"},Rt={page:"h-16 leading-[62px]"};function Y({tag:e="h1",size:o="lg",height:t,className:r="",children:n}){let a=Dt[o],s=t?Rt[t]:"";return jsxRuntime.jsx(e,{className:tailwindMerge.twMerge(a,s,r),children:n})}var w=({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(A,{variant:"icon",onPress:a,className:"absolute left-6","aria-label":"Go back",children:jsxRuntime.jsx(k,{name:"CaretLeft","data-testid":"back-arrow"})}),s||jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[e&&jsxRuntime.jsx(Y,{size:"xs",children:e}),o&&!t&&jsxRuntime.jsx(A,{variant:"icon",onPress:o,"aria-label":"Close dialog",children:jsxRuntime.jsx(k,{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":f})=>{let[x,v]=ro.useState(l===0);if(ro.useEffect(()=>{if(l>0){let g=setTimeout(()=>v(true),l);return ()=>clearTimeout(g)}},[l]),!x)return null;let N=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 g=typeof e=="number"?e:parseFloat(String(e));return isNaN(g)?"":`animation-duration-[${Math.max(.8,g/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":"",C=i?Object.entries(i).map(([g,D])=>`${g}:w-[${D}]`).join(" "):"";return s?jsxRuntime.jsx("div",{className:"space-y-2","data-testid":f,children:s.map((g,D)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(N,P,m,y,C,c),style:{width:g,height:o}},D))}):jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(N,P,m,y,C,c),style:{width:e,height:o},role:"presentation","aria-hidden":!p,"aria-label":p??void 0,"data-testid":f})};var Mt={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"},Ht="rounded-lg",Pe={square:"aspect-square",video:"aspect-video",wide:"aspect-[2/1]",auto:""},Tt={start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between"};function z({variant:e="outlined",className:o,children:t,isLoading:r=false,layout:n="default"}){return jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("w-full overflow-hidden",Mt[e],Ht,n==="flex"&&"flex flex-col",o),"data-testid":"card",children:r?jsxRuntime.jsx(S,{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(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(Y,{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",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,fill:r=false}){let a=e?.match(/p(?:t|b|l|r|x|y)?-(?:\d+(?:\.\d+)?|px|\[.+?\])/)?"":"px-6 py-4";return t?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(a,r&&"flex-1 flex flex-col min-h-0",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",r&&"flex-1 flex flex-col min-h-0",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",Tt[t],e),children:o}):null}z.Header=Ae;z.Media=ze;z.Content=_e;z.Footer=$e;var M=class extends ro.Component{constructor(){super(...arguments);ge(this,"state",{hasError:false});ge(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(z,{children:[this.props.title&&jsxRuntime.jsx(z.Header,{title:this.props.title}),jsxRuntime.jsx(z.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 O({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 Ot=.3,Vt=.5;function ne({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:f,footerContent:x,maxHeight:v="80vh",height:N,maxWidth:B="640px",contentPadding:P=true,showHandle:m=true,animationVariant:y="scale",className:C}){let[g,D]=ro.useState(false),[I,T]=ro.useState(0),[R,V]=ro.useState(false),U=ro.useRef(null),E=ro.useRef(null),L=ro.useRef({isDragging:false,startY:0,startTime:0,pointerId:null});ro.useEffect(()=>{if(i){let h=setTimeout(()=>{D(true),setTimeout(()=>D(false),600);},400);return ()=>clearTimeout(h)}},[i]),ro.useEffect(()=>{i||(T(0),V(false),L.current={isDragging:false,startY:0,startTime:0,pointerId:null});},[i]);let te=ro.useCallback(h=>{d&&(h.pointerType!=="touch"&&h.pointerType!=="pen"||(E.current&&(clearTimeout(E.current),E.current=null),L.current={isDragging:true,startY:h.clientY,startTime:Date.now(),pointerId:h.pointerId},V(false),h.currentTarget.setPointerCapture(h.pointerId)));},[d]),ke=ro.useCallback(h=>{let{isDragging:ce,startY:ue,pointerId:pe}=L.current;if(!ce||h.pointerId!==pe)return;let fe=h.clientY-ue;T(Math.max(0,fe));},[]),le=ro.useCallback(h=>{let{isDragging:ce,startY:ue,startTime:pe,pointerId:fe}=L.current;if(!ce||h.pointerId!==fe)return;let me=h.clientY-ue,it=Date.now()-pe,st=me/it;L.current={isDragging:false,startY:0,startTime:0,pointerId:null};let lt=(U.current?.getBoundingClientRect().height??0)*Ot;(me>lt||st>Vt&&me>50)&&d?(l?.(),T(0)):(V(true),T(0),E.current=setTimeout(()=>{V(false),E.current=null;},200));},[d,l]);if(!i)return null;let de=o||t,at=c||f||x;return jsxRuntime.jsx(M,{children:jsxRuntime.jsx(O,{isOpen:i,onOpenChange:h=>{h||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:U,className:tailwindMerge.twMerge("w-full",R&&"transition-transform duration-200"),style:{transform:I>0?`translateY(${I}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)]",C),style:{maxWidth:B,...N?{height:N}:{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:te,onPointerMove:ke,onPointerUp:le,onPointerCancel:le,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",g&&"animate-[handle-wiggle_0.6s_ease-in-out]")})}),de&&(a?jsxRuntime.jsx(w,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n||!l,hasBackArrow:true,onBack:s??(()=>{}),onClose:l||(()=>{})}):jsxRuntime.jsx(w,{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}),at&&jsxRuntime.jsx(W,{primaryAction:c,secondaryAction:f,footerContent:x})]})})})})})}ne.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:f,transparentOverlay:x=false,maxWidth:v="600px",minWidth:N="400px",maxHeight:B="85vh",height:P,mobileMaxHeight:m="90vh",mobileHeight:y,contentPadding:C=true,className:g}){let D=Se("(max-width: 767px)"),I=ro.useRef(null),T=ro.useCallback(()=>{I.current&&I.current.scrollTop!==0&&(I.current.scrollTop=0);},[]),R=ro.useRef(null),V=ro.useCallback(()=>{R.current&&R.current.scrollTop!==0&&(R.current.scrollTop=0);},[]);if(e===false)return null;let U=t||r,E=d||p||c||f,L=e!==void 0;return D?L?jsxRuntime.jsx(ne,{isOpen:e,onClose:o,title:t,headerContent:r,titleAlign:n,hideCloseIcon:a,hasBackArrow:s,onBack:i,primaryAction:d,secondaryAction:p,footerContent:f,transparentOverlay:x,maxHeight:m,height:y,maxWidth:v,contentPadding:C,showHandle:true,animationVariant:"scale",className:g,children:l}):jsxRuntime.jsx(M,{children:jsxRuntime.jsx(O,{isDismissable:true,transparent:x,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,{ref:I,onScroll:T,className:tailwindMerge.twMerge("relative flex w-full flex-col","bg-background-surface","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",g),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"})}),U&&(s?jsxRuntime.jsx(w,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(w,{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",C?"px-6 py-6":"p-0"),children:l}),E&&jsxRuntime.jsx(W,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:f})]})})})}):jsxRuntime.jsx(M,{children:jsxRuntime.jsx(O,{...L?{isOpen:e,onOpenChange:te=>{!te&&o&&o();}}:{},isDismissable:true,transparent:x,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,{ref:R,onScroll:V,className:tailwindMerge.twMerge("relative flex w-full flex-col","bg-background-surface","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",g),style:{minWidth:N,...P?{height:P}:{maxHeight:B}},children:[U&&(s?jsxRuntime.jsx(w,{title:t,headerContent:r,titleAlign:n,hideCloseIcon:a||!o,hasBackArrow:true,onBack:i,onClose:o||(()=>{})}):jsxRuntime.jsx(w,{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",C?"px-6 py-6":"p-0"),children:l}),E&&jsxRuntime.jsx(W,{primaryAction:d,secondaryAction:p,tertiaryAction:c,footerContent:f})]})})})})}function Z(e){return jsxRuntime.jsx(reactAriaComponents.Form,{validationBehavior:"aria",...e,className:tailwindMerge.twMerge("flex flex-col gap-6",e.className)})}function mn({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(Z,{id:e,onSubmit:o,children:i})})}function ie({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:f,secondaryAction:x,footerContent:v,contentPadding:N=true,maxWidth:B="400px"}){if(!i)return null;let P=o||t,m=f||x||v;return jsxRuntime.jsx(M,{children:jsxRuntime.jsx(O,{isOpen:i,onOpenChange:y=>!y&&p?.(),isDismissable:true,transparent:d,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"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("fixed top-0 bottom-0 flex flex-col bg-background-surface shadow-xl overflow-hidden",l==="right"?"right-0":"left-0",l==="right"?"animate-in slide-in-from-right duration-300 ease-out":"animate-in slide-in-from-left duration-300 ease-out","data-[exiting]:animate-out",l==="right"?"data-[exiting]:slide-out-to-right":"data-[exiting]:slide-out-to-left","data-[exiting]:duration-200 data-[exiting]:ease-in","outline-none focus-visible:outline focus-visible:outline-2 focus-visible:outline-action-default focus-visible:outline-offset-0",c),style:{maxWidth:B,width:"100%"},children:[P&&(a&&s?jsxRuntime.jsx(w,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,hasBackArrow:true,onBack:s,onClose:p}):jsxRuntime.jsx(w,{title:o,headerContent:t,titleAlign:r,hideCloseIcon:n,onClose:p})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 overflow-y-auto overscroll-contain",N?"px-6 py-6":"p-0"),children:e}),m&&jsxRuntime.jsx(W,{primaryAction:f,secondaryAction:x,footerContent:v})]})})})})}ie.displayName="Drawer";function Bn({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(ie,{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(Z,{id:e,onSubmit:o,className:"mt-2",children:i})})}function Hn({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 An({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 Ke({size:e="md",className:o,children:t,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("leading-[2.25] text-text-caption",j[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(Y,{tag:"h3",size:"sm",children:e}):e,o?jsxRuntime.jsx(Ke,{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 Xn(){return jsxRuntime.jsx("hr",{className:"border-border-muted"})}function ta({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(k,{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 ia({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(A,{variant:"secondary",onPress:r,children:a}),jsxRuntime.jsx(A,{type:"submit",form:e,isDisabled:!!t,children:t?"Saving...":n})]})]})}):null}function da({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 ua({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=mn;exports.DrawerForm=Bn;exports.FormActions=Hn;exports.FormDivider=Xn;exports.FormGrid=An;exports.FormSection=Qn;exports.FormStepper=ta;exports.SaveBar=ia;exports.UnsavedChangesPrompt=da;exports.useWizard=ua;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map