opus-react 0.2.19 → 0.2.22

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/index.js CHANGED
@@ -427,7 +427,7 @@ var init_setupFireBarrelScene = __esm({
427
427
  });
428
428
 
429
429
  // ../../components/fields/Button/Button.module.css
430
- var Button_default = {"warning":"opus_lZkc26_warning","button":"opus_lZkc26_button","primary":"opus_lZkc26_primary","dark":"opus_lZkc26_dark","secondary":"opus_lZkc26_secondary","success":"opus_lZkc26_success","info":"opus_lZkc26_info","link":"opus_lZkc26_link","danger":"opus_lZkc26_danger","light":"opus_lZkc26_light"};
430
+ var Button_default = {"secondary":"opus_lZkc26_secondary","success":"opus_lZkc26_success","dark":"opus_lZkc26_dark","link":"opus_lZkc26_link","light":"opus_lZkc26_light","button":"opus_lZkc26_button","info":"opus_lZkc26_info","primary":"opus_lZkc26_primary","danger":"opus_lZkc26_danger","warning":"opus_lZkc26_warning"};
431
431
 
432
432
  // ../../components/fields/Button/Button.tsx
433
433
  import { jsx } from "react/jsx-runtime";
@@ -459,7 +459,7 @@ import {
459
459
  import { createPortal } from "react-dom";
460
460
 
461
461
  // ../../components/Tooltip/Tooltip.module.css
462
- var Tooltip_default = {"left":"opus_R70RbH_left","bottom":"opus_R70RbH_bottom","triggerWrap":"opus_R70RbH_triggerWrap","top":"opus_R70RbH_top","right":"opus_R70RbH_right","arrow":"opus_R70RbH_arrow","root":"opus_R70RbH_root","popup":"opus_R70RbH_popup","trigger":"opus_R70RbH_trigger"};
462
+ var Tooltip_default = {"trigger":"opus_R70RbH_trigger","popup":"opus_R70RbH_popup","top":"opus_R70RbH_top","bottom":"opus_R70RbH_bottom","root":"opus_R70RbH_root","triggerWrap":"opus_R70RbH_triggerWrap","arrow":"opus_R70RbH_arrow","left":"opus_R70RbH_left","right":"opus_R70RbH_right"};
463
463
 
464
464
  // ../../components/Tooltip/Tooltip.tsx
465
465
  import { jsx as jsx2, jsxs } from "react/jsx-runtime";
@@ -628,7 +628,7 @@ function Tooltip({
628
628
  }
629
629
 
630
630
  // ../../components/fields/FieldShell/FieldShell.module.css
631
- var FieldShell_default = {"error":"opus_zNi12Z_error","labelRight":"opus_zNi12Z_labelRight","label":"opus_zNi12Z_label","controlFlagged":"opus_zNi12Z_controlFlagged","flagged":"opus_zNi12Z_flagged","visuallyHidden":"opus_zNi12Z_visuallyHidden","labelFlagged":"opus_zNi12Z_labelFlagged","stacked":"opus_zNi12Z_stacked","flaggedCenter":"opus_zNi12Z_flaggedCenter","labelLeft":"opus_zNi12Z_labelLeft","stackedLeft":"opus_zNi12Z_stackedLeft","fitContent":"opus_zNi12Z_fitContent","flaggedStart":"opus_zNi12Z_flaggedStart","required":"opus_zNi12Z_required","root":"opus_zNi12Z_root","control":"opus_zNi12Z_control","compactControl":"opus_zNi12Z_compactControl","stackedRight":"opus_zNi12Z_stackedRight","errorFlagged":"opus_zNi12Z_errorFlagged"};
631
+ var FieldShell_default = {"labelRight":"opus_zNi12Z_labelRight","flagged":"opus_zNi12Z_flagged","stackedLeft":"opus_zNi12Z_stackedLeft","stacked":"opus_zNi12Z_stacked","stackedRight":"opus_zNi12Z_stackedRight","root":"opus_zNi12Z_root","compactControl":"opus_zNi12Z_compactControl","labelFlagged":"opus_zNi12Z_labelFlagged","errorFlagged":"opus_zNi12Z_errorFlagged","required":"opus_zNi12Z_required","label":"opus_zNi12Z_label","flaggedStart":"opus_zNi12Z_flaggedStart","labelLeft":"opus_zNi12Z_labelLeft","control":"opus_zNi12Z_control","flaggedCenter":"opus_zNi12Z_flaggedCenter","error":"opus_zNi12Z_error","visuallyHidden":"opus_zNi12Z_visuallyHidden","fitContent":"opus_zNi12Z_fitContent","controlFlagged":"opus_zNi12Z_controlFlagged"};
632
632
 
633
633
  // ../../components/fields/FieldShell/FieldShell.tsx
634
634
  import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
@@ -753,7 +753,7 @@ function FieldShell({
753
753
  }
754
754
 
755
755
  // ../../components/fields/CheckboxField/CheckboxField.module.css
756
- var CheckboxField_default = {"shell":"opus_g-5tlR_shell","round":"opus_g-5tlR_round","error":"opus_g-5tlR_error","toggle":"opus_g-5tlR_toggle","nativeInput":"opus_g-5tlR_nativeInput","visual":"opus_g-5tlR_visual","square":"opus_g-5tlR_square"};
756
+ var CheckboxField_default = {"round":"opus_g-5tlR_round","shell":"opus_g-5tlR_shell","square":"opus_g-5tlR_square","nativeInput":"opus_g-5tlR_nativeInput","error":"opus_g-5tlR_error","toggle":"opus_g-5tlR_toggle","visual":"opus_g-5tlR_visual"};
757
757
 
758
758
  // ../../components/fields/CheckboxField/CheckboxField.tsx
759
759
  import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
@@ -810,7 +810,7 @@ function CheckboxField({
810
810
  }
811
811
 
812
812
  // ../../components/fields/ColorField/ColorField.module.css
813
- var ColorField_default = {"picker":"opus_Z7jeX4_picker","swatch":"opus_Z7jeX4_swatch","value":"opus_Z7jeX4_value","nativeInput":"opus_Z7jeX4_nativeInput","error":"opus_Z7jeX4_error","icon":"opus_Z7jeX4_icon"};
813
+ var ColorField_default = {"picker":"opus_Z7jeX4_picker","swatch":"opus_Z7jeX4_swatch","nativeInput":"opus_Z7jeX4_nativeInput","value":"opus_Z7jeX4_value","icon":"opus_Z7jeX4_icon","error":"opus_Z7jeX4_error"};
814
814
 
815
815
  // ../../components/fields/ColorField/ColorField.tsx
816
816
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
@@ -860,7 +860,7 @@ function ColorField({
860
860
  }
861
861
 
862
862
  // ../../components/fields/DateField/DateField.module.css
863
- var DateField_default = {"error":"opus_G3y11z_error","input":"opus_G3y11z_input"};
863
+ var DateField_default = {"input":"opus_G3y11z_input","error":"opus_G3y11z_error"};
864
864
 
865
865
  // ../../components/fields/DateField/DateField.tsx
866
866
  import { jsx as jsx6 } from "react/jsx-runtime";
@@ -951,7 +951,7 @@ function HiddenField({
951
951
  }
952
952
 
953
953
  // ../../components/fields/FileField/FileField.module.css
954
- var FileField_default = {"drop":"opus_aOsPA7_drop","dropError":"opus_aOsPA7_dropError","title":"opus_aOsPA7_title","action":"opus_aOsPA7_action","iconSvg":"opus_aOsPA7_iconSvg","input":"opus_aOsPA7_input","icon":"opus_aOsPA7_icon","hint":"opus_aOsPA7_hint","footnote":"opus_aOsPA7_footnote","content":"opus_aOsPA7_content","wrapper":"opus_aOsPA7_wrapper","dragging":"opus_aOsPA7_dragging"};
954
+ var FileField_default = {"icon":"opus_aOsPA7_icon","footnote":"opus_aOsPA7_footnote","content":"opus_aOsPA7_content","dragging":"opus_aOsPA7_dragging","iconSvg":"opus_aOsPA7_iconSvg","action":"opus_aOsPA7_action","input":"opus_aOsPA7_input","dropError":"opus_aOsPA7_dropError","drop":"opus_aOsPA7_drop","wrapper":"opus_aOsPA7_wrapper","title":"opus_aOsPA7_title","hint":"opus_aOsPA7_hint"};
955
955
 
956
956
  // ../../components/fields/FileField/FileField.tsx
957
957
  import {
@@ -1259,7 +1259,7 @@ function NumberField({
1259
1259
  import { createContext as createContext2, useContext as useContext2, useId as useId2 } from "react";
1260
1260
 
1261
1261
  // ../../components/fields/RadioGroup/RadioGroup.module.css
1262
- var RadioGroup_default = {"visual":"opus_O-1nor_visual","choice":"opus_O-1nor_choice","round":"opus_O-1nor_round","shell":"opus_O-1nor_shell","options":"opus_O-1nor_options","nativeInput":"opus_O-1nor_nativeInput","square":"opus_O-1nor_square","error":"opus_O-1nor_error","option":"opus_O-1nor_option"};
1262
+ var RadioGroup_default = {"choice":"opus_O-1nor_choice","square":"opus_O-1nor_square","option":"opus_O-1nor_option","options":"opus_O-1nor_options","nativeInput":"opus_O-1nor_nativeInput","error":"opus_O-1nor_error","round":"opus_O-1nor_round","visual":"opus_O-1nor_visual","shell":"opus_O-1nor_shell"};
1263
1263
 
1264
1264
  // ../../components/fields/RadioGroup/RadioGroup.tsx
1265
1265
  import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
@@ -1356,7 +1356,7 @@ function Radio({ children, error, name, shape, value, defaultChecked }) {
1356
1356
  import { useId as useId3, useRef as useRef3, useState as useState4 } from "react";
1357
1357
 
1358
1358
  // ../../components/fields/ChipInputField/ChipInputField.module.css
1359
- var ChipInputField_default = {"remove":"opus_IOOYwh_remove","error":"opus_IOOYwh_error","readOnly":"opus_IOOYwh_readOnly","chipLabel":"opus_IOOYwh_chipLabel","shell":"opus_IOOYwh_shell","input":"opus_IOOYwh_input","disabled":"opus_IOOYwh_disabled","field":"opus_IOOYwh_field","chip":"opus_IOOYwh_chip"};
1359
+ var ChipInputField_default = {"remove":"opus_IOOYwh_remove","field":"opus_IOOYwh_field","shell":"opus_IOOYwh_shell","error":"opus_IOOYwh_error","input":"opus_IOOYwh_input","readOnly":"opus_IOOYwh_readOnly","chipLabel":"opus_IOOYwh_chipLabel","disabled":"opus_IOOYwh_disabled","chip":"opus_IOOYwh_chip"};
1360
1360
 
1361
1361
  // ../../components/fields/ChipInputField/ChipInputField.tsx
1362
1362
  import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
@@ -1492,7 +1492,7 @@ function ChipInput({
1492
1492
  var ChipInputField = ChipInput;
1493
1493
 
1494
1494
  // ../../components/fields/RangeField/RangeField.module.css
1495
- var RangeField_default = {"error":"opus_iRHQuG_error","footer":"opus_iRHQuG_footer","value":"opus_iRHQuG_value","topRow":"opus_iRHQuG_topRow","fieldLabel":"opus_iRHQuG_fieldLabel","slider":"opus_iRHQuG_slider","wrap":"opus_iRHQuG_wrap"};
1495
+ var RangeField_default = {"value":"opus_iRHQuG_value","slider":"opus_iRHQuG_slider","error":"opus_iRHQuG_error","fieldLabel":"opus_iRHQuG_fieldLabel","topRow":"opus_iRHQuG_topRow","wrap":"opus_iRHQuG_wrap","footer":"opus_iRHQuG_footer"};
1496
1496
 
1497
1497
  // ../../components/fields/RangeField/RangeField.tsx
1498
1498
  import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
@@ -1664,7 +1664,7 @@ function SwitchField({
1664
1664
  import { useId as useId4 } from "react";
1665
1665
 
1666
1666
  // ../../components/fields/TextAreaField/TextAreaField.module.css
1667
- var TextAreaField_default = {"footer":"opus_FjhWmh_footer","withCount":"opus_FjhWmh_withCount","error":"opus_FjhWmh_error","field":"opus_FjhWmh_field","footerError":"opus_FjhWmh_footerError","inlineCount":"opus_FjhWmh_inlineCount","externalCount":"opus_FjhWmh_externalCount","textarea":"opus_FjhWmh_textarea","inputWrap":"opus_FjhWmh_inputWrap"};
1667
+ var TextAreaField_default = {"externalCount":"opus_FjhWmh_externalCount","inlineCount":"opus_FjhWmh_inlineCount","field":"opus_FjhWmh_field","withCount":"opus_FjhWmh_withCount","footer":"opus_FjhWmh_footer","inputWrap":"opus_FjhWmh_inputWrap","footerError":"opus_FjhWmh_footerError","textarea":"opus_FjhWmh_textarea","error":"opus_FjhWmh_error"};
1668
1668
 
1669
1669
  // ../../components/fields/TextAreaField/TextAreaField.tsx
1670
1670
  import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
@@ -1774,7 +1774,7 @@ import {
1774
1774
  } from "@fortawesome/free-solid-svg-icons";
1775
1775
 
1776
1776
  // ../../components/fields/RichTextField/RichTextField.module.css
1777
- var RichTextField_default = {"modalActions":"opus_6HFqZH_modalActions","blockSelect":"opus_6HFqZH_blockSelect","field":"opus_6HFqZH_field","toolbarButton":"opus_6HFqZH_toolbarButton","modal":"opus_6HFqZH_modal","modalNumber":"opus_6HFqZH_modalNumber","toolbarIcon":"opus_6HFqZH_toolbarIcon","modalDimensionField":"opus_6HFqZH_modalDimensionField","modalTitle":"opus_6HFqZH_modalTitle","colorSwatch":"opus_6HFqZH_colorSwatch","modalOverlay":"opus_6HFqZH_modalOverlay","toolbarButtonActive":"opus_6HFqZH_toolbarButtonActive","readOnly":"opus_6HFqZH_readOnly","editorShell":"opus_6HFqZH_editorShell","editor":"opus_6HFqZH_editor","colorInput":"opus_6HFqZH_colorInput","toolbar":"opus_6HFqZH_toolbar","modalDimensions":"opus_6HFqZH_modalDimensions","modalConfirm":"opus_6HFqZH_modalConfirm","modalField":"opus_6HFqZH_modalField","modalTimes":"opus_6HFqZH_modalTimes","divider":"opus_6HFqZH_divider","modalCancel":"opus_6HFqZH_modalCancel","error":"opus_6HFqZH_error","modalLabel":"opus_6HFqZH_modalLabel","modalInput":"opus_6HFqZH_modalInput"};
1777
+ var RichTextField_default = {"modalActions":"opus_6HFqZH_modalActions","modalCancel":"opus_6HFqZH_modalCancel","modalConfirm":"opus_6HFqZH_modalConfirm","field":"opus_6HFqZH_field","readOnly":"opus_6HFqZH_readOnly","modalOverlay":"opus_6HFqZH_modalOverlay","editor":"opus_6HFqZH_editor","modalDimensionField":"opus_6HFqZH_modalDimensionField","divider":"opus_6HFqZH_divider","modalField":"opus_6HFqZH_modalField","toolbarButton":"opus_6HFqZH_toolbarButton","toolbar":"opus_6HFqZH_toolbar","blockSelect":"opus_6HFqZH_blockSelect","modalTitle":"opus_6HFqZH_modalTitle","modalLabel":"opus_6HFqZH_modalLabel","modalInput":"opus_6HFqZH_modalInput","modalDimensions":"opus_6HFqZH_modalDimensions","modalTimes":"opus_6HFqZH_modalTimes","error":"opus_6HFqZH_error","colorInput":"opus_6HFqZH_colorInput","modal":"opus_6HFqZH_modal","editorShell":"opus_6HFqZH_editorShell","toolbarIcon":"opus_6HFqZH_toolbarIcon","toolbarButtonActive":"opus_6HFqZH_toolbarButtonActive","colorSwatch":"opus_6HFqZH_colorSwatch","modalNumber":"opus_6HFqZH_modalNumber"};
1778
1778
 
1779
1779
  // ../../components/fields/RichTextField/RichTextField.tsx
1780
1780
  import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
@@ -2422,7 +2422,7 @@ import { useState as useState6 } from "react";
2422
2422
  var TextField_default = {"input":"opus_SOck2f_input","error":"opus_SOck2f_error"};
2423
2423
 
2424
2424
  // ../../components/fields/shared/fieldControl.module.css
2425
- var fieldControl_default = {"trigger":"opus_1Q5xBh_trigger","input":"opus_1Q5xBh_input","error":"opus_1Q5xBh_error","placeholder":"opus_1Q5xBh_placeholder","passwordToggle":"opus_1Q5xBh_passwordToggle","groupLabel":"opus_1Q5xBh_groupLabel","passwordInput":"opus_1Q5xBh_passwordInput","panel":"opus_1Q5xBh_panel","panelFooter":"opus_1Q5xBh_panelFooter","search":"opus_1Q5xBh_search","passwordToggleSlot":"opus_1Q5xBh_passwordToggleSlot","actionButtonPrimary":"opus_1Q5xBh_actionButtonPrimary","option":"opus_1Q5xBh_option","list":"opus_1Q5xBh_list","chevron":"opus_1Q5xBh_chevron","passwordWrap":"opus_1Q5xBh_passwordWrap","triggerOpen":"opus_1Q5xBh_triggerOpen","actionButton":"opus_1Q5xBh_actionButton","triggerError":"opus_1Q5xBh_triggerError"};
2425
+ var fieldControl_default = {"actionButtonPrimary":"opus_1Q5xBh_actionButtonPrimary","actionButton":"opus_1Q5xBh_actionButton","passwordWrap":"opus_1Q5xBh_passwordWrap","passwordToggle":"opus_1Q5xBh_passwordToggle","triggerOpen":"opus_1Q5xBh_triggerOpen","triggerError":"opus_1Q5xBh_triggerError","passwordInput":"opus_1Q5xBh_passwordInput","trigger":"opus_1Q5xBh_trigger","groupLabel":"opus_1Q5xBh_groupLabel","option":"opus_1Q5xBh_option","panelFooter":"opus_1Q5xBh_panelFooter","passwordToggleSlot":"opus_1Q5xBh_passwordToggleSlot","chevron":"opus_1Q5xBh_chevron","search":"opus_1Q5xBh_search","list":"opus_1Q5xBh_list","input":"opus_1Q5xBh_input","panel":"opus_1Q5xBh_panel","error":"opus_1Q5xBh_error","placeholder":"opus_1Q5xBh_placeholder"};
2426
2426
 
2427
2427
  // ../../components/fields/shared/PasswordToggle.tsx
2428
2428
  import { FontAwesomeIcon as FontAwesomeIcon2 } from "@fortawesome/react-fontawesome";
@@ -2505,12 +2505,13 @@ import { FontAwesomeIcon as FontAwesomeIcon3 } from "@fortawesome/react-fontawes
2505
2505
  import { faMoon, faSun } from "@fortawesome/free-solid-svg-icons";
2506
2506
 
2507
2507
  // ../../components/fields/ThemeToggleField/ThemeToggleField.module.css
2508
- var ThemeToggleField_default = {"toggle":"opus_SwerMA_toggle","indicator":"opus_SwerMA_indicator","active":"opus_SwerMA_active","option":"opus_SwerMA_option"};
2508
+ var ThemeToggleField_default = {"toggle":"opus_SwerMA_toggle","indicator":"opus_SwerMA_indicator","option":"opus_SwerMA_option","active":"opus_SwerMA_active"};
2509
2509
 
2510
2510
  // ../../components/fields/ThemeToggleField/ThemeToggleField.tsx
2511
2511
  import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
2512
2512
  function ThemeToggleField({
2513
2513
  className,
2514
+ help,
2514
2515
  id,
2515
2516
  label = "Theme",
2516
2517
  labelPosition = "left",
@@ -2525,6 +2526,7 @@ function ThemeToggleField({
2525
2526
  className,
2526
2527
  fitContent: true,
2527
2528
  flaggedAlign: "center",
2529
+ help,
2528
2530
  id,
2529
2531
  label,
2530
2532
  labelPosition,
@@ -2836,7 +2838,7 @@ function MultiSelectField({
2836
2838
  import { useState as useState9 } from "react";
2837
2839
 
2838
2840
  // ../../components/fields/TransferListField/TransferListField.module.css
2839
- var TransferListField_default = {"column":"opus_NPBFZk_column","controlButton":"opus_NPBFZk_controlButton","item":"opus_NPBFZk_item","root":"opus_NPBFZk_root","columnHeader":"opus_NPBFZk_columnHeader","controls":"opus_NPBFZk_controls","itemActive":"opus_NPBFZk_itemActive","list":"opus_NPBFZk_list"};
2841
+ var TransferListField_default = {"list":"opus_NPBFZk_list","controls":"opus_NPBFZk_controls","root":"opus_NPBFZk_root","column":"opus_NPBFZk_column","columnHeader":"opus_NPBFZk_columnHeader","controlButton":"opus_NPBFZk_controlButton","itemActive":"opus_NPBFZk_itemActive","item":"opus_NPBFZk_item"};
2840
2842
 
2841
2843
  // ../../components/fields/TransferListField/TransferListField.tsx
2842
2844
  import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
@@ -2956,7 +2958,7 @@ import { FontAwesomeIcon as FontAwesomeIcon4 } from "@fortawesome/react-fontawes
2956
2958
  import { faCheck, faXmark } from "@fortawesome/free-solid-svg-icons";
2957
2959
 
2958
2960
  // ../../components/fields/PasswordStrengthField/PasswordStrengthField.module.css
2959
- var PasswordStrengthField_default = {"meterTrack":"opus_S1A372_meterTrack","meterWrap":"opus_S1A372_meterWrap","meterLabel":"opus_S1A372_meterLabel","meterFill":"opus_S1A372_meterFill","root":"opus_S1A372_root","requirementIcon":"opus_S1A372_requirementIcon","requirements":"opus_S1A372_requirements","requirementMet":"opus_S1A372_requirementMet","requirement":"opus_S1A372_requirement"};
2961
+ var PasswordStrengthField_default = {"meterLabel":"opus_S1A372_meterLabel","meterWrap":"opus_S1A372_meterWrap","meterFill":"opus_S1A372_meterFill","requirementIcon":"opus_S1A372_requirementIcon","root":"opus_S1A372_root","requirements":"opus_S1A372_requirements","requirement":"opus_S1A372_requirement","requirementMet":"opus_S1A372_requirementMet","meterTrack":"opus_S1A372_meterTrack"};
2960
2962
 
2961
2963
  // ../../components/fields/PasswordStrengthField/PasswordStrengthField.tsx
2962
2964
  import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
@@ -3064,7 +3066,7 @@ function PasswordStrengthField({
3064
3066
  }
3065
3067
 
3066
3068
  // ../../components/fields/RatingField/RatingField.module.css
3067
- var RatingField_default = {"numericActive":"opus_0tdNUz_numericActive","root":"opus_0tdNUz_root","symbolActive":"opus_0tdNUz_symbolActive","symbol":"opus_0tdNUz_symbol","numeric":"opus_0tdNUz_numeric"};
3069
+ var RatingField_default = {"numeric":"opus_0tdNUz_numeric","symbol":"opus_0tdNUz_symbol","symbolActive":"opus_0tdNUz_symbolActive","root":"opus_0tdNUz_root","numericActive":"opus_0tdNUz_numericActive"};
3068
3070
 
3069
3071
  // ../../components/fields/RatingField/RatingField.tsx
3070
3072
  import { jsx as jsx24 } from "react/jsx-runtime";
@@ -3139,7 +3141,7 @@ function RatingField({
3139
3141
  }
3140
3142
 
3141
3143
  // ../../components/fields/SegmentedControlField/SegmentedControlField.module.css
3142
- var SegmentedControlField_default = {"root":"opus_ZHwfiN_root","segmentActive":"opus_ZHwfiN_segmentActive","segment":"opus_ZHwfiN_segment"};
3144
+ var SegmentedControlField_default = {"segment":"opus_ZHwfiN_segment","root":"opus_ZHwfiN_root","segmentActive":"opus_ZHwfiN_segmentActive"};
3143
3145
 
3144
3146
  // ../../components/fields/SegmentedControlField/SegmentedControlField.tsx
3145
3147
  import { jsx as jsx25 } from "react/jsx-runtime";
@@ -3194,7 +3196,7 @@ function SegmentedControlField({
3194
3196
  import { useMemo as useMemo5 } from "react";
3195
3197
 
3196
3198
  // ../../components/fields/SliderRangeField/SliderRangeField.module.css
3197
- var SliderRangeField_default = {"header":"opus_k3d0sS_header","value":"opus_k3d0sS_value","track":"opus_k3d0sS_track","root":"opus_k3d0sS_root","trackWrap":"opus_k3d0sS_trackWrap","footer":"opus_k3d0sS_footer","slider":"opus_k3d0sS_slider"};
3199
+ var SliderRangeField_default = {"root":"opus_k3d0sS_root","slider":"opus_k3d0sS_slider","track":"opus_k3d0sS_track","header":"opus_k3d0sS_header","value":"opus_k3d0sS_value","trackWrap":"opus_k3d0sS_trackWrap","footer":"opus_k3d0sS_footer"};
3198
3200
 
3199
3201
  // ../../components/fields/SliderRangeField/SliderRangeField.tsx
3200
3202
  import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
@@ -3291,7 +3293,7 @@ function SliderRangeField({
3291
3293
  import { useEffect as useEffect6, useMemo as useMemo6, useRef as useRef7, useState as useState11 } from "react";
3292
3294
 
3293
3295
  // ../../components/fields/PhoneNumberField/PhoneNumberField.module.css
3294
- var PhoneNumberField_default = {"empty":"opus_WC4gnN_empty","optionActive":"opus_WC4gnN_optionActive","countryWrap":"opus_WC4gnN_countryWrap","root":"opus_WC4gnN_root","country":"opus_WC4gnN_country","option":"opus_WC4gnN_option","panel":"opus_WC4gnN_panel","code":"opus_WC4gnN_code","optionLabel":"opus_WC4gnN_optionLabel","dial":"opus_WC4gnN_dial","flag":"opus_WC4gnN_flag","chevron":"opus_WC4gnN_chevron","countryValue":"opus_WC4gnN_countryValue","optionDial":"opus_WC4gnN_optionDial"};
3296
+ var PhoneNumberField_default = {"root":"opus_WC4gnN_root","countryValue":"opus_WC4gnN_countryValue","panel":"opus_WC4gnN_panel","code":"opus_WC4gnN_code","optionActive":"opus_WC4gnN_optionActive","flag":"opus_WC4gnN_flag","option":"opus_WC4gnN_option","optionLabel":"opus_WC4gnN_optionLabel","optionDial":"opus_WC4gnN_optionDial","chevron":"opus_WC4gnN_chevron","countryWrap":"opus_WC4gnN_countryWrap","country":"opus_WC4gnN_country","dial":"opus_WC4gnN_dial","empty":"opus_WC4gnN_empty"};
3295
3297
 
3296
3298
  // ../../components/fields/PhoneNumberField/countries.ts
3297
3299
  function countryCodeToFlag(code) {
@@ -3694,7 +3696,7 @@ function PhoneNumberField({
3694
3696
  import { useEffect as useEffect7, useMemo as useMemo7, useRef as useRef8, useState as useState12 } from "react";
3695
3697
 
3696
3698
  // ../../components/fields/CountryPickerField/CountryPickerField.module.css
3697
- var CountryPickerField_default = {"triggerValue":"opus_O7qqfR_triggerValue","optionCode":"opus_O7qqfR_optionCode","root":"opus_O7qqfR_root","empty":"opus_O7qqfR_empty","option":"opus_O7qqfR_option","optionActive":"opus_O7qqfR_optionActive","optionLabel":"opus_O7qqfR_optionLabel","flag":"opus_O7qqfR_flag"};
3699
+ var CountryPickerField_default = {"triggerValue":"opus_O7qqfR_triggerValue","root":"opus_O7qqfR_root","flag":"opus_O7qqfR_flag","optionActive":"opus_O7qqfR_optionActive","optionLabel":"opus_O7qqfR_optionLabel","empty":"opus_O7qqfR_empty","optionCode":"opus_O7qqfR_optionCode","option":"opus_O7qqfR_option"};
3698
3700
 
3699
3701
  // ../../components/fields/CountryPickerField/CountryPickerField.tsx
3700
3702
  import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
@@ -3850,7 +3852,7 @@ function CountryPickerField({
3850
3852
  import { useEffect as useEffect8, useMemo as useMemo8, useRef as useRef9, useState as useState13 } from "react";
3851
3853
 
3852
3854
  // ../../components/fields/TreeSelectField/TreeSelectField.module.css
3853
- var TreeSelectField_default = {"root":"opus_Mq6C00_root","treeOption":"opus_Mq6C00_treeOption","treeOptionActive":"opus_Mq6C00_treeOptionActive"};
3855
+ var TreeSelectField_default = {"treeOptionActive":"opus_Mq6C00_treeOptionActive","treeOption":"opus_Mq6C00_treeOption","root":"opus_Mq6C00_root"};
3854
3856
 
3855
3857
  // ../../components/fields/TreeSelectField/TreeSelectField.tsx
3856
3858
  import { Fragment as Fragment3, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
@@ -3979,7 +3981,7 @@ function TreeSelectField({
3979
3981
  import { useEffect as useEffect9, useMemo as useMemo9, useRef as useRef10, useState as useState14 } from "react";
3980
3982
 
3981
3983
  // ../../components/fields/CascaderField/CascaderField.module.css
3982
- var CascaderField_default = {"root":"opus_1Fg59A_root","option":"opus_1Fg59A_option","optionActive":"opus_1Fg59A_optionActive","column":"opus_1Fg59A_column","panel":"opus_1Fg59A_panel"};
3984
+ var CascaderField_default = {"option":"opus_1Fg59A_option","root":"opus_1Fg59A_root","panel":"opus_1Fg59A_panel","optionActive":"opus_1Fg59A_optionActive","column":"opus_1Fg59A_column"};
3983
3985
 
3984
3986
  // ../../components/fields/CascaderField/CascaderField.tsx
3985
3987
  import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
@@ -4182,7 +4184,7 @@ function OpusThemeProvider({
4182
4184
  }
4183
4185
 
4184
4186
  // ../../components/Alert/Alert.module.css
4185
- var Alert_default = {"alert":"opus_eh3eeT_alert","icon":"opus_eh3eeT_icon","iconSvg":"opus_eh3eeT_iconSvg","title":"opus_eh3eeT_title","dismissIcon":"opus_eh3eeT_dismissIcon","iconMark":"opus_eh3eeT_iconMark","iconFlagged":"opus_eh3eeT_iconFlagged","dismiss":"opus_eh3eeT_dismiss","content":"opus_eh3eeT_content","description":"opus_eh3eeT_description"};
4187
+ var Alert_default = {"icon":"opus_eh3eeT_icon","dismiss":"opus_eh3eeT_dismiss","dismissIcon":"opus_eh3eeT_dismissIcon","content":"opus_eh3eeT_content","iconMark":"opus_eh3eeT_iconMark","title":"opus_eh3eeT_title","description":"opus_eh3eeT_description","alert":"opus_eh3eeT_alert","iconSvg":"opus_eh3eeT_iconSvg","iconFlagged":"opus_eh3eeT_iconFlagged"};
4186
4188
 
4187
4189
  // ../../components/Alert/Alert.tsx
4188
4190
  import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
@@ -4331,7 +4333,7 @@ function useOverlayAccessibility(active, containerRef, {
4331
4333
  }
4332
4334
 
4333
4335
  // ../../components/Dialog/Dialog.module.css
4334
- var Dialog_default = {"backdrop":"opus_sz-ZGI_backdrop","backdropIn":"opus_sz-ZGI_backdropIn","backdropOut":"opus_sz-ZGI_backdropOut","dialogIn":"opus_sz-ZGI_dialogIn","dialogOut":"opus_sz-ZGI_dialogOut","visuallyHidden":"opus_sz-ZGI_visuallyHidden","content":"opus_sz-ZGI_content","dialog":"opus_sz-ZGI_dialog","icon":"opus_sz-ZGI_icon","actions":"opus_sz-ZGI_actions","iconSvg":"opus_sz-ZGI_iconSvg","description":"opus_sz-ZGI_description","title":"opus_sz-ZGI_title","iconMark":"opus_sz-ZGI_iconMark","body":"opus_sz-ZGI_body"};
4336
+ var Dialog_default = {"backdrop":"opus_sz-ZGI_backdrop","visuallyHidden":"opus_sz-ZGI_visuallyHidden","backdropIn":"opus_sz-ZGI_backdropIn","dialogOut":"opus_sz-ZGI_dialogOut","dialogIn":"opus_sz-ZGI_dialogIn","body":"opus_sz-ZGI_body","iconMark":"opus_sz-ZGI_iconMark","content":"opus_sz-ZGI_content","dialog":"opus_sz-ZGI_dialog","iconSvg":"opus_sz-ZGI_iconSvg","actions":"opus_sz-ZGI_actions","backdropOut":"opus_sz-ZGI_backdropOut","title":"opus_sz-ZGI_title","description":"opus_sz-ZGI_description","icon":"opus_sz-ZGI_icon"};
4335
4337
 
4336
4338
  // ../../components/Dialog/Dialog.tsx
4337
4339
  import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
@@ -4462,7 +4464,7 @@ function Dialog({
4462
4464
  import { useEffect as useEffect13, useId as useId6, useRef as useRef13, useState as useState16 } from "react";
4463
4465
 
4464
4466
  // ../../components/Modal/Modal.module.css
4465
- var Modal_default = {"modal":"opus_LQbzGS_modal","header":"opus_LQbzGS_header","title":"opus_LQbzGS_title","close":"opus_LQbzGS_close","closeIcon":"opus_LQbzGS_closeIcon","body":"opus_LQbzGS_body","footer":"opus_LQbzGS_footer","footerContent":"opus_LQbzGS_footerContent","actions":"opus_LQbzGS_actions","heading":"opus_LQbzGS_heading","modalBackdropIn":"opus_LQbzGS_modalBackdropIn","description":"opus_LQbzGS_description","modalPanelOut":"opus_LQbzGS_modalPanelOut","modalBackdropOut":"opus_LQbzGS_modalBackdropOut","backdrop":"opus_LQbzGS_backdrop","modalPanelIn":"opus_LQbzGS_modalPanelIn"};
4467
+ var Modal_default = {"backdrop":"opus_LQbzGS_backdrop","footer":"opus_LQbzGS_footer","close":"opus_LQbzGS_close","modalBackdropIn":"opus_LQbzGS_modalBackdropIn","header":"opus_LQbzGS_header","modalPanelOut":"opus_LQbzGS_modalPanelOut","actions":"opus_LQbzGS_actions","body":"opus_LQbzGS_body","footerContent":"opus_LQbzGS_footerContent","closeIcon":"opus_LQbzGS_closeIcon","title":"opus_LQbzGS_title","modalPanelIn":"opus_LQbzGS_modalPanelIn","modalBackdropOut":"opus_LQbzGS_modalBackdropOut","modal":"opus_LQbzGS_modal","heading":"opus_LQbzGS_heading","description":"opus_LQbzGS_description"};
4466
4468
 
4467
4469
  // ../../components/Modal/Modal.tsx
4468
4470
  import { Fragment as Fragment4, jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
@@ -4593,7 +4595,7 @@ function ModalDefaultActions({ onClose }) {
4593
4595
  import { useEffect as useEffect14, useId as useId7, useRef as useRef14, useState as useState17 } from "react";
4594
4596
 
4595
4597
  // ../../components/Drawer/Drawer.module.css
4596
- var Drawer_default = {"header":"opus_0CaGbZ_header","close":"opus_0CaGbZ_close","actions":"opus_0CaGbZ_actions","backdrop":"opus_0CaGbZ_backdrop","description":"opus_0CaGbZ_description","drawerOutBottom":"opus_0CaGbZ_drawerOutBottom","heading":"opus_0CaGbZ_heading","drawerBackdropIn":"opus_0CaGbZ_drawerBackdropIn","drawerInLeft":"opus_0CaGbZ_drawerInLeft","title":"opus_0CaGbZ_title","drawerOutLeft":"opus_0CaGbZ_drawerOutLeft","drawerInTop":"opus_0CaGbZ_drawerInTop","footer":"opus_0CaGbZ_footer","drawerOutTop":"opus_0CaGbZ_drawerOutTop","drawerInRight":"opus_0CaGbZ_drawerInRight","drawerBackdropOut":"opus_0CaGbZ_drawerBackdropOut","drawerOutRight":"opus_0CaGbZ_drawerOutRight","closeIcon":"opus_0CaGbZ_closeIcon","body":"opus_0CaGbZ_body","footerContent":"opus_0CaGbZ_footerContent","drawer":"opus_0CaGbZ_drawer","drawerInBottom":"opus_0CaGbZ_drawerInBottom"};
4598
+ var Drawer_default = {"drawerOutTop":"opus_0CaGbZ_drawerOutTop","footer":"opus_0CaGbZ_footer","drawerOutRight":"opus_0CaGbZ_drawerOutRight","backdrop":"opus_0CaGbZ_backdrop","drawer":"opus_0CaGbZ_drawer","title":"opus_0CaGbZ_title","drawerInRight":"opus_0CaGbZ_drawerInRight","description":"opus_0CaGbZ_description","heading":"opus_0CaGbZ_heading","drawerBackdropIn":"opus_0CaGbZ_drawerBackdropIn","drawerOutBottom":"opus_0CaGbZ_drawerOutBottom","closeIcon":"opus_0CaGbZ_closeIcon","actions":"opus_0CaGbZ_actions","drawerInLeft":"opus_0CaGbZ_drawerInLeft","drawerOutLeft":"opus_0CaGbZ_drawerOutLeft","body":"opus_0CaGbZ_body","header":"opus_0CaGbZ_header","close":"opus_0CaGbZ_close","drawerInBottom":"opus_0CaGbZ_drawerInBottom","footerContent":"opus_0CaGbZ_footerContent","drawerBackdropOut":"opus_0CaGbZ_drawerBackdropOut","drawerInTop":"opus_0CaGbZ_drawerInTop"};
4597
4599
 
4598
4600
  // ../../components/Drawer/Drawer.tsx
4599
4601
  import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
@@ -4733,7 +4735,7 @@ import {
4733
4735
  } from "react";
4734
4736
 
4735
4737
  // ../../components/Popover/Popover.module.css
4736
- var Popover_default = {"content":"opus_yq4OU0_content","title":"opus_yq4OU0_title","arrow":"opus_yq4OU0_arrow","panel":"opus_yq4OU0_panel","root":"opus_yq4OU0_root","popoverIn":"opus_yq4OU0_popoverIn"};
4738
+ var Popover_default = {"popoverIn":"opus_yq4OU0_popoverIn","panel":"opus_yq4OU0_panel","title":"opus_yq4OU0_title","content":"opus_yq4OU0_content","root":"opus_yq4OU0_root","arrow":"opus_yq4OU0_arrow"};
4737
4739
 
4738
4740
  // ../../components/Popover/Popover.tsx
4739
4741
  import { jsx as jsx37, jsxs as jsxs28 } from "react/jsx-runtime";
@@ -4900,7 +4902,7 @@ function resolveMegaMenuPortalStyle(root, inTopNavigation) {
4900
4902
  }
4901
4903
 
4902
4904
  // ../../components/MegaMenu/MegaMenu.module.css
4903
- var MegaMenu_default = {"megaMenuIn":"opus_Y_ikQV_megaMenuIn","itemCopy":"opus_Y_ikQV_itemCopy","menuBar":"opus_Y_ikQV_menuBar","trigger":"opus_Y_ikQV_trigger","featured":"opus_Y_ikQV_featured","panelContent":"opus_Y_ikQV_panelContent","item":"opus_Y_ikQV_item","items":"opus_Y_ikQV_items","section":"opus_Y_ikQV_section","root":"opus_Y_ikQV_root","featuredAction":"opus_Y_ikQV_featuredAction","itemIcon":"opus_Y_ikQV_itemIcon","panel":"opus_Y_ikQV_panel","eyebrow":"opus_Y_ikQV_eyebrow","megaMenuOut":"opus_Y_ikQV_megaMenuOut","sections":"opus_Y_ikQV_sections"};
4905
+ var MegaMenu_default = {"megaMenuOut":"opus_Y_ikQV_megaMenuOut","root":"opus_Y_ikQV_root","panelContent":"opus_Y_ikQV_panelContent","items":"opus_Y_ikQV_items","panel":"opus_Y_ikQV_panel","eyebrow":"opus_Y_ikQV_eyebrow","sections":"opus_Y_ikQV_sections","featuredAction":"opus_Y_ikQV_featuredAction","megaMenuIn":"opus_Y_ikQV_megaMenuIn","featured":"opus_Y_ikQV_featured","section":"opus_Y_ikQV_section","item":"opus_Y_ikQV_item","itemIcon":"opus_Y_ikQV_itemIcon","trigger":"opus_Y_ikQV_trigger","menuBar":"opus_Y_ikQV_menuBar","itemCopy":"opus_Y_ikQV_itemCopy"};
4904
4906
 
4905
4907
  // ../../components/MegaMenu/MegaMenu.tsx
4906
4908
  import { jsx as jsx38, jsxs as jsxs29 } from "react/jsx-runtime";
@@ -5343,7 +5345,7 @@ function MegaMenu({
5343
5345
  }
5344
5346
 
5345
5347
  // ../../components/TopNavigation/TopNavigation.module.css
5346
- var TopNavigation_default = {"bar":"opus_OIomR6_bar","menuSlot":"opus_OIomR6_menuSlot","menuSlotMega":"opus_OIomR6_menuSlotMega","menuTrigger":"opus_OIomR6_menuTrigger","nav":"opus_OIomR6_nav"};
5348
+ var TopNavigation_default = {"nav":"opus_OIomR6_nav","menuSlotMega":"opus_OIomR6_menuSlotMega","menuSlot":"opus_OIomR6_menuSlot","menuTrigger":"opus_OIomR6_menuTrigger","bar":"opus_OIomR6_bar"};
5347
5349
 
5348
5350
  // ../../components/TopNavigation/TopNavigation.tsx
5349
5351
  import { Fragment as Fragment6, jsx as jsx39 } from "react/jsx-runtime";
@@ -5700,7 +5702,7 @@ function handleMenuKeyDown(event, menu, onEscape) {
5700
5702
  }
5701
5703
 
5702
5704
  // ../../components/DropdownMenu/DropdownMenu.module.css
5703
- var DropdownMenu_default = {"menu":"opus_UUVDVQ_menu","dropdownIn":"opus_UUVDVQ_dropdownIn","dropdownOut":"opus_UUVDVQ_dropdownOut","shortcut":"opus_UUVDVQ_shortcut","label":"opus_UUVDVQ_label","root":"opus_UUVDVQ_root","item":"opus_UUVDVQ_item","icon":"opus_UUVDVQ_icon"};
5705
+ var DropdownMenu_default = {"dropdownOut":"opus_UUVDVQ_dropdownOut","root":"opus_UUVDVQ_root","dropdownIn":"opus_UUVDVQ_dropdownIn","shortcut":"opus_UUVDVQ_shortcut","icon":"opus_UUVDVQ_icon","item":"opus_UUVDVQ_item","menu":"opus_UUVDVQ_menu","label":"opus_UUVDVQ_label"};
5704
5706
 
5705
5707
  // ../../components/DropdownMenu/DropdownMenu.tsx
5706
5708
  import { jsx as jsx40, jsxs as jsxs30 } from "react/jsx-runtime";
@@ -6040,7 +6042,7 @@ import {
6040
6042
  import { createPortal as createPortal4 } from "react-dom";
6041
6043
 
6042
6044
  // ../../components/ContextMenu/ContextMenu.module.css
6043
- var ContextMenu_default = {"target":"opus_nMhhae_target","contextMenuBackdropIn":"opus_nMhhae_contextMenuBackdropIn","contextMenuIn":"opus_nMhhae_contextMenuIn","menu":"opus_nMhhae_menu","layer":"opus_nMhhae_layer","backdrop":"opus_nMhhae_backdrop"};
6045
+ var ContextMenu_default = {"contextMenuBackdropIn":"opus_nMhhae_contextMenuBackdropIn","menu":"opus_nMhhae_menu","contextMenuIn":"opus_nMhhae_contextMenuIn","layer":"opus_nMhhae_layer","target":"opus_nMhhae_target","backdrop":"opus_nMhhae_backdrop"};
6044
6046
 
6045
6047
  // ../../components/ContextMenu/ContextMenuProvider.tsx
6046
6048
  import { jsx as jsx41, jsxs as jsxs31 } from "react/jsx-runtime";
@@ -6351,7 +6353,7 @@ import { faMagnifyingGlass } from "@fortawesome/free-solid-svg-icons";
6351
6353
  import { FontAwesomeIcon as FontAwesomeIcon5 } from "@fortawesome/react-fontawesome";
6352
6354
 
6353
6355
  // ../../components/CommandPalette/CommandPalette.module.css
6354
- var CommandPalette_default = {"results":"opus_k1ypuy_results","itemMain":"opus_k1ypuy_itemMain","shortcut":"opus_k1ypuy_shortcut","group":"opus_k1ypuy_group","backdrop":"opus_k1ypuy_backdrop","searchInput":"opus_k1ypuy_searchInput","item":"opus_k1ypuy_item","groupLabel":"opus_k1ypuy_groupLabel","commandPaletteBackdropIn":"opus_k1ypuy_commandPaletteBackdropIn","searchWrap":"opus_k1ypuy_searchWrap","searchIcon":"opus_k1ypuy_searchIcon","itemDescription":"opus_k1ypuy_itemDescription","empty":"opus_k1ypuy_empty","itemLabel":"opus_k1ypuy_itemLabel","visuallyHidden":"opus_k1ypuy_visuallyHidden","panel":"opus_k1ypuy_panel","commandPalettePanelOut":"opus_k1ypuy_commandPalettePanelOut","commandPalettePanelIn":"opus_k1ypuy_commandPalettePanelIn","footer":"opus_k1ypuy_footer","commandPaletteBackdropOut":"opus_k1ypuy_commandPaletteBackdropOut","searchIconSvg":"opus_k1ypuy_searchIconSvg"};
6356
+ var CommandPalette_default = {"searchIcon":"opus_k1ypuy_searchIcon","itemLabel":"opus_k1ypuy_itemLabel","searchInput":"opus_k1ypuy_searchInput","commandPalettePanelIn":"opus_k1ypuy_commandPalettePanelIn","footer":"opus_k1ypuy_footer","shortcut":"opus_k1ypuy_shortcut","commandPalettePanelOut":"opus_k1ypuy_commandPalettePanelOut","empty":"opus_k1ypuy_empty","commandPaletteBackdropOut":"opus_k1ypuy_commandPaletteBackdropOut","visuallyHidden":"opus_k1ypuy_visuallyHidden","itemDescription":"opus_k1ypuy_itemDescription","panel":"opus_k1ypuy_panel","itemMain":"opus_k1ypuy_itemMain","item":"opus_k1ypuy_item","backdrop":"opus_k1ypuy_backdrop","results":"opus_k1ypuy_results","group":"opus_k1ypuy_group","searchIconSvg":"opus_k1ypuy_searchIconSvg","groupLabel":"opus_k1ypuy_groupLabel","commandPaletteBackdropIn":"opus_k1ypuy_commandPaletteBackdropIn","searchWrap":"opus_k1ypuy_searchWrap"};
6355
6357
 
6356
6358
  // ../../components/CommandPalette/CommandPalette.tsx
6357
6359
  import { jsx as jsx42, jsxs as jsxs32 } from "react/jsx-runtime";
@@ -6691,7 +6693,7 @@ function AccordionGroup({
6691
6693
  }
6692
6694
 
6693
6695
  // ../../components/Accordion/Accordion.module.css
6694
- var Accordion_default = {"standalone":"opus_WNZQMV_standalone","content":"opus_WNZQMV_content","triggerLabel":"opus_WNZQMV_triggerLabel","panel":"opus_WNZQMV_panel","trigger":"opus_WNZQMV_trigger","chevron":"opus_WNZQMV_chevron","panelInner":"opus_WNZQMV_panelInner","item":"opus_WNZQMV_item"};
6696
+ var Accordion_default = {"content":"opus_WNZQMV_content","panelInner":"opus_WNZQMV_panelInner","standalone":"opus_WNZQMV_standalone","triggerLabel":"opus_WNZQMV_triggerLabel","panel":"opus_WNZQMV_panel","trigger":"opus_WNZQMV_trigger","chevron":"opus_WNZQMV_chevron","item":"opus_WNZQMV_item"};
6695
6697
 
6696
6698
  // ../../components/Accordion/Accordion.tsx
6697
6699
  import { jsx as jsx44, jsxs as jsxs33 } from "react/jsx-runtime";
@@ -6784,7 +6786,7 @@ import {
6784
6786
  } from "react";
6785
6787
 
6786
6788
  // ../../components/ShowMore/ShowMore.module.css
6787
- var ShowMore_default = {"toggleLabel":"opus_dSk-ve_toggleLabel","showMoreLabelIn":"opus_dSk-ve_showMoreLabelIn","chevron":"opus_dSk-ve_chevron","inner":"opus_dSk-ve_inner","contentShell":"opus_dSk-ve_contentShell","toggle":"opus_dSk-ve_toggle","root":"opus_dSk-ve_root"};
6789
+ var ShowMore_default = {"toggleLabel":"opus_dSk-ve_toggleLabel","chevron":"opus_dSk-ve_chevron","root":"opus_dSk-ve_root","toggle":"opus_dSk-ve_toggle","inner":"opus_dSk-ve_inner","contentShell":"opus_dSk-ve_contentShell","showMoreLabelIn":"opus_dSk-ve_showMoreLabelIn"};
6788
6790
 
6789
6791
  // ../../components/ShowMore/ShowMore.tsx
6790
6792
  import { jsx as jsx45, jsxs as jsxs34 } from "react/jsx-runtime";
@@ -6888,7 +6890,7 @@ function ShowMore({
6888
6890
  }
6889
6891
 
6890
6892
  // ../../components/Toast/Toast.module.css
6891
- var Toast_default = {"toastProgress":"opus_cklQPW_toastProgress","iconMark":"opus_cklQPW_iconMark","icon":"opus_cklQPW_icon","progressTrack":"opus_cklQPW_progressTrack","main":"opus_cklQPW_main","dismiss":"opus_cklQPW_dismiss","toast":"opus_cklQPW_toast","iconSvg":"opus_cklQPW_iconSvg","title":"opus_cklQPW_title","dismissIcon":"opus_cklQPW_dismissIcon","body":"opus_cklQPW_body","content":"opus_cklQPW_content","description":"opus_cklQPW_description","progressBar":"opus_cklQPW_progressBar"};
6893
+ var Toast_default = {"main":"opus_cklQPW_main","title":"opus_cklQPW_title","progressBar":"opus_cklQPW_progressBar","toastProgress":"opus_cklQPW_toastProgress","description":"opus_cklQPW_description","iconMark":"opus_cklQPW_iconMark","toast":"opus_cklQPW_toast","dismiss":"opus_cklQPW_dismiss","progressTrack":"opus_cklQPW_progressTrack","content":"opus_cklQPW_content","icon":"opus_cklQPW_icon","body":"opus_cklQPW_body","dismissIcon":"opus_cklQPW_dismissIcon","iconSvg":"opus_cklQPW_iconSvg"};
6892
6894
 
6893
6895
  // ../../components/Toast/Toast.tsx
6894
6896
  import { jsx as jsx46, jsxs as jsxs35 } from "react/jsx-runtime";
@@ -6968,7 +6970,7 @@ import {
6968
6970
  } from "react";
6969
6971
 
6970
6972
  // ../../components/ToastProvider/ToastProvider.module.css
6971
- var ToastProvider_default = {"itemClip":"opus_z3pSp7_itemClip","itemSurface":"opus_z3pSp7_itemSurface","viewportTop":"opus_z3pSp7_viewportTop","itemBackdrop":"opus_z3pSp7_itemBackdrop","item":"opus_z3pSp7_item","viewport":"opus_z3pSp7_viewport","viewportBottom":"opus_z3pSp7_viewportBottom","viewportLeft":"opus_z3pSp7_viewportLeft","viewportRight":"opus_z3pSp7_viewportRight"};
6973
+ var ToastProvider_default = {"viewportLeft":"opus_z3pSp7_viewportLeft","item":"opus_z3pSp7_item","itemClip":"opus_z3pSp7_itemClip","itemSurface":"opus_z3pSp7_itemSurface","viewport":"opus_z3pSp7_viewport","itemBackdrop":"opus_z3pSp7_itemBackdrop","viewportRight":"opus_z3pSp7_viewportRight","viewportTop":"opus_z3pSp7_viewportTop","viewportBottom":"opus_z3pSp7_viewportBottom"};
6972
6974
 
6973
6975
  // ../../components/ToastProvider/ToastProvider.tsx
6974
6976
  import { jsx as jsx47, jsxs as jsxs36 } from "react/jsx-runtime";
@@ -7338,7 +7340,7 @@ function ToastProvider({
7338
7340
  import { useId as useId15, useState as useState28 } from "react";
7339
7341
 
7340
7342
  // ../../components/Tabs/Tabs.module.css
7341
- var Tabs_default = {"list":"opus_ADVJmy_list","panel":"opus_ADVJmy_panel","root":"opus_ADVJmy_root","tab":"opus_ADVJmy_tab"};
7343
+ var Tabs_default = {"panel":"opus_ADVJmy_panel","list":"opus_ADVJmy_list","root":"opus_ADVJmy_root","tab":"opus_ADVJmy_tab"};
7342
7344
 
7343
7345
  // ../../components/Tabs/Tabs.tsx
7344
7346
  import { jsx as jsx48, jsxs as jsxs37 } from "react/jsx-runtime";
@@ -7452,7 +7454,7 @@ function Tabs({
7452
7454
  }
7453
7455
 
7454
7456
  // ../../components/Card/Card.module.css
7455
- var Card_default = {"body":"opus_qWo1sP_body","heading":"opus_qWo1sP_heading","content":"opus_qWo1sP_content","card":"opus_qWo1sP_card","footer":"opus_qWo1sP_footer","media":"opus_qWo1sP_media","title":"opus_qWo1sP_title","footerContent":"opus_qWo1sP_footerContent","actions":"opus_qWo1sP_actions","eyebrow":"opus_qWo1sP_eyebrow"};
7457
+ var Card_default = {"footerContent":"opus_qWo1sP_footerContent","actions":"opus_qWo1sP_actions","card":"opus_qWo1sP_card","content":"opus_qWo1sP_content","body":"opus_qWo1sP_body","footer":"opus_qWo1sP_footer","media":"opus_qWo1sP_media","title":"opus_qWo1sP_title","eyebrow":"opus_qWo1sP_eyebrow","heading":"opus_qWo1sP_heading"};
7456
7458
 
7457
7459
  // ../../components/Card/Card.tsx
7458
7460
  import { jsx as jsx49, jsxs as jsxs38 } from "react/jsx-runtime";
@@ -7483,7 +7485,7 @@ function Card({
7483
7485
  }
7484
7486
 
7485
7487
  // ../../components/dashboardMetricCardLayout/dashboardMetricCardLayout.module.css
7486
- var dashboardMetricCardLayout_default = {"iconSlot":"opus_6_sptY_iconSlot","header":"opus_6_sptY_header","label":"opus_6_sptY_label","metaPlaceholder":"opus_6_sptY_metaPlaceholder","shell":"opus_6_sptY_shell","value":"opus_6_sptY_value","iconPlaceholder":"opus_6_sptY_iconPlaceholder","metaSlot":"opus_6_sptY_metaSlot"};
7488
+ var dashboardMetricCardLayout_default = {"header":"opus_6_sptY_header","iconPlaceholder":"opus_6_sptY_iconPlaceholder","value":"opus_6_sptY_value","metaPlaceholder":"opus_6_sptY_metaPlaceholder","iconSlot":"opus_6_sptY_iconSlot","label":"opus_6_sptY_label","shell":"opus_6_sptY_shell","metaSlot":"opus_6_sptY_metaSlot"};
7487
7489
 
7488
7490
  // ../../components/StatCard/StatCard.module.css
7489
7491
  var StatCard_default = {"change":"opus_KIXsQY_change"};
@@ -7513,7 +7515,7 @@ function StatCard({
7513
7515
  }
7514
7516
 
7515
7517
  // ../../components/Gauge/Gauge.module.css
7516
- var Gauge_default = {"summary":"opus_t6IuQe_summary","gauge":"opus_t6IuQe_gauge","heading":"opus_t6IuQe_heading","footerTrend":"opus_t6IuQe_footerTrend","title":"opus_t6IuQe_title","footerItem":"opus_t6IuQe_footerItem","footerValue":"opus_t6IuQe_footerValue","gaugeTrack":"opus_t6IuQe_gaugeTrack","body":"opus_t6IuQe_body","gaugeSvg":"opus_t6IuQe_gaugeSvg","change":"opus_t6IuQe_change","subtitle":"opus_t6IuQe_subtitle","gaugeCenter":"opus_t6IuQe_gaugeCenter","header":"opus_t6IuQe_header","gaugeSlot":"opus_t6IuQe_gaugeSlot","footerLabel":"opus_t6IuQe_footerLabel","gaugeValue":"opus_t6IuQe_gaugeValue","footer":"opus_t6IuQe_footer","widget":"opus_t6IuQe_widget"};
7518
+ var Gauge_default = {"gaugeValue":"opus_t6IuQe_gaugeValue","gaugeCenter":"opus_t6IuQe_gaugeCenter","gaugeSlot":"opus_t6IuQe_gaugeSlot","footer":"opus_t6IuQe_footer","header":"opus_t6IuQe_header","footerLabel":"opus_t6IuQe_footerLabel","change":"opus_t6IuQe_change","subtitle":"opus_t6IuQe_subtitle","heading":"opus_t6IuQe_heading","widget":"opus_t6IuQe_widget","body":"opus_t6IuQe_body","summary":"opus_t6IuQe_summary","gaugeTrack":"opus_t6IuQe_gaugeTrack","title":"opus_t6IuQe_title","footerTrend":"opus_t6IuQe_footerTrend","gauge":"opus_t6IuQe_gauge","gaugeSvg":"opus_t6IuQe_gaugeSvg","footerValue":"opus_t6IuQe_footerValue","footerItem":"opus_t6IuQe_footerItem"};
7517
7519
 
7518
7520
  // ../../components/Gauge/Gauge.tsx
7519
7521
  import { jsx as jsx51, jsxs as jsxs40 } from "react/jsx-runtime";
@@ -7647,7 +7649,7 @@ function Gauge({
7647
7649
  import { useId as useId16 } from "react";
7648
7650
 
7649
7651
  // ../../components/Sparkline/Sparkline.module.css
7650
- var Sparkline_default = {"area":"opus_xXtB87_area","svg":"opus_xXtB87_svg","endPoint":"opus_xXtB87_endPoint","label":"opus_xXtB87_label","chart":"opus_xXtB87_chart","sparkline":"opus_xXtB87_sparkline","line":"opus_xXtB87_line"};
7652
+ var Sparkline_default = {"area":"opus_xXtB87_area","svg":"opus_xXtB87_svg","endPoint":"opus_xXtB87_endPoint","chart":"opus_xXtB87_chart","sparkline":"opus_xXtB87_sparkline","label":"opus_xXtB87_label","line":"opus_xXtB87_line"};
7651
7653
 
7652
7654
  // ../../components/Sparkline/Sparkline.tsx
7653
7655
  import { jsx as jsx52, jsxs as jsxs41 } from "react/jsx-runtime";
@@ -7713,7 +7715,7 @@ function Sparkline({
7713
7715
  }
7714
7716
 
7715
7717
  // ../../components/ProgressRing/ProgressRing.module.css
7716
- var ProgressRing_default = {"ring":"opus_YxX6Hh_ring","track":"opus_YxX6Hh_track","svg":"opus_YxX6Hh_svg","center":"opus_YxX6Hh_center","value":"opus_YxX6Hh_value"};
7718
+ var ProgressRing_default = {"ring":"opus_YxX6Hh_ring","svg":"opus_YxX6Hh_svg","center":"opus_YxX6Hh_center","track":"opus_YxX6Hh_track","value":"opus_YxX6Hh_value"};
7717
7719
 
7718
7720
  // ../../components/ProgressRing/ProgressRing.tsx
7719
7721
  import { jsx as jsx53, jsxs as jsxs42 } from "react/jsx-runtime";
@@ -7746,7 +7748,7 @@ function ProgressRing({ label, max = 100, value }) {
7746
7748
  }
7747
7749
 
7748
7750
  // ../../components/ProgressBar/ProgressBar.module.css
7749
- var ProgressBar_default = {"track":"opus_q04AvA_track","value":"opus_q04AvA_value","fill":"opus_q04AvA_fill","bar":"opus_q04AvA_bar","header":"opus_q04AvA_header","label":"opus_q04AvA_label"};
7751
+ var ProgressBar_default = {"fill":"opus_q04AvA_fill","header":"opus_q04AvA_header","track":"opus_q04AvA_track","label":"opus_q04AvA_label","value":"opus_q04AvA_value","bar":"opus_q04AvA_bar"};
7750
7752
 
7751
7753
  // ../../components/ProgressBar/ProgressBar.tsx
7752
7754
  import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
@@ -7766,7 +7768,7 @@ function ProgressBar({ label, max = 100, value }) {
7766
7768
  }
7767
7769
 
7768
7770
  // ../../components/Speedometer/Speedometer.module.css
7769
- var Speedometer_default = {"speedometer":"opus__jpB7z_speedometer","needle":"opus__jpB7z_needle","hub":"opus__jpB7z_hub","track":"opus__jpB7z_track","svg":"opus__jpB7z_svg","value":"opus__jpB7z_value","center":"opus__jpB7z_center"};
7771
+ var Speedometer_default = {"needle":"opus__jpB7z_needle","hub":"opus__jpB7z_hub","svg":"opus__jpB7z_svg","speedometer":"opus__jpB7z_speedometer","track":"opus__jpB7z_track","value":"opus__jpB7z_value","center":"opus__jpB7z_center"};
7770
7772
 
7771
7773
  // ../../components/Speedometer/Speedometer.tsx
7772
7774
  import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
@@ -7799,7 +7801,7 @@ function Speedometer({ label, max = 100, value }) {
7799
7801
  }
7800
7802
 
7801
7803
  // ../../components/MetricTile/MetricTile.module.css
7802
- var MetricTile_default = {"sparklineRail":"opus_-dz9KL_sparklineRail","tile":"opus_-dz9KL_tile","sparklineReserve":"opus_-dz9KL_sparklineReserve"};
7804
+ var MetricTile_default = {"tile":"opus_-dz9KL_tile","sparklineRail":"opus_-dz9KL_sparklineRail","sparklineReserve":"opus_-dz9KL_sparklineReserve"};
7803
7805
 
7804
7806
  // ../../components/MetricTile/MetricTile.tsx
7805
7807
  import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
@@ -7842,7 +7844,7 @@ function TrendBadge({ direction, value }) {
7842
7844
  }
7843
7845
 
7844
7846
  // ../../components/Panel/Panel.module.css
7845
- var Panel_default = {"heading":"opus_JZHUc__heading","title":"opus_JZHUc__title","description":"opus_JZHUc__description","headerActions":"opus_JZHUc__headerActions","body":"opus_JZHUc__body","header":"opus_JZHUc__header","panel":"opus_JZHUc__panel","footer":"opus_JZHUc__footer"};
7847
+ var Panel_default = {"panel":"opus_JZHUc__panel","description":"opus_JZHUc__description","title":"opus_JZHUc__title","footer":"opus_JZHUc__footer","headerActions":"opus_JZHUc__headerActions","body":"opus_JZHUc__body","heading":"opus_JZHUc__heading","header":"opus_JZHUc__header"};
7846
7848
 
7847
7849
  // ../../components/Panel/Panel.tsx
7848
7850
  import { jsx as jsx58, jsxs as jsxs48 } from "react/jsx-runtime";
@@ -8026,7 +8028,7 @@ function resolveSectionGapVars(gap = "md") {
8026
8028
  }
8027
8029
 
8028
8030
  // ../../components/Section/Section.module.css
8029
- var Section_default = {"header":"opus_FajZiH_header","title":"opus_FajZiH_title","section":"opus_FajZiH_section","description":"opus_FajZiH_description","body":"opus_FajZiH_body","row":"opus_FajZiH_row","column":"opus_FajZiH_column"};
8031
+ var Section_default = {"title":"opus_FajZiH_title","description":"opus_FajZiH_description","section":"opus_FajZiH_section","body":"opus_FajZiH_body","header":"opus_FajZiH_header","column":"opus_FajZiH_column","row":"opus_FajZiH_row"};
8030
8032
 
8031
8033
  // ../../components/Section/Section.tsx
8032
8034
  import { jsx as jsx59, jsxs as jsxs49 } from "react/jsx-runtime";
@@ -8107,7 +8109,7 @@ var Section = Object.assign(SectionRoot, {
8107
8109
  });
8108
8110
 
8109
8111
  // ../../components/Table/Table.module.css
8110
- var Table_default = {"table":"opus_2q7S14_table","caption":"opus_2q7S14_caption","visuallyHidden":"opus_2q7S14_visuallyHidden","wrap":"opus_2q7S14_wrap","empty":"opus_2q7S14_empty"};
8112
+ var Table_default = {"visuallyHidden":"opus_2q7S14_visuallyHidden","table":"opus_2q7S14_table","caption":"opus_2q7S14_caption","wrap":"opus_2q7S14_wrap","empty":"opus_2q7S14_empty"};
8111
8113
 
8112
8114
  // ../../components/Table/Table.tsx
8113
8115
  import { jsx as jsx60, jsxs as jsxs50 } from "react/jsx-runtime";
@@ -8136,12 +8138,209 @@ function Table({
8136
8138
  }
8137
8139
 
8138
8140
  // ../../components/DataGrid/DataGrid.tsx
8139
- import { forwardRef, useCallback as useCallback12, useLayoutEffect as useLayoutEffect8, useMemo as useMemo14, useRef as useRef23, useState as useState29 } from "react";
8140
- import { faFilter } from "@fortawesome/free-solid-svg-icons";
8141
+ import {
8142
+ Fragment as Fragment7,
8143
+ forwardRef,
8144
+ useCallback as useCallback12,
8145
+ useEffect as useEffect22,
8146
+ useLayoutEffect as useLayoutEffect8,
8147
+ useMemo as useMemo14,
8148
+ useRef as useRef23,
8149
+ useState as useState29
8150
+ } from "react";
8151
+ import { faChevronDown, faChevronRight, faFilter } from "@fortawesome/free-solid-svg-icons";
8141
8152
  import { FontAwesomeIcon as FontAwesomeIcon6 } from "@fortawesome/react-fontawesome";
8142
8153
 
8154
+ // ../../components/DataGrid/dataGridLayout.ts
8155
+ function cellText(value) {
8156
+ if (value === null || value === void 0 || typeof value === "boolean") {
8157
+ return "";
8158
+ }
8159
+ if (typeof value === "number" || typeof value === "string") {
8160
+ return String(value);
8161
+ }
8162
+ if (Array.isArray(value)) {
8163
+ return value.map(cellText).join(" ");
8164
+ }
8165
+ return "";
8166
+ }
8167
+ function getRowCellText(row, key) {
8168
+ var _a2;
8169
+ if (key === "team") {
8170
+ return cellText((_a2 = row.values.team) != null ? _a2 : row.label);
8171
+ }
8172
+ return cellText(row.values[key]);
8173
+ }
8174
+ function buildGroupedDisplayRows(rows, groupBy, collapsedGroupIds) {
8175
+ var _a2;
8176
+ const groups = /* @__PURE__ */ new Map();
8177
+ for (const row of rows) {
8178
+ const label = getRowCellText(row, groupBy) || "Ungrouped";
8179
+ const bucket = (_a2 = groups.get(label)) != null ? _a2 : [];
8180
+ bucket.push(row);
8181
+ groups.set(label, bucket);
8182
+ }
8183
+ const display = [];
8184
+ for (const [label, groupRows] of groups) {
8185
+ const id = `group:${label}`;
8186
+ const expanded = !collapsedGroupIds.has(id);
8187
+ display.push({
8188
+ kind: "group",
8189
+ id,
8190
+ label,
8191
+ count: groupRows.length,
8192
+ expanded
8193
+ });
8194
+ if (expanded) {
8195
+ for (const row of groupRows) {
8196
+ display.push({
8197
+ kind: "data",
8198
+ row,
8199
+ depth: 1,
8200
+ expandable: false,
8201
+ expanded: false,
8202
+ hasChildren: false
8203
+ });
8204
+ }
8205
+ }
8206
+ }
8207
+ return display;
8208
+ }
8209
+ function buildTreeDisplayRows(rows, expandedIds, depth = 0) {
8210
+ var _a2;
8211
+ const display = [];
8212
+ for (const row of rows) {
8213
+ const children = (_a2 = row.children) != null ? _a2 : [];
8214
+ const hasChildren = children.length > 0;
8215
+ const expanded = hasChildren && expandedIds.has(row.id);
8216
+ display.push({
8217
+ kind: "data",
8218
+ row,
8219
+ depth,
8220
+ expandable: hasChildren,
8221
+ expanded,
8222
+ hasChildren
8223
+ });
8224
+ if (expanded) {
8225
+ display.push(...buildTreeDisplayRows(children, expandedIds, depth + 1));
8226
+ }
8227
+ }
8228
+ return display;
8229
+ }
8230
+ function buildFlatDisplayRows(rows) {
8231
+ return rows.map((row) => ({
8232
+ kind: "data",
8233
+ row,
8234
+ depth: 0,
8235
+ expandable: false,
8236
+ expanded: false,
8237
+ hasChildren: false
8238
+ }));
8239
+ }
8240
+ function collectTreeIds(rows) {
8241
+ var _a2;
8242
+ const ids = [];
8243
+ for (const row of rows) {
8244
+ if ((_a2 = row.children) == null ? void 0 : _a2.length) {
8245
+ ids.push(row.id);
8246
+ ids.push(...collectTreeIds(row.children));
8247
+ }
8248
+ }
8249
+ return ids;
8250
+ }
8251
+
8252
+ // ../../components/DataGrid/dataGridPivot.ts
8253
+ function toNumber(value) {
8254
+ const cleaned = value.replace(/%/g, "").replace(/^\+/, "").trim();
8255
+ if (!cleaned || Number.isNaN(Number(cleaned))) {
8256
+ return null;
8257
+ }
8258
+ return Number(cleaned);
8259
+ }
8260
+ function aggregate(values, mode) {
8261
+ if (mode === "count") {
8262
+ return values.length;
8263
+ }
8264
+ if (!values.length) {
8265
+ return 0;
8266
+ }
8267
+ const sum = values.reduce((total, value) => total + value, 0);
8268
+ return mode === "avg" ? sum / values.length : sum;
8269
+ }
8270
+ function formatMeasure(value, sample) {
8271
+ if (sample.includes("%")) {
8272
+ return `${Math.round(value)}%`;
8273
+ }
8274
+ if (Number.isInteger(value)) {
8275
+ return value;
8276
+ }
8277
+ return Math.round(value * 10) / 10;
8278
+ }
8279
+ function buildPivotGrid(sourceRows, config2) {
8280
+ var _a2, _b2;
8281
+ const aggregator = (_a2 = config2.aggregator) != null ? _a2 : "sum";
8282
+ const rowDims = config2.rows.length ? config2.rows : ["team"];
8283
+ const colDims = config2.columns.length ? config2.columns : ["group"];
8284
+ const valueKeys = config2.values.length ? config2.values : ["q1"];
8285
+ const columnLabels = /* @__PURE__ */ new Set();
8286
+ const matrix = /* @__PURE__ */ new Map();
8287
+ const rowLabels = /* @__PURE__ */ new Map();
8288
+ const samples = /* @__PURE__ */ new Map();
8289
+ for (const source of sourceRows) {
8290
+ const rowKey = rowDims.map((key) => getRowCellText(source, key) || "\u2014").join(" \xB7 ");
8291
+ const colKey = colDims.map((key) => getRowCellText(source, key) || "\u2014").join(" \xB7 ");
8292
+ rowLabels.set(rowKey, rowKey);
8293
+ if (!matrix.has(rowKey)) {
8294
+ matrix.set(rowKey, /* @__PURE__ */ new Map());
8295
+ }
8296
+ const rowBucket = matrix.get(rowKey);
8297
+ for (const valueKey of valueKeys) {
8298
+ const cellKey = valueKeys.length === 1 ? colKey : `${colKey} \xB7 ${valueKey}`;
8299
+ columnLabels.add(cellKey);
8300
+ const raw = getRowCellText(source, valueKey);
8301
+ const numeric = toNumber(raw);
8302
+ if (!samples.has(valueKey) && raw) {
8303
+ samples.set(valueKey, raw);
8304
+ }
8305
+ const values = (_b2 = rowBucket.get(cellKey)) != null ? _b2 : [];
8306
+ if (aggregator === "count") {
8307
+ values.push(1);
8308
+ } else if (numeric !== null) {
8309
+ values.push(numeric);
8310
+ }
8311
+ rowBucket.set(cellKey, values);
8312
+ }
8313
+ }
8314
+ const sortedColumnLabels = Array.from(columnLabels).sort((a, b) => a.localeCompare(b));
8315
+ const columns = [
8316
+ { key: "team", label: rowDims.join(" \xB7 "), align: "left", sortable: true, filterable: true },
8317
+ ...sortedColumnLabels.map((label) => ({
8318
+ key: label,
8319
+ label,
8320
+ align: "right",
8321
+ sortable: true,
8322
+ filterable: true
8323
+ }))
8324
+ ];
8325
+ const rows = Array.from(matrix.entries()).map(([rowKey, cells], index) => {
8326
+ var _a3, _b3, _c2;
8327
+ const values = { team: rowKey };
8328
+ for (const columnLabel of sortedColumnLabels) {
8329
+ const nums = (_a3 = cells.get(columnLabel)) != null ? _a3 : [];
8330
+ const sampleKey = (_b3 = valueKeys.find((key) => columnLabel.includes(key))) != null ? _b3 : valueKeys[0];
8331
+ const sample = (_c2 = samples.get(sampleKey)) != null ? _c2 : "";
8332
+ values[columnLabel] = formatMeasure(aggregate(nums, aggregator), sample);
8333
+ }
8334
+ return {
8335
+ id: `pivot-${index + 1}`,
8336
+ values
8337
+ };
8338
+ });
8339
+ return { columns, rows };
8340
+ }
8341
+
8143
8342
  // ../../components/DataGrid/DataGrid.module.css
8144
- var DataGrid_default = {"wrap":"opus_zN0bNb_wrap","menuSection":"opus_zN0bNb_menuSection","menuAction":"opus_zN0bNb_menuAction","sortButton":"opus_zN0bNb_sortButton","sortIndicator":"opus_zN0bNb_sortIndicator","menuButton":"opus_zN0bNb_menuButton","visuallyHidden":"opus_zN0bNb_visuallyHidden","rowHeader":"opus_zN0bNb_rowHeader","menuFilterIcon":"opus_zN0bNb_menuFilterIcon","headerLabel":"opus_zN0bNb_headerLabel","caption":"opus_zN0bNb_caption","headerMenu":"opus_zN0bNb_headerMenu","grid":"opus_zN0bNb_grid","frame":"opus_zN0bNb_frame","headerCell":"opus_zN0bNb_headerCell","menuLabel":"opus_zN0bNb_menuLabel","columnResizeHandle":"opus_zN0bNb_columnResizeHandle","sortIndicatorButton":"opus_zN0bNb_sortIndicatorButton","menuChevron":"opus_zN0bNb_menuChevron","menuHost":"opus_zN0bNb_menuHost","filterInput":"opus_zN0bNb_filterInput","empty":"opus_zN0bNb_empty","headerControls":"opus_zN0bNb_headerControls","gridBody":"opus_zN0bNb_gridBody","corner":"opus_zN0bNb_corner","sortButtonLabel":"opus_zN0bNb_sortButtonLabel"};
8343
+ var DataGrid_default = {"detailCell":"opus_zN0bNb_detailCell","filterInput":"opus_zN0bNb_filterInput","sortIndicatorButton":"opus_zN0bNb_sortIndicatorButton","chevron":"opus_zN0bNb_chevron","grid":"opus_zN0bNb_grid","wrap":"opus_zN0bNb_wrap","spacerRow":"opus_zN0bNb_spacerRow","rowHeader":"opus_zN0bNb_rowHeader","menuChevron":"opus_zN0bNb_menuChevron","expandSpacer":"opus_zN0bNb_expandSpacer","headerControls":"opus_zN0bNb_headerControls","groupRow":"opus_zN0bNb_groupRow","sortButtonLabel":"opus_zN0bNb_sortButtonLabel","menuAction":"opus_zN0bNb_menuAction","menuButton":"opus_zN0bNb_menuButton","menuHost":"opus_zN0bNb_menuHost","sortButton":"opus_zN0bNb_sortButton","headerMenu":"opus_zN0bNb_headerMenu","headerCell":"opus_zN0bNb_headerCell","menuFilterIcon":"opus_zN0bNb_menuFilterIcon","empty":"opus_zN0bNb_empty","expandButton":"opus_zN0bNb_expandButton","caption":"opus_zN0bNb_caption","gridBody":"opus_zN0bNb_gridBody","sortIndicator":"opus_zN0bNb_sortIndicator","columnResizeHandle":"opus_zN0bNb_columnResizeHandle","groupCount":"opus_zN0bNb_groupCount","visuallyHidden":"opus_zN0bNb_visuallyHidden","detailRow":"opus_zN0bNb_detailRow","infiniteFooter":"opus_zN0bNb_infiniteFooter","rowHeaderInner":"opus_zN0bNb_rowHeaderInner","corner":"opus_zN0bNb_corner","menuSection":"opus_zN0bNb_menuSection","menuLabel":"opus_zN0bNb_menuLabel","headerLabel":"opus_zN0bNb_headerLabel","frame":"opus_zN0bNb_frame","groupCell":"opus_zN0bNb_groupCell","rowHeaderLabel":"opus_zN0bNb_rowHeaderLabel","groupButton":"opus_zN0bNb_groupButton"};
8145
8344
 
8146
8345
  // ../../components/DataGrid/DataGrid.tsx
8147
8346
  import { jsx as jsx61, jsxs as jsxs51 } from "react/jsx-runtime";
@@ -8156,6 +8355,8 @@ var HEADER_CONTROL_GAP = 6;
8156
8355
  var SORT_INDICATOR_WIDTH = 8;
8157
8356
  var SORT_LABEL_GAP = 8;
8158
8357
  var RESIZE_HANDLE_WIDTH = 14;
8358
+ var DEFAULT_VIEWPORT = 360;
8359
+ var OVERSCAN = 6;
8159
8360
  function resolveColumnFeatures(column) {
8160
8361
  return {
8161
8362
  filterable: (column == null ? void 0 : column.filterable) === true,
@@ -8174,21 +8375,8 @@ function getMinColumnWidth(sortable, hasMenu, density) {
8174
8375
  }
8175
8376
  return width;
8176
8377
  }
8177
- function cellText(value) {
8178
- if (value === null || value === void 0 || typeof value === "boolean") {
8179
- return "";
8180
- }
8181
- if (typeof value === "number" || typeof value === "string") {
8182
- return String(value);
8183
- }
8184
- if (Array.isArray(value)) {
8185
- return value.map(cellText).join(" ");
8186
- }
8187
- return "";
8188
- }
8189
8378
  function rowTeamValue(row) {
8190
- var _a2;
8191
- return cellText((_a2 = row.values.team) != null ? _a2 : row.label);
8379
+ return getRowCellText(row, "team");
8192
8380
  }
8193
8381
  function isNumericValue(value) {
8194
8382
  return /^-?\d+(?:\.\d+)?$/.test(value);
@@ -8201,33 +8389,67 @@ function compareValues(a, b) {
8201
8389
  }
8202
8390
  return aTrim.localeCompare(bTrim, void 0, { numeric: true, sensitivity: "base" });
8203
8391
  }
8392
+ function defaultRowHeight(density) {
8393
+ return density === "comfortable" ? 44 : 36;
8394
+ }
8204
8395
  function DataGrid({
8205
8396
  bordered = true,
8206
8397
  caption,
8207
8398
  columns,
8399
+ defaultExpandedIds,
8208
8400
  density = "compact",
8401
+ detailExpandedIds,
8402
+ getDetailContent,
8403
+ groupBy = "group",
8404
+ hasMore = false,
8405
+ layout = "flat",
8406
+ loadingMore = false,
8407
+ onExpandedChange,
8408
+ onLoadMore,
8409
+ pivot,
8209
8410
  rowHeader,
8411
+ rowHeight,
8210
8412
  rows,
8211
8413
  stickyFirstColumn = true,
8212
8414
  stickyHeader = true,
8213
- striped = true
8415
+ striped = true,
8416
+ viewportHeight = DEFAULT_VIEWPORT,
8417
+ virtualized = false
8214
8418
  }) {
8215
- var _a2, _b2, _c2, _d2;
8419
+ var _a2, _b2, _c2, _d2, _e2, _f2;
8216
8420
  const [columnWidths, setColumnWidths] = useState29({});
8217
8421
  const [filters, setFilters] = useState29({});
8218
8422
  const [openMenu, setOpenMenu] = useState29(null);
8219
8423
  const [resizing, setResizing] = useState29(null);
8220
8424
  const [sort, setSort] = useState29(null);
8425
+ const [collapsedGroupIds, setCollapsedGroupIds] = useState29(() => /* @__PURE__ */ new Set());
8426
+ const [treeExpandedIds, setTreeExpandedIds] = useState29(
8427
+ () => new Set(defaultExpandedIds != null ? defaultExpandedIds : [])
8428
+ );
8429
+ const [uncontrolledDetailIds, setUncontrolledDetailIds] = useState29(() => /* @__PURE__ */ new Set());
8430
+ const [scrollTop, setScrollTop] = useState29(0);
8221
8431
  const menuAnchorRef = useRef23(null);
8222
8432
  const menuHostRef = useRef23(null);
8223
8433
  const menuRef = useRef23(null);
8224
8434
  const menuFrameRef = useRef23(null);
8225
8435
  const resizeDragRef = useRef23(null);
8226
8436
  const wrapRef = useRef23(null);
8227
- const hasTeamColumn = columns.some((column) => column.key === "team");
8437
+ const sentinelRef = useRef23(null);
8438
+ const resolvedRowHeight = rowHeight != null ? rowHeight : defaultRowHeight(density);
8439
+ const detailIds = detailExpandedIds ? new Set(detailExpandedIds) : uncontrolledDetailIds;
8440
+ const masterDetail = Boolean(getDetailContent) && layout !== "pivot";
8441
+ const pivotResult = useMemo14(() => {
8442
+ if (layout !== "pivot") {
8443
+ return null;
8444
+ }
8445
+ return buildPivotGrid(rows, pivot != null ? pivot : { rows: ["group"], columns: ["a11y"], values: ["q1", "q2"] });
8446
+ }, [layout, pivot, rows]);
8447
+ const activeColumns = (_a2 = pivotResult == null ? void 0 : pivotResult.columns) != null ? _a2 : columns;
8448
+ const activeRows = (_b2 = pivotResult == null ? void 0 : pivotResult.rows) != null ? _b2 : rows;
8449
+ const hasTeamColumn = activeColumns.some((column) => column.key === "team");
8228
8450
  const gridColumns = useMemo14(
8229
- () => hasTeamColumn ? columns : [{ key: "team", label: "Team", align: "left" }, ...columns],
8230
- [columns, hasTeamColumn]
8451
+ () => hasTeamColumn ? activeColumns : [{ key: "team", label: "Team", align: "left" }, ...activeColumns],
8452
+ [activeColumns, hasTeamColumn]
8231
8453
  );
8232
8454
  const dataColumns = useMemo14(
8233
8455
  () => gridColumns.filter((column) => column.key !== "team"),
@@ -8241,34 +8463,92 @@ function DataGrid({
8241
8463
  }
8242
8464
  return features;
8243
8465
  }, [gridColumns, hasTeamColumn, rowHeader]);
8244
- const visibleRows = rows.filter(
8245
- (row) => gridColumns.every((column) => {
8246
- var _a3;
8247
- const features = columnFeatures[column.key];
8248
- if (!(features == null ? void 0 : features.filterable)) {
8249
- return true;
8250
- }
8251
- const filter = (_a3 = filters[column.key]) == null ? void 0 : _a3.trim().toLowerCase();
8252
- if (!filter) {
8253
- return true;
8254
- }
8255
- const value = column.key === "team" ? rowTeamValue(row) : cellText(row.values[column.key]);
8256
- return value.toLowerCase().includes(filter);
8257
- })
8258
- ).sort((a, b) => {
8259
- var _a3;
8260
- if (!sort) {
8261
- return 0;
8466
+ const filterSortRows = useCallback12(
8467
+ (source) => {
8468
+ return source.filter(
8469
+ (row) => gridColumns.every((column) => {
8470
+ var _a3;
8471
+ const features = columnFeatures[column.key];
8472
+ if (!(features == null ? void 0 : features.filterable)) {
8473
+ return true;
8474
+ }
8475
+ const filter = (_a3 = filters[column.key]) == null ? void 0 : _a3.trim().toLowerCase();
8476
+ if (!filter) {
8477
+ return true;
8478
+ }
8479
+ const value = column.key === "team" ? rowTeamValue(row) : getRowCellText(row, column.key);
8480
+ return value.toLowerCase().includes(filter);
8481
+ })
8482
+ ).sort((a, b) => {
8483
+ var _a3;
8484
+ if (!sort || !((_a3 = columnFeatures[sort.key]) == null ? void 0 : _a3.sortable)) {
8485
+ return 0;
8486
+ }
8487
+ const aValue = sort.key === "team" ? rowTeamValue(a) : getRowCellText(a, sort.key);
8488
+ const bValue = sort.key === "team" ? rowTeamValue(b) : getRowCellText(b, sort.key);
8489
+ const result = compareValues(aValue, bValue);
8490
+ return sort.direction === "ascending" ? result : -result;
8491
+ });
8492
+ },
8493
+ [columnFeatures, filters, gridColumns, sort]
8494
+ );
8495
+ useEffect22(() => {
8496
+ if (layout === "tree" && defaultExpandedIds === void 0 && treeExpandedIds.size === 0) {
8497
+ setTreeExpandedIds(new Set(collectTreeIds(activeRows).slice(0, 4)));
8262
8498
  }
8263
- if (!((_a3 = columnFeatures[sort.key]) == null ? void 0 : _a3.sortable)) {
8264
- return 0;
8499
+ }, [activeRows, defaultExpandedIds, layout, treeExpandedIds.size]);
8500
+ const displayRows = useMemo14(() => {
8501
+ if (layout === "tree") {
8502
+ return buildTreeDisplayRows(filterSortRows(activeRows), treeExpandedIds);
8265
8503
  }
8266
- const aValue = sort.key === "team" ? rowTeamValue(a) : cellText(a.values[sort.key]);
8267
- const bValue = sort.key === "team" ? rowTeamValue(b) : cellText(b.values[sort.key]);
8268
- const result = compareValues(aValue, bValue);
8269
- return sort.direction === "ascending" ? result : -result;
8270
- });
8504
+ const flat = filterSortRows(activeRows);
8505
+ if (layout === "grouped") {
8506
+ return buildGroupedDisplayRows(flat, groupBy, collapsedGroupIds);
8507
+ }
8508
+ return buildFlatDisplayRows(flat);
8509
+ }, [activeRows, collapsedGroupIds, filterSortRows, groupBy, layout, treeExpandedIds]);
8271
8510
  const openMenuFeatures = openMenu ? columnFeatures[openMenu.key] : void 0;
8511
+ const setExpandedIds = useCallback12(
8512
+ (next) => {
8513
+ setTreeExpandedIds(next);
8514
+ onExpandedChange == null ? void 0 : onExpandedChange(Array.from(next));
8515
+ },
8516
+ [onExpandedChange]
8517
+ );
8518
+ const toggleTreeExpand = (id) => {
8519
+ const next = new Set(treeExpandedIds);
8520
+ if (next.has(id)) {
8521
+ next.delete(id);
8522
+ } else {
8523
+ next.add(id);
8524
+ }
8525
+ setExpandedIds(next);
8526
+ };
8527
+ const toggleGroup = (id) => {
8528
+ setCollapsedGroupIds((current) => {
8529
+ const next = new Set(current);
8530
+ if (next.has(id)) {
8531
+ next.delete(id);
8532
+ } else {
8533
+ next.add(id);
8534
+ }
8535
+ return next;
8536
+ });
8537
+ };
8538
+ const toggleDetail = (id) => {
8539
+ if (detailExpandedIds) {
8540
+ return;
8541
+ }
8542
+ setUncontrolledDetailIds((current) => {
8543
+ const next = new Set(current);
8544
+ if (next.has(id)) {
8545
+ next.delete(id);
8546
+ } else {
8547
+ next.add(id);
8548
+ }
8549
+ return next;
8550
+ });
8551
+ };
8272
8552
  const resetWrapMinHeight = useCallback12(() => {
8273
8553
  if (wrapRef.current) {
8274
8554
  wrapRef.current.style.minHeight = "";
@@ -8279,7 +8559,7 @@ function DataGrid({
8279
8559
  resetWrapMinHeight();
8280
8560
  setOpenMenu(null);
8281
8561
  }, [resetWrapMinHeight]);
8282
- const activeMenuFilter = openMenu ? (_a2 = filters[openMenu.key]) != null ? _a2 : "" : "";
8562
+ const activeMenuFilter = openMenu ? (_c2 = filters[openMenu.key]) != null ? _c2 : "" : "";
8283
8563
  const applyMenuPosition = useCallback12(() => {
8284
8564
  const anchor = menuAnchorRef.current;
8285
8565
  const menu = menuRef.current;
@@ -8392,6 +8672,26 @@ function DataGrid({
8392
8672
  }
8393
8673
  scheduleMenuPosition();
8394
8674
  }, [columnWidths, openMenu, scheduleMenuPosition]);
8675
+ useEffect22(() => {
8676
+ if (!onLoadMore || !hasMore) {
8677
+ return;
8678
+ }
8679
+ const root = wrapRef.current;
8680
+ const target = sentinelRef.current;
8681
+ if (!root || !target) {
8682
+ return;
8683
+ }
8684
+ const observer = new IntersectionObserver(
8685
+ (entries) => {
8686
+ if (entries.some((entry) => entry.isIntersecting) && !loadingMore) {
8687
+ onLoadMore();
8688
+ }
8689
+ },
8690
+ { root, rootMargin: "120px" }
8691
+ );
8692
+ observer.observe(target);
8693
+ return () => observer.disconnect();
8694
+ }, [displayRows.length, hasMore, loadingMore, onLoadMore]);
8395
8695
  const toggleSort = (key) => {
8396
8696
  var _a3;
8397
8697
  if (!((_a3 = columnFeatures[key]) == null ? void 0 : _a3.sortable)) {
@@ -8493,10 +8793,108 @@ function DataGrid({
8493
8793
  }
8494
8794
  beginResize(event, columnKey, width);
8495
8795
  }, [beginResize, columnFeatures]);
8796
+ const colSpan = gridColumns.length;
8797
+ const virtualWindow = useMemo14(() => {
8798
+ if (!virtualized) {
8799
+ return {
8800
+ offset: 0,
8801
+ items: displayRows,
8802
+ paddingTop: 0,
8803
+ paddingBottom: 0
8804
+ };
8805
+ }
8806
+ const start = Math.max(0, Math.floor(scrollTop / resolvedRowHeight) - OVERSCAN);
8807
+ const visibleCount = Math.ceil(viewportHeight / resolvedRowHeight) + OVERSCAN * 2;
8808
+ const end = Math.min(displayRows.length, start + visibleCount);
8809
+ const items = displayRows.slice(start, end);
8810
+ return {
8811
+ offset: start,
8812
+ items,
8813
+ paddingTop: start * resolvedRowHeight,
8814
+ paddingBottom: Math.max(0, (displayRows.length - end) * resolvedRowHeight)
8815
+ };
8816
+ }, [displayRows, resolvedRowHeight, scrollTop, viewportHeight, virtualized]);
8817
+ const renderDataRow = (entry) => {
8818
+ var _a3;
8819
+ const { row, depth, expandable, expanded, hasChildren } = entry;
8820
+ const detailOpen = masterDetail && detailIds.has(row.id);
8821
+ const showTreeToggle = layout === "tree" && expandable;
8822
+ return /* @__PURE__ */ jsxs51(Fragment7, { children: [
8823
+ /* @__PURE__ */ jsxs51("tr", { "data-row-kind": "data", children: [
8824
+ /* @__PURE__ */ jsx61(
8825
+ "th",
8826
+ {
8827
+ className: DataGrid_default.rowHeader,
8828
+ scope: "row",
8829
+ style: columnWidths.team ? { width: columnWidths.team, minWidth: columnWidths.team } : void 0,
8830
+ children: /* @__PURE__ */ jsxs51("span", { className: DataGrid_default.rowHeaderInner, style: { paddingLeft: depth * 14 }, children: [
8831
+ masterDetail ? /* @__PURE__ */ jsx61(
8832
+ "button",
8833
+ {
8834
+ "aria-expanded": detailOpen,
8835
+ "aria-label": detailOpen ? `Hide details for ${rowTeamValue(row)}` : `Show details for ${rowTeamValue(row)}`,
8836
+ className: DataGrid_default.expandButton,
8837
+ onClick: () => toggleDetail(row.id),
8838
+ type: "button",
8839
+ children: /* @__PURE__ */ jsx61(FontAwesomeIcon6, { className: DataGrid_default.chevron, icon: detailOpen ? faChevronDown : faChevronRight })
8840
+ }
8841
+ ) : null,
8842
+ showTreeToggle ? /* @__PURE__ */ jsx61(
8843
+ "button",
8844
+ {
8845
+ "aria-expanded": expanded,
8846
+ "aria-label": expanded ? `Collapse ${rowTeamValue(row)}` : `Expand ${rowTeamValue(row)}`,
8847
+ className: DataGrid_default.expandButton,
8848
+ onClick: () => toggleTreeExpand(row.id),
8849
+ type: "button",
8850
+ children: /* @__PURE__ */ jsx61(FontAwesomeIcon6, { className: DataGrid_default.chevron, icon: expanded ? faChevronDown : faChevronRight })
8851
+ }
8852
+ ) : layout === "tree" && !hasChildren ? /* @__PURE__ */ jsx61("span", { "aria-hidden": "true", className: DataGrid_default.expandSpacer }) : null,
8853
+ /* @__PURE__ */ jsx61("span", { className: DataGrid_default.rowHeaderLabel, children: (_a3 = row.values.team) != null ? _a3 : row.label })
8854
+ ] })
8855
+ }
8856
+ ),
8857
+ dataColumns.map((column) => {
8858
+ var _a4;
8859
+ return /* @__PURE__ */ jsx61(
8860
+ "td",
8861
+ {
8862
+ "data-align": (_a4 = column.align) != null ? _a4 : "left",
8863
+ "data-column-key": column.key,
8864
+ "data-column-resizable": columnFeatures[column.key].resizable,
8865
+ style: columnWidths[column.key] ? { width: columnWidths[column.key], minWidth: columnWidths[column.key] } : void 0,
8866
+ children: row.values[column.key]
8867
+ },
8868
+ column.key
8869
+ );
8870
+ })
8871
+ ] }),
8872
+ detailOpen && getDetailContent ? /* @__PURE__ */ jsx61("tr", { className: DataGrid_default.detailRow, children: /* @__PURE__ */ jsx61("td", { className: DataGrid_default.detailCell, colSpan, children: getDetailContent(row) }) }, `${row.id}-detail`) : null
8873
+ ] }, row.id);
8874
+ };
8875
+ const renderDisplayRow = (entry, index) => {
8876
+ if (entry.kind === "group") {
8877
+ return /* @__PURE__ */ jsx61("tr", { className: DataGrid_default.groupRow, children: /* @__PURE__ */ jsx61("td", { className: DataGrid_default.groupCell, colSpan, children: /* @__PURE__ */ jsxs51(
8878
+ "button",
8879
+ {
8880
+ "aria-expanded": entry.expanded,
8881
+ className: DataGrid_default.groupButton,
8882
+ onClick: () => toggleGroup(entry.id),
8883
+ type: "button",
8884
+ children: [
8885
+ /* @__PURE__ */ jsx61(FontAwesomeIcon6, { className: DataGrid_default.chevron, icon: entry.expanded ? faChevronDown : faChevronRight }),
8886
+ /* @__PURE__ */ jsx61("span", { children: entry.label }),
8887
+ /* @__PURE__ */ jsx61("span", { className: DataGrid_default.groupCount, children: entry.count })
8888
+ ]
8889
+ }
8890
+ ) }) }, entry.id);
8891
+ }
8892
+ return renderDataRow(entry);
8893
+ };
8496
8894
  return /* @__PURE__ */ jsxs51("div", { className: DataGrid_default.frame, children: [
8497
8895
  caption ? /* @__PURE__ */ jsx61("div", { className: DataGrid_default.caption, children: caption }) : null,
8498
8896
  /* @__PURE__ */ jsxs51("div", { className: DataGrid_default.gridBody, children: [
8499
- /* @__PURE__ */ jsx61(
8897
+ /* @__PURE__ */ jsxs51(
8500
8898
  "div",
8501
8899
  {
8502
8900
  ref: wrapRef,
@@ -8510,114 +8908,98 @@ function DataGrid({
8510
8908
  "data-sticky-column": stickyFirstColumn,
8511
8909
  "data-sticky-header": stickyHeader,
8512
8910
  "data-striped": striped,
8513
- children: /* @__PURE__ */ jsxs51("table", { className: DataGrid_default.grid, children: [
8514
- caption ? /* @__PURE__ */ jsx61("caption", { className: DataGrid_default.visuallyHidden, children: caption }) : null,
8515
- /* @__PURE__ */ jsx61("colgroup", { children: gridColumns.map((column) => {
8516
- var _a3;
8517
- return /* @__PURE__ */ jsx61(
8518
- "col",
8519
- {
8520
- style: { width: (_a3 = columnWidths[column.key]) != null ? _a3 : column.key === "team" ? 180 : 130 }
8521
- },
8522
- column.key
8523
- );
8524
- }) }),
8525
- /* @__PURE__ */ jsx61("thead", { children: /* @__PURE__ */ jsx61("tr", { children: gridColumns.map((column) => {
8526
- var _a3, _b3;
8527
- return /* @__PURE__ */ jsxs51(
8528
- "th",
8529
- {
8530
- "aria-sort": columnFeatures[column.key].sortable ? (sort == null ? void 0 : sort.key) === column.key ? sort.direction : "none" : void 0,
8531
- className: column.key === "team" ? DataGrid_default.corner : void 0,
8532
- "data-column-resizable": columnFeatures[column.key].resizable,
8533
- "data-filter-active": Boolean((_a3 = filters[column.key]) == null ? void 0 : _a3.trim()),
8534
- "data-menu-open": (openMenu == null ? void 0 : openMenu.key) === column.key,
8535
- scope: "col",
8536
- style: columnWidths[column.key] ? { width: columnWidths[column.key], minWidth: columnWidths[column.key] } : void 0,
8537
- children: [
8538
- /* @__PURE__ */ jsx61(
8539
- HeaderContent,
8540
- {
8541
- filterActive: Boolean((_b3 = filters[column.key]) == null ? void 0 : _b3.trim()),
8542
- filterable: columnFeatures[column.key].filterable,
8543
- label: column.label,
8544
- menuId: column.key,
8545
- sortDirection: (sort == null ? void 0 : sort.key) === column.key ? sort.direction : void 0,
8546
- sortable: columnFeatures[column.key].sortable,
8547
- menuOpen: (openMenu == null ? void 0 : openMenu.key) === column.key,
8548
- onMenuToggle: (button) => {
8549
- if ((openMenu == null ? void 0 : openMenu.key) === column.key) {
8550
- closeHeaderMenu();
8551
- return;
8552
- }
8553
- openHeaderMenu({
8554
- align: column.key === "team" ? "left" : "right",
8555
- button,
8556
- key: column.key,
8557
- label: column.label
8558
- });
8559
- },
8560
- onSort: () => toggleSort(column.key)
8561
- }
8562
- ),
8563
- columnFeatures[column.key].resizable ? /* @__PURE__ */ jsx61(
8564
- ColumnResizeHandle,
8565
- {
8566
- onResizeStart: (event) => beginResize(event, column.key)
8567
- }
8568
- ) : null
8569
- ]
8570
- },
8571
- column.key
8572
- );
8573
- }) }) }),
8574
- /* @__PURE__ */ jsxs51("tbody", { onPointerDown: handleBodyPointerDown, children: [
8575
- visibleRows.map((row) => {
8911
+ onScroll: (event) => {
8912
+ if (virtualized) {
8913
+ setScrollTop(event.currentTarget.scrollTop);
8914
+ }
8915
+ },
8916
+ style: { maxHeight: viewportHeight },
8917
+ children: [
8918
+ /* @__PURE__ */ jsxs51("table", { className: DataGrid_default.grid, children: [
8919
+ caption ? /* @__PURE__ */ jsx61("caption", { className: DataGrid_default.visuallyHidden, children: caption }) : null,
8920
+ /* @__PURE__ */ jsx61("colgroup", { children: gridColumns.map((column) => {
8576
8921
  var _a3;
8577
- return /* @__PURE__ */ jsxs51("tr", { children: [
8578
- /* @__PURE__ */ jsx61(
8579
- "th",
8580
- {
8581
- className: DataGrid_default.rowHeader,
8582
- scope: "row",
8583
- style: columnWidths.team ? { width: columnWidths.team, minWidth: columnWidths.team } : void 0,
8584
- children: (_a3 = row.values.team) != null ? _a3 : row.label
8585
- }
8586
- ),
8587
- dataColumns.map((column) => {
8588
- var _a4;
8589
- return /* @__PURE__ */ jsx61(
8590
- "td",
8591
- {
8592
- "data-align": (_a4 = column.align) != null ? _a4 : "left",
8593
- "data-column-key": column.key,
8594
- "data-column-resizable": columnFeatures[column.key].resizable,
8595
- style: columnWidths[column.key] ? { width: columnWidths[column.key], minWidth: columnWidths[column.key] } : void 0,
8596
- children: row.values[column.key]
8597
- },
8598
- column.key
8599
- );
8600
- })
8601
- ] }, row.id);
8602
- }),
8603
- !visibleRows.length ? /* @__PURE__ */ jsxs51("tr", { children: [
8604
- /* @__PURE__ */ jsx61("th", { className: DataGrid_default.rowHeader, scope: "row", children: "No rows" }),
8605
- /* @__PURE__ */ jsx61("td", { className: DataGrid_default.empty, colSpan: Math.max(dataColumns.length, 1), children: "No matching rows." })
8606
- ] }) : null
8607
- ] })
8608
- ] })
8922
+ return /* @__PURE__ */ jsx61(
8923
+ "col",
8924
+ {
8925
+ style: { width: (_a3 = columnWidths[column.key]) != null ? _a3 : column.key === "team" ? 180 : 130 }
8926
+ },
8927
+ column.key
8928
+ );
8929
+ }) }),
8930
+ /* @__PURE__ */ jsx61("thead", { children: /* @__PURE__ */ jsx61("tr", { children: gridColumns.map((column) => {
8931
+ var _a3, _b3;
8932
+ return /* @__PURE__ */ jsxs51(
8933
+ "th",
8934
+ {
8935
+ "aria-sort": columnFeatures[column.key].sortable ? (sort == null ? void 0 : sort.key) === column.key ? sort.direction : "none" : void 0,
8936
+ className: column.key === "team" ? DataGrid_default.corner : void 0,
8937
+ "data-column-resizable": columnFeatures[column.key].resizable,
8938
+ "data-filter-active": Boolean((_a3 = filters[column.key]) == null ? void 0 : _a3.trim()),
8939
+ "data-menu-open": (openMenu == null ? void 0 : openMenu.key) === column.key,
8940
+ scope: "col",
8941
+ style: columnWidths[column.key] ? { width: columnWidths[column.key], minWidth: columnWidths[column.key] } : void 0,
8942
+ children: [
8943
+ /* @__PURE__ */ jsx61(
8944
+ HeaderContent,
8945
+ {
8946
+ filterActive: Boolean((_b3 = filters[column.key]) == null ? void 0 : _b3.trim()),
8947
+ filterable: columnFeatures[column.key].filterable,
8948
+ label: column.label,
8949
+ menuId: column.key,
8950
+ sortDirection: (sort == null ? void 0 : sort.key) === column.key ? sort.direction : void 0,
8951
+ sortable: columnFeatures[column.key].sortable,
8952
+ menuOpen: (openMenu == null ? void 0 : openMenu.key) === column.key,
8953
+ onMenuToggle: (button) => {
8954
+ if ((openMenu == null ? void 0 : openMenu.key) === column.key) {
8955
+ closeHeaderMenu();
8956
+ return;
8957
+ }
8958
+ openHeaderMenu({
8959
+ align: column.key === "team" ? "left" : "right",
8960
+ button,
8961
+ key: column.key,
8962
+ label: column.label
8963
+ });
8964
+ },
8965
+ onSort: () => toggleSort(column.key)
8966
+ }
8967
+ ),
8968
+ columnFeatures[column.key].resizable ? /* @__PURE__ */ jsx61(
8969
+ ColumnResizeHandle,
8970
+ {
8971
+ onResizeStart: (event) => beginResize(event, column.key)
8972
+ }
8973
+ ) : null
8974
+ ]
8975
+ },
8976
+ column.key
8977
+ );
8978
+ }) }) }),
8979
+ /* @__PURE__ */ jsxs51("tbody", { onPointerDown: handleBodyPointerDown, children: [
8980
+ virtualized && virtualWindow.paddingTop > 0 ? /* @__PURE__ */ jsx61("tr", { "aria-hidden": "true", className: DataGrid_default.spacerRow, children: /* @__PURE__ */ jsx61("td", { colSpan, style: { height: virtualWindow.paddingTop, padding: 0 } }) }) : null,
8981
+ virtualWindow.items.map((entry, index) => renderDisplayRow(entry, virtualWindow.offset + index)),
8982
+ virtualized && virtualWindow.paddingBottom > 0 ? /* @__PURE__ */ jsx61("tr", { "aria-hidden": "true", className: DataGrid_default.spacerRow, children: /* @__PURE__ */ jsx61("td", { colSpan, style: { height: virtualWindow.paddingBottom, padding: 0 } }) }) : null,
8983
+ !displayRows.length ? /* @__PURE__ */ jsxs51("tr", { children: [
8984
+ /* @__PURE__ */ jsx61("th", { className: DataGrid_default.rowHeader, scope: "row", children: "No rows" }),
8985
+ /* @__PURE__ */ jsx61("td", { className: DataGrid_default.empty, colSpan: Math.max(dataColumns.length, 1), children: "No matching rows." })
8986
+ ] }) : null
8987
+ ] })
8988
+ ] }),
8989
+ onLoadMore || hasMore ? /* @__PURE__ */ jsx61("div", { className: DataGrid_default.infiniteFooter, ref: sentinelRef, children: loadingMore ? "Loading more\u2026" : hasMore ? "Scroll for more" : "End of results" }) : null
8990
+ ]
8609
8991
  }
8610
8992
  ),
8611
8993
  openMenu ? /* @__PURE__ */ jsx61("div", { className: DataGrid_default.menuHost, ref: menuHostRef, children: /* @__PURE__ */ jsx61(
8612
8994
  GridHeaderMenu,
8613
8995
  {
8614
8996
  ref: menuRef,
8615
- filter: (_b2 = filters[openMenu.key]) != null ? _b2 : "",
8616
- filterable: (_c2 = openMenuFeatures == null ? void 0 : openMenuFeatures.filterable) != null ? _c2 : false,
8997
+ filter: (_d2 = filters[openMenu.key]) != null ? _d2 : "",
8998
+ filterable: (_e2 = openMenuFeatures == null ? void 0 : openMenuFeatures.filterable) != null ? _e2 : false,
8617
8999
  label: openMenu.label,
8618
9000
  menuId: openMenu.menuId,
8619
9001
  sortDirection: (sort == null ? void 0 : sort.key) === openMenu.key ? sort.direction : void 0,
8620
- sortable: (_d2 = openMenuFeatures == null ? void 0 : openMenuFeatures.sortable) != null ? _d2 : false,
9002
+ sortable: (_f2 = openMenuFeatures == null ? void 0 : openMenuFeatures.sortable) != null ? _f2 : false,
8621
9003
  onFilterChange: (filter) => setFilters((current) => __spreadProps(__spreadValues({}, current), { [openMenu.key]: filter })),
8622
9004
  onMenuClose: closeHeaderMenu,
8623
9005
  onSortDirection: (direction) => setSortDirection(openMenu.key, direction)
@@ -8769,7 +9151,7 @@ var GridHeaderMenu = forwardRef(function GridHeaderMenu2({
8769
9151
  });
8770
9152
 
8771
9153
  // ../../components/Chart/Chart.tsx
8772
- import { useEffect as useEffect22, useId as useId17, useRef as useRef24, useState as useState30 } from "react";
9154
+ import { useEffect as useEffect23, useId as useId17, useRef as useRef24, useState as useState30 } from "react";
8773
9155
 
8774
9156
  // ../../components/Chart/sankeyLayout.ts
8775
9157
  var demoSankeyNodes = [
@@ -8909,6 +9291,12 @@ var chartDemoData = [
8909
9291
  { label: "May", value: 58, values: [58, 56, 36], x: 74, y: 58 },
8910
9292
  { label: "Jun", value: 88, values: [88, 62, 42], x: 88, y: 92 }
8911
9293
  ];
9294
+ var chartContourData = Array.from({ length: 36 }, (_, index) => {
9295
+ const x = index % 6;
9296
+ const y = Math.floor(index / 6);
9297
+ const value = 35 + Math.round(45 * Math.exp(-((x - 2.4) ** 2 + (y - 2.8) ** 2) / 4));
9298
+ return { label: `${x},${y}`, value, x, y };
9299
+ });
8912
9300
  function branchLeaves(prefix, parent, group, count = 5) {
8913
9301
  return Array.from({ length: count }, (_, index) => ({
8914
9302
  label: `${prefix}${index + 1}`,
@@ -9987,6 +10375,15 @@ var specializedChartVariants = /* @__PURE__ */ new Set([
9987
10375
  "sankey",
9988
10376
  "waterfall",
9989
10377
  "candlestick",
10378
+ "ohlc",
10379
+ "range-area",
10380
+ "range-bar",
10381
+ "error-bar",
10382
+ "parallel-coordinates",
10383
+ "contour",
10384
+ "surface",
10385
+ "bullet",
10386
+ "pareto",
9990
10387
  "box-plot",
9991
10388
  "histogram",
9992
10389
  "violin",
@@ -10013,6 +10410,12 @@ var cartesianSpecializedVariants = [
10013
10410
  "histogram",
10014
10411
  "waterfall",
10015
10412
  "candlestick",
10413
+ "ohlc",
10414
+ "range-area",
10415
+ "range-bar",
10416
+ "error-bar",
10417
+ "bullet",
10418
+ "pareto",
10016
10419
  "box-plot",
10017
10420
  "violin",
10018
10421
  "hexbin",
@@ -10024,15 +10427,30 @@ var cartesianSpecializedVariants = [
10024
10427
  "milestone-timeline"
10025
10428
  ];
10026
10429
  function specializedVariantHasYNumericAxis(variant) {
10027
- return !["timeline", "milestone-timeline", "gantt", "heatmap", "calendar-heatmap", "ridgeline", "hexbin"].includes(
10028
- variant
10029
- );
10430
+ return ![
10431
+ "timeline",
10432
+ "milestone-timeline",
10433
+ "gantt",
10434
+ "heatmap",
10435
+ "calendar-heatmap",
10436
+ "ridgeline",
10437
+ "hexbin",
10438
+ "contour",
10439
+ "surface",
10440
+ "parallel-coordinates"
10441
+ ].includes(variant);
10030
10442
  }
10031
10443
  function specializedVariantHasXCategoryLabels(variant) {
10032
10444
  return [
10033
10445
  "histogram",
10034
10446
  "waterfall",
10035
10447
  "candlestick",
10448
+ "ohlc",
10449
+ "range-area",
10450
+ "range-bar",
10451
+ "error-bar",
10452
+ "bullet",
10453
+ "pareto",
10036
10454
  "box-plot",
10037
10455
  "violin",
10038
10456
  "stream",
@@ -10043,7 +10461,7 @@ function specializedVariantHasXCategoryLabels(variant) {
10043
10461
  ].includes(variant);
10044
10462
  }
10045
10463
  function specializedVariantUsesSlotLabels(variant) {
10046
- return ["waterfall"].includes(variant);
10464
+ return ["waterfall", "range-area", "bullet"].includes(variant);
10047
10465
  }
10048
10466
  function getSeriesPlotBounds(plot) {
10049
10467
  return {
@@ -10311,55 +10729,441 @@ function Candlestick({ data, plot, showValues, styles, yMax, yMin }) {
10311
10729
  })
10312
10730
  ] });
10313
10731
  }
10314
- function BoxPlot({ data, plot, showValues, styles, yMax, yMin }) {
10315
- const barHalfWidth = getBoxPlotBarHalfWidth(plot, data.length);
10316
- const boxWidth = barHalfWidth * 2;
10732
+ function OhlcChart({ data, plot, showValues, styles, yMax, yMin }) {
10733
+ const bodyWidth = candlestickBodyWidth(plot, data.length);
10734
+ const barHalfWidth = bodyWidth / 2;
10735
+ const tick = Math.max(4, bodyWidth * 0.45);
10317
10736
  return /* @__PURE__ */ jsx62("g", { children: data.map((item, index) => {
10318
- var _a2, _b2, _c2, _d2, _e2;
10319
- const min = (_a2 = item.min) != null ? _a2 : item.value * 0.6;
10320
- const q1 = (_b2 = item.q1) != null ? _b2 : item.value * 0.78;
10321
- const median = (_c2 = item.median) != null ? _c2 : item.value;
10322
- const q3 = (_d2 = item.q3) != null ? _d2 : item.value * 1.18;
10323
- const maxV = (_e2 = item.max) != null ? _e2 : item.value * 1.35;
10737
+ var _a2, _b2, _c2, _d2;
10738
+ const open = (_a2 = item.open) != null ? _a2 : item.value * 0.9;
10739
+ const close = (_b2 = item.close) != null ? _b2 : item.value;
10740
+ const high = (_c2 = item.high) != null ? _c2 : item.value * 1.08;
10741
+ const low = (_d2 = item.low) != null ? _d2 : item.value * 0.82;
10324
10742
  const x = xForEdgeBarIndex(plot, index, data.length, barHalfWidth);
10325
- const seriesClass = chartClass(styles, index % paletteClasses.length);
10743
+ const bullish = close >= open;
10744
+ const openY = yForDomain(open, yMin, yMax, plot);
10745
+ const closeY = yForDomain(close, yMin, yMax, plot);
10746
+ const seriesClass = chartClass(styles, bullish ? 1 : 3);
10326
10747
  return /* @__PURE__ */ jsxs52("g", { children: [
10327
- /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x, x2: x, y1: yForDomain(min, yMin, yMax, plot), y2: yForDomain(maxV, yMin, yMax, plot) }),
10328
- /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - boxWidth / 2, x2: x + boxWidth / 2, y1: yForDomain(min, yMin, yMax, plot), y2: yForDomain(min, yMin, yMax, plot) }),
10329
- /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - boxWidth / 2, x2: x + boxWidth / 2, y1: yForDomain(maxV, yMin, yMax, plot), y2: yForDomain(maxV, yMin, yMax, plot) }),
10330
10748
  /* @__PURE__ */ jsx62(
10331
- "rect",
10749
+ "line",
10332
10750
  {
10333
- className: `${styles.area} ${seriesClass}`,
10334
- height: yForDomain(q1, yMin, yMax, plot) - yForDomain(q3, yMin, yMax, plot),
10335
- width: boxWidth,
10336
- x: x - boxWidth / 2,
10337
- y: yForDomain(q3, yMin, yMax, plot)
10751
+ className: `${styles.wick} ${seriesClass}`,
10752
+ x1: x,
10753
+ x2: x,
10754
+ y1: yForDomain(high, yMin, yMax, plot),
10755
+ y2: yForDomain(low, yMin, yMax, plot)
10338
10756
  }
10339
10757
  ),
10340
- /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, strokeWidth: "2", x1: x - boxWidth / 2, x2: x + boxWidth / 2, y1: yForDomain(median, yMin, yMax, plot), y2: yForDomain(median, yMin, yMax, plot) }),
10341
- showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x, y: yForDomain(maxV, yMin, yMax, plot) - 6, children: formatValue(median) }) : null
10758
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - tick, x2: x, y1: openY, y2: openY }),
10759
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x, x2: x + tick, y1: closeY, y2: closeY }),
10760
+ showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x, y: yForDomain(high, yMin, yMax, plot) - 6, children: formatValue(close) }) : null
10342
10761
  ] }, item.label);
10343
10762
  }) });
10344
10763
  }
10345
- function truncateLabel(label, maxChars) {
10346
- if (maxChars < 4) {
10347
- return "";
10348
- }
10349
- if (label.length <= maxChars) {
10350
- return label;
10764
+ function RangeAreaChart({ data, plot, showValues, styles, yMax, yMin }) {
10765
+ if (!data.length) {
10766
+ return null;
10351
10767
  }
10352
- return `${label.slice(0, maxChars - 1)}\u2026`;
10768
+ const points = data.map((item, index) => {
10769
+ var _a2, _b2, _c2, _d2;
10770
+ const low = (_b2 = (_a2 = item.low) != null ? _a2 : item.min) != null ? _b2 : item.value * 0.75;
10771
+ const high = (_d2 = (_c2 = item.high) != null ? _c2 : item.max) != null ? _d2 : item.value * 1.25;
10772
+ const mid = item.value;
10773
+ const x = xForSeriesCategoryIndex(plot, index, data.length);
10774
+ return {
10775
+ x,
10776
+ lowY: yForDomain(low, yMin, yMax, plot),
10777
+ midY: yForDomain(mid, yMin, yMax, plot),
10778
+ highY: yForDomain(high, yMin, yMax, plot),
10779
+ label: item.label,
10780
+ mid
10781
+ };
10782
+ });
10783
+ const band = [
10784
+ ...points.map((point) => `${point.x},${point.highY}`),
10785
+ ...[...points].reverse().map((point) => `${point.x},${point.lowY}`)
10786
+ ].join(" ");
10787
+ const midLine = points.map((point) => `${point.x},${point.midY}`).join(" ");
10788
+ return /* @__PURE__ */ jsxs52("g", { children: [
10789
+ /* @__PURE__ */ jsx62("polygon", { className: `${styles.area} ${chartClass(styles, 0)}`, points: band }),
10790
+ /* @__PURE__ */ jsx62("polyline", { className: `${styles.line} ${chartClass(styles, 1)}`, fill: "none", points: midLine }),
10791
+ showValues ? points.map((point) => /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x: point.x, y: point.highY - 6, children: formatValue(point.mid) }, point.label)) : null
10792
+ ] });
10353
10793
  }
10354
- function Treemap({ data, plot, showValues, styles }) {
10355
- const gap = 2;
10356
- const labelHeight = 18;
10357
- const items = data.map((item, index) => ({
10358
- group: item.group,
10359
- index,
10360
- label: item.label,
10361
- value: Math.max(0, item.value)
10362
- }));
10794
+ function RangeBarChart({ data, plot, showValues, styles, yMax, yMin }) {
10795
+ const bodyWidth = candlestickBodyWidth(plot, data.length);
10796
+ const barHalfWidth = bodyWidth / 2;
10797
+ return /* @__PURE__ */ jsx62("g", { children: data.map((item, index) => {
10798
+ var _a2, _b2, _c2, _d2;
10799
+ const low = (_b2 = (_a2 = item.low) != null ? _a2 : item.min) != null ? _b2 : item.value * 0.75;
10800
+ const high = (_d2 = (_c2 = item.high) != null ? _c2 : item.max) != null ? _d2 : item.value * 1.25;
10801
+ const x = xForEdgeBarIndex(plot, index, data.length, barHalfWidth);
10802
+ const top = yForDomain(high, yMin, yMax, plot);
10803
+ const bottom = yForDomain(low, yMin, yMax, plot);
10804
+ return /* @__PURE__ */ jsxs52("g", { children: [
10805
+ /* @__PURE__ */ jsx62(
10806
+ "rect",
10807
+ {
10808
+ className: `${styles.bar} ${chartClass(styles, index % paletteClasses.length)}`,
10809
+ height: Math.max(4, bottom - top),
10810
+ rx: "3",
10811
+ width: bodyWidth,
10812
+ x: x - bodyWidth / 2,
10813
+ y: top
10814
+ }
10815
+ ),
10816
+ showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x, y: top - 6, children: formatValue(high) }) : null
10817
+ ] }, item.label);
10818
+ }) });
10819
+ }
10820
+ function ErrorBarChart({ data, plot, showValues, styles, yMax, yMin }) {
10821
+ const bodyWidth = Math.min(18, candlestickBodyWidth(plot, data.length));
10822
+ const barHalfWidth = bodyWidth / 2;
10823
+ const cap = Math.max(4, bodyWidth * 0.55);
10824
+ return /* @__PURE__ */ jsx62("g", { children: data.map((item, index) => {
10825
+ var _a2, _b2, _c2;
10826
+ const error = (_a2 = item.error) != null ? _a2 : item.value * 0.12;
10827
+ const low = (_b2 = item.low) != null ? _b2 : item.value - error;
10828
+ const high = (_c2 = item.high) != null ? _c2 : item.value + error;
10829
+ const x = xForEdgeBarIndex(plot, index, data.length, barHalfWidth);
10830
+ const valueY = yForDomain(item.value, yMin, yMax, plot);
10831
+ const highY = yForDomain(high, yMin, yMax, plot);
10832
+ const lowY = yForDomain(low, yMin, yMax, plot);
10833
+ const seriesClass = chartClass(styles, index % paletteClasses.length);
10834
+ return /* @__PURE__ */ jsxs52("g", { children: [
10835
+ /* @__PURE__ */ jsx62(
10836
+ "rect",
10837
+ {
10838
+ className: `${styles.bar} ${seriesClass}`,
10839
+ height: Math.max(4, plot.bottom - valueY),
10840
+ rx: "2",
10841
+ width: bodyWidth,
10842
+ x: x - bodyWidth / 2,
10843
+ y: valueY
10844
+ }
10845
+ ),
10846
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x, x2: x, y1: highY, y2: lowY }),
10847
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - cap, x2: x + cap, y1: highY, y2: highY }),
10848
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - cap, x2: x + cap, y1: lowY, y2: lowY }),
10849
+ showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x, y: highY - 6, children: formatValue(item.value) }) : null
10850
+ ] }, item.label);
10851
+ }) });
10852
+ }
10853
+ function ParallelCoordinates({ data, plot, showValues, styles }) {
10854
+ const dims = Math.max(2, ...data.map((item) => {
10855
+ var _a2, _b2;
10856
+ return (_b2 = (_a2 = item.values) == null ? void 0 : _a2.length) != null ? _b2 : 0;
10857
+ }));
10858
+ if (!data.length || dims < 2) {
10859
+ return null;
10860
+ }
10861
+ const axes = Array.from({ length: dims }, (_, dim) => {
10862
+ const values = data.map((item) => {
10863
+ var _a2, _b2;
10864
+ return (_b2 = (_a2 = item.values) == null ? void 0 : _a2[dim]) != null ? _b2 : item.value;
10865
+ });
10866
+ const min = Math.min(...values);
10867
+ const max = Math.max(...values);
10868
+ return { min, max: max === min ? min + 1 : max };
10869
+ });
10870
+ const xAt = (dim) => dims <= 1 ? (plot.gridLeft + plot.gridRight) / 2 : plot.gridLeft + dim * (plot.gridRight - plot.gridLeft) / (dims - 1);
10871
+ return /* @__PURE__ */ jsxs52("g", { children: [
10872
+ axes.map((axis, dim) => {
10873
+ const x = xAt(dim);
10874
+ return /* @__PURE__ */ jsxs52("g", { children: [
10875
+ /* @__PURE__ */ jsx62("line", { className: styles.gridLine, x1: x, x2: x, y1: plot.top, y2: plot.bottom }),
10876
+ /* @__PURE__ */ jsxs52("text", { className: styles.axisLabel, textAnchor: "middle", x, y: plot.bottom + 16, children: [
10877
+ "D",
10878
+ dim + 1
10879
+ ] }),
10880
+ /* @__PURE__ */ jsx62("text", { className: styles.axisLabel, textAnchor: "middle", x, y: plot.top - 8, children: formatValue(axis.max) })
10881
+ ] }, `axis-${dim}`);
10882
+ }),
10883
+ data.map((item, index) => {
10884
+ var _a2, _b2;
10885
+ const points = Array.from({ length: dims }, (_, dim) => {
10886
+ var _a3, _b3;
10887
+ const value = (_b3 = (_a3 = item.values) == null ? void 0 : _a3[dim]) != null ? _b3 : item.value;
10888
+ const axis = axes[dim];
10889
+ const y = plot.bottom - (value - axis.min) / (axis.max - axis.min) * (plot.bottom - plot.top);
10890
+ return `${xAt(dim)},${y}`;
10891
+ }).join(" ");
10892
+ return /* @__PURE__ */ jsxs52("g", { children: [
10893
+ /* @__PURE__ */ jsx62("polyline", { className: `${styles.line} ${chartClass(styles, index % paletteClasses.length)}`, fill: "none", points }),
10894
+ showValues ? /* @__PURE__ */ jsx62(
10895
+ "text",
10896
+ {
10897
+ className: styles.valueLabel,
10898
+ textAnchor: "start",
10899
+ x: xAt(dims - 1) + 6,
10900
+ y: plot.bottom - (((_b2 = (_a2 = item.values) == null ? void 0 : _a2[dims - 1]) != null ? _b2 : item.value) - axes[dims - 1].min) / (axes[dims - 1].max - axes[dims - 1].min) * (plot.bottom - plot.top),
10901
+ children: item.label
10902
+ }
10903
+ ) : null
10904
+ ] }, item.label);
10905
+ })
10906
+ ] });
10907
+ }
10908
+ function ContourPlot({ data, plot, showValues, styles }) {
10909
+ const cols = Math.max(4, Math.ceil(Math.sqrt(Math.max(data.length, 1))));
10910
+ const rows = Math.max(3, Math.ceil(data.length / cols));
10911
+ const values = data.length ? data.map((item) => item.value) : Array.from({ length: cols * rows }, (_, index) => 20 + index * 17 % 80);
10912
+ const min = Math.min(...values);
10913
+ const max = Math.max(...values);
10914
+ const cellW = (plot.gridRight - plot.gridLeft) / cols;
10915
+ const cellH = (plot.bottom - plot.top) / rows;
10916
+ return /* @__PURE__ */ jsxs52("g", { children: [
10917
+ Array.from({ length: rows * cols }, (_, index) => {
10918
+ const value = values[index % values.length];
10919
+ const col = index % cols;
10920
+ const row = Math.floor(index / cols);
10921
+ const intensity = (value - min) / Math.max(1, max - min);
10922
+ const band = Math.min(5, Math.floor(intensity * 6));
10923
+ return /* @__PURE__ */ jsx62(
10924
+ "rect",
10925
+ {
10926
+ className: `${styles.area} ${chartClass(styles, band)}`,
10927
+ height: Math.max(2, cellH - 1),
10928
+ opacity: 0.35 + intensity * 0.55,
10929
+ rx: "2",
10930
+ width: Math.max(2, cellW - 1),
10931
+ x: plot.gridLeft + col * cellW,
10932
+ y: plot.top + row * cellH
10933
+ },
10934
+ `contour-${index}`
10935
+ );
10936
+ }),
10937
+ Array.from({ length: 4 }, (_, ring) => {
10938
+ const t = (ring + 1) / 5;
10939
+ const cx = plot.gridLeft + (plot.gridRight - plot.gridLeft) * 0.55;
10940
+ const cy = plot.top + (plot.bottom - plot.top) * 0.48;
10941
+ const rx = (plot.gridRight - plot.gridLeft) * (0.16 + t * 0.28);
10942
+ const ry = (plot.bottom - plot.top) * (0.14 + t * 0.24);
10943
+ return /* @__PURE__ */ jsx62(
10944
+ "ellipse",
10945
+ {
10946
+ className: `${styles.line} ${chartClass(styles, ring % paletteClasses.length)}`,
10947
+ cx,
10948
+ cy,
10949
+ fill: "none",
10950
+ rx,
10951
+ ry
10952
+ },
10953
+ `contour-ring-${ring}`
10954
+ );
10955
+ }),
10956
+ showValues ? /* @__PURE__ */ jsxs52(
10957
+ "text",
10958
+ {
10959
+ className: styles.valueLabel,
10960
+ textAnchor: "middle",
10961
+ x: (plot.gridLeft + plot.gridRight) / 2,
10962
+ y: plot.top + 14,
10963
+ children: [
10964
+ formatValue(max),
10965
+ " peak"
10966
+ ]
10967
+ }
10968
+ ) : null
10969
+ ] });
10970
+ }
10971
+ function SurfacePlot({ data, plot, showValues, styles }) {
10972
+ const cols = 8;
10973
+ const rows = 6;
10974
+ const values = data.length ? data.map((item) => item.value) : Array.from({ length: cols * rows }, (_, index) => 30 + index * 13 % 70);
10975
+ const min = Math.min(...values);
10976
+ const max = Math.max(...values);
10977
+ const cellW = (plot.gridRight - plot.gridLeft) / cols;
10978
+ const cellH = (plot.bottom - plot.top) / rows;
10979
+ const project = (col, row, value) => {
10980
+ const intensity = (value - min) / Math.max(1, max - min);
10981
+ const x = plot.gridLeft + col * cellW + row * cellW * 0.18;
10982
+ const y = plot.top + row * cellH * 0.72 + (1 - intensity) * cellH * 0.55;
10983
+ return { x, y };
10984
+ };
10985
+ return /* @__PURE__ */ jsxs52("g", { children: [
10986
+ Array.from(
10987
+ { length: rows - 1 },
10988
+ (_, row) => Array.from({ length: cols - 1 }, (_2, col) => {
10989
+ const i = row * cols + col;
10990
+ const v00 = values[i % values.length];
10991
+ const v10 = values[(i + 1) % values.length];
10992
+ const v01 = values[(i + cols) % values.length];
10993
+ const v11 = values[(i + cols + 1) % values.length];
10994
+ const p00 = project(col, row, v00);
10995
+ const p10 = project(col + 1, row, v10);
10996
+ const p01 = project(col, row + 1, v01);
10997
+ const p11 = project(col + 1, row + 1, v11);
10998
+ const avg = (v00 + v10 + v01 + v11) / 4;
10999
+ const band = Math.min(5, Math.floor((avg - min) / Math.max(1, max - min) * 6));
11000
+ return /* @__PURE__ */ jsx62(
11001
+ "polygon",
11002
+ {
11003
+ className: `${styles.area} ${chartClass(styles, band)}`,
11004
+ opacity: 0.55 + (avg - min) / Math.max(1, max - min) * 0.35,
11005
+ points: `${p00.x},${p00.y} ${p10.x},${p10.y} ${p11.x},${p11.y} ${p01.x},${p01.y}`
11006
+ },
11007
+ `surface-${row}-${col}`
11008
+ );
11009
+ })
11010
+ ),
11011
+ showValues ? /* @__PURE__ */ jsx62(
11012
+ "text",
11013
+ {
11014
+ className: styles.valueLabel,
11015
+ textAnchor: "middle",
11016
+ x: (plot.gridLeft + plot.gridRight) / 2,
11017
+ y: plot.top + 14,
11018
+ children: "Surface 2D projection"
11019
+ }
11020
+ ) : null
11021
+ ] });
11022
+ }
11023
+ function BulletChart({ data, plot, showValues, styles, yMax, yMin }) {
11024
+ const laneHeight = Math.min(28, (plot.bottom - plot.top) / Math.max(data.length, 1) * 0.62);
11025
+ return /* @__PURE__ */ jsx62("g", { children: data.map((item, index) => {
11026
+ var _a2, _b2, _c2, _d2;
11027
+ const slot = (plot.bottom - plot.top) / Math.max(data.length, 1);
11028
+ const y = plot.top + index * slot + (slot - laneHeight) / 2;
11029
+ const max = Math.max((_a2 = item.max) != null ? _a2 : yMax, (_b2 = item.target) != null ? _b2 : item.value, item.value, 1);
11030
+ const scale = (value) => plot.gridLeft + (value - yMin) / Math.max(1, max - yMin) * (plot.gridRight - plot.gridLeft);
11031
+ const actual = scale(item.value);
11032
+ const target = scale((_c2 = item.target) != null ? _c2 : item.value * 0.85);
11033
+ const qualitative = scale((_d2 = item.max) != null ? _d2 : max);
11034
+ return /* @__PURE__ */ jsxs52("g", { children: [
11035
+ /* @__PURE__ */ jsx62(
11036
+ "rect",
11037
+ {
11038
+ className: `${styles.area} ${chartClass(styles, 5)}`,
11039
+ height: laneHeight,
11040
+ rx: "4",
11041
+ width: Math.max(4, qualitative - plot.gridLeft),
11042
+ x: plot.gridLeft,
11043
+ y
11044
+ }
11045
+ ),
11046
+ /* @__PURE__ */ jsx62(
11047
+ "rect",
11048
+ {
11049
+ className: `${styles.bar} ${chartClass(styles, 0)}`,
11050
+ height: laneHeight * 0.45,
11051
+ rx: "2",
11052
+ width: Math.max(4, actual - plot.gridLeft),
11053
+ x: plot.gridLeft,
11054
+ y: y + laneHeight * 0.275
11055
+ }
11056
+ ),
11057
+ /* @__PURE__ */ jsx62(
11058
+ "line",
11059
+ {
11060
+ className: `${styles.wick} ${chartClass(styles, 3)}`,
11061
+ strokeWidth: "3",
11062
+ x1: target,
11063
+ x2: target,
11064
+ y1: y,
11065
+ y2: y + laneHeight
11066
+ }
11067
+ ),
11068
+ /* @__PURE__ */ jsx62("text", { className: styles.axisLabel, dominantBaseline: "middle", x: plot.gridLeft - 8, y: y + laneHeight / 2, textAnchor: "end", children: item.label }),
11069
+ showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, x: actual + 6, y: y + laneHeight / 2 + 4, children: formatValue(item.value) }) : null
11070
+ ] }, item.label);
11071
+ }) });
11072
+ }
11073
+ function ParetoChart({ data, plot, showValues, styles }) {
11074
+ const sorted = [...data].sort((a, b) => b.value - a.value);
11075
+ const total = sorted.reduce((sum, item) => sum + Math.max(0, item.value), 0) || 1;
11076
+ const valueMax = Math.max(1, ...sorted.map((item) => item.value));
11077
+ let running = 0;
11078
+ const bodyWidth = candlestickBodyWidth(plot, sorted.length);
11079
+ const barHalfWidth = bodyWidth / 2;
11080
+ const points = sorted.map((item, index) => {
11081
+ running += Math.max(0, item.value);
11082
+ const cumulative = running / total * 100;
11083
+ const x = xForEdgeBarIndex(plot, index, sorted.length, barHalfWidth);
11084
+ return __spreadProps(__spreadValues({}, item), { cumulative, x });
11085
+ });
11086
+ const linePoints = points.map((item) => `${item.x},${yForDomain(item.cumulative, 0, 100, plot)}`).join(" ");
11087
+ return /* @__PURE__ */ jsxs52("g", { children: [
11088
+ points.map((item) => {
11089
+ const top = yForDomain(item.value, 0, valueMax, plot);
11090
+ return /* @__PURE__ */ jsxs52("g", { children: [
11091
+ /* @__PURE__ */ jsx62(
11092
+ "rect",
11093
+ {
11094
+ className: `${styles.bar} ${chartClass(styles, 0)}`,
11095
+ height: Math.max(4, plot.bottom - top),
11096
+ rx: "2",
11097
+ width: bodyWidth,
11098
+ x: item.x - bodyWidth / 2,
11099
+ y: top
11100
+ }
11101
+ ),
11102
+ showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x: item.x, y: top - 6, children: formatValue(item.value) }) : null,
11103
+ /* @__PURE__ */ jsx62(
11104
+ "circle",
11105
+ {
11106
+ className: `${styles.point} ${chartClass(styles, 1)}`,
11107
+ cx: item.x,
11108
+ cy: yForDomain(item.cumulative, 0, 100, plot),
11109
+ r: "3.5"
11110
+ }
11111
+ )
11112
+ ] }, item.label);
11113
+ }),
11114
+ /* @__PURE__ */ jsx62("polyline", { className: `${styles.line} ${chartClass(styles, 1)}`, fill: "none", points: linePoints }),
11115
+ /* @__PURE__ */ jsx62("text", { className: styles.axisLabel, textAnchor: "start", x: plot.gridRight + 6, y: plot.top + 4, children: "%" })
11116
+ ] });
11117
+ }
11118
+ function BoxPlot({ data, plot, showValues, styles, yMax, yMin }) {
11119
+ const barHalfWidth = getBoxPlotBarHalfWidth(plot, data.length);
11120
+ const boxWidth = barHalfWidth * 2;
11121
+ return /* @__PURE__ */ jsx62("g", { children: data.map((item, index) => {
11122
+ var _a2, _b2, _c2, _d2, _e2;
11123
+ const min = (_a2 = item.min) != null ? _a2 : item.value * 0.6;
11124
+ const q1 = (_b2 = item.q1) != null ? _b2 : item.value * 0.78;
11125
+ const median = (_c2 = item.median) != null ? _c2 : item.value;
11126
+ const q3 = (_d2 = item.q3) != null ? _d2 : item.value * 1.18;
11127
+ const maxV = (_e2 = item.max) != null ? _e2 : item.value * 1.35;
11128
+ const x = xForEdgeBarIndex(plot, index, data.length, barHalfWidth);
11129
+ const seriesClass = chartClass(styles, index % paletteClasses.length);
11130
+ return /* @__PURE__ */ jsxs52("g", { children: [
11131
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x, x2: x, y1: yForDomain(min, yMin, yMax, plot), y2: yForDomain(maxV, yMin, yMax, plot) }),
11132
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - boxWidth / 2, x2: x + boxWidth / 2, y1: yForDomain(min, yMin, yMax, plot), y2: yForDomain(min, yMin, yMax, plot) }),
11133
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, x1: x - boxWidth / 2, x2: x + boxWidth / 2, y1: yForDomain(maxV, yMin, yMax, plot), y2: yForDomain(maxV, yMin, yMax, plot) }),
11134
+ /* @__PURE__ */ jsx62(
11135
+ "rect",
11136
+ {
11137
+ className: `${styles.area} ${seriesClass}`,
11138
+ height: yForDomain(q1, yMin, yMax, plot) - yForDomain(q3, yMin, yMax, plot),
11139
+ width: boxWidth,
11140
+ x: x - boxWidth / 2,
11141
+ y: yForDomain(q3, yMin, yMax, plot)
11142
+ }
11143
+ ),
11144
+ /* @__PURE__ */ jsx62("line", { className: `${styles.wick} ${seriesClass}`, strokeWidth: "2", x1: x - boxWidth / 2, x2: x + boxWidth / 2, y1: yForDomain(median, yMin, yMax, plot), y2: yForDomain(median, yMin, yMax, plot) }),
11145
+ showValues ? /* @__PURE__ */ jsx62("text", { className: styles.valueLabel, textAnchor: "middle", x, y: yForDomain(maxV, yMin, yMax, plot) - 6, children: formatValue(median) }) : null
11146
+ ] }, item.label);
11147
+ }) });
11148
+ }
11149
+ function truncateLabel(label, maxChars) {
11150
+ if (maxChars < 4) {
11151
+ return "";
11152
+ }
11153
+ if (label.length <= maxChars) {
11154
+ return label;
11155
+ }
11156
+ return `${label.slice(0, maxChars - 1)}\u2026`;
11157
+ }
11158
+ function Treemap({ data, plot, showValues, styles }) {
11159
+ const gap = 2;
11160
+ const labelHeight = 18;
11161
+ const items = data.map((item, index) => ({
11162
+ group: item.group,
11163
+ index,
11164
+ label: item.label,
11165
+ value: Math.max(0, item.value)
11166
+ }));
10363
11167
  const layout = layoutGroupedTreemap(
10364
11168
  items,
10365
11169
  plot.gridLeft,
@@ -11040,6 +11844,24 @@ function SpecializedChart(props) {
11040
11844
  return /* @__PURE__ */ jsx62(Waterfall, __spreadValues({}, props));
11041
11845
  case "candlestick":
11042
11846
  return /* @__PURE__ */ jsx62(Candlestick, __spreadValues({}, props));
11847
+ case "ohlc":
11848
+ return /* @__PURE__ */ jsx62(OhlcChart, __spreadValues({}, props));
11849
+ case "range-area":
11850
+ return /* @__PURE__ */ jsx62(RangeAreaChart, __spreadValues({}, props));
11851
+ case "range-bar":
11852
+ return /* @__PURE__ */ jsx62(RangeBarChart, __spreadValues({}, props));
11853
+ case "error-bar":
11854
+ return /* @__PURE__ */ jsx62(ErrorBarChart, __spreadValues({}, props));
11855
+ case "parallel-coordinates":
11856
+ return /* @__PURE__ */ jsx62(ParallelCoordinates, __spreadValues({}, props));
11857
+ case "contour":
11858
+ return /* @__PURE__ */ jsx62(ContourPlot, __spreadValues({}, props));
11859
+ case "surface":
11860
+ return /* @__PURE__ */ jsx62(SurfacePlot, __spreadValues({}, props));
11861
+ case "bullet":
11862
+ return /* @__PURE__ */ jsx62(BulletChart, __spreadValues({}, props));
11863
+ case "pareto":
11864
+ return /* @__PURE__ */ jsx62(ParetoChart, __spreadValues({}, props));
11043
11865
  case "box-plot":
11044
11866
  return /* @__PURE__ */ jsx62(BoxPlot, __spreadValues({}, props));
11045
11867
  case "treemap":
@@ -11084,10 +11906,10 @@ function SpecializedChart(props) {
11084
11906
  }
11085
11907
 
11086
11908
  // ../../components/Chart/Chart.module.css
11087
- var Chart_default = {"slice":"opus_L6guCK_slice","land":"opus_L6guCK_land","mapLand":"opus_L6guCK_mapLand","axisGuide":"opus_L6guCK_axisGuide","graphLink":"opus_L6guCK_graphLink","radarGrid":"opus_L6guCK_radarGrid","wick":"opus_L6guCK_wick","link":"opus_L6guCK_link","sankeyNode":"opus_L6guCK_sankeyNode","legendItem":"opus_L6guCK_legendItem","seriesE":"opus_L6guCK_seriesE","axisLabels":"opus_L6guCK_axisLabels","meta":"opus_L6guCK_meta","area":"opus_L6guCK_area","valueLabel":"opus_L6guCK_valueLabel","seriesF":"opus_L6guCK_seriesF","header":"opus_L6guCK_header","grid":"opus_L6guCK_grid","seriesB":"opus_L6guCK_seriesB","legend":"opus_L6guCK_legend","sankeyCenterLabel":"opus_L6guCK_sankeyCenterLabel","ring":"opus_L6guCK_ring","graphLinkColored":"opus_L6guCK_graphLinkColored","funnel":"opus_L6guCK_funnel","svg":"opus_L6guCK_svg","mapValue":"opus_L6guCK_mapValue","violin":"opus_L6guCK_violin","ridge":"opus_L6guCK_ridge","sankeySideName":"opus_L6guCK_sankeySideName","bar":"opus_L6guCK_bar","sankeySideValue":"opus_L6guCK_sankeySideValue","treemapLabel":"opus_L6guCK_treemapLabel","graphNode":"opus_L6guCK_graphNode","axisTick":"opus_L6guCK_axisTick","mapRegion":"opus_L6guCK_mapRegion","seriesD":"opus_L6guCK_seriesD","seriesA":"opus_L6guCK_seriesA","sankeySideLabel":"opus_L6guCK_sankeySideLabel","funnelText":"opus_L6guCK_funnelText","seriesC":"opus_L6guCK_seriesC","packParent":"opus_L6guCK_packParent","graphNodeRing":"opus_L6guCK_graphNodeRing","radarArea":"opus_L6guCK_radarArea","axisTitle":"opus_L6guCK_axisTitle","line":"opus_L6guCK_line","point":"opus_L6guCK_point","treemapGroupLabel":"opus_L6guCK_treemapGroupLabel","sankeyLabelBox":"opus_L6guCK_sankeyLabelBox","legendSwatch":"opus_L6guCK_legendSwatch","title":"opus_L6guCK_title","axes":"opus_L6guCK_axes","funnelGuide":"opus_L6guCK_funnelGuide","sankeyLink":"opus_L6guCK_sankeyLink","packLabel":"opus_L6guCK_packLabel","graphLabel":"opus_L6guCK_graphLabel","axisLine":"opus_L6guCK_axisLine","chart":"opus_L6guCK_chart","mapLabel":"opus_L6guCK_mapLabel"};
11909
+ var Chart_default = {"mapValue":"opus_L6guCK_mapValue","header":"opus_L6guCK_header","graphLink":"opus_L6guCK_graphLink","graphLinkColored":"opus_L6guCK_graphLinkColored","wick":"opus_L6guCK_wick","legendItem":"opus_L6guCK_legendItem","sankeyCenterLabel":"opus_L6guCK_sankeyCenterLabel","mapRegion":"opus_L6guCK_mapRegion","sankeyLink":"opus_L6guCK_sankeyLink","link":"opus_L6guCK_link","sankeySideName":"opus_L6guCK_sankeySideName","violin":"opus_L6guCK_violin","sankeySideLabel":"opus_L6guCK_sankeySideLabel","treemapGroupLabel":"opus_L6guCK_treemapGroupLabel","mapLabel":"opus_L6guCK_mapLabel","meta":"opus_L6guCK_meta","funnel":"opus_L6guCK_funnel","graphNode":"opus_L6guCK_graphNode","area":"opus_L6guCK_area","axes":"opus_L6guCK_axes","seriesE":"opus_L6guCK_seriesE","funnelGuide":"opus_L6guCK_funnelGuide","land":"opus_L6guCK_land","seriesA":"opus_L6guCK_seriesA","radarArea":"opus_L6guCK_radarArea","ridge":"opus_L6guCK_ridge","sankeyLabelBox":"opus_L6guCK_sankeyLabelBox","bar":"opus_L6guCK_bar","legendSwatch":"opus_L6guCK_legendSwatch","seriesC":"opus_L6guCK_seriesC","point":"opus_L6guCK_point","line":"opus_L6guCK_line","radarGrid":"opus_L6guCK_radarGrid","packLabel":"opus_L6guCK_packLabel","axisLine":"opus_L6guCK_axisLine","chart":"opus_L6guCK_chart","mapLand":"opus_L6guCK_mapLand","sankeyNode":"opus_L6guCK_sankeyNode","ring":"opus_L6guCK_ring","valueLabel":"opus_L6guCK_valueLabel","seriesF":"opus_L6guCK_seriesF","graphNodeRing":"opus_L6guCK_graphNodeRing","graphLabel":"opus_L6guCK_graphLabel","seriesB":"opus_L6guCK_seriesB","title":"opus_L6guCK_title","slice":"opus_L6guCK_slice","svg":"opus_L6guCK_svg","treemapLabel":"opus_L6guCK_treemapLabel","axisTitle":"opus_L6guCK_axisTitle","legend":"opus_L6guCK_legend","sankeySideValue":"opus_L6guCK_sankeySideValue","axisLabels":"opus_L6guCK_axisLabels","grid":"opus_L6guCK_grid","axisTick":"opus_L6guCK_axisTick","axisGuide":"opus_L6guCK_axisGuide","seriesD":"opus_L6guCK_seriesD","packParent":"opus_L6guCK_packParent","funnelText":"opus_L6guCK_funnelText"};
11088
11910
 
11089
11911
  // ../../components/Chart/Chart.tsx
11090
- import { Fragment as Fragment7, jsx as jsx63, jsxs as jsxs53 } from "react/jsx-runtime";
11912
+ import { Fragment as Fragment8, jsx as jsx63, jsxs as jsxs53 } from "react/jsx-runtime";
11091
11913
  var cartesianVariants = [
11092
11914
  "bar-vertical",
11093
11915
  "bar-horizontal",
@@ -11309,7 +12131,7 @@ function getWaterfallDomain(data) {
11309
12131
  return { min: min - pad, max: max + pad };
11310
12132
  }
11311
12133
  function getChartYDomain(variant, data, series, fallbackMax) {
11312
- if (variant === "candlestick") {
12134
+ if (variant === "candlestick" || variant === "ohlc") {
11313
12135
  const lows = data.map((item) => {
11314
12136
  var _a2;
11315
12137
  return (_a2 = item.low) != null ? _a2 : item.value * 0.82;
@@ -11323,6 +12145,45 @@ function getChartYDomain(variant, data, series, fallbackMax) {
11323
12145
  const pad = Math.max(0, (max - min) * 0.04);
11324
12146
  return { min: min - pad, max: max + pad };
11325
12147
  }
12148
+ if (variant === "range-area" || variant === "range-bar") {
12149
+ const lows = data.map((item) => {
12150
+ var _a2, _b2;
12151
+ return (_b2 = (_a2 = item.low) != null ? _a2 : item.min) != null ? _b2 : item.value * 0.75;
12152
+ });
12153
+ const highs = data.map((item) => {
12154
+ var _a2, _b2;
12155
+ return (_b2 = (_a2 = item.high) != null ? _a2 : item.max) != null ? _b2 : item.value * 1.25;
12156
+ });
12157
+ const min = Math.min(...lows);
12158
+ const max = Math.max(...highs);
12159
+ const pad = Math.max(0, (max - min) * 0.06);
12160
+ return { min: Math.max(0, min - pad), max: max + pad };
12161
+ }
12162
+ if (variant === "error-bar") {
12163
+ const lows = data.map((item) => {
12164
+ var _a2, _b2;
12165
+ const error = (_a2 = item.error) != null ? _a2 : item.value * 0.12;
12166
+ return ((_b2 = item.low) != null ? _b2 : item.value) - (item.low == null ? error : 0);
12167
+ });
12168
+ const highs = data.map((item) => {
12169
+ var _a2, _b2;
12170
+ const error = (_a2 = item.error) != null ? _a2 : item.value * 0.12;
12171
+ return ((_b2 = item.high) != null ? _b2 : item.value) + (item.high == null ? error : 0);
12172
+ });
12173
+ const min = Math.min(0, ...lows);
12174
+ const max = Math.max(...highs);
12175
+ return { min, max: max * 1.08 };
12176
+ }
12177
+ if (variant === "bullet") {
12178
+ const highs = data.map((item) => {
12179
+ var _a2, _b2;
12180
+ return Math.max(item.value, (_a2 = item.target) != null ? _a2 : item.value, (_b2 = item.max) != null ? _b2 : item.value);
12181
+ });
12182
+ return { min: 0, max: Math.max(1, ...highs) * 1.08 };
12183
+ }
12184
+ if (variant === "pareto") {
12185
+ return { min: 0, max: Math.max(1, ...data.map((item) => item.value)) * 1.08 };
12186
+ }
11326
12187
  if (variant === "box-plot") {
11327
12188
  const lows = data.map((item) => {
11328
12189
  var _a2;
@@ -12002,7 +12863,7 @@ function Chart({
12002
12863
  })
12003
12864
  ) : variant === "stacked-area" ? stackedSeriesMax(series) : useDomainAxis ? yDomain.max : max;
12004
12865
  const axisMin = useDomainAxis ? yDomain.min : 0;
12005
- useEffect22(() => {
12866
+ useEffect23(() => {
12006
12867
  const svg = svgRef.current;
12007
12868
  if (!svg) {
12008
12869
  return;
@@ -12132,7 +12993,7 @@ function Chart({
12132
12993
  variant === "gantt" ? /* @__PURE__ */ jsx63(GanttRowLabels, { data, plot: activePlot, styles: Chart_default }) : null,
12133
12994
  variant === "heatmap" && showAxis ? /* @__PURE__ */ jsx63(HeatmapAxisLabels, { plot: activePlot, styles: Chart_default }) : null,
12134
12995
  variant === "calendar-heatmap" && showAxis ? /* @__PURE__ */ jsx63(CalendarHeatmapAxisLabels, { plot: activePlot, styles: Chart_default }) : null,
12135
- isSpecializedChartVariant(variant) ? /* @__PURE__ */ jsxs53(Fragment7, { children: [
12996
+ isSpecializedChartVariant(variant) ? /* @__PURE__ */ jsxs53(Fragment8, { children: [
12136
12997
  /* @__PURE__ */ jsx63("defs", { children: /* @__PURE__ */ jsx63("clipPath", { id: plotClipId, children: /* @__PURE__ */ jsx63(
12137
12998
  "rect",
12138
12999
  {
@@ -12167,7 +13028,7 @@ function Chart({
12167
13028
  slotBounds: specializedVariantUsesSlotLabels(variant) ? { left: activePlot.gridLeft, right: activePlot.gridRight } : void 0,
12168
13029
  slotCentered: specializedVariantUsesSlotLabels(variant),
12169
13030
  timeline: variant === "timeline" || variant === "milestone-timeline",
12170
- edgeBarHalfWidth: variant === "candlestick" ? getCandlestickBarHalfWidth(activePlot, data.length) : variant === "histogram" ? getHistogramBarHalfWidth(activePlot, data.length) : variant === "box-plot" ? getBoxPlotBarHalfWidth(activePlot, data.length) : variant === "violin" ? getViolinBarHalfWidth(activePlot, data.length) : void 0
13031
+ edgeBarHalfWidth: variant === "candlestick" || variant === "ohlc" || variant === "range-bar" || variant === "error-bar" || variant === "pareto" ? getCandlestickBarHalfWidth(activePlot, data.length) : variant === "histogram" ? getHistogramBarHalfWidth(activePlot, data.length) : variant === "box-plot" ? getBoxPlotBarHalfWidth(activePlot, data.length) : variant === "violin" ? getViolinBarHalfWidth(activePlot, data.length) : void 0
12171
13032
  }
12172
13033
  ) : null
12173
13034
  ] }),
@@ -12184,7 +13045,7 @@ function Chart({
12184
13045
  }
12185
13046
 
12186
13047
  // ../../components/Skeleton/Skeleton.module.css
12187
- var Skeleton_default = {"skeletonPulse":"opus_27r9Md_skeletonPulse","avatar":"opus_27r9Md_avatar","line":"opus_27r9Md_line","tableCell":"opus_27r9Md_tableCell","skeletonShimmer":"opus_27r9Md_skeletonShimmer","avatarContent":"opus_27r9Md_avatarContent","media":"opus_27r9Md_media","stack":"opus_27r9Md_stack","tableRow":"opus_27r9Md_tableRow","skeleton":"opus_27r9Md_skeleton"};
13048
+ var Skeleton_default = {"skeleton":"opus_27r9Md_skeleton","skeletonPulse":"opus_27r9Md_skeletonPulse","tableCell":"opus_27r9Md_tableCell","media":"opus_27r9Md_media","avatar":"opus_27r9Md_avatar","avatarContent":"opus_27r9Md_avatarContent","stack":"opus_27r9Md_stack","line":"opus_27r9Md_line","tableRow":"opus_27r9Md_tableRow","skeletonShimmer":"opus_27r9Md_skeletonShimmer"};
12188
13049
 
12189
13050
  // ../../components/Skeleton/Skeleton.tsx
12190
13051
  import { jsx as jsx64, jsxs as jsxs54 } from "react/jsx-runtime";
@@ -12225,17 +13086,17 @@ function Skeleton({
12225
13086
  }
12226
13087
 
12227
13088
  // ../../components/Carousel/Carousel.tsx
12228
- import { useCallback as useCallback14, useEffect as useEffect24, useMemo as useMemo15, useRef as useRef26, useState as useState32 } from "react";
12229
- import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons";
13089
+ import { useCallback as useCallback14, useEffect as useEffect25, useMemo as useMemo15, useRef as useRef26, useState as useState32 } from "react";
13090
+ import { faChevronLeft, faChevronRight as faChevronRight2 } from "@fortawesome/free-solid-svg-icons";
12230
13091
  import { FontAwesomeIcon as FontAwesomeIcon8 } from "@fortawesome/react-fontawesome";
12231
13092
 
12232
13093
  // ../../components/Lightbox/Lightbox.tsx
12233
- import { useCallback as useCallback13, useEffect as useEffect23, useRef as useRef25, useState as useState31 } from "react";
13094
+ import { useCallback as useCallback13, useEffect as useEffect24, useRef as useRef25, useState as useState31 } from "react";
12234
13095
  import { faXmark as faXmark2 } from "@fortawesome/free-solid-svg-icons";
12235
13096
  import { FontAwesomeIcon as FontAwesomeIcon7 } from "@fortawesome/react-fontawesome";
12236
13097
 
12237
13098
  // ../../components/Lightbox/Lightbox.module.css
12238
- var Lightbox_default = {"lightbox":"opus_s7Rpyv_lightbox","lightboxPanelOut":"opus_s7Rpyv_lightboxPanelOut","close":"opus_s7Rpyv_close","trigger":"opus_s7Rpyv_trigger","lightboxFadeOut":"opus_s7Rpyv_lightboxFadeOut","lightboxPanelIn":"opus_s7Rpyv_lightboxPanelIn","overlay":"opus_s7Rpyv_overlay","panel":"opus_s7Rpyv_panel","image":"opus_s7Rpyv_image","caption":"opus_s7Rpyv_caption","frame":"opus_s7Rpyv_frame","closeIcon":"opus_s7Rpyv_closeIcon","lightboxFadeIn":"opus_s7Rpyv_lightboxFadeIn"};
13099
+ var Lightbox_default = {"lightboxPanelIn":"opus_s7Rpyv_lightboxPanelIn","trigger":"opus_s7Rpyv_trigger","lightboxFadeOut":"opus_s7Rpyv_lightboxFadeOut","lightbox":"opus_s7Rpyv_lightbox","close":"opus_s7Rpyv_close","image":"opus_s7Rpyv_image","closeIcon":"opus_s7Rpyv_closeIcon","lightboxFadeIn":"opus_s7Rpyv_lightboxFadeIn","caption":"opus_s7Rpyv_caption","lightboxPanelOut":"opus_s7Rpyv_lightboxPanelOut","overlay":"opus_s7Rpyv_overlay","frame":"opus_s7Rpyv_frame","panel":"opus_s7Rpyv_panel"};
12239
13100
 
12240
13101
  // ../../components/Lightbox/Lightbox.tsx
12241
13102
  import { jsx as jsx65, jsxs as jsxs55 } from "react/jsx-runtime";
@@ -12268,7 +13129,7 @@ function Lightbox({
12268
13129
  initialFocusRef: closeRef,
12269
13130
  restoreFocus: true
12270
13131
  });
12271
- useEffect23(() => {
13132
+ useEffect24(() => {
12272
13133
  if (!isOpen || !dismissOnEscape) {
12273
13134
  return;
12274
13135
  }
@@ -12280,7 +13141,7 @@ function Lightbox({
12280
13141
  window.addEventListener("keydown", handleKeyDown);
12281
13142
  return () => window.removeEventListener("keydown", handleKeyDown);
12282
13143
  }, [dismissOnEscape, isOpen, setOpen]);
12283
- useEffect23(() => {
13144
+ useEffect24(() => {
12284
13145
  if (isOpen) {
12285
13146
  const timeout2 = window.setTimeout(() => setIsRendered(true), 0);
12286
13147
  return () => window.clearTimeout(timeout2);
@@ -12350,10 +13211,10 @@ function Lightbox({
12350
13211
  }
12351
13212
 
12352
13213
  // ../../components/Carousel/Carousel.module.css
12353
- var Carousel_default = {"visuallyHidden":"opus_N4occJ_visuallyHidden","stage":"opus_N4occJ_stage","slide":"opus_N4occJ_slide","pips":"opus_N4occJ_pips","track":"opus_N4occJ_track","nav":"opus_N4occJ_nav","navIcon":"opus_N4occJ_navIcon","footer":"opus_N4occJ_footer","carousel":"opus_N4occJ_carousel","image":"opus_N4occJ_image","caption":"opus_N4occJ_caption","pip":"opus_N4occJ_pip","empty":"opus_N4occJ_empty"};
13214
+ var Carousel_default = {"pips":"opus_N4occJ_pips","pip":"opus_N4occJ_pip","navIcon":"opus_N4occJ_navIcon","visuallyHidden":"opus_N4occJ_visuallyHidden","slide":"opus_N4occJ_slide","stage":"opus_N4occJ_stage","empty":"opus_N4occJ_empty","track":"opus_N4occJ_track","image":"opus_N4occJ_image","footer":"opus_N4occJ_footer","carousel":"opus_N4occJ_carousel","nav":"opus_N4occJ_nav","caption":"opus_N4occJ_caption"};
12354
13215
 
12355
13216
  // ../../components/Carousel/Carousel.tsx
12356
- import { Fragment as Fragment8, jsx as jsx66, jsxs as jsxs56 } from "react/jsx-runtime";
13217
+ import { Fragment as Fragment9, jsx as jsx66, jsxs as jsxs56 } from "react/jsx-runtime";
12357
13218
  function safeIndex(index, total) {
12358
13219
  if (total <= 0) {
12359
13220
  return 0;
@@ -12407,7 +13268,7 @@ function Carousel({
12407
13268
  const [transitionEnabled, setTransitionEnabled] = useState32(true);
12408
13269
  const [isAnimating, setIsAnimating] = useState32(false);
12409
13270
  const isJumpingRef = useRef26(false);
12410
- useEffect24(() => {
13271
+ useEffect25(() => {
12411
13272
  if (images.length === 0) {
12412
13273
  return;
12413
13274
  }
@@ -12552,7 +13413,7 @@ function Carousel({
12552
13413
  })
12553
13414
  }
12554
13415
  ),
12555
- hasMultiple ? /* @__PURE__ */ jsxs56(Fragment8, { children: [
13416
+ hasMultiple ? /* @__PURE__ */ jsxs56(Fragment9, { children: [
12556
13417
  /* @__PURE__ */ jsx66(
12557
13418
  "button",
12558
13419
  {
@@ -12574,7 +13435,7 @@ function Carousel({
12574
13435
  disabled: isAnimating || !loopEnabled && trackIndex === trackImages.length - 1,
12575
13436
  type: "button",
12576
13437
  onClick: handleNext,
12577
- children: /* @__PURE__ */ jsx66(FontAwesomeIcon8, { "aria-hidden": "true", className: Carousel_default.navIcon, icon: faChevronRight })
13438
+ children: /* @__PURE__ */ jsx66(FontAwesomeIcon8, { "aria-hidden": "true", className: Carousel_default.navIcon, icon: faChevronRight2 })
12578
13439
  }
12579
13440
  ),
12580
13441
  showPips ? /* @__PURE__ */ jsx66("div", { "aria-label": "Choose slide", className: Carousel_default.pips, children: images.map((image, index) => {
@@ -12602,7 +13463,7 @@ function Carousel({
12602
13463
  }
12603
13464
 
12604
13465
  // ../../components/ImageThumbnail/ImageThumbnail.module.css
12605
- var ImageThumbnail_default = {"thumbnail":"opus_Gp1o-9_thumbnail","figure":"opus_Gp1o-9_figure","image":"opus_Gp1o-9_image","caption":"opus_Gp1o-9_caption"};
13466
+ var ImageThumbnail_default = {"thumbnail":"opus_Gp1o-9_thumbnail","caption":"opus_Gp1o-9_caption","image":"opus_Gp1o-9_image","figure":"opus_Gp1o-9_figure"};
12606
13467
 
12607
13468
  // ../../components/ImageThumbnail/ImageThumbnail.tsx
12608
13469
  import { jsx as jsx67, jsxs as jsxs57 } from "react/jsx-runtime";
@@ -12671,13 +13532,13 @@ function ImageGallery({
12671
13532
  }
12672
13533
 
12673
13534
  // ../../components/ModelViewer/ModelViewer.tsx
12674
- import { createElement, useCallback as useCallback15, useEffect as useEffect26, useRef as useRef28, useState as useState34 } from "react";
13535
+ import { createElement, useCallback as useCallback15, useEffect as useEffect27, useRef as useRef28, useState as useState34 } from "react";
12675
13536
 
12676
13537
  // ../../components/ModelViewer/FireBarrelModelViewer.tsx
12677
- import { useEffect as useEffect25, useRef as useRef27, useState as useState33 } from "react";
13538
+ import { useEffect as useEffect26, useRef as useRef27, useState as useState33 } from "react";
12678
13539
 
12679
13540
  // ../../components/ModelViewer/ModelViewer.module.css
12680
- var ModelViewer_default = {"caption":"opus_f7gfHI_caption","stage":"opus_f7gfHI_stage","canvasHost":"opus_f7gfHI_canvasHost","viewer":"opus_f7gfHI_viewer","loading":"opus_f7gfHI_loading","model":"opus_f7gfHI_model"};
13541
+ var ModelViewer_default = {"stage":"opus_f7gfHI_stage","canvasHost":"opus_f7gfHI_canvasHost","loading":"opus_f7gfHI_loading","viewer":"opus_f7gfHI_viewer","model":"opus_f7gfHI_model","caption":"opus_f7gfHI_caption"};
12681
13542
 
12682
13543
  // ../../components/ModelViewer/FireBarrelModelViewer.tsx
12683
13544
  import { jsx as jsx69, jsxs as jsxs58 } from "react/jsx-runtime";
@@ -12691,7 +13552,7 @@ function FireBarrelModelViewer({
12691
13552
  const canvasHostRef = useRef27(null);
12692
13553
  const [failed, setFailed] = useState33(false);
12693
13554
  const [loading, setLoading] = useState33(true);
12694
- useEffect25(() => {
13555
+ useEffect26(() => {
12695
13556
  const canvasHost = canvasHostRef.current;
12696
13557
  if (!canvasHost) {
12697
13558
  return;
@@ -12835,7 +13696,7 @@ function StandardModelViewer({
12835
13696
  const setViewerRef = useCallback15((node) => {
12836
13697
  viewerRef.current = node;
12837
13698
  }, []);
12838
- useEffect26(() => {
13699
+ useEffect27(() => {
12839
13700
  let mounted = true;
12840
13701
  loadModelViewer().then(() => {
12841
13702
  if (mounted) {
@@ -12850,7 +13711,7 @@ function StandardModelViewer({
12850
13711
  mounted = false;
12851
13712
  };
12852
13713
  }, []);
12853
- useEffect26(() => {
13714
+ useEffect27(() => {
12854
13715
  if (!ready || failed || !asset.autoplay) {
12855
13716
  return;
12856
13717
  }
@@ -12890,12 +13751,12 @@ function StandardModelViewer({
12890
13751
  }
12891
13752
 
12892
13753
  // ../../components/ModelLightbox/ModelLightbox.tsx
12893
- import { useCallback as useCallback16, useEffect as useEffect27, useRef as useRef29, useState as useState35 } from "react";
13754
+ import { useCallback as useCallback16, useEffect as useEffect28, useRef as useRef29, useState as useState35 } from "react";
12894
13755
  import { faXmark as faXmark3 } from "@fortawesome/free-solid-svg-icons";
12895
13756
  import { FontAwesomeIcon as FontAwesomeIcon9 } from "@fortawesome/react-fontawesome";
12896
13757
 
12897
13758
  // ../../components/ModelLightbox/ModelLightbox.module.css
12898
- var ModelLightbox_default = {"overlay":"opus_YYKGIB_overlay","frame":"opus_YYKGIB_frame","trigger":"opus_YYKGIB_trigger","modelLightboxPanelIn":"opus_YYKGIB_modelLightboxPanelIn","modelLightboxPanelOut":"opus_YYKGIB_modelLightboxPanelOut","close":"opus_YYKGIB_close","closeIcon":"opus_YYKGIB_closeIcon","modelLightboxFadeOut":"opus_YYKGIB_modelLightboxFadeOut","lightbox":"opus_YYKGIB_lightbox","modelLightboxFadeIn":"opus_YYKGIB_modelLightboxFadeIn"};
13759
+ var ModelLightbox_default = {"close":"opus_YYKGIB_close","trigger":"opus_YYKGIB_trigger","modelLightboxFadeIn":"opus_YYKGIB_modelLightboxFadeIn","frame":"opus_YYKGIB_frame","lightbox":"opus_YYKGIB_lightbox","closeIcon":"opus_YYKGIB_closeIcon","modelLightboxPanelOut":"opus_YYKGIB_modelLightboxPanelOut","modelLightboxPanelIn":"opus_YYKGIB_modelLightboxPanelIn","overlay":"opus_YYKGIB_overlay","modelLightboxFadeOut":"opus_YYKGIB_modelLightboxFadeOut"};
12899
13760
 
12900
13761
  // ../../components/ModelLightbox/ModelLightbox.tsx
12901
13762
  import { jsx as jsx71, jsxs as jsxs60 } from "react/jsx-runtime";
@@ -12925,7 +13786,7 @@ function ModelLightbox({
12925
13786
  initialFocusRef: closeRef,
12926
13787
  restoreFocus: true
12927
13788
  });
12928
- useEffect27(() => {
13789
+ useEffect28(() => {
12929
13790
  if (!isOpen || !dismissOnEscape) {
12930
13791
  return;
12931
13792
  }
@@ -12937,7 +13798,7 @@ function ModelLightbox({
12937
13798
  window.addEventListener("keydown", handleKeyDown);
12938
13799
  return () => window.removeEventListener("keydown", handleKeyDown);
12939
13800
  }, [dismissOnEscape, isOpen, setOpen]);
12940
- useEffect27(() => {
13801
+ useEffect28(() => {
12941
13802
  if (isOpen) {
12942
13803
  const timeout2 = window.setTimeout(() => setIsRendered(true), 0);
12943
13804
  return () => window.clearTimeout(timeout2);
@@ -13000,27 +13861,29 @@ function ModelLightbox({
13000
13861
  }
13001
13862
 
13002
13863
  // ../../components/ModelThumbnail/ModelThumbnail.module.css
13003
- var ModelThumbnail_default = {"caption":"opus_NkO9Yb_caption","content":"opus_NkO9Yb_content","staticThumbnail":"opus_NkO9Yb_staticThumbnail"};
13864
+ var ModelThumbnail_default = {"staticThumbnail":"opus_NkO9Yb_staticThumbnail","content":"opus_NkO9Yb_content","caption":"opus_NkO9Yb_caption"};
13004
13865
 
13005
13866
  // ../../components/ModelThumbnail/ModelThumbnail.tsx
13006
13867
  import { jsx as jsx72, jsxs as jsxs61 } from "react/jsx-runtime";
13007
13868
  function ThumbnailContent({
13008
13869
  asset,
13870
+ fill,
13009
13871
  showCaption,
13010
13872
  size
13011
13873
  }) {
13012
- return /* @__PURE__ */ jsxs61("span", { className: ModelThumbnail_default.content, "data-size": size, children: [
13874
+ return /* @__PURE__ */ jsxs61("span", { className: ModelThumbnail_default.content, "data-fill": fill ? "true" : void 0, "data-size": size, children: [
13013
13875
  /* @__PURE__ */ jsx72(ModelViewer, { asset, cameraControls: false, height: "compact", showCaption: false }),
13014
13876
  showCaption ? /* @__PURE__ */ jsx72("span", { className: ModelThumbnail_default.caption, children: asset.name }) : null
13015
13877
  ] });
13016
13878
  }
13017
13879
  function ModelThumbnail({
13018
13880
  asset,
13881
+ fill = false,
13019
13882
  openInLightbox = true,
13020
13883
  showCaption = true,
13021
13884
  size = "medium"
13022
13885
  }) {
13023
- const content = /* @__PURE__ */ jsx72(ThumbnailContent, { asset, showCaption, size });
13886
+ const content = /* @__PURE__ */ jsx72(ThumbnailContent, { asset, fill, showCaption, size });
13024
13887
  if (openInLightbox) {
13025
13888
  return /* @__PURE__ */ jsx72(
13026
13889
  ModelLightbox,
@@ -13035,7 +13898,7 @@ function ModelThumbnail({
13035
13898
  }
13036
13899
 
13037
13900
  // ../../components/ModelGallery/ModelGallery.module.css
13038
- var ModelGallery_default = {"empty":"opus_8llAjm_empty","gallery":"opus_8llAjm_gallery"};
13901
+ var ModelGallery_default = {"gallery":"opus_8llAjm_gallery","empty":"opus_8llAjm_empty"};
13039
13902
 
13040
13903
  // ../../components/ModelGallery/ModelGallery.tsx
13041
13904
  import { jsx as jsx73 } from "react/jsx-runtime";
@@ -13054,6 +13917,7 @@ function ModelGallery({
13054
13917
  ModelThumbnail,
13055
13918
  {
13056
13919
  asset,
13920
+ fill: true,
13057
13921
  openInLightbox: true,
13058
13922
  showCaption: showCaptions,
13059
13923
  size: thumbnailSize
@@ -13118,7 +13982,7 @@ function CatalogIcon({ iconName }) {
13118
13982
  }
13119
13983
 
13120
13984
  // ../../components/EmptyState/EmptyState.module.css
13121
- var EmptyState_default = {"actions":"opus_1KckGY_actions","iconWrap":"opus_1KckGY_iconWrap","root":"opus_1KckGY_root","title":"opus_1KckGY_title","description":"opus_1KckGY_description","copy":"opus_1KckGY_copy"};
13985
+ var EmptyState_default = {"root":"opus_1KckGY_root","copy":"opus_1KckGY_copy","title":"opus_1KckGY_title","actions":"opus_1KckGY_actions","description":"opus_1KckGY_description","iconWrap":"opus_1KckGY_iconWrap"};
13122
13986
 
13123
13987
  // ../../components/EmptyState/EmptyState.tsx
13124
13988
  import { jsx as jsx75, jsxs as jsxs62 } from "react/jsx-runtime";
@@ -13151,68 +14015,1052 @@ function EmptyState({
13151
14015
  );
13152
14016
  }
13153
14017
 
13154
- // ../../components/Sidebar/Sidebar.tsx
13155
- import {
13156
- createContext as createContext8,
13157
- useContext as useContext9,
13158
- useState as useState36
13159
- } from "react";
14018
+ // ../../components/Badge/Badge.module.css
14019
+ var Badge_default = {"badge":"opus_1GJHzl_badge","dot":"opus_1GJHzl_dot"};
13160
14020
 
13161
- // ../../components/Sidebar/Sidebar.module.css
13162
- var Sidebar_default = {"main":"opus_4Pogux_main","group":"opus_4Pogux_group","groupHeader":"opus_4Pogux_groupHeader","footer":"opus_4Pogux_footer","groupChevronOpen":"opus_4Pogux_groupChevronOpen","sidebar":"opus_4Pogux_sidebar","headerTitle":"opus_4Pogux_headerTitle","groupItems":"opus_4Pogux_groupItems","linkActive":"opus_4Pogux_linkActive","headerInner":"opus_4Pogux_headerInner","link":"opus_4Pogux_link","layout":"opus_4Pogux_layout","body":"opus_4Pogux_body","groupLabel":"opus_4Pogux_groupLabel","header":"opus_4Pogux_header","nav":"opus_4Pogux_nav","groupItemsWrap":"opus_4Pogux_groupItemsWrap","visuallyHidden":"opus_4Pogux_visuallyHidden","groupChevron":"opus_4Pogux_groupChevron","groupToggle":"opus_4Pogux_groupToggle"};
14021
+ // ../../components/Badge/Badge.tsx
14022
+ import { jsx as jsx76, jsxs as jsxs63 } from "react/jsx-runtime";
14023
+ function Badge({
14024
+ dot = false,
14025
+ label,
14026
+ size = "md",
14027
+ tone = "neutral",
14028
+ variant = "soft"
14029
+ }) {
14030
+ return /* @__PURE__ */ jsxs63("span", { className: Badge_default.badge, "data-size": size, "data-tone": tone, "data-variant": variant, children: [
14031
+ dot ? /* @__PURE__ */ jsx76("span", { "aria-hidden": "true", className: Badge_default.dot }) : null,
14032
+ label
14033
+ ] });
14034
+ }
13163
14035
 
13164
- // ../../components/Sidebar/Sidebar.tsx
13165
- import { Fragment as Fragment9, jsx as jsx76, jsxs as jsxs63 } from "react/jsx-runtime";
13166
- var SidebarContext = createContext8({
13167
- collapsed: false,
13168
- density: "comfortable"
13169
- });
13170
- function Sidebar({
13171
- children,
13172
- collapsed = false,
13173
- density = "comfortable",
13174
- footer,
13175
- header,
13176
- side = "left"
14036
+ // ../../components/Divider/Divider.module.css
14037
+ var Divider_default = {"divider":"opus_ux1i0D_divider","label":"opus_ux1i0D_label","line":"opus_ux1i0D_line","labelled":"opus_ux1i0D_labelled"};
14038
+
14039
+ // ../../components/Divider/Divider.tsx
14040
+ import { jsx as jsx77, jsxs as jsxs64 } from "react/jsx-runtime";
14041
+ function Divider({
14042
+ label,
14043
+ orientation = "horizontal",
14044
+ tone = "default"
13177
14045
  }) {
13178
- return /* @__PURE__ */ jsx76(SidebarContext.Provider, { value: { collapsed, density }, children: /* @__PURE__ */ jsxs63(
13179
- "aside",
13180
- {
13181
- "aria-label": "Sidebar",
13182
- className: Sidebar_default.sidebar,
13183
- "data-collapsed": collapsed ? "true" : "false",
14046
+ if (orientation === "vertical") {
14047
+ return /* @__PURE__ */ jsx77(
14048
+ "div",
14049
+ {
14050
+ "aria-orientation": "vertical",
14051
+ className: Divider_default.divider,
14052
+ "data-orientation": "vertical",
14053
+ "data-tone": tone,
14054
+ role: "separator"
14055
+ }
14056
+ );
14057
+ }
14058
+ if (label) {
14059
+ return /* @__PURE__ */ jsxs64("div", { className: Divider_default.labelled, "data-tone": tone, role: "separator", children: [
14060
+ /* @__PURE__ */ jsx77("span", { "aria-hidden": "true", className: Divider_default.line }),
14061
+ /* @__PURE__ */ jsx77("span", { className: Divider_default.label, children: label }),
14062
+ /* @__PURE__ */ jsx77("span", { "aria-hidden": "true", className: Divider_default.line })
14063
+ ] });
14064
+ }
14065
+ return /* @__PURE__ */ jsx77(
14066
+ "hr",
14067
+ {
14068
+ className: Divider_default.divider,
14069
+ "data-orientation": "horizontal",
14070
+ "data-tone": tone
14071
+ }
14072
+ );
14073
+ }
14074
+
14075
+ // ../../components/Avatar/Avatar.tsx
14076
+ import { useMemo as useMemo16, useState as useState36 } from "react";
14077
+
14078
+ // ../../components/Avatar/Avatar.module.css
14079
+ var Avatar_default = {"initials":"opus_jsRWxO_initials","image":"opus_jsRWxO_image","avatar":"opus_jsRWxO_avatar"};
14080
+
14081
+ // ../../components/Avatar/Avatar.tsx
14082
+ import { jsx as jsx78 } from "react/jsx-runtime";
14083
+ function initialsFromName(name) {
14084
+ var _a2, _b2;
14085
+ const parts = name.trim().split(/\s+/).filter(Boolean);
14086
+ if (parts.length === 0) {
14087
+ return "?";
14088
+ }
14089
+ if (parts.length === 1) {
14090
+ return parts[0].slice(0, 2).toUpperCase();
14091
+ }
14092
+ return `${(_a2 = parts[0][0]) != null ? _a2 : ""}${(_b2 = parts[1][0]) != null ? _b2 : ""}`.toUpperCase();
14093
+ }
14094
+ function Avatar({
14095
+ name,
14096
+ shape = "circle",
14097
+ size = "md",
14098
+ src
14099
+ }) {
14100
+ const [failed, setFailed] = useState36(false);
14101
+ const initials = useMemo16(() => initialsFromName(name), [name]);
14102
+ const showImage = Boolean(src) && !failed;
14103
+ return /* @__PURE__ */ jsx78(
14104
+ "span",
14105
+ {
14106
+ "aria-label": name,
14107
+ className: Avatar_default.avatar,
14108
+ "data-shape": shape,
14109
+ "data-size": size,
14110
+ role: "img",
14111
+ title: name,
14112
+ children: showImage ? (
14113
+ // eslint-disable-next-line @next/next/no-img-element
14114
+ /* @__PURE__ */ jsx78(
14115
+ "img",
14116
+ {
14117
+ alt: "",
14118
+ className: Avatar_default.image,
14119
+ onError: () => setFailed(true),
14120
+ src
14121
+ }
14122
+ )
14123
+ ) : /* @__PURE__ */ jsx78("span", { "aria-hidden": "true", className: Avatar_default.initials, children: initials })
14124
+ }
14125
+ );
14126
+ }
14127
+
14128
+ // ../../components/AvatarGroup/AvatarGroup.module.css
14129
+ var AvatarGroup_default = {"group":"opus_Vv36ne_group","overflow":"opus_Vv36ne_overflow","item":"opus_Vv36ne_item"};
14130
+
14131
+ // ../../components/AvatarGroup/AvatarGroup.tsx
14132
+ import { jsx as jsx79, jsxs as jsxs65 } from "react/jsx-runtime";
14133
+ function AvatarGroup({ items, max = 4, size = "md" }) {
14134
+ const safeMax = Math.max(1, Math.round(max));
14135
+ const visible = items.slice(0, safeMax);
14136
+ const overflow = Math.max(0, items.length - visible.length);
14137
+ return /* @__PURE__ */ jsxs65("div", { "aria-label": `${items.length} people`, className: AvatarGroup_default.group, role: "group", children: [
14138
+ visible.map((item, index) => /* @__PURE__ */ jsx79("span", { className: AvatarGroup_default.item, style: { zIndex: visible.length - index }, children: /* @__PURE__ */ jsx79(Avatar, { name: item.name, size, src: item.src }) }, `${item.name}-${index}`)),
14139
+ overflow > 0 ? /* @__PURE__ */ jsxs65(
14140
+ "span",
14141
+ {
14142
+ "aria-label": `${overflow} more`,
14143
+ className: AvatarGroup_default.overflow,
14144
+ "data-size": size,
14145
+ children: [
14146
+ "+",
14147
+ overflow
14148
+ ]
14149
+ }
14150
+ ) : null
14151
+ ] });
14152
+ }
14153
+
14154
+ // ../../components/Statistic/Statistic.module.css
14155
+ var Statistic_default = {"label":"opus_vCN1bv_label","root":"opus_vCN1bv_root","value":"opus_vCN1bv_value","affix":"opus_vCN1bv_affix","trend":"opus_vCN1bv_trend"};
14156
+
14157
+ // ../../components/Statistic/Statistic.tsx
14158
+ import { jsx as jsx80, jsxs as jsxs66 } from "react/jsx-runtime";
14159
+ function Statistic({
14160
+ label,
14161
+ prefix,
14162
+ suffix,
14163
+ trend,
14164
+ trendLabel,
14165
+ value
14166
+ }) {
14167
+ return /* @__PURE__ */ jsxs66("div", { className: Statistic_default.root, children: [
14168
+ /* @__PURE__ */ jsx80("p", { className: Statistic_default.label, children: label }),
14169
+ /* @__PURE__ */ jsxs66("p", { className: Statistic_default.value, children: [
14170
+ prefix ? /* @__PURE__ */ jsx80("span", { className: Statistic_default.affix, children: prefix }) : null,
14171
+ /* @__PURE__ */ jsx80("span", { children: value }),
14172
+ suffix ? /* @__PURE__ */ jsx80("span", { className: Statistic_default.affix, children: suffix }) : null
14173
+ ] }),
14174
+ trend && trendLabel ? /* @__PURE__ */ jsxs66("p", { className: Statistic_default.trend, "data-trend": trend, children: [
14175
+ /* @__PURE__ */ jsx80("span", { "aria-hidden": "true", children: trend === "up" ? "\u2191" : trend === "down" ? "\u2193" : "\u2192" }),
14176
+ trendLabel
14177
+ ] }) : null
14178
+ ] });
14179
+ }
14180
+
14181
+ // ../../components/List/List.module.css
14182
+ var List_default = {"description":"opus_ys3xlo_description","meta":"opus_ys3xlo_meta","icon":"opus_ys3xlo_icon","item":"opus_ys3xlo_item","list":"opus_ys3xlo_list","title":"opus_ys3xlo_title","head":"opus_ys3xlo_head","body":"opus_ys3xlo_body"};
14183
+
14184
+ // ../../components/List/List.tsx
14185
+ import { jsx as jsx81, jsxs as jsxs67 } from "react/jsx-runtime";
14186
+ function List({ density = "comfortable", items, ordered = false }) {
14187
+ const Tag = ordered ? "ol" : "ul";
14188
+ return /* @__PURE__ */ jsx81(Tag, { className: List_default.list, "data-density": density, "data-ordered": ordered ? "true" : "false", children: items.map((item, index) => /* @__PURE__ */ jsxs67("li", { className: List_default.item, children: [
14189
+ item.icon ? /* @__PURE__ */ jsx81("span", { "aria-hidden": "true", className: List_default.icon, children: /* @__PURE__ */ jsx81(CatalogIcon, { iconName: item.icon }) }) : null,
14190
+ /* @__PURE__ */ jsxs67("div", { className: List_default.body, children: [
14191
+ /* @__PURE__ */ jsxs67("div", { className: List_default.head, children: [
14192
+ /* @__PURE__ */ jsx81("span", { className: List_default.title, children: item.title }),
14193
+ item.meta ? /* @__PURE__ */ jsx81("span", { className: List_default.meta, children: item.meta }) : null
14194
+ ] }),
14195
+ item.description ? /* @__PURE__ */ jsx81("p", { className: List_default.description, children: item.description }) : null
14196
+ ] })
14197
+ ] }, `${item.title}-${index}`)) });
14198
+ }
14199
+
14200
+ // ../../components/DescriptionList/DescriptionList.module.css
14201
+ var DescriptionList_default = {"list":"opus_FY8OsC_list","term":"opus_FY8OsC_term","row":"opus_FY8OsC_row","details":"opus_FY8OsC_details"};
14202
+
14203
+ // ../../components/DescriptionList/DescriptionList.tsx
14204
+ import { jsx as jsx82, jsxs as jsxs68 } from "react/jsx-runtime";
14205
+ function DescriptionList({
14206
+ items,
14207
+ layout = "stacked"
14208
+ }) {
14209
+ return /* @__PURE__ */ jsx82("dl", { className: DescriptionList_default.list, "data-layout": layout, children: items.map((item, index) => /* @__PURE__ */ jsxs68("div", { className: DescriptionList_default.row, children: [
14210
+ /* @__PURE__ */ jsx82("dt", { className: DescriptionList_default.term, children: item.term }),
14211
+ /* @__PURE__ */ jsx82("dd", { className: DescriptionList_default.details, children: item.details })
14212
+ ] }, `${item.term}-${index}`)) });
14213
+ }
14214
+
14215
+ // ../../components/PropertyGrid/PropertyGrid.tsx
14216
+ import { useState as useState37 } from "react";
14217
+
14218
+ // ../../components/PropertyGrid/PropertyGrid.module.css
14219
+ var PropertyGrid_default = {"row":"opus_Bnfsue_row","valueCell":"opus_Bnfsue_valueCell","copy":"opus_Bnfsue_copy","value":"opus_Bnfsue_value","grid":"opus_Bnfsue_grid","label":"opus_Bnfsue_label"};
14220
+
14221
+ // ../../components/PropertyGrid/PropertyGrid.tsx
14222
+ import { jsx as jsx83, jsxs as jsxs69 } from "react/jsx-runtime";
14223
+ function PropertyGrid({ items }) {
14224
+ const [copiedIndex, setCopiedIndex] = useState37(null);
14225
+ async function copyValue(value, index) {
14226
+ try {
14227
+ await navigator.clipboard.writeText(value);
14228
+ setCopiedIndex(index);
14229
+ window.setTimeout(() => setCopiedIndex((current) => current === index ? null : current), 1200);
14230
+ } catch (e) {
14231
+ setCopiedIndex(null);
14232
+ }
14233
+ }
14234
+ return /* @__PURE__ */ jsx83("div", { className: PropertyGrid_default.grid, role: "table", "aria-label": "Properties", children: items.map((item, index) => /* @__PURE__ */ jsxs69("div", { className: PropertyGrid_default.row, role: "row", children: [
14235
+ /* @__PURE__ */ jsx83("div", { className: PropertyGrid_default.label, role: "rowheader", children: item.label }),
14236
+ /* @__PURE__ */ jsxs69("div", { className: PropertyGrid_default.valueCell, role: "cell", children: [
14237
+ /* @__PURE__ */ jsx83("span", { className: PropertyGrid_default.value, children: item.value }),
14238
+ item.copyable ? /* @__PURE__ */ jsx83(
14239
+ "button",
14240
+ {
14241
+ "aria-label": `Copy ${item.label}`,
14242
+ className: PropertyGrid_default.copy,
14243
+ onClick: () => void copyValue(item.value, index),
14244
+ type: "button",
14245
+ children: copiedIndex === index ? "Copied" : "Copy"
14246
+ }
14247
+ ) : null
14248
+ ] })
14249
+ ] }, `${item.label}-${index}`)) });
14250
+ }
14251
+
14252
+ // ../../components/ContentTimeline/ContentTimeline.module.css
14253
+ var ContentTimeline_default = {"body":"opus_vApy-v_body","list":"opus_vApy-v_list","description":"opus_vApy-v_description","line":"opus_vApy-v_line","time":"opus_vApy-v_time","title":"opus_vApy-v_title","dot":"opus_vApy-v_dot","item":"opus_vApy-v_item","head":"opus_vApy-v_head","rail":"opus_vApy-v_rail"};
14254
+
14255
+ // ../../components/ContentTimeline/ContentTimeline.tsx
14256
+ import { jsx as jsx84, jsxs as jsxs70 } from "react/jsx-runtime";
14257
+ function ContentTimeline({ items }) {
14258
+ return /* @__PURE__ */ jsx84("ol", { className: ContentTimeline_default.list, children: items.map((item, index) => {
14259
+ var _a2;
14260
+ return /* @__PURE__ */ jsxs70(
14261
+ "li",
14262
+ {
14263
+ className: ContentTimeline_default.item,
14264
+ "data-status": (_a2 = item.status) != null ? _a2 : "default",
14265
+ children: [
14266
+ /* @__PURE__ */ jsxs70("div", { "aria-hidden": "true", className: ContentTimeline_default.rail, children: [
14267
+ /* @__PURE__ */ jsx84("span", { className: ContentTimeline_default.dot }),
14268
+ index < items.length - 1 ? /* @__PURE__ */ jsx84("span", { className: ContentTimeline_default.line }) : null
14269
+ ] }),
14270
+ /* @__PURE__ */ jsxs70("div", { className: ContentTimeline_default.body, children: [
14271
+ /* @__PURE__ */ jsxs70("div", { className: ContentTimeline_default.head, children: [
14272
+ /* @__PURE__ */ jsx84("h3", { className: ContentTimeline_default.title, children: item.title }),
14273
+ item.time ? /* @__PURE__ */ jsx84("time", { className: ContentTimeline_default.time, children: item.time }) : null
14274
+ ] }),
14275
+ item.description ? /* @__PURE__ */ jsx84("p", { className: ContentTimeline_default.description, children: item.description }) : null
14276
+ ] })
14277
+ ]
14278
+ },
14279
+ `${item.title}-${index}`
14280
+ );
14281
+ }) });
14282
+ }
14283
+
14284
+ // ../../components/TreeView/TreeView.tsx
14285
+ import { useMemo as useMemo17, useState as useState38 } from "react";
14286
+
14287
+ // ../../components/TreeView/TreeView.module.css
14288
+ var TreeView_default = {"tree":"opus_NlkzXy_tree","leafMark":"opus_NlkzXy_leafMark","children":"opus_NlkzXy_children","node":"opus_NlkzXy_node","row":"opus_NlkzXy_row","label":"opus_NlkzXy_label","toggle":"opus_NlkzXy_toggle"};
14289
+
14290
+ // ../../components/TreeView/TreeView.tsx
14291
+ import { jsx as jsx85, jsxs as jsxs71 } from "react/jsx-runtime";
14292
+ function collectExpandableIds(nodes) {
14293
+ var _a2;
14294
+ const ids = [];
14295
+ for (const node of nodes) {
14296
+ if ((_a2 = node.children) == null ? void 0 : _a2.length) {
14297
+ ids.push(node.id);
14298
+ ids.push(...collectExpandableIds(node.children));
14299
+ }
14300
+ }
14301
+ return ids;
14302
+ }
14303
+ function TreeNode({
14304
+ depth,
14305
+ expandedIds,
14306
+ node,
14307
+ onToggle
14308
+ }) {
14309
+ var _a2;
14310
+ const hasChildren = Boolean((_a2 = node.children) == null ? void 0 : _a2.length);
14311
+ const expanded = expandedIds.has(node.id);
14312
+ return /* @__PURE__ */ jsxs71("li", { className: TreeView_default.node, children: [
14313
+ /* @__PURE__ */ jsxs71("div", { className: TreeView_default.row, style: { paddingLeft: `${depth * 16 + 8}px` }, children: [
14314
+ hasChildren ? /* @__PURE__ */ jsx85(
14315
+ "button",
14316
+ {
14317
+ "aria-expanded": expanded,
14318
+ "aria-label": `${expanded ? "Collapse" : "Expand"} ${node.label}`,
14319
+ className: TreeView_default.toggle,
14320
+ onClick: () => onToggle(node.id),
14321
+ type: "button",
14322
+ children: /* @__PURE__ */ jsx85("span", { "aria-hidden": "true", children: expanded ? "\u25BE" : "\u25B8" })
14323
+ }
14324
+ ) : /* @__PURE__ */ jsx85("span", { "aria-hidden": "true", className: TreeView_default.leafMark }),
14325
+ /* @__PURE__ */ jsx85("span", { className: TreeView_default.label, children: node.label })
14326
+ ] }),
14327
+ hasChildren && expanded ? /* @__PURE__ */ jsx85("ul", { className: TreeView_default.children, children: node.children.map((child) => /* @__PURE__ */ jsx85(
14328
+ TreeNode,
14329
+ {
14330
+ depth: depth + 1,
14331
+ expandedIds,
14332
+ node: child,
14333
+ onToggle
14334
+ },
14335
+ child.id
14336
+ )) }) : null
14337
+ ] });
14338
+ }
14339
+ function TreeView({ defaultExpandedIds, nodes }) {
14340
+ const fallbackIds = useMemo17(() => collectExpandableIds(nodes).slice(0, 2), [nodes]);
14341
+ const [expandedIds, setExpandedIds] = useState38(
14342
+ () => new Set(defaultExpandedIds != null ? defaultExpandedIds : fallbackIds)
14343
+ );
14344
+ function toggle(id) {
14345
+ setExpandedIds((current) => {
14346
+ const next = new Set(current);
14347
+ if (next.has(id)) {
14348
+ next.delete(id);
14349
+ } else {
14350
+ next.add(id);
14351
+ }
14352
+ return next;
14353
+ });
14354
+ }
14355
+ return /* @__PURE__ */ jsx85("ul", { "aria-label": "Tree", className: TreeView_default.tree, role: "tree", children: nodes.map((node) => /* @__PURE__ */ jsx85(
14356
+ TreeNode,
14357
+ {
14358
+ depth: 0,
14359
+ expandedIds,
14360
+ node,
14361
+ onToggle: toggle
14362
+ },
14363
+ node.id
14364
+ )) });
14365
+ }
14366
+
14367
+ // ../../components/MasonryGrid/MasonryGrid.module.css
14368
+ var MasonryGrid_default = {"card":"opus_Fxxd7-_card","body":"opus_Fxxd7-_body","grid":"opus_Fxxd7-_grid","title":"opus_Fxxd7-_title"};
14369
+
14370
+ // ../../components/MasonryGrid/MasonryGrid.tsx
14371
+ import { jsx as jsx86, jsxs as jsxs72 } from "react/jsx-runtime";
14372
+ function MasonryGrid({ columns = 3, gap = 12, items }) {
14373
+ const safeColumns = Math.min(Math.max(Math.round(columns), 2), 4);
14374
+ const safeGap = Math.min(Math.max(Math.round(gap), 8), 28);
14375
+ return /* @__PURE__ */ jsx86(
14376
+ "div",
14377
+ {
14378
+ className: MasonryGrid_default.grid,
14379
+ style: {
14380
+ columnCount: safeColumns,
14381
+ columnGap: `${safeGap}px`
14382
+ },
14383
+ children: items.map((item, index) => /* @__PURE__ */ jsxs72(
14384
+ "article",
14385
+ {
14386
+ className: MasonryGrid_default.card,
14387
+ style: {
14388
+ marginBottom: `${safeGap}px`,
14389
+ minHeight: item.height ? `${item.height}px` : void 0
14390
+ },
14391
+ children: [
14392
+ /* @__PURE__ */ jsx86("h3", { className: MasonryGrid_default.title, children: item.title }),
14393
+ item.body ? /* @__PURE__ */ jsx86("p", { className: MasonryGrid_default.body, children: item.body }) : null
14394
+ ]
14395
+ },
14396
+ `${item.title}-${index}`
14397
+ ))
14398
+ }
14399
+ );
14400
+ }
14401
+
14402
+ // ../../components/JsonViewer/JsonViewer.tsx
14403
+ import { useMemo as useMemo18, useState as useState39 } from "react";
14404
+
14405
+ // ../../components/JsonViewer/JsonViewer.module.css
14406
+ var JsonViewer_default = {"block":"opus_uLDgXq_block","summary":"opus_uLDgXq_summary","children":"opus_uLDgXq_children","toggleLine":"opus_uLDgXq_toggleLine","line":"opus_uLDgXq_line","boolean":"opus_uLDgXq_boolean","null":"opus_uLDgXq_null","key":"opus_uLDgXq_key","string":"opus_uLDgXq_string","root":"opus_uLDgXq_root","chevron":"opus_uLDgXq_chevron","number":"opus_uLDgXq_number"};
14407
+
14408
+ // ../../components/JsonViewer/JsonViewer.tsx
14409
+ import { jsx as jsx87, jsxs as jsxs73 } from "react/jsx-runtime";
14410
+ function isPlainObject(value) {
14411
+ return typeof value === "object" && value !== null && !Array.isArray(value);
14412
+ }
14413
+ function PrimitiveValue({ value }) {
14414
+ if (value === null) {
14415
+ return /* @__PURE__ */ jsx87("span", { className: JsonViewer_default.null, children: "null" });
14416
+ }
14417
+ if (typeof value === "string") {
14418
+ return /* @__PURE__ */ jsxs73("span", { className: JsonViewer_default.string, children: [
14419
+ '"',
14420
+ value,
14421
+ '"'
14422
+ ] });
14423
+ }
14424
+ if (typeof value === "number") {
14425
+ return /* @__PURE__ */ jsx87("span", { className: JsonViewer_default.number, children: value });
14426
+ }
14427
+ if (typeof value === "boolean") {
14428
+ return /* @__PURE__ */ jsx87("span", { className: JsonViewer_default.boolean, children: String(value) });
14429
+ }
14430
+ return /* @__PURE__ */ jsx87("span", { className: JsonViewer_default.string, children: String(value) });
14431
+ }
14432
+ function JsonNode({ collapsedDepth, depth, name, value }) {
14433
+ const isExpandable = Array.isArray(value) || isPlainObject(value);
14434
+ const [open, setOpen] = useState39(depth < collapsedDepth);
14435
+ if (!isExpandable) {
14436
+ return /* @__PURE__ */ jsxs73("div", { className: JsonViewer_default.line, style: { paddingLeft: `${depth * 14}px` }, children: [
14437
+ name !== void 0 ? /* @__PURE__ */ jsxs73("span", { className: JsonViewer_default.key, children: [
14438
+ name,
14439
+ ": "
14440
+ ] }) : null,
14441
+ /* @__PURE__ */ jsx87(PrimitiveValue, { value })
14442
+ ] });
14443
+ }
14444
+ const entries = Array.isArray(value) ? value.map((entry, index) => [String(index), entry]) : Object.entries(value);
14445
+ const summary = Array.isArray(value) ? `Array(${value.length})` : `Object(${entries.length})`;
14446
+ return /* @__PURE__ */ jsxs73("div", { className: JsonViewer_default.block, children: [
14447
+ /* @__PURE__ */ jsxs73(
14448
+ "button",
14449
+ {
14450
+ "aria-expanded": open,
14451
+ className: JsonViewer_default.toggleLine,
14452
+ onClick: () => setOpen((current) => !current),
14453
+ style: { paddingLeft: `${depth * 14}px` },
14454
+ type: "button",
14455
+ children: [
14456
+ /* @__PURE__ */ jsx87("span", { "aria-hidden": "true", className: JsonViewer_default.chevron, children: open ? "\u25BE" : "\u25B8" }),
14457
+ name !== void 0 ? /* @__PURE__ */ jsxs73("span", { className: JsonViewer_default.key, children: [
14458
+ name,
14459
+ ": "
14460
+ ] }) : null,
14461
+ /* @__PURE__ */ jsx87("span", { className: JsonViewer_default.summary, children: summary })
14462
+ ]
14463
+ }
14464
+ ),
14465
+ open ? /* @__PURE__ */ jsx87("div", { className: JsonViewer_default.children, children: entries.map(([childName, childValue]) => /* @__PURE__ */ jsx87(
14466
+ JsonNode,
14467
+ {
14468
+ collapsedDepth,
14469
+ depth: depth + 1,
14470
+ name: childName,
14471
+ value: childValue
14472
+ },
14473
+ childName
14474
+ )) }) : null
14475
+ ] });
14476
+ }
14477
+ function JsonViewer({ collapsedDepth = 1, value }) {
14478
+ const parsed = useMemo18(() => value, [value]);
14479
+ return /* @__PURE__ */ jsx87("div", { className: JsonViewer_default.root, role: "tree", children: /* @__PURE__ */ jsx87(JsonNode, { collapsedDepth: Math.max(0, collapsedDepth), depth: 0, value: parsed }) });
14480
+ }
14481
+
14482
+ // ../../components/Icon/Icon.tsx
14483
+ import { FontAwesomeIcon as FontAwesomeIcon11 } from "@fortawesome/react-fontawesome";
14484
+
14485
+ // ../../components/Icon/Icon.module.css
14486
+ var Icon_default = {"icon":"opus_7ASn4M_icon"};
14487
+
14488
+ // ../../components/Icon/Icon.tsx
14489
+ import { jsx as jsx88 } from "react/jsx-runtime";
14490
+ function Icon({ label, name, size = "md", tone = "default" }) {
14491
+ const option = getFontAwesomeIconOption(name);
14492
+ return /* @__PURE__ */ jsx88(
14493
+ "span",
14494
+ {
14495
+ "aria-hidden": label ? void 0 : true,
14496
+ "aria-label": label,
14497
+ className: Icon_default.icon,
14498
+ "data-size": size,
14499
+ "data-tone": tone,
14500
+ role: label ? "img" : void 0,
14501
+ children: /* @__PURE__ */ jsx88(FontAwesomeIcon11, { icon: option.icon })
14502
+ }
14503
+ );
14504
+ }
14505
+
14506
+ // ../../components/Spinner/Spinner.module.css
14507
+ var Spinner_default = {"spinner":"opus_g5cd4Q_spinner","ring":"opus_g5cd4Q_ring","opus-spinner-rotate":"opus_g5cd4Q_opus-spinner-rotate"};
14508
+
14509
+ // ../../components/Spinner/Spinner.tsx
14510
+ import { jsx as jsx89 } from "react/jsx-runtime";
14511
+ function Spinner({ label = "Loading", size = "md", tone = "accent" }) {
14512
+ return /* @__PURE__ */ jsx89(
14513
+ "span",
14514
+ {
14515
+ "aria-label": label,
14516
+ className: Spinner_default.spinner,
14517
+ "data-size": size,
14518
+ "data-tone": tone,
14519
+ role: "status",
14520
+ children: /* @__PURE__ */ jsx89("span", { "aria-hidden": "true", className: Spinner_default.ring })
14521
+ }
14522
+ );
14523
+ }
14524
+
14525
+ // ../../components/Portal/Portal.tsx
14526
+ import { createContext as createContext8, useContext as useContext9, useEffect as useEffect29, useMemo as useMemo19, useState as useState40 } from "react";
14527
+ import { createPortal as createPortal5 } from "react-dom";
14528
+ import { Fragment as Fragment10, jsx as jsx90 } from "react/jsx-runtime";
14529
+ var PortalHostContext = createContext8({ container: null });
14530
+ function usePortalHost() {
14531
+ return useContext9(PortalHostContext);
14532
+ }
14533
+ function PortalHost({ children, id = "opus-portal-host" }) {
14534
+ const [container, setContainer] = useState40(null);
14535
+ useEffect29(() => {
14536
+ let host = document.getElementById(id);
14537
+ let created = false;
14538
+ if (!host) {
14539
+ host = document.createElement("div");
14540
+ host.id = id;
14541
+ document.body.appendChild(host);
14542
+ created = true;
14543
+ }
14544
+ setContainer(host);
14545
+ return () => {
14546
+ if (created && (host == null ? void 0 : host.parentNode)) {
14547
+ host.parentNode.removeChild(host);
14548
+ }
14549
+ };
14550
+ }, [id]);
14551
+ const value = useMemo19(() => ({ container }), [container]);
14552
+ return /* @__PURE__ */ jsx90(PortalHostContext.Provider, { value, children });
14553
+ }
14554
+ function Portal({ children, container, disabled = false }) {
14555
+ var _a2;
14556
+ const host = usePortalHost();
14557
+ const [fallback, setFallback] = useState40(null);
14558
+ useEffect29(() => {
14559
+ setFallback(document.body);
14560
+ }, []);
14561
+ if (disabled) {
14562
+ return /* @__PURE__ */ jsx90(Fragment10, { children });
14563
+ }
14564
+ const target = (_a2 = container != null ? container : host.container) != null ? _a2 : fallback;
14565
+ if (!target) {
14566
+ return null;
14567
+ }
14568
+ return createPortal5(children, target);
14569
+ }
14570
+
14571
+ // ../../components/VisuallyHidden/VisuallyHidden.module.css
14572
+ var VisuallyHidden_default = {"hidden":"opus_DIv7wy_hidden"};
14573
+
14574
+ // ../../components/VisuallyHidden/VisuallyHidden.tsx
14575
+ import { jsx as jsx91 } from "react/jsx-runtime";
14576
+ function VisuallyHidden({ as = "span", children }) {
14577
+ const Tag = as;
14578
+ return /* @__PURE__ */ jsx91(Tag, { className: VisuallyHidden_default.hidden, children });
14579
+ }
14580
+
14581
+ // ../../components/FocusTrap/FocusTrap.tsx
14582
+ import { useEffect as useEffect30, useRef as useRef30 } from "react";
14583
+
14584
+ // ../../components/FocusTrap/FocusTrap.module.css
14585
+ var FocusTrap_default = {"trap":"opus_fJckCZ_trap"};
14586
+
14587
+ // ../../components/FocusTrap/FocusTrap.tsx
14588
+ import { jsx as jsx92 } from "react/jsx-runtime";
14589
+ function FocusTrap({
14590
+ active = true,
14591
+ children,
14592
+ initialFocusRef,
14593
+ restoreFocus = true
14594
+ }) {
14595
+ const containerRef = useRef30(null);
14596
+ const previouslyFocusedRef = useRef30(null);
14597
+ useEffect30(() => {
14598
+ if (!active) {
14599
+ return;
14600
+ }
14601
+ previouslyFocusedRef.current = document.activeElement;
14602
+ const frame = window.requestAnimationFrame(() => {
14603
+ var _a2;
14604
+ const preferred = initialFocusRef == null ? void 0 : initialFocusRef.current;
14605
+ if (preferred) {
14606
+ preferred.focus();
14607
+ return;
14608
+ }
14609
+ const container = containerRef.current;
14610
+ if (!container) {
14611
+ return;
14612
+ }
14613
+ (_a2 = getFocusableElements(container)[0]) == null ? void 0 : _a2.focus();
14614
+ });
14615
+ return () => {
14616
+ var _a2, _b2;
14617
+ window.cancelAnimationFrame(frame);
14618
+ if (restoreFocus) {
14619
+ (_b2 = (_a2 = previouslyFocusedRef.current) == null ? void 0 : _a2.focus) == null ? void 0 : _b2.call(_a2);
14620
+ }
14621
+ };
14622
+ }, [active, initialFocusRef, restoreFocus]);
14623
+ useEffect30(() => {
14624
+ if (!active) {
14625
+ return;
14626
+ }
14627
+ const onKeyDown = (event) => {
14628
+ if (event.key !== "Tab") {
14629
+ return;
14630
+ }
14631
+ const container = containerRef.current;
14632
+ if (!container) {
14633
+ return;
14634
+ }
14635
+ const focusable = getFocusableElements(container);
14636
+ if (!focusable.length) {
14637
+ event.preventDefault();
14638
+ return;
14639
+ }
14640
+ const first = focusable[0];
14641
+ const last = focusable[focusable.length - 1];
14642
+ const activeElement = document.activeElement;
14643
+ if (event.shiftKey) {
14644
+ if (activeElement === first || !container.contains(activeElement)) {
14645
+ event.preventDefault();
14646
+ last.focus();
14647
+ }
14648
+ return;
14649
+ }
14650
+ if (activeElement === last || !container.contains(activeElement)) {
14651
+ event.preventDefault();
14652
+ first.focus();
14653
+ }
14654
+ };
14655
+ document.addEventListener("keydown", onKeyDown);
14656
+ return () => document.removeEventListener("keydown", onKeyDown);
14657
+ }, [active]);
14658
+ return /* @__PURE__ */ jsx92("div", { className: FocusTrap_default.trap, "data-active": active, ref: containerRef, children });
14659
+ }
14660
+
14661
+ // ../../components/KeyboardShortcut/KeyboardShortcut.module.css
14662
+ var KeyboardShortcut_default = {"plus":"opus_pZh5vX_plus","shortcut":"opus_pZh5vX_shortcut","key":"opus_pZh5vX_key"};
14663
+
14664
+ // ../../components/KeyboardShortcut/KeyboardShortcut.tsx
14665
+ import { jsx as jsx93, jsxs as jsxs74 } from "react/jsx-runtime";
14666
+ function KeyboardShortcut({ keys, size = "md" }) {
14667
+ return /* @__PURE__ */ jsx93("kbd", { "aria-label": keys.join(" + "), className: KeyboardShortcut_default.shortcut, "data-size": size, children: keys.map((key, index) => /* @__PURE__ */ jsxs74("span", { children: [
14668
+ index > 0 ? /* @__PURE__ */ jsx93("span", { "aria-hidden": "true", className: KeyboardShortcut_default.plus, children: "+" }) : null,
14669
+ /* @__PURE__ */ jsx93("span", { className: KeyboardShortcut_default.key, children: key })
14670
+ ] }, `${key}-${index}`)) });
14671
+ }
14672
+
14673
+ // ../../components/HotkeyManager/HotkeyManager.tsx
14674
+ import {
14675
+ createContext as createContext9,
14676
+ useCallback as useCallback17,
14677
+ useContext as useContext10,
14678
+ useEffect as useEffect31,
14679
+ useMemo as useMemo20,
14680
+ useRef as useRef31,
14681
+ useState as useState41
14682
+ } from "react";
14683
+ import { jsx as jsx94 } from "react/jsx-runtime";
14684
+ var HotkeyManagerContext = createContext9(null);
14685
+ function matchesCombo(event, combo) {
14686
+ const key = event.key.length === 1 ? event.key.toLowerCase() : event.key;
14687
+ const expected = combo.key.length === 1 ? combo.key.toLowerCase() : combo.key;
14688
+ return key === expected && Boolean(combo.meta) === event.metaKey && Boolean(combo.ctrl) === event.ctrlKey && Boolean(combo.alt) === event.altKey && Boolean(combo.shift) === event.shiftKey;
14689
+ }
14690
+ function shortcutsEqual(a, b) {
14691
+ if (a.length !== b.length) {
14692
+ return false;
14693
+ }
14694
+ return a.every((combo, index) => {
14695
+ const other = b[index];
14696
+ return combo.id === other.id && combo.key === other.key && Boolean(combo.meta) === Boolean(other.meta) && Boolean(combo.ctrl) === Boolean(other.ctrl) && Boolean(combo.alt) === Boolean(other.alt) && Boolean(combo.shift) === Boolean(other.shift) && combo.enabled === other.enabled && combo.description === other.description;
14697
+ });
14698
+ }
14699
+ function HotkeyManager({ children, enabled = true }) {
14700
+ const handlersRef = useRef31(/* @__PURE__ */ new Map());
14701
+ const [shortcuts, setShortcuts] = useState41([]);
14702
+ const syncShortcuts = useCallback17(() => {
14703
+ const next = Array.from(handlersRef.current.values()).map((entry) => entry.combo);
14704
+ setShortcuts((current) => shortcutsEqual(current, next) ? current : next);
14705
+ }, []);
14706
+ const register = useCallback17(
14707
+ (combo, handler) => {
14708
+ handlersRef.current.set(combo.id, { combo, handler });
14709
+ syncShortcuts();
14710
+ return () => {
14711
+ handlersRef.current.delete(combo.id);
14712
+ syncShortcuts();
14713
+ };
14714
+ },
14715
+ [syncShortcuts]
14716
+ );
14717
+ useEffect31(() => {
14718
+ if (!enabled) {
14719
+ return;
14720
+ }
14721
+ const onKeyDown = (event) => {
14722
+ var _a2;
14723
+ const target = event.target;
14724
+ const tag = (_a2 = target == null ? void 0 : target.tagName) == null ? void 0 : _a2.toLowerCase();
14725
+ if (tag === "input" || tag === "textarea" || (target == null ? void 0 : target.isContentEditable)) {
14726
+ return;
14727
+ }
14728
+ for (const entry of handlersRef.current.values()) {
14729
+ if (entry.combo.enabled === false) {
14730
+ continue;
14731
+ }
14732
+ if (matchesCombo(event, entry.combo)) {
14733
+ event.preventDefault();
14734
+ entry.handler();
14735
+ break;
14736
+ }
14737
+ }
14738
+ };
14739
+ window.addEventListener("keydown", onKeyDown);
14740
+ return () => window.removeEventListener("keydown", onKeyDown);
14741
+ }, [enabled]);
14742
+ const value = useMemo20(() => ({ register, shortcuts }), [register, shortcuts]);
14743
+ return /* @__PURE__ */ jsx94(HotkeyManagerContext.Provider, { value, children });
14744
+ }
14745
+ function useHotkey(combo, handler) {
14746
+ const context = useContext10(HotkeyManagerContext);
14747
+ const register = context == null ? void 0 : context.register;
14748
+ const handlerRef = useRef31(handler);
14749
+ handlerRef.current = handler;
14750
+ const { alt, ctrl, description, enabled, id, key, meta, shift } = combo;
14751
+ useEffect31(() => {
14752
+ if (!register) {
14753
+ return;
14754
+ }
14755
+ return register(
14756
+ { alt, ctrl, description, enabled, id, key, meta, shift },
14757
+ () => {
14758
+ handlerRef.current();
14759
+ }
14760
+ );
14761
+ }, [alt, ctrl, description, enabled, id, key, meta, register, shift]);
14762
+ }
14763
+ function useHotkeyManager() {
14764
+ const context = useContext10(HotkeyManagerContext);
14765
+ if (!context) {
14766
+ throw new Error("useHotkeyManager must be used within HotkeyManager");
14767
+ }
14768
+ return context;
14769
+ }
14770
+
14771
+ // ../../components/CopyButton/CopyButton.tsx
14772
+ import { useCallback as useCallback18, useEffect as useEffect32, useState as useState42 } from "react";
14773
+
14774
+ // ../../components/CopyButton/CopyButton.module.css
14775
+ var CopyButton_default = {"wrap":"opus_Ij6tWr_wrap"};
14776
+
14777
+ // ../../components/CopyButton/CopyButton.tsx
14778
+ import { jsx as jsx95 } from "react/jsx-runtime";
14779
+ async function writeClipboard(value) {
14780
+ var _a2;
14781
+ if ((_a2 = navigator.clipboard) == null ? void 0 : _a2.writeText) {
14782
+ await navigator.clipboard.writeText(value);
14783
+ return;
14784
+ }
14785
+ const textarea = document.createElement("textarea");
14786
+ textarea.value = value;
14787
+ textarea.setAttribute("readonly", "");
14788
+ textarea.style.position = "fixed";
14789
+ textarea.style.left = "-9999px";
14790
+ document.body.appendChild(textarea);
14791
+ textarea.select();
14792
+ document.execCommand("copy");
14793
+ document.body.removeChild(textarea);
14794
+ }
14795
+ function CopyButton({
14796
+ children,
14797
+ copiedLabel = "Copied",
14798
+ label = "Copy",
14799
+ resetMs = 1600,
14800
+ value,
14801
+ variant = "secondary",
14802
+ onCopied
14803
+ }) {
14804
+ const [copied, setCopied] = useState42(false);
14805
+ useEffect32(() => {
14806
+ if (!copied) {
14807
+ return;
14808
+ }
14809
+ const timer = window.setTimeout(() => setCopied(false), resetMs);
14810
+ return () => window.clearTimeout(timer);
14811
+ }, [copied, resetMs]);
14812
+ const handleCopy = useCallback18(async () => {
14813
+ try {
14814
+ await writeClipboard(value);
14815
+ setCopied(true);
14816
+ onCopied == null ? void 0 : onCopied();
14817
+ } catch (e) {
14818
+ setCopied(false);
14819
+ }
14820
+ }, [onCopied, value]);
14821
+ return /* @__PURE__ */ jsx95("span", { className: CopyButton_default.wrap, children: /* @__PURE__ */ jsx95(Button, { onClick: handleCopy, type: "button", variant, children: children != null ? children : copied ? copiedLabel : label }) });
14822
+ }
14823
+
14824
+ // ../../components/Clipboard/Clipboard.tsx
14825
+ import { createContext as createContext10, useCallback as useCallback19, useContext as useContext11, useMemo as useMemo21, useState as useState43 } from "react";
14826
+ import { jsx as jsx96 } from "react/jsx-runtime";
14827
+ var ClipboardContext = createContext10(null);
14828
+ async function fallbackWrite(value) {
14829
+ const textarea = document.createElement("textarea");
14830
+ textarea.value = value;
14831
+ textarea.setAttribute("readonly", "");
14832
+ textarea.style.position = "fixed";
14833
+ textarea.style.left = "-9999px";
14834
+ document.body.appendChild(textarea);
14835
+ textarea.select();
14836
+ document.execCommand("copy");
14837
+ document.body.removeChild(textarea);
14838
+ }
14839
+ function ClipboardProvider({ children }) {
14840
+ const [lastCopied, setLastCopied] = useState43(null);
14841
+ const writeText = useCallback19(async (value2) => {
14842
+ var _a2;
14843
+ if ((_a2 = navigator.clipboard) == null ? void 0 : _a2.writeText) {
14844
+ await navigator.clipboard.writeText(value2);
14845
+ } else {
14846
+ await fallbackWrite(value2);
14847
+ }
14848
+ setLastCopied(value2);
14849
+ }, []);
14850
+ const readText = useCallback19(async () => {
14851
+ var _a2;
14852
+ if ((_a2 = navigator.clipboard) == null ? void 0 : _a2.readText) {
14853
+ return navigator.clipboard.readText();
14854
+ }
14855
+ return lastCopied != null ? lastCopied : "";
14856
+ }, [lastCopied]);
14857
+ const value = useMemo21(
14858
+ () => ({ lastCopied, readText, writeText }),
14859
+ [lastCopied, readText, writeText]
14860
+ );
14861
+ return /* @__PURE__ */ jsx96(ClipboardContext.Provider, { value, children });
14862
+ }
14863
+ function useClipboard() {
14864
+ const context = useContext11(ClipboardContext);
14865
+ if (!context) {
14866
+ throw new Error("useClipboard must be used within ClipboardProvider");
14867
+ }
14868
+ return context;
14869
+ }
14870
+ function Clipboard({ children }) {
14871
+ return /* @__PURE__ */ jsx96(ClipboardProvider, { children });
14872
+ }
14873
+
14874
+ // ../../components/ThemeSwitcher/ThemeSwitcher.tsx
14875
+ import { jsx as jsx97 } from "react/jsx-runtime";
14876
+ function ThemeSwitcher({
14877
+ id = "opus-theme-switcher",
14878
+ label = "Theme",
14879
+ value,
14880
+ onChange
14881
+ }) {
14882
+ return /* @__PURE__ */ jsx97(
14883
+ ThemeToggleField,
14884
+ {
14885
+ id,
14886
+ label,
14887
+ mode: "flagged",
14888
+ value,
14889
+ onChange
14890
+ }
14891
+ );
14892
+ }
14893
+
14894
+ // ../../components/ResizeObserver/ResizeObserver.tsx
14895
+ import { useEffect as useEffect33, useRef as useRef32, useState as useState44 } from "react";
14896
+ import { jsx as jsx98 } from "react/jsx-runtime";
14897
+ function ResizeObserver2({ children, className, onResize }) {
14898
+ const ref = useRef32(null);
14899
+ const [size, setSize] = useState44({ width: 0, height: 0 });
14900
+ useEffect33(() => {
14901
+ const node = ref.current;
14902
+ if (!node || typeof window.ResizeObserver === "undefined") {
14903
+ return;
14904
+ }
14905
+ const observer = new window.ResizeObserver((entries) => {
14906
+ const entry = entries[0];
14907
+ if (!entry) {
14908
+ return;
14909
+ }
14910
+ const next = {
14911
+ width: Math.round(entry.contentRect.width),
14912
+ height: Math.round(entry.contentRect.height)
14913
+ };
14914
+ setSize(next);
14915
+ onResize == null ? void 0 : onResize(next);
14916
+ });
14917
+ observer.observe(node);
14918
+ return () => observer.disconnect();
14919
+ }, [onResize]);
14920
+ return /* @__PURE__ */ jsx98("div", { className, ref, children: children(size) });
14921
+ }
14922
+ function useResizeObserver(targetRef) {
14923
+ const [size, setSize] = useState44({ width: 0, height: 0 });
14924
+ useEffect33(() => {
14925
+ const node = targetRef.current;
14926
+ if (!node || typeof window.ResizeObserver === "undefined") {
14927
+ return;
14928
+ }
14929
+ const observer = new window.ResizeObserver((entries) => {
14930
+ const entry = entries[0];
14931
+ if (!entry) {
14932
+ return;
14933
+ }
14934
+ setSize({
14935
+ width: Math.round(entry.contentRect.width),
14936
+ height: Math.round(entry.contentRect.height)
14937
+ });
14938
+ });
14939
+ observer.observe(node);
14940
+ return () => observer.disconnect();
14941
+ }, [targetRef]);
14942
+ return size;
14943
+ }
14944
+
14945
+ // ../../components/IntersectionObserver/IntersectionObserver.tsx
14946
+ import { useEffect as useEffect34, useRef as useRef33, useState as useState45 } from "react";
14947
+ import { jsx as jsx99 } from "react/jsx-runtime";
14948
+ function IntersectionObserver2({
14949
+ children,
14950
+ className,
14951
+ rootMargin = "0px",
14952
+ threshold = 0.25,
14953
+ onChange
14954
+ }) {
14955
+ const ref = useRef33(null);
14956
+ const [isIntersecting, setIsIntersecting] = useState45(false);
14957
+ useEffect34(() => {
14958
+ const node = ref.current;
14959
+ if (!node || typeof window.IntersectionObserver === "undefined") {
14960
+ return;
14961
+ }
14962
+ const observer = new window.IntersectionObserver(
14963
+ (entries) => {
14964
+ const entry = entries[0];
14965
+ if (!entry) {
14966
+ return;
14967
+ }
14968
+ setIsIntersecting(entry.isIntersecting);
14969
+ onChange == null ? void 0 : onChange(entry.isIntersecting);
14970
+ },
14971
+ { rootMargin, threshold }
14972
+ );
14973
+ observer.observe(node);
14974
+ return () => observer.disconnect();
14975
+ }, [onChange, rootMargin, threshold]);
14976
+ return /* @__PURE__ */ jsx99("div", { className, ref, children: children(isIntersecting) });
14977
+ }
14978
+ function useIntersectionObserver(targetRef, options = {}) {
14979
+ const { rootMargin = "0px", threshold = 0.25 } = options;
14980
+ const [isIntersecting, setIsIntersecting] = useState45(false);
14981
+ useEffect34(() => {
14982
+ const node = targetRef.current;
14983
+ if (!node || typeof window.IntersectionObserver === "undefined") {
14984
+ return;
14985
+ }
14986
+ const observer = new window.IntersectionObserver(
14987
+ (entries) => {
14988
+ const entry = entries[0];
14989
+ if (!entry) {
14990
+ return;
14991
+ }
14992
+ setIsIntersecting(entry.isIntersecting);
14993
+ },
14994
+ { rootMargin, threshold }
14995
+ );
14996
+ observer.observe(node);
14997
+ return () => observer.disconnect();
14998
+ }, [rootMargin, targetRef, threshold]);
14999
+ return isIntersecting;
15000
+ }
15001
+
15002
+ // ../../components/Sidebar/Sidebar.tsx
15003
+ import {
15004
+ createContext as createContext11,
15005
+ useContext as useContext12,
15006
+ useState as useState46
15007
+ } from "react";
15008
+
15009
+ // ../../components/Sidebar/Sidebar.module.css
15010
+ var Sidebar_default = {"groupToggle":"opus_4Pogux_groupToggle","groupItems":"opus_4Pogux_groupItems","sidebar":"opus_4Pogux_sidebar","visuallyHidden":"opus_4Pogux_visuallyHidden","group":"opus_4Pogux_group","main":"opus_4Pogux_main","footer":"opus_4Pogux_footer","headerInner":"opus_4Pogux_headerInner","groupLabel":"opus_4Pogux_groupLabel","link":"opus_4Pogux_link","groupChevronOpen":"opus_4Pogux_groupChevronOpen","layout":"opus_4Pogux_layout","groupItemsWrap":"opus_4Pogux_groupItemsWrap","groupChevron":"opus_4Pogux_groupChevron","body":"opus_4Pogux_body","nav":"opus_4Pogux_nav","headerTitle":"opus_4Pogux_headerTitle","header":"opus_4Pogux_header","groupHeader":"opus_4Pogux_groupHeader","linkActive":"opus_4Pogux_linkActive"};
15011
+
15012
+ // ../../components/Sidebar/Sidebar.tsx
15013
+ import { Fragment as Fragment11, jsx as jsx100, jsxs as jsxs75 } from "react/jsx-runtime";
15014
+ var SidebarContext = createContext11({
15015
+ collapsed: false,
15016
+ density: "comfortable"
15017
+ });
15018
+ function Sidebar({
15019
+ children,
15020
+ collapsed = false,
15021
+ density = "comfortable",
15022
+ footer,
15023
+ header,
15024
+ side = "left"
15025
+ }) {
15026
+ return /* @__PURE__ */ jsx100(SidebarContext.Provider, { value: { collapsed, density }, children: /* @__PURE__ */ jsxs75(
15027
+ "aside",
15028
+ {
15029
+ "aria-label": "Sidebar",
15030
+ className: Sidebar_default.sidebar,
15031
+ "data-collapsed": collapsed ? "true" : "false",
13184
15032
  "data-density": density,
13185
15033
  "data-side": side,
13186
15034
  children: [
13187
- header ? /* @__PURE__ */ jsx76("div", { className: Sidebar_default.header, children: header }) : null,
13188
- /* @__PURE__ */ jsx76("div", { className: Sidebar_default.body, children }),
13189
- footer ? /* @__PURE__ */ jsx76("div", { className: Sidebar_default.footer, children: footer }) : null
15035
+ header ? /* @__PURE__ */ jsx100("div", { className: Sidebar_default.header, children: header }) : null,
15036
+ /* @__PURE__ */ jsx100("div", { className: Sidebar_default.body, children }),
15037
+ footer ? /* @__PURE__ */ jsx100("div", { className: Sidebar_default.footer, children: footer }) : null
13190
15038
  ]
13191
15039
  }
13192
15040
  ) });
13193
15041
  }
13194
15042
  function SidebarHeader({ children, title }) {
13195
- const { collapsed } = useContext9(SidebarContext);
13196
- return /* @__PURE__ */ jsxs63("div", { className: Sidebar_default.headerInner, children: [
13197
- /* @__PURE__ */ jsx76("h2", { className: collapsed ? Sidebar_default.visuallyHidden : Sidebar_default.headerTitle, children: title }),
15043
+ const { collapsed } = useContext12(SidebarContext);
15044
+ return /* @__PURE__ */ jsxs75("div", { className: Sidebar_default.headerInner, children: [
15045
+ /* @__PURE__ */ jsx100("h2", { className: collapsed ? Sidebar_default.visuallyHidden : Sidebar_default.headerTitle, children: title }),
13198
15046
  children
13199
15047
  ] });
13200
15048
  }
13201
15049
  function SidebarNav({ "aria-label": ariaLabel, children }) {
13202
- return /* @__PURE__ */ jsx76("nav", { "aria-label": ariaLabel, className: Sidebar_default.nav, children });
15050
+ return /* @__PURE__ */ jsx100("nav", { "aria-label": ariaLabel, className: Sidebar_default.nav, children });
13203
15051
  }
13204
15052
  function SidebarLink({ active = false, children, href, onClick }) {
13205
- const { collapsed } = useContext9(SidebarContext);
15053
+ const { collapsed } = useContext12(SidebarContext);
13206
15054
  const className = [Sidebar_default.link, active ? Sidebar_default.linkActive : ""].filter(Boolean).join(" ");
13207
15055
  const label = typeof children === "string" ? children : null;
13208
- const content = /* @__PURE__ */ jsxs63(Fragment9, { children: [
13209
- collapsed && label ? /* @__PURE__ */ jsx76("span", { "aria-hidden": "true", children: label.charAt(0) }) : null,
13210
- /* @__PURE__ */ jsx76("span", { className: collapsed ? Sidebar_default.visuallyHidden : void 0, children })
15056
+ const content = /* @__PURE__ */ jsxs75(Fragment11, { children: [
15057
+ collapsed && label ? /* @__PURE__ */ jsx100("span", { "aria-hidden": "true", children: label.charAt(0) }) : null,
15058
+ /* @__PURE__ */ jsx100("span", { className: collapsed ? Sidebar_default.visuallyHidden : void 0, children })
13211
15059
  ] });
13212
15060
  if (href) {
13213
- return /* @__PURE__ */ jsx76("a", { "aria-current": active ? "page" : void 0, className, href, children: content });
15061
+ return /* @__PURE__ */ jsx100("a", { "aria-current": active ? "page" : void 0, className, href, children: content });
13214
15062
  }
13215
- return /* @__PURE__ */ jsx76(
15063
+ return /* @__PURE__ */ jsx100(
13216
15064
  "button",
13217
15065
  {
13218
15066
  "aria-current": active ? "page" : void 0,
@@ -13231,16 +15079,16 @@ function createGroupListId(label, id) {
13231
15079
  return slug ? `sidebar-group-${slug}` : "sidebar-group";
13232
15080
  }
13233
15081
  function SidebarGroup({ children, defaultOpen = true, id, label }) {
13234
- const { collapsed } = useContext9(SidebarContext);
15082
+ const { collapsed } = useContext12(SidebarContext);
13235
15083
  const listId = createGroupListId(label, id);
13236
- const [open, setOpen] = useState36(defaultOpen);
15084
+ const [open, setOpen] = useState46(defaultOpen);
13237
15085
  if (collapsed) {
13238
- return /* @__PURE__ */ jsx76("div", { "aria-label": label, className: Sidebar_default.group, role: "group", children });
15086
+ return /* @__PURE__ */ jsx100("div", { "aria-label": label, className: Sidebar_default.group, role: "group", children });
13239
15087
  }
13240
- return /* @__PURE__ */ jsxs63("div", { "aria-label": label, className: Sidebar_default.group, role: "group", children: [
13241
- /* @__PURE__ */ jsxs63("div", { className: Sidebar_default.groupHeader, children: [
13242
- /* @__PURE__ */ jsx76("span", { className: Sidebar_default.groupLabel, children: label }),
13243
- /* @__PURE__ */ jsx76(
15088
+ return /* @__PURE__ */ jsxs75("div", { "aria-label": label, className: Sidebar_default.group, role: "group", children: [
15089
+ /* @__PURE__ */ jsxs75("div", { className: Sidebar_default.groupHeader, children: [
15090
+ /* @__PURE__ */ jsx100("span", { className: Sidebar_default.groupLabel, children: label }),
15091
+ /* @__PURE__ */ jsx100(
13244
15092
  "button",
13245
15093
  {
13246
15094
  "aria-controls": listId,
@@ -13249,29 +15097,29 @@ function SidebarGroup({ children, defaultOpen = true, id, label }) {
13249
15097
  className: Sidebar_default.groupToggle,
13250
15098
  onClick: () => setOpen((current) => !current),
13251
15099
  type: "button",
13252
- children: /* @__PURE__ */ jsx76("span", { "aria-hidden": "true", className: open ? Sidebar_default.groupChevronOpen : Sidebar_default.groupChevron })
15100
+ children: /* @__PURE__ */ jsx100("span", { "aria-hidden": "true", className: open ? Sidebar_default.groupChevronOpen : Sidebar_default.groupChevron })
13253
15101
  }
13254
15102
  )
13255
15103
  ] }),
13256
- /* @__PURE__ */ jsx76("div", { className: Sidebar_default.groupItemsWrap, "data-open": open ? "true" : "false", children: /* @__PURE__ */ jsx76("div", { className: Sidebar_default.groupItems, id: listId, inert: !open || void 0, children }) })
15104
+ /* @__PURE__ */ jsx100("div", { className: Sidebar_default.groupItemsWrap, "data-open": open ? "true" : "false", children: /* @__PURE__ */ jsx100("div", { className: Sidebar_default.groupItems, id: listId, inert: !open || void 0, children }) })
13257
15105
  ] });
13258
15106
  }
13259
15107
  function SidebarLayout({ children, collapsed = false, main, side = "left" }) {
13260
- return /* @__PURE__ */ jsxs63("div", { className: Sidebar_default.layout, "data-collapsed": collapsed ? "true" : "false", "data-side": side, children: [
15108
+ return /* @__PURE__ */ jsxs75("div", { className: Sidebar_default.layout, "data-collapsed": collapsed ? "true" : "false", "data-side": side, children: [
13261
15109
  side === "left" ? children : null,
13262
- /* @__PURE__ */ jsx76("div", { className: Sidebar_default.main, children: main }),
15110
+ /* @__PURE__ */ jsx100("div", { className: Sidebar_default.main, children: main }),
13263
15111
  side === "right" ? children : null
13264
15112
  ] });
13265
15113
  }
13266
15114
 
13267
15115
  // ../../components/AccentColorPicker/AccentColorPicker.tsx
13268
- import { useCallback as useCallback17, useEffect as useEffect28, useMemo as useMemo16, useState as useState37 } from "react";
15116
+ import { useCallback as useCallback20, useEffect as useEffect35, useMemo as useMemo22, useState as useState47 } from "react";
13269
15117
 
13270
15118
  // ../../components/AccentColorPicker/AccentColorPicker.module.css
13271
- var AccentColorPicker_default = {"swatch":"opus_scMnrW_swatch","swatches":"opus_scMnrW_swatches"};
15119
+ var AccentColorPicker_default = {"swatches":"opus_scMnrW_swatches","swatch":"opus_scMnrW_swatch"};
13272
15120
 
13273
15121
  // ../../components/AccentColorPicker/AccentColorPicker.tsx
13274
- import { jsx as jsx77 } from "react/jsx-runtime";
15122
+ import { jsx as jsx101 } from "react/jsx-runtime";
13275
15123
  var ACCENT_STORAGE_KEY = "opus-components-accent";
13276
15124
  var DEFAULT_ACCENT_COLOR = "#8f6cff";
13277
15125
  var accentColors = [
@@ -13305,8 +15153,8 @@ function applyDocumentAccent(accent) {
13305
15153
  );
13306
15154
  }
13307
15155
  function useAccentPreference() {
13308
- const [accent, setAccentState] = useState37(DEFAULT_ACCENT_COLOR);
13309
- useEffect28(() => {
15156
+ const [accent, setAccentState] = useState47(DEFAULT_ACCENT_COLOR);
15157
+ useEffect35(() => {
13310
15158
  const timeout = window.setTimeout(() => {
13311
15159
  const stored = window.localStorage.getItem(ACCENT_STORAGE_KEY);
13312
15160
  if (isAccentColor(stored)) {
@@ -13318,7 +15166,7 @@ function useAccentPreference() {
13318
15166
  }, 0);
13319
15167
  return () => window.clearTimeout(timeout);
13320
15168
  }, []);
13321
- const setAccent = useCallback17((next) => {
15169
+ const setAccent = useCallback20((next) => {
13322
15170
  if (!isAccentColor(next)) {
13323
15171
  return;
13324
15172
  }
@@ -13326,10 +15174,11 @@ function useAccentPreference() {
13326
15174
  applyDocumentAccent(next);
13327
15175
  window.localStorage.setItem(ACCENT_STORAGE_KEY, next);
13328
15176
  }, []);
13329
- const accentStyle = useMemo16(() => createAccentStyle(accent), [accent]);
15177
+ const accentStyle = useMemo22(() => createAccentStyle(accent), [accent]);
13330
15178
  return { accent, accentStyle, setAccent };
13331
15179
  }
13332
15180
  function AccentColorPicker({
15181
+ help,
13333
15182
  id,
13334
15183
  label = "Accent",
13335
15184
  labelPosition = "left",
@@ -13337,19 +15186,20 @@ function AccentColorPicker({
13337
15186
  onChange,
13338
15187
  value
13339
15188
  }) {
13340
- return /* @__PURE__ */ jsx77(
15189
+ return /* @__PURE__ */ jsx101(
13341
15190
  FieldShell,
13342
15191
  {
13343
15192
  fitContent: true,
13344
15193
  flaggedAlign: "center",
15194
+ help,
13345
15195
  id,
13346
15196
  label,
13347
15197
  labelPosition,
13348
15198
  labelTag: "div",
13349
15199
  mode,
13350
- children: /* @__PURE__ */ jsx77("div", { "aria-labelledby": `${id}-label`, className: AccentColorPicker_default.swatches, role: "radiogroup", children: accentColors.map((option) => {
15200
+ children: /* @__PURE__ */ jsx101("div", { "aria-labelledby": `${id}-label`, className: AccentColorPicker_default.swatches, role: "radiogroup", children: accentColors.map((option) => {
13351
15201
  const selected = value === option.value;
13352
- return /* @__PURE__ */ jsx77(
15202
+ return /* @__PURE__ */ jsx101(
13353
15203
  "button",
13354
15204
  {
13355
15205
  "aria-checked": selected,
@@ -13370,15 +15220,16 @@ function AccentColorPicker({
13370
15220
  }
13371
15221
 
13372
15222
  // ../../components/IconPicker/IconPicker.tsx
13373
- import { useEffect as useEffect29, useId as useId19, useMemo as useMemo17, useRef as useRef30, useState as useState38 } from "react";
13374
- import { FontAwesomeIcon as FontAwesomeIcon11 } from "@fortawesome/react-fontawesome";
15223
+ import { useEffect as useEffect36, useId as useId19, useMemo as useMemo23, useRef as useRef34, useState as useState48 } from "react";
15224
+ import { FontAwesomeIcon as FontAwesomeIcon12 } from "@fortawesome/react-fontawesome";
13375
15225
 
13376
15226
  // ../../components/IconPicker/IconPicker.module.css
13377
- var IconPicker_default = {"triggerLabel":"opus_4E-Oa1_triggerLabel","root":"opus_4E-Oa1_root","trigger":"opus_4E-Oa1_trigger","chevron":"opus_4E-Oa1_chevron","option":"opus_4E-Oa1_option","menu":"opus_4E-Oa1_menu","search":"opus_4E-Oa1_search","empty":"opus_4E-Oa1_empty","optionIcon":"opus_4E-Oa1_optionIcon","triggerIcon":"opus_4E-Oa1_triggerIcon","grid":"opus_4E-Oa1_grid"};
15227
+ var IconPicker_default = {"grid":"opus_4E-Oa1_grid","triggerLabel":"opus_4E-Oa1_triggerLabel","root":"opus_4E-Oa1_root","triggerIcon":"opus_4E-Oa1_triggerIcon","chevron":"opus_4E-Oa1_chevron","empty":"opus_4E-Oa1_empty","optionIcon":"opus_4E-Oa1_optionIcon","menu":"opus_4E-Oa1_menu","trigger":"opus_4E-Oa1_trigger","search":"opus_4E-Oa1_search","option":"opus_4E-Oa1_option"};
13378
15228
 
13379
15229
  // ../../components/IconPicker/IconPicker.tsx
13380
- import { jsx as jsx78, jsxs as jsxs64 } from "react/jsx-runtime";
15230
+ import { jsx as jsx102, jsxs as jsxs76 } from "react/jsx-runtime";
13381
15231
  function IconPicker({
15232
+ help,
13382
15233
  id,
13383
15234
  label = "Icon",
13384
15235
  labelPosition = "left",
@@ -13387,14 +15238,14 @@ function IconPicker({
13387
15238
  searchPlaceholder = "Search icons",
13388
15239
  value
13389
15240
  }) {
13390
- const [open, setOpen] = useState38(false);
13391
- const [query, setQuery] = useState38("");
13392
- const rootRef = useRef30(null);
13393
- const searchRef = useRef30(null);
15241
+ const [open, setOpen] = useState48(false);
15242
+ const [query, setQuery] = useState48("");
15243
+ const rootRef = useRef34(null);
15244
+ const searchRef = useRef34(null);
13394
15245
  const listboxId = useId19();
13395
15246
  const selected = getFontAwesomeIconOption(value);
13396
- const filteredIcons = useMemo17(() => filterFontAwesomeIcons(query), [query]);
13397
- useEffect29(() => {
15247
+ const filteredIcons = useMemo23(() => filterFontAwesomeIcons(query), [query]);
15248
+ useEffect36(() => {
13398
15249
  if (!open) {
13399
15250
  return;
13400
15251
  }
@@ -13421,8 +15272,8 @@ function IconPicker({
13421
15272
  document.removeEventListener("keydown", handleKeyDown);
13422
15273
  };
13423
15274
  }, [open]);
13424
- return /* @__PURE__ */ jsx78(FieldShell, { id, label, labelPosition, mode, children: /* @__PURE__ */ jsxs64("div", { className: IconPicker_default.root, ref: rootRef, children: [
13425
- /* @__PURE__ */ jsxs64(
15275
+ return /* @__PURE__ */ jsx102(FieldShell, { help, id, label, labelPosition, mode, children: /* @__PURE__ */ jsxs76("div", { className: IconPicker_default.root, ref: rootRef, children: [
15276
+ /* @__PURE__ */ jsxs76(
13426
15277
  "button",
13427
15278
  {
13428
15279
  "aria-controls": open ? listboxId : void 0,
@@ -13433,14 +15284,14 @@ function IconPicker({
13433
15284
  type: "button",
13434
15285
  onClick: () => setOpen((current) => !current),
13435
15286
  children: [
13436
- /* @__PURE__ */ jsx78("span", { "aria-hidden": "true", className: IconPicker_default.triggerIcon, children: /* @__PURE__ */ jsx78(FontAwesomeIcon11, { icon: selected.icon }) }),
13437
- /* @__PURE__ */ jsx78("span", { className: IconPicker_default.triggerLabel, children: selected.label })
15287
+ /* @__PURE__ */ jsx102("span", { "aria-hidden": "true", className: IconPicker_default.triggerIcon, children: /* @__PURE__ */ jsx102(FontAwesomeIcon12, { icon: selected.icon }) }),
15288
+ /* @__PURE__ */ jsx102("span", { className: IconPicker_default.triggerLabel, children: selected.label })
13438
15289
  ]
13439
15290
  }
13440
15291
  ),
13441
- /* @__PURE__ */ jsx78("span", { "aria-hidden": "true", className: IconPicker_default.chevron }),
13442
- open ? /* @__PURE__ */ jsxs64("div", { className: IconPicker_default.menu, children: [
13443
- /* @__PURE__ */ jsx78(
15292
+ /* @__PURE__ */ jsx102("span", { "aria-hidden": "true", className: IconPicker_default.chevron }),
15293
+ open ? /* @__PURE__ */ jsxs76("div", { className: IconPicker_default.menu, children: [
15294
+ /* @__PURE__ */ jsx102(
13444
15295
  "input",
13445
15296
  {
13446
15297
  "aria-label": searchPlaceholder,
@@ -13452,7 +15303,7 @@ function IconPicker({
13452
15303
  onChange: (event) => setQuery(event.target.value)
13453
15304
  }
13454
15305
  ),
13455
- /* @__PURE__ */ jsx78("div", { className: IconPicker_default.grid, id: listboxId, role: "listbox", children: filteredIcons.length ? filteredIcons.map((entry) => /* @__PURE__ */ jsx78(
15306
+ /* @__PURE__ */ jsx102("div", { className: IconPicker_default.grid, id: listboxId, role: "listbox", children: filteredIcons.length ? filteredIcons.map((entry) => /* @__PURE__ */ jsx102(
13456
15307
  "button",
13457
15308
  {
13458
15309
  "aria-label": entry.label,
@@ -13467,10 +15318,10 @@ function IconPicker({
13467
15318
  setOpen(false);
13468
15319
  setQuery("");
13469
15320
  },
13470
- children: /* @__PURE__ */ jsx78("span", { "aria-hidden": "true", className: IconPicker_default.optionIcon, children: /* @__PURE__ */ jsx78(FontAwesomeIcon11, { icon: entry.icon }) })
15321
+ children: /* @__PURE__ */ jsx102("span", { "aria-hidden": "true", className: IconPicker_default.optionIcon, children: /* @__PURE__ */ jsx102(FontAwesomeIcon12, { icon: entry.icon }) })
13471
15322
  },
13472
15323
  entry.iconName
13473
- )) : /* @__PURE__ */ jsx78("p", { className: IconPicker_default.empty, children: "No icons match your search." }) })
15324
+ )) : /* @__PURE__ */ jsx102("p", { className: IconPicker_default.empty, children: "No icons match your search." }) })
13474
15325
  ] }) : null
13475
15326
  ] }) });
13476
15327
  }
@@ -13479,6 +15330,9 @@ export {
13479
15330
  Accordion,
13480
15331
  AccordionGroup,
13481
15332
  Alert,
15333
+ Avatar,
15334
+ AvatarGroup,
15335
+ Badge,
13482
15336
  Button,
13483
15337
  Card,
13484
15338
  Carousel,
@@ -13488,15 +15342,21 @@ export {
13488
15342
  CheckboxField,
13489
15343
  ChipInput,
13490
15344
  ChipInputField,
15345
+ Clipboard,
15346
+ ClipboardProvider,
13491
15347
  ColorField,
13492
15348
  CommandPalette,
15349
+ ContentTimeline,
13493
15350
  ContextMenuProvider,
13494
15351
  ContextMenuTarget,
15352
+ CopyButton,
13495
15353
  CountryPickerField,
13496
15354
  DEFAULT_TOAST_DURATION_MS,
13497
15355
  DataGrid,
13498
15356
  DateField,
15357
+ DescriptionList,
13499
15358
  Dialog,
15359
+ Divider,
13500
15360
  Drawer,
13501
15361
  DrawerDefaultActions,
13502
15362
  DropdownMenu,
@@ -13505,12 +15365,20 @@ export {
13505
15365
  FieldShell,
13506
15366
  FileField,
13507
15367
  FilterSelectField,
15368
+ FocusTrap,
13508
15369
  Gauge,
13509
15370
  HiddenField,
15371
+ HotkeyManager,
15372
+ Icon,
13510
15373
  IconPicker,
13511
15374
  ImageGallery,
13512
15375
  ImageThumbnail,
15376
+ IntersectionObserver2 as IntersectionObserver,
15377
+ JsonViewer,
15378
+ KeyboardShortcut,
13513
15379
  Lightbox,
15380
+ List,
15381
+ MasonryGrid,
13514
15382
  MegaMenu,
13515
15383
  MetricTile,
13516
15384
  Modal,
@@ -13526,12 +15394,16 @@ export {
13526
15394
  PasswordStrengthField,
13527
15395
  PhoneNumberField,
13528
15396
  Popover,
15397
+ Portal,
15398
+ PortalHost,
13529
15399
  ProgressBar,
13530
15400
  ProgressRing,
15401
+ PropertyGrid,
13531
15402
  Radio,
13532
15403
  RadioGroup,
13533
15404
  RangeField,
13534
15405
  RatingField,
15406
+ ResizeObserver2 as ResizeObserver,
13535
15407
  RichTextField,
13536
15408
  Section,
13537
15409
  SegmentedControlField,
@@ -13547,13 +15419,17 @@ export {
13547
15419
  SliderRangeField,
13548
15420
  Sparkline,
13549
15421
  Speedometer,
15422
+ Spinner,
13550
15423
  StatCard,
15424
+ Statistic,
13551
15425
  StatusIndicator,
13552
15426
  SwitchField,
13553
15427
  Table,
13554
15428
  Tabs,
13555
15429
  TextAreaField,
13556
15430
  TextField,
15431
+ OpusThemeProvider as ThemeProvider,
15432
+ ThemeSwitcher,
13557
15433
  ThemeToggleField,
13558
15434
  Toast,
13559
15435
  ToastProvider,
@@ -13562,7 +15438,9 @@ export {
13562
15438
  TopNavigationMenu,
13563
15439
  TransferListField,
13564
15440
  TreeSelectField,
15441
+ TreeView,
13565
15442
  TrendBadge,
15443
+ VisuallyHidden,
13566
15444
  accentColors,
13567
15445
  cartesianSpecializedVariants,
13568
15446
  countryCodeToFlag,
@@ -13577,9 +15455,15 @@ export {
13577
15455
  fieldInputAriaProps,
13578
15456
  countries as phoneCountries,
13579
15457
  useAccentPreference,
15458
+ useClipboard,
13580
15459
  useContextMenu,
13581
15460
  useFieldShellAria,
15461
+ useHotkey,
15462
+ useHotkeyManager,
15463
+ useIntersectionObserver,
13582
15464
  useOpusTheme,
15465
+ usePortalHost,
15466
+ useResizeObserver,
13583
15467
  useToast,
13584
15468
  useTopNavigation,
13585
15469
  worldMapRegionIds