@texturehq/edges 1.18.1 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FileUpload-DXTcfLIh.d.cts +348 -0
- package/dist/FileUpload-DXTcfLIh.d.ts +348 -0
- package/dist/TimeField-B4J8gA8E.d.ts +393 -0
- package/dist/TimeField-D2AOjQ1K.d.cts +393 -0
- package/dist/{colors-Kck1-4Zq.d.cts → colors-BUEmaPXY.d.ts} +4 -122
- package/dist/{colors-Kck1-4Zq.d.ts → colors-BniWNyzj.d.cts} +4 -122
- package/dist/components.manifest.json +13 -9
- package/dist/form/index.cjs +2 -0
- package/dist/form/index.cjs.map +1 -0
- package/dist/form/index.d.cts +3 -0
- package/dist/form/index.d.ts +3 -0
- package/dist/form/index.js +2 -0
- package/dist/form/index.js.map +1 -0
- package/dist/generated/tailwind-tokens-dark.css +1 -0
- package/dist/generated/tailwind-tokens-light.css +1 -0
- package/dist/index-DKA9NMRw.d.cts +311 -0
- package/dist/index-DKA9NMRw.d.ts +311 -0
- package/dist/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -794
- package/dist/index.d.ts +24 -794
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/dist/rhf/index.cjs +2 -0
- package/dist/rhf/index.cjs.map +1 -0
- package/dist/rhf/index.d.cts +147 -0
- package/dist/rhf/index.d.ts +147 -0
- package/dist/rhf/index.js +2 -0
- package/dist/rhf/index.js.map +1 -0
- package/dist/server.cjs +1 -1
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +2 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/styles.css +92 -27
- package/dist/utilities.manifest.json +2 -2
- package/package.json +30 -3
- package/scripts/generate-edges-docs.js +43 -0
|
@@ -3,11 +3,10 @@ import { ScaleTime, ScaleLinear } from 'd3-scale';
|
|
|
3
3
|
import * as React$1 from 'react';
|
|
4
4
|
import React__default, { ReactNode } from 'react';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
|
-
import {
|
|
6
|
+
import { c as IconName } from './FileUpload-DXTcfLIh.cjs';
|
|
7
7
|
import * as react_map_gl from 'react-map-gl';
|
|
8
8
|
import { ViewState, MapRef } from 'react-map-gl';
|
|
9
|
-
import
|
|
10
|
-
import { IconProps as IconProps$1 } from '@phosphor-icons/react';
|
|
9
|
+
import { MeterProps as MeterProps$1 } from 'react-aria-components';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Core types for the formatting system
|
|
@@ -273,47 +272,6 @@ declare function getYFormatSettings(formatter?: YFormatType): YFormatSettings;
|
|
|
273
272
|
declare const createXScale: (data: BaseDataPoint[], width: number) => d3_scale.ScaleTime<number, number, never>;
|
|
274
273
|
declare const createYScale: (data: BaseDataPoint[], height: number, formatType: YFormatType) => d3_scale.ScaleLinear<number, number, never>;
|
|
275
274
|
|
|
276
|
-
type PhosphorIconName = keyof typeof PhosphorIcons;
|
|
277
|
-
type IconName = PhosphorIconName;
|
|
278
|
-
declare const sizePresets: {
|
|
279
|
-
readonly xs: 16;
|
|
280
|
-
readonly sm: 20;
|
|
281
|
-
readonly md: 24;
|
|
282
|
-
readonly lg: 32;
|
|
283
|
-
readonly xl: 40;
|
|
284
|
-
readonly "2xl": 48;
|
|
285
|
-
};
|
|
286
|
-
type SizePreset = keyof typeof sizePresets;
|
|
287
|
-
interface IconProps extends Omit<IconProps$1, "size"> {
|
|
288
|
-
/**
|
|
289
|
-
* The name of the Phosphor icon to render
|
|
290
|
-
* Any valid icon from @phosphor-icons/react
|
|
291
|
-
*/
|
|
292
|
-
name: PhosphorIconName;
|
|
293
|
-
/**
|
|
294
|
-
* Size of the icon - can be a preset or custom number
|
|
295
|
-
*/
|
|
296
|
-
size?: SizePreset | number;
|
|
297
|
-
/**
|
|
298
|
-
* Accessibility label (maps to aria-label)
|
|
299
|
-
*/
|
|
300
|
-
ariaLabel?: string;
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Icon
|
|
304
|
-
*
|
|
305
|
-
* Phosphor icon wrapper component with standardized sizing and styling.
|
|
306
|
-
* Provides access to the full Phosphor icon library with tree-shaking support and design system presets.
|
|
307
|
-
* - TypeScript autocomplete for all icon names
|
|
308
|
-
*
|
|
309
|
-
* Usage:
|
|
310
|
-
* ```tsx
|
|
311
|
-
* <Icon name="House" size="md" />
|
|
312
|
-
* <Icon name="User" size={32} className="text-brand" />
|
|
313
|
-
* ```
|
|
314
|
-
*/
|
|
315
|
-
declare const Icon: React$1.MemoExoticComponent<({ name, size, color, weight, className, ariaLabel, ...props }: IconProps) => react_jsx_runtime.JSX.Element | null>;
|
|
316
|
-
|
|
317
275
|
interface ActionItem {
|
|
318
276
|
/**
|
|
319
277
|
* Unique identifier for the action
|
|
@@ -565,7 +523,7 @@ interface BadgeProps {
|
|
|
565
523
|
/** The content to display inside the badge */
|
|
566
524
|
children: React__default.ReactNode;
|
|
567
525
|
/** Visual variant of the badge */
|
|
568
|
-
variant?: "default" | "success" | "error" | "warning" | "info" | "primary" | "secondary" | "neutral" | DeviceState | GridState;
|
|
526
|
+
variant?: "default" | "success" | "error" | "warning" | "info" | "primary" | "brand" | "secondary" | "neutral" | DeviceState | GridState;
|
|
569
527
|
/** Size of the badge */
|
|
570
528
|
size?: "sm" | "md" | "lg";
|
|
571
529
|
/** Shape of the badge */
|
|
@@ -672,82 +630,6 @@ interface CodeEditorProps {
|
|
|
672
630
|
*/
|
|
673
631
|
declare function CodeEditor({ value, readOnly, onChange, language, theme, height, width, className, lineHeight, minLines, maxLines, showLineNumbers, showGutter, fontSize, wrapEnabled, }: CodeEditorProps): react_jsx_runtime.JSX.Element;
|
|
674
632
|
|
|
675
|
-
/**
|
|
676
|
-
* DateField
|
|
677
|
-
*
|
|
678
|
-
* Segmented date input with optional calendar popup.
|
|
679
|
-
*/
|
|
680
|
-
interface DateFieldProps<T extends DateValue> extends DateFieldProps$1<T> {
|
|
681
|
-
/**
|
|
682
|
-
* Label for the date field
|
|
683
|
-
*/
|
|
684
|
-
label?: string;
|
|
685
|
-
/**
|
|
686
|
-
* Description text to show below the field
|
|
687
|
-
*/
|
|
688
|
-
description?: string;
|
|
689
|
-
/**
|
|
690
|
-
* Error message to display
|
|
691
|
-
*/
|
|
692
|
-
errorMessage?: string | ((validation: ValidationResult) => string);
|
|
693
|
-
/**
|
|
694
|
-
* Whether to show a calendar button for date selection
|
|
695
|
-
* @default false
|
|
696
|
-
*/
|
|
697
|
-
showCalendar?: boolean;
|
|
698
|
-
}
|
|
699
|
-
declare function DateField<T extends DateValue>({ label, description, errorMessage, showCalendar, ...props }: DateFieldProps<T>): react_jsx_runtime.JSX.Element;
|
|
700
|
-
|
|
701
|
-
interface FileUploadProps {
|
|
702
|
-
/**
|
|
703
|
-
* Current file URL or preview
|
|
704
|
-
*/
|
|
705
|
-
value?: string;
|
|
706
|
-
/**
|
|
707
|
-
* Callback when file is selected
|
|
708
|
-
*/
|
|
709
|
-
onChange?: (file: File | null, url?: string) => void;
|
|
710
|
-
/**
|
|
711
|
-
* Callback when file URL changes (for external upload handlers)
|
|
712
|
-
*/
|
|
713
|
-
onUrlChange?: (url: string) => void;
|
|
714
|
-
/**
|
|
715
|
-
* Accepted file types
|
|
716
|
-
*/
|
|
717
|
-
accept?: string;
|
|
718
|
-
/**
|
|
719
|
-
* Maximum file size in bytes
|
|
720
|
-
*/
|
|
721
|
-
maxSize?: number;
|
|
722
|
-
/**
|
|
723
|
-
* Whether the component is disabled
|
|
724
|
-
*/
|
|
725
|
-
isDisabled?: boolean;
|
|
726
|
-
/**
|
|
727
|
-
* Custom upload handler (e.g., for cloud storage)
|
|
728
|
-
*/
|
|
729
|
-
onUpload?: (file: File) => Promise<string>;
|
|
730
|
-
/**
|
|
731
|
-
* Additional CSS classes
|
|
732
|
-
*/
|
|
733
|
-
className?: string;
|
|
734
|
-
/**
|
|
735
|
-
* Show image preview for image files
|
|
736
|
-
*/
|
|
737
|
-
showPreview?: boolean;
|
|
738
|
-
/**
|
|
739
|
-
* Placeholder text
|
|
740
|
-
*/
|
|
741
|
-
placeholder?: string;
|
|
742
|
-
}
|
|
743
|
-
/**
|
|
744
|
-
* FileUpload
|
|
745
|
-
*
|
|
746
|
-
* A file upload component with drag-and-drop support.
|
|
747
|
-
* Supports image preview, custom upload handlers, and file validation.
|
|
748
|
-
*/
|
|
749
|
-
declare function FileUpload({ value, onChange, onUrlChange, accept, maxSize, isDisabled, onUpload, className, showPreview, placeholder, }: FileUploadProps): react_jsx_runtime.JSX.Element;
|
|
750
|
-
|
|
751
633
|
declare const sizeVariants: {
|
|
752
634
|
readonly xs: "text-lg font-semibold";
|
|
753
635
|
readonly sm: "text-xl font-semibold";
|
|
@@ -1922,4 +1804,4 @@ declare const isLightColor: (color: string) => boolean;
|
|
|
1922
1804
|
*/
|
|
1923
1805
|
declare const getContrastingTextColor: (backgroundColor: string) => string;
|
|
1924
1806
|
|
|
1925
|
-
export { type
|
|
1807
|
+
export { type CurrentFormat 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, type RichTextEditorProps as R, type StaticMapProps as S, TextLink as T, defaultMargin as U, getYFormatSettings as V, type YFormatSettings as W, type FieldValue as X, type YFormatType as Y, type BooleanFormat as Z, type FormattedValue as _, type ActionMenuProps as a, type DateFormat as a0, type DistanceFormat as a1, type EnergyFormat as a2, type CurrencyFormat as a3, type NumberFormat as a4, type PhoneFormat as a5, type PowerFormat as a6, type FormatterFunction as a7, type ResistanceFormat as a8, type TemperatureUnitString as a9, RichTextEditor as aA, SegmentedControl as aB, ChartContext as aC, useChartContext as aD, type ComponentFormatOptions as aE, formatComponentValue as aF, useComponentFormatter as aG, type BaseFormat as aH, type TextTransform as aI, type TextTruncatePosition as aJ, type PercentageFormat as aK, type DateFormatStyle as aL, type EnergyUnit as aM, type PowerUnit as aN, type VoltageUnit as aO, type CurrentUnit as aP, type ResistanceUnit as aQ, type DistanceUnit as aR, type CustomFormat as aS, type MetricFormat as aT, deviceStateMetricFormats as aU, activeDeviceStates as aV, deviceStateLabels as aW, isActiveState as aX, getDeviceStateLabel as aY, gridStateLabels as aZ, getGridStateLabel as a_, type TemperatureUnit as aa, type TemperatureFormat as ab, type TextFormat as ac, type VoltageFormat as ad, type FieldFormat as ae, type DeviceState as af, type GridState as ag, type ComponentFormatter as ah, type LayerSpec as ai, type CustomPinsSpec as aj, type GeoJsonLayerSpec as ak, type RasterLayerSpec as al, type VectorLayerSpec as am, type ClusteredVectorLayerSpec as an, ActionMenu as ao, Badge as ap, CodeEditor as aq, type ColorSpec as ar, type LayerFeature as as, type LayerStyle as at, type RenderType as au, type ZoomStops as av, InteractiveMap as aw, MAP_TYPES as ax, StaticMap as ay, Meter 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 };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
3
|
-
"generatedAt": "2025-11-
|
|
2
|
+
"version": "1.19.0",
|
|
3
|
+
"generatedAt": "2025-11-13T03:24:57.452Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "ActionCell",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
{
|
|
99
99
|
"name": "Autocomplete",
|
|
100
100
|
"category": "Form Controls",
|
|
101
|
-
"description": "
|
|
101
|
+
"description": "Whether to reserve space for error messages to prevent layout shift @default false",
|
|
102
102
|
"importRoot": "@texturehq/edges",
|
|
103
103
|
"importPath": "@texturehq/edges/components/Autocomplete",
|
|
104
104
|
"props": [
|
|
@@ -908,7 +908,7 @@
|
|
|
908
908
|
{
|
|
909
909
|
"name": "DateField",
|
|
910
910
|
"category": "Form Controls",
|
|
911
|
-
"description": "
|
|
911
|
+
"description": "Renders an Edges DateField with label, description, validation states, and optional calendar picker.",
|
|
912
912
|
"importRoot": "@texturehq/edges",
|
|
913
913
|
"importPath": "@texturehq/edges/components/DateField",
|
|
914
914
|
"props": [],
|
|
@@ -1130,7 +1130,7 @@
|
|
|
1130
1130
|
{
|
|
1131
1131
|
"name": "Form",
|
|
1132
1132
|
"category": "Form Controls",
|
|
1133
|
-
"description": "Form Accessibility-first form wrapper with consistent spacing.",
|
|
1133
|
+
"description": "Form Accessibility-first form wrapper with consistent spacing. Defaults to ARIA validation to use custom error styling instead of native browser tooltips.",
|
|
1134
1134
|
"importRoot": "@texturehq/edges",
|
|
1135
1135
|
"importPath": "@texturehq/edges/components/Form",
|
|
1136
1136
|
"props": [],
|
|
@@ -1466,6 +1466,7 @@
|
|
|
1466
1466
|
"props": [],
|
|
1467
1467
|
"relatedComponents": [
|
|
1468
1468
|
"Button",
|
|
1469
|
+
"ListBoxItem",
|
|
1469
1470
|
"NumberField",
|
|
1470
1471
|
"Select",
|
|
1471
1472
|
"Switch",
|
|
@@ -1482,6 +1483,7 @@
|
|
|
1482
1483
|
"props": [],
|
|
1483
1484
|
"relatedComponents": [
|
|
1484
1485
|
"Button",
|
|
1486
|
+
"ListBoxItem",
|
|
1485
1487
|
"NumberField",
|
|
1486
1488
|
"Select",
|
|
1487
1489
|
"Switch",
|
|
@@ -1498,6 +1500,7 @@
|
|
|
1498
1500
|
"props": [],
|
|
1499
1501
|
"relatedComponents": [
|
|
1500
1502
|
"Button",
|
|
1503
|
+
"ListBoxItem",
|
|
1501
1504
|
"NumberField",
|
|
1502
1505
|
"Select",
|
|
1503
1506
|
"Switch",
|
|
@@ -1749,7 +1752,7 @@
|
|
|
1749
1752
|
{
|
|
1750
1753
|
"name": "Radio",
|
|
1751
1754
|
"category": "Form Controls",
|
|
1752
|
-
"description": "Visual variant of the radio buttons @default \"
|
|
1755
|
+
"description": "Visual variant of the radio buttons @default \"default\"",
|
|
1753
1756
|
"importRoot": "@texturehq/edges",
|
|
1754
1757
|
"importPath": "@texturehq/edges/components/Radio",
|
|
1755
1758
|
"props": [],
|
|
@@ -1783,7 +1786,7 @@
|
|
|
1783
1786
|
{
|
|
1784
1787
|
"name": "RadioGroup",
|
|
1785
1788
|
"category": "Form Controls",
|
|
1786
|
-
"description": "Visual variant of the radio buttons @default \"
|
|
1789
|
+
"description": "Visual variant of the radio buttons @default \"default\"",
|
|
1787
1790
|
"importRoot": "@texturehq/edges",
|
|
1788
1791
|
"importPath": "@texturehq/edges/components/RadioGroup",
|
|
1789
1792
|
"props": [],
|
|
@@ -2209,7 +2212,7 @@
|
|
|
2209
2212
|
{
|
|
2210
2213
|
"name": "TextArea",
|
|
2211
2214
|
"category": "Form Controls",
|
|
2212
|
-
"description": "
|
|
2215
|
+
"description": "Allow user resizing of the textarea. Defaults to false (non-resizable). When true, enables vertical resize.",
|
|
2213
2216
|
"importRoot": "@texturehq/edges",
|
|
2214
2217
|
"importPath": "@texturehq/edges/components/TextArea",
|
|
2215
2218
|
"props": [
|
|
@@ -2455,7 +2458,7 @@
|
|
|
2455
2458
|
{
|
|
2456
2459
|
"name": "TimeField",
|
|
2457
2460
|
"category": "Form Controls",
|
|
2458
|
-
"description": "Renders an Edges TimeField
|
|
2461
|
+
"description": "Renders an Edges TimeField with label, description, validation states, and segmented time input.",
|
|
2459
2462
|
"importRoot": "@texturehq/edges",
|
|
2460
2463
|
"importPath": "@texturehq/edges/components/TimeField",
|
|
2461
2464
|
"props": [
|
|
@@ -2493,6 +2496,7 @@
|
|
|
2493
2496
|
}
|
|
2494
2497
|
],
|
|
2495
2498
|
"relatedComponents": [
|
|
2499
|
+
"Button",
|
|
2496
2500
|
"TimeField"
|
|
2497
2501
|
],
|
|
2498
2502
|
"storybookPath": "Form Controls/TimeField"
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var reactAriaComponents=require('react-aria-components'),tailwindMerge=require('tailwind-merge'),Ee=require('react'),We=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 Ee__namespace=/*#__PURE__*/_interopNamespace(Ee);var We__namespace=/*#__PURE__*/_interopNamespace(We);var Te=Object.defineProperty;var Ae=(e,t,o)=>t in e?Te(e,t,{enumerable:true,configurable:true,writable:true,value:o}):e[t]=o;var oe=(e,t,o)=>Ae(e,typeof t!="symbol"?t+"":t,o);function ce(e,t=false){let[o,r]=Ee.useState(t);return Ee.useEffect(()=>{if(typeof window>"u")return;let a=window.matchMedia(e);r(a.matches);let n=s=>{r(s.matches);};return a.addEventListener("change",n),()=>{a.removeEventListener("change",n);}},[e]),o}function pe(e=false){return `${e?"outline outline-1 outline-border-input focus:outline-2 focus:outline-action-default focus: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 focus-visible:outline focus-visible:outline-2 focus-visible:outline-action-default 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 $={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 O={xs:16,sm:20,md:24,lg:32,xl:40,"2xl":48},R=Ee.memo(({name:e,size:t="md",color:o,weight:r="regular",className:a,ariaLabel:n,...s})=>{let i=We__namespace[e];if(!i)return process.env.NODE_ENV==="development"&&console.error(`Icon "${e}" not found in @phosphor-icons/react`),null;let l=typeof t=="string"&&t in O?O[t]:t,d=tailwindMerge.twMerge("inline-block flex-shrink-0",!o&&"text-current",a);return jsxRuntime.jsx(i,{...s,size:l,color:o,weight:r,className:d,"aria-label":n||`${e} icon`,"data-testid":`icon-${e}`})});R.displayName="Icon";var me=Ee.memo(({variant:e="subtle",shape:t="square",containerSize:o,containerClassName:r,size:a="md",className:n,name:s,color:i,weight:l,ariaLabel:d,ref:u,...c})=>{let g=typeof a=="string"&&a in O?O[a]:a,x=o?typeof o=="string"&&o in O?O[o]:o:g*1.75,v=tailwindMerge.twMerge("inline-flex items-center justify-center flex-shrink-0",t==="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:a,color:i,weight:l,className:n,ariaLabel:d})})});me.displayName="IconWithContainer";var Ve="flex font-medium justify-center items-center gap-2 text-center transition rounded-[var(--control-border-radius)] whitespace-nowrap box-border",Ge={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"},be={full:"w-full",default:"w-fit"},Ue="opacity-50 cursor-not-allowed pointer-events-none",qe="opacity-100 cursor-pointer",Ye={"top-right":"-right-2 -top-2","top-left":"-left-2 -top-2","bottom-right":"-right-2 -bottom-2","bottom-left":"-left-2 -bottom-2"},Qe={primary:"bg-action-brand text-white",destructive:"bg-action-destructive text-white"};function Xe(e){return e?e==="primary"?"brand":e:"default"}function Je(e){let{variant:t="default",size:o="md",isDisabled:r,fullWidth:a=false,isLoading:n=false}=e,s=Xe(t),i=s==="unstyled"?"":`${Ve} ${Ge[s]}`;s!=="unstyled"&&(i+=` ${$[o].text} ${$[o].height} ${$[o].padding} ${$[o].gap}`),r||n?i+=` ${Ue}`:i+=` ${qe}`,a?i+=` ${be.full}`:i+=` ${be.default}`;let l=s==="brand"?"focus-visible:outline-action-brand":void 0;return [i,pe(),l].filter(Boolean).join(" ")}function S(e){let{icon:t,children:o,isLoading:r=false,loadingText:a,loadingIndicator:n,size:s="md",iconPosition:i="left",iconWeight:l,href:d,className:u,badgeNumber:c,badgeVariant:g="primary",badgePosition:x="top-right",style:v,target:C,rel:k,...y}=e,m=t?jsxRuntime.jsx(R,{name:t,size:s,weight:l}):null,h=jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,typeof o=="function"?null:o,i==="right"&&m]}),P=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:n||jsxRuntime.jsx(R,{name:"CircleNotch",size:s,className:"animate-spin","aria-hidden":"true"})}),jsxRuntime.jsx("div",{className:"invisible","aria-hidden":"true",children:h}),a&&jsxRuntime.jsx("span",{className:"sr-only",role:"status","aria-live":"polite",children:a})]}),f=(c??0)>0,w=tailwindMerge.twMerge(Je(e),u),A=d?{href:d,target:C,rel:k,...y}:{};if(d){let{onPress:B,onPressStart:Lt,onPressEnd:Tt,onPressChange:At,onPressUp:$t,onAuxClick:_t,onContextMenu:Wt,onDoubleClick:Ot,...Le}=y;Object.assign(A,Le);}let V=d?jsxRuntime.jsx(reactAriaComponents.Link,{...A,...r&&{"aria-busy":true},style:f?void 0:v,className:w,children:r?P:typeof o=="function"?(function(B){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,o(B),i==="right"&&m]})}):h}):jsxRuntime.jsx(reactAriaComponents.Button,{...y,...r&&{"aria-busy":true},style:f?void 0:v,className:w,children:r?P:typeof o=="function"?(function(B){return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[i==="left"&&m,o(B),i==="right"&&m]})}):h});return f?jsxRuntime.jsxs("div",{className:tailwindMerge.twMerge("relative flex",u),style:v,children:[V,jsxRuntime.jsx("span",{className:`absolute ${Ye[x]} flex h-5 w-5 items-center justify-center rounded-full ${Qe[g]} text-xs font-medium`,"aria-label":`${c} items`,children:c})]}):V}function L({primaryAction:e,secondaryAction:t,footerContent:o}){let r=e||t;return !r&&!o?null:jsxRuntime.jsxs("div",{className:"flex h-28 w-full flex-col items-center justify-center border-t p-4",children:[o&&jsxRuntime.jsx("div",{className:"flex h-10 justify-center",children:o}),r&&jsxRuntime.jsxs("div",{className:"flex h-full w-full items-center justify-end gap-3",children:[t&&jsxRuntime.jsx(S,{size:t.size||"lg",variant:t.variant||"secondary",onPress:t.onPress,isLoading:t.isLoading,isDisabled:t.isDisabled,children:t.label}),e&&jsxRuntime.jsx(S,{size:e.size||"lg",variant:e.variant,onPress:e.onPress,isLoading:e.isLoading,isDisabled:e.isDisabled,children:e.label})]})]})}var Ze={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"},et={page:"h-16 leading-[62px]"};function _({tag:e="h1",size:t="lg",height:o,className:r="",children:a}){let n=Ze[t],s=o?et[o]:"";return jsxRuntime.jsx(e,{className:tailwindMerge.twMerge(n,s,r),children:a})}var N=({title:e,onClose:t,hideCloseIcon:o=false,titleAlign:r="left",hasBackArrow:a=false,onBack:n,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:[a&&jsxRuntime.jsx(S,{variant:"icon",onPress:n,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(_,{size:"xs",children:e}),t&&!o&&jsxRuntime.jsx(S,{variant:"icon",onPress:t,"aria-label":"Close dialog",children:jsxRuntime.jsx(R,{name:"X","data-testid":"close-button"})})]})]});var D=({width:e,height:t,variant:o="rect",animation:r="pulse",gradient:a=false,flex:n=false,stack:s,responsive:i,delay:l=0,adjustAnimationSpeedBasedOnWidth:d=false,ariaLabel:u,className:c,"data-testid":g})=>{let[x,v]=Ee.useState(l===0);if(Ee.useEffect(()=>{if(l>0){let f=setTimeout(()=>v(true),l);return ()=>clearTimeout(f)}},[l]),!x)return null;let C=a?"bg-gradient-to-r from-[var(--color-skeleton-base)] via-[var(--color-skeleton-highlight)] to-[var(--color-skeleton-base)]":"bg-[var(--color-skeleton-base)]",k=d&&e?(()=>{let f=typeof e=="number"?e:parseFloat(String(e));return isNaN(f)?"":`animation-duration-[${Math.max(.8,f/100)}s]`})():"",y=r==="pulse"?`animate-pulse ${k}`: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 ${k}`:"",m="rounded-sm";o==="circle"&&(m="rounded-full"),o==="text"&&(m="h-4 w-full rounded-sm");let h=n?"flex-1 min-w-0":"",P=i?Object.entries(i).map(([f,w])=>`${f}:w-[${w}]`).join(" "):"";return s?jsxRuntime.jsx("div",{className:"space-y-2","data-testid":g,children:s.map((f,w)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(C,y,m,h,P,c),style:{width:f,height:t}},w))}):jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(C,y,m,h,P,c),style:{width:e,height:t},role:"presentation","aria-hidden":!u,"aria-label":u??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"},st="rounded-lg",se={square:"aspect-square",video:"aspect-video",wide:"aspect-[2/1]",auto:""},lt={start:"justify-start",end:"justify-end",center:"justify-center",between:"justify-between"};function H({variant:e="outlined",className:t,children:o,isLoading:r=false}){return jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("w-full overflow-hidden",it[e],st,t),"data-testid":"card",children:r?jsxRuntime.jsx(D,{width:"100%",height:"100%",className:"rounded-none"}):o})}function ye({title:e,subtitle:t,actions:o,className:r,isLoading:a=false}){return a?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(D,{width:120,height:20}),jsxRuntime.jsx(D,{width:24,height:24})]}),t&&jsxRuntime.jsx(D,{width:200,height:16})]}):!e&&!t&&!o?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(_,{tag:"h3",size:"sm",className:"text-text-heading",children:e}):e}),t&&jsxRuntime.jsx("div",{className:"text-sm text-text-muted",children:t})]}),o&&jsxRuntime.jsx("div",{className:"flex-shrink-0",children:o})]})})}function Pe({src:e,alt:t,aspectRatio:o="auto",className:r,children:a,isLoading:n=false}){return n?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("bg-background-muted",se[o],r),children:jsxRuntime.jsx(D,{width:"100%",height:"100%"})}):a?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",se[o],r),children:a}):e?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("overflow-hidden",se[o],r),children:jsxRuntime.jsx("img",{src:e,alt:t||"",className:"w-full h-full object-cover",loading:"lazy"})}):null}function we({className:e,children:t,isLoading:o=false}){let a=e?.match(/p(?:t|b|l|r|x|y)?-(?:\d+(?:\.\d+)?|px|\[.+?\])/)?"":"px-6 py-4";return o?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge(a,e),children:jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx(D,{width:"100%",height:16}),jsxRuntime.jsx(D,{width:"80%",height:16}),jsxRuntime.jsx(D,{width:"60%",height:16})]})}):t?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 text-text-body",e),children:t}):null}function Ne({className:e,children:t,align:o="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(D,{width:80,height:32}),jsxRuntime.jsx(D,{width:60,height:32})]}):t?jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("px-6 py-4 flex items-center gap-2",lt[o],e),children:t}):null}H.Header=ye;H.Media=Pe;H.Content=we;H.Footer=Ne;var I=class extends Ee.Component{constructor(){super(...arguments);oe(this,"state",{hasError:false});oe(this,"handleRetry",()=>{this.setState({hasError:false,error:void 0}),typeof window<"u"&&window.location.reload();});}static getDerivedStateFromError(o){return {hasError:true,error:o}}componentDidCatch(o,r){console.error("Error Boundary caught an error:",o,r);}render(){return this.state.hasError?this.props.fallback?this.props.fallback:jsxRuntime.jsxs(H,{children:[this.props.title&&jsxRuntime.jsx(H.Header,{title:this.props.title}),jsxRuntime.jsx(H.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 T({transparent:e=false,className:t,children:o,...r}){return jsxRuntime.jsx(reactAriaComponents.ModalOverlay,{...r,className:reactAriaComponents.composeRenderProps(t,(a,n)=>tailwindMerge.twMerge("fixed inset-0 z-50",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(" "),n.isEntering&&["animate-in fade-in","duration-300 ease-out"].join(" "),n.isExiting&&["animate-out fade-out","duration-200 ease-in"].join(" "),a)),children:o})}function X({children:e,title:t,headerContent:o,titleAlign:r="left",hideCloseIcon:a=false,hasBackArrow:n=false,onBack:s,isOpen:i,onClose:l,isDismissable:d=true,transparentOverlay:u=false,primaryAction:c,secondaryAction:g,footerContent:x,maxHeight:v="80vh",height:C,maxWidth:k="640px",contentPadding:y=true,showHandle:m=true,animationVariant:h="scale",className:P}){let[f,w]=Ee.useState(false);if(Ee.useEffect(()=>{if(i){let B=setTimeout(()=>{w(true),setTimeout(()=>w(false),600);},400);return ()=>clearTimeout(B)}},[i]),!i)return null;let A=t||o,V=c||g||x;return jsxRuntime.jsx(I,{children:jsxRuntime.jsx(T,{isOpen:i,onOpenChange:B=>{B||l?.();},isDismissable:d,transparent:u,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",isDismissable:d,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",h==="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)]",h==="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)]",P),style:{maxWidth:k,...C?{height:C}:{maxHeight:v}},children:[m&&jsxRuntime.jsx("div",{className:"absolute top-2 left-1/2 -translate-x-1/2 z-10 flex justify-center",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]")})}),A&&(n?jsxRuntime.jsx(N,{title:t,headerContent:o,titleAlign:r,hideCloseIcon:a||!l,hasBackArrow:true,onBack:s??(()=>{}),onClose:l||(()=>{})}):jsxRuntime.jsx(N,{title:t,headerContent:o,titleAlign:r,hideCloseIcon:a||!l,onClose:l||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto overscroll-contain",y?"p-4":"p-0"),children:e}),V&&jsxRuntime.jsx(L,{primaryAction:c,secondaryAction:g,footerContent:x})]})})})})}X.displayName="Tray";function de({isOpen:e,onClose:t,title:o,headerContent:r,titleAlign:a="left",hideCloseIcon:n=false,hasBackArrow:s=false,onBack:i,children:l,primaryAction:d,secondaryAction:u,footerContent:c,transparentOverlay:g=false,maxWidth:x="600px",minWidth:v="400px",maxHeight:C="85vh",height:k,mobileMaxHeight:y="90vh",mobileHeight:m,contentPadding:h=true,className:P}){if(e===false)return null;let f=o||r,w=d||u||c,A=e!==void 0;return ce("(max-width: 767px)")?A?jsxRuntime.jsx(X,{isOpen:e,onClose:t,title:o,headerContent:r,titleAlign:a,hideCloseIcon:n,hasBackArrow:s,onBack:i,primaryAction:d,secondaryAction:u,footerContent:c,transparentOverlay:g,maxHeight:y,height:m,maxWidth:x,contentPadding:h,showHandle:true,animationVariant:"scale",className:P,children:l}):jsxRuntime.jsx(I,{children:jsxRuntime.jsx(T,{isDismissable:true,transparent:g,className:"flex items-end justify-center",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full max-w-fit p-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-none","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",P),style:{maxWidth:x,...m?{height:m}:{maxHeight:y}},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"})}),f&&(s?jsxRuntime.jsx(N,{title:o,headerContent:r,titleAlign:a,hideCloseIcon:n||!t,hasBackArrow:true,onBack:i,onClose:t||(()=>{})}):jsxRuntime.jsx(N,{title:o,headerContent:r,titleAlign:a,hideCloseIcon:n||!t,onClose:t||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto overscroll-contain",h?"px-6 py-6":"p-0"),children:l}),w&&jsxRuntime.jsx(L,{primaryAction:d,secondaryAction:u,footerContent:c})]})})})}):jsxRuntime.jsx(I,{children:jsxRuntime.jsx(T,{...A?{isOpen:e,onOpenChange:B=>{!B&&t&&t();}}:{},isDismissable:true,transparent:g,className:"flex items-center justify-center",children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"w-full p-4",style:{maxWidth:x},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",P),style:{minWidth:v,...k?{height:k}:{maxHeight:C}},children:[f&&(s?jsxRuntime.jsx(N,{title:o,headerContent:r,titleAlign:a,hideCloseIcon:n||!t,hasBackArrow:true,onBack:i,onClose:t||(()=>{})}):jsxRuntime.jsx(N,{title:o,headerContent:r,titleAlign:a,hideCloseIcon:n||!t,onClose:t||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 min-h-0 overflow-y-auto",h?"px-6 py-6":"p-0"),children:l}),w&&jsxRuntime.jsx(L,{primaryAction:d,secondaryAction:u,footerContent:c})]})})})})}function q(e){return jsxRuntime.jsx(reactAriaComponents.Form,{validationBehavior:"aria",...e,className:tailwindMerge.twMerge("flex flex-col gap-6",e.className)})}function Gr({formId:e="dialog-form",onSubmit:t,primaryLabel:o="Save",secondaryLabel:r="Cancel",onCancel:a,primaryVariant:n,secondaryVariant:s="secondary",children:i,title:l,...d}){return jsxRuntime.jsx(de,{title:l,primaryAction:{label:o,onPress:()=>{let c=document.getElementById(e);c&&c.requestSubmit();},variant:n},secondaryAction:a?{label:r,onPress:a,variant:s}:void 0,...d,children:jsxRuntime.jsx(q,{id:e,onSubmit:t,children:i})})}function K({children:e,title:t,headerContent:o,titleAlign:r="left",hideCloseIcon:a=false,hasBackArrow:n=false,onBack:s,isOpen:i,slideInFrom:l="right",transparentOverlay:d=false,onClose:u,className:c,primaryAction:g,secondaryAction:x,footerContent:v,contentPadding:C=true,maxWidth:k="400px"}){let[y,m]=Ee.useState(false);if(Ee.useEffect(()=>{if(i){let f=setTimeout(()=>m(true),10);return ()=>clearTimeout(f)}else m(false);},[i]),!i)return null;let h=t||o,P=g||x||v;return jsxRuntime.jsx(I,{children:jsxRuntime.jsx(T,{isOpen:i,onOpenChange:f=>!f&&u?.(),isDismissable:true,transparent:d,children:jsxRuntime.jsx(reactAriaComponents.Modal,{className:"flex justify-end",isDismissable:true,children:jsxRuntime.jsxs("div",{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",y?l==="right"?"animate-in slide-in-from-right":"animate-in slide-in-from-left":"",c),style:{[l==="right"?"right":"left"]:0,maxWidth:k,transform:y?void 0:l==="right"?"translateX(100%)":"translateX(-100%)"},children:[h&&(n?jsxRuntime.jsx(N,{title:t,headerContent:o,titleAlign:r,hideCloseIcon:a,hasBackArrow:true,onBack:s,onClose:u||(()=>{})}):jsxRuntime.jsx(N,{title:t,headerContent:o,titleAlign:r,hideCloseIcon:a,onClose:u||(()=>{})})),jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("flex-1 overflow-y-auto overscroll-contain",C?"px-6 py-6":"p-0"),children:e}),P&&jsxRuntime.jsx(L,{primaryAction:g,secondaryAction:x,footerContent:v})]})})})})}K.displayName="Drawer";function la({formId:e="drawer-form",onSubmit:t,primaryLabel:o="Save",secondaryLabel:r="Cancel",onCancel:a,primaryVariant:n,secondaryVariant:s="secondary",children:i,...l}){return jsxRuntime.jsx(K,{primaryAction:{label:o,onPress:()=>{let u=document.getElementById(e);u&&u.requestSubmit();},variant:n},secondaryAction:a?{label:r,onPress:a,variant:s}:void 0,...l,children:jsxRuntime.jsx(q,{id:e,onSubmit:t,className:"mt-2",children:i})})}function ua({align:e="end",className:t,...o}){return jsxRuntime.jsx("div",{...o,className:tailwindMerge.twMerge("flex gap-2",e==="start"?"justify-start":e==="between"?"justify-between":"justify-end",t)})}var St={sm:"gap-2",md:"gap-4",lg:"gap-6"};function Ft(e){if(!e)return "";let t=e.base?`grid-cols-${e.base}`:"",o=e.md?`md:grid-cols-${e.md}`:"",r=e.lg?`lg:grid-cols-${e.lg}`:"";return [t,o,r].filter(Boolean).join(" ")}function ba({cols:e={base:1},gap:t="lg",className:o,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("grid",Ft(e),St[t],o)})}function Ie({size:e="md",className:t,children:o,...r}){return jsxRuntime.jsx("div",{...r,className:tailwindMerge.twMerge("leading-[2.25] text-text-caption",$[e].text,t),children:o})}function Sa({title:e,description:t,showDivider:o,className:r,children:a,...n}){return jsxRuntime.jsxs("section",{...n,className:tailwindMerge.twMerge("flex flex-col",r),children:[(e||t)&&jsxRuntime.jsxs("div",{className:"flex flex-col gap-1 mb-6",children:[typeof e=="string"?jsxRuntime.jsx(_,{tag:"h3",size:"sm",children:e}):e,t?jsxRuntime.jsx(Ie,{size:"lg",children:t}):null]}),jsxRuntime.jsx("div",{className:"flex flex-col gap-6",children:a}),o&&jsxRuntime.jsx("hr",{className:"mt-2 border-border-muted"})]})}function Fa(){return jsxRuntime.jsx("hr",{className:"border-border-muted"})}function za({steps:e,currentStepId:t,onStepClick:o,className:r}){let a=e.findIndex(n=>n.id===t);return jsxRuntime.jsx("nav",{"aria-label":"Progress",className:tailwindMerge.twMerge("w-full",r),children:jsxRuntime.jsxs("div",{className:"relative mb-20",children:[jsxRuntime.jsxs("div",{className:"absolute top-5 left-0 right-0 flex items-center justify-between",children:[jsxRuntime.jsx("div",{className:"w-10 flex-shrink-0"}),e.slice(0,-1).map((n,s)=>jsxRuntime.jsx("div",{className:tailwindMerge.twMerge("h-0.5 flex-1 transition-colors",s<a?"bg-action-default":"bg-border-default")},s)),jsxRuntime.jsx("div",{className:"w-10 flex-shrink-0"})]}),jsxRuntime.jsx("ol",{className:"relative flex items-start justify-between",children:e.map((n,s)=>{let i=n.id===t,l=s<a,d=o&&(l||i);return jsxRuntime.jsxs("li",{className:"flex flex-col items-center",children:[jsxRuntime.jsx("button",{type:"button",disabled:!d,onClick:()=>d&&o?.(n.id),className:tailwindMerge.twMerge("relative z-10 flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full border-2 transition-colors bg-background-body",l&&"border-action-default bg-action-default text-text-onPrimary hover:bg-action-default/90",i&&"border-action-default bg-background-body text-action-default",!l&&!i&&"border-border-default bg-background-body text-text-muted",d&&"cursor-pointer",!d&&"cursor-default"),"aria-current":i?"step":void 0,children:l?jsxRuntime.jsx(R,{name:"Check",size:20,weight:"bold"}):jsxRuntime.jsx("span",{className:"text-sm font-semibold",children:s+1})}),jsxRuntime.jsxs("div",{className:"mt-3 flex flex-col items-center text-center w-32",children:[jsxRuntime.jsx("span",{className:tailwindMerge.twMerge("text-sm font-medium",i&&"text-text-default",l&&"text-text-body",!i&&!l&&"text-text-muted"),children:n.title}),n.description&&jsxRuntime.jsx("span",{className:"mt-1 text-xs text-text-caption",children:n.description})]})]},n.id)})})]})})}function _a({formId:e,show:t,isSubmitting:o,onCancel:r,primaryLabel:a="Save changes",secondaryLabel:n="Cancel",className:s}){return t?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(S,{variant:"secondary",onPress:r,children:n}),jsxRuntime.jsx(S,{type:"submit",form:e,isDisabled:!!o,children:o?"Saving...":a})]})]})}):null}function ja({when:e,message:t="You have unsaved changes. Leave anyway?"}){return Ee__namespace.useEffect(()=>{if(!e)return;let o=r=>(r.preventDefault(),r.returnValue=t,t);return window.addEventListener("beforeunload",o),()=>window.removeEventListener("beforeunload",o)},[e,t]),null}function Ga({steps:e,initialStepId:t,canNavigate:o}){if(e.length===0)throw new Error("useWizard: steps array cannot be empty");let[r,a]=Ee__namespace.useState(t||e[0].id),n=e.findIndex(c=>c.id===r),s=n>0,i=n<e.length-1,l=async c=>c===r?true:o&&!await o(r,c)?false:(a(c),true);return {steps:e,currentStepId:r,setCurrentStepId:l,next:async()=>!i||n===-1?false:l(e[n+1].id),prev:async()=>!s||n===-1?false:l(e[n-1].id),hasNext:i,hasPrev:s,stepIndex:n}}exports.DialogForm=Gr;exports.DrawerForm=la;exports.FormActions=ua;exports.FormDivider=Fa;exports.FormGrid=ba;exports.FormSection=Sa;exports.FormStepper=za;exports.SaveBar=_a;exports.UnsavedChangesPrompt=ja;exports.useWizard=Ga;//# sourceMappingURL=index.cjs.map
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|