@weasel-js/ui 1.0.0 → 1.0.2

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.
Files changed (119) hide show
  1. package/dist/chunks/ActionsBar-9aR5N3lU.js +41 -0
  2. package/dist/chunks/ActionsBar-9aR5N3lU.js.map +1 -0
  3. package/dist/chunks/{Callout-CxxrEcSb.js → Callout-CFqG5xho.js} +1 -1
  4. package/dist/chunks/{Callout-CxxrEcSb.js.map → Callout-CFqG5xho.js.map} +1 -1
  5. package/dist/chunks/{Checkbox-Cf6YHVWV.js → Checkbox-KQ5L8APP.js} +1 -1
  6. package/dist/chunks/{Checkbox-Cf6YHVWV.js.map → Checkbox-KQ5L8APP.js.map} +1 -1
  7. package/dist/chunks/{ColorField-sGLnThpB.js → ColorField-ykpiD3XU.js} +1 -1
  8. package/dist/chunks/{ColorField-sGLnThpB.js.map → ColorField-ykpiD3XU.js.map} +1 -1
  9. package/dist/chunks/{ComboBox-EnV1IytN.js → ComboBox-DpxsFVBy.js} +2 -2
  10. package/dist/chunks/{ComboBox-EnV1IytN.js.map → ComboBox-DpxsFVBy.js.map} +1 -1
  11. package/dist/chunks/{CurveEditor-DAb2EMyR.js → CurveEditor-fRctbmoV.js} +1 -1
  12. package/dist/chunks/{CurveEditor-DAb2EMyR.js.map → CurveEditor-fRctbmoV.js.map} +1 -1
  13. package/dist/chunks/{Dialog-CQymDCAl.js → Dialog-3FCd_gYi.js} +1 -1
  14. package/dist/chunks/{Dialog-CQymDCAl.js.map → Dialog-3FCd_gYi.js.map} +1 -1
  15. package/dist/chunks/{Field-BHSu2F3E.js → Field-VQwmrIna.js} +1 -1
  16. package/dist/chunks/{Field-BHSu2F3E.js.map → Field-VQwmrIna.js.map} +1 -1
  17. package/dist/chunks/{GradientEditor-Co9aGyRe.js → GradientEditor-BL5kg7a_.js} +3 -3
  18. package/dist/chunks/{GradientEditor-Co9aGyRe.js.map → GradientEditor-BL5kg7a_.js.map} +1 -1
  19. package/dist/chunks/{Input-qk44ESKC.js → Input-DpkwYtUY.js} +2 -2
  20. package/dist/chunks/{Input-qk44ESKC.js.map → Input-DpkwYtUY.js.map} +1 -1
  21. package/dist/chunks/{NumberField-CYhQeWoM.js → NumberField-BbzI0GtU.js} +2 -2
  22. package/dist/chunks/{NumberField-CYhQeWoM.js.map → NumberField-BbzI0GtU.js.map} +1 -1
  23. package/dist/chunks/OptionsBar-CHvH4n4u.js +45 -0
  24. package/dist/chunks/OptionsBar-CHvH4n4u.js.map +1 -0
  25. package/dist/chunks/{PointPlotter-EkbCBK9j.js → PointPlotter-R8hguJPq.js} +2 -2
  26. package/dist/chunks/{PointPlotter-EkbCBK9j.js.map → PointPlotter-R8hguJPq.js.map} +1 -1
  27. package/dist/chunks/{Powerline-Bg9M5oBK.js → Powerline-Dd9Ukhcl.js} +1 -1
  28. package/dist/chunks/{Powerline-Bg9M5oBK.js.map → Powerline-Dd9Ukhcl.js.map} +1 -1
  29. package/dist/chunks/{Prefs-DZjXp2Ln.js → Prefs-lgI4x4jF.js} +10 -10
  30. package/dist/chunks/{Prefs-DZjXp2Ln.js.map → Prefs-lgI4x4jF.js.map} +1 -1
  31. package/dist/chunks/{RadioGroup-rL2i3afr.js → RadioGroup-CIpHr3g6.js} +2 -2
  32. package/dist/chunks/{RadioGroup-rL2i3afr.js.map → RadioGroup-CIpHr3g6.js.map} +1 -1
  33. package/dist/chunks/{RangeSlider-DPldYd4O.js → RangeSlider-CaDogGTj.js} +1 -1
  34. package/dist/chunks/{RangeSlider-DPldYd4O.js.map → RangeSlider-CaDogGTj.js.map} +1 -1
  35. package/dist/chunks/{ResizeHandle-DR8X229y.js → ResizeHandle-CCQ2y87y.js} +1 -1
  36. package/dist/chunks/{ResizeHandle-DR8X229y.js.map → ResizeHandle-CCQ2y87y.js.map} +1 -1
  37. package/dist/chunks/{Select-vSeAbspK.js → Select-BE3Y1NrH.js} +2 -2
  38. package/dist/chunks/{Select-vSeAbspK.js.map → Select-BE3Y1NrH.js.map} +1 -1
  39. package/dist/chunks/{SelectionPanel-1mmALQba.js → SelectionPanel-Zaw8tYQH.js} +6 -6
  40. package/dist/chunks/{SelectionPanel-1mmALQba.js.map → SelectionPanel-Zaw8tYQH.js.map} +1 -1
  41. package/dist/chunks/{Sidebar-CigrFvpL.js → Sidebar-DP_nyJze.js} +1 -1
  42. package/dist/chunks/{Sidebar-CigrFvpL.js.map → Sidebar-DP_nyJze.js.map} +1 -1
  43. package/dist/chunks/{SidebarPanel-C0w16BrF.js → SidebarPanel-BpD0ptyg.js} +1 -1
  44. package/dist/chunks/{SidebarPanel-C0w16BrF.js.map → SidebarPanel-BpD0ptyg.js.map} +1 -1
  45. package/dist/chunks/{StatusBar-lt_Ok6WK.js → StatusBar-DBO0E0Yd.js} +1 -1
  46. package/dist/chunks/{StatusBar-lt_Ok6WK.js.map → StatusBar-DBO0E0Yd.js.map} +1 -1
  47. package/dist/chunks/{Switch-BYj762hm.js → Switch-JyVSSAzC.js} +1 -1
  48. package/dist/chunks/{Switch-BYj762hm.js.map → Switch-JyVSSAzC.js.map} +1 -1
  49. package/dist/chunks/{Tabs-DOW5jtnq.js → Tabs-Df0sDomx.js} +1 -1
  50. package/dist/chunks/{Tabs-DOW5jtnq.js.map → Tabs-Df0sDomx.js.map} +1 -1
  51. package/dist/chunks/{Toast-DLM2AsTz.js → Toast-DFw4IrD_.js} +1 -1
  52. package/dist/chunks/{Toast-DLM2AsTz.js.map → Toast-DFw4IrD_.js.map} +1 -1
  53. package/dist/chunks/ToggleBar-BP1zFcvg.js +74 -0
  54. package/dist/chunks/ToggleBar-BP1zFcvg.js.map +1 -0
  55. package/dist/chunks/{ToolButton-5L1sAlJC.js → ToolButton-DpT-mukU.js} +6 -5
  56. package/dist/chunks/ToolButton-DpT-mukU.js.map +1 -0
  57. package/dist/chunks/{ToolGroup-BAthcF5H.js → ToolGroup-BTIwd4U4.js} +1 -1
  58. package/dist/chunks/{ToolGroup-BAthcF5H.js.map → ToolGroup-BTIwd4U4.js.map} +1 -1
  59. package/dist/chunks/{ToolOptionsBar-D4xmXa_a.js → ToolOptionsBar-JvmY7iNe.js} +1 -1
  60. package/dist/chunks/{ToolOptionsBar-D4xmXa_a.js.map → ToolOptionsBar-JvmY7iNe.js.map} +1 -1
  61. package/dist/chunks/{ToolPalette-BDkvV3pJ.js → ToolPalette-DPn0owno.js} +27 -47
  62. package/dist/chunks/ToolPalette-DPn0owno.js.map +1 -0
  63. package/dist/chunks/segmentedControl.module-DCyuDbj1.js +11 -0
  64. package/dist/chunks/segmentedControl.module-DCyuDbj1.js.map +1 -0
  65. package/dist/chunks/useRovingTabIndex-DBZtq4IH.js +65 -0
  66. package/dist/chunks/useRovingTabIndex-DBZtq4IH.js.map +1 -0
  67. package/dist/components/ActionsBar/ActionsBar.d.ts.map +1 -1
  68. package/dist/components/ActionsBar/index.js +1 -1
  69. package/dist/components/Callout/index.js +1 -1
  70. package/dist/components/Checkbox/index.js +1 -1
  71. package/dist/components/ColorField/index.js +1 -1
  72. package/dist/components/ComboBox/index.js +1 -1
  73. package/dist/components/CurveEditor/index.js +1 -1
  74. package/dist/components/Dialog/index.js +1 -1
  75. package/dist/components/Field/index.js +1 -1
  76. package/dist/components/GradientEditor/index.js +1 -1
  77. package/dist/components/Input/index.js +1 -1
  78. package/dist/components/NumberField/index.js +1 -1
  79. package/dist/components/OptionsBar/OptionsBar.d.ts.map +1 -1
  80. package/dist/components/OptionsBar/index.js +1 -1
  81. package/dist/components/PointPlotter/index.js +1 -1
  82. package/dist/components/Powerline/index.js +1 -1
  83. package/dist/components/Prefs/index.js +1 -1
  84. package/dist/components/RadioGroup/index.js +1 -1
  85. package/dist/components/RangeSlider/index.js +1 -1
  86. package/dist/components/ResizeHandle/index.js +1 -1
  87. package/dist/components/Select/index.js +1 -1
  88. package/dist/components/SelectionPanel/index.js +1 -1
  89. package/dist/components/Sidebar/index.js +1 -1
  90. package/dist/components/SidebarPanel/index.js +1 -1
  91. package/dist/components/StatusBar/index.js +1 -1
  92. package/dist/components/Switch/index.js +1 -1
  93. package/dist/components/Tabs/index.js +1 -1
  94. package/dist/components/Toast/index.js +1 -1
  95. package/dist/components/ToggleBar/ToggleBar.d.ts.map +1 -1
  96. package/dist/components/ToggleBar/index.js +1 -1
  97. package/dist/components/ToolButton/ToolButton.d.ts +4 -1
  98. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  99. package/dist/components/ToolButton/index.js +1 -1
  100. package/dist/components/ToolGroup/index.js +1 -1
  101. package/dist/components/ToolOptionsBar/index.js +1 -1
  102. package/dist/components/ToolPalette/ToolPalette.d.ts.map +1 -1
  103. package/dist/components/ToolPalette/index.js +1 -1
  104. package/dist/index.d.ts +2 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +38 -37
  107. package/dist/index.js.map +1 -1
  108. package/dist/style.css +1 -1
  109. package/dist/useRovingTabIndex.d.ts +52 -0
  110. package/dist/useRovingTabIndex.d.ts.map +1 -0
  111. package/package.json +2 -2
  112. package/dist/chunks/ActionsBar-CzU6Of3B.js +0 -94
  113. package/dist/chunks/ActionsBar-CzU6Of3B.js.map +0 -1
  114. package/dist/chunks/OptionsBar-CHOP_CiW.js +0 -98
  115. package/dist/chunks/OptionsBar-CHOP_CiW.js.map +0 -1
  116. package/dist/chunks/ToggleBar-Defj6Asn.js +0 -129
  117. package/dist/chunks/ToggleBar-Defj6Asn.js.map +0 -1
  118. package/dist/chunks/ToolButton-5L1sAlJC.js.map +0 -1
  119. package/dist/chunks/ToolPalette-BDkvV3pJ.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/color/oklch.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchToOklab, oklabToSrgbU8, rgbaToHex } from '@weasel-js/core';\n\nexport type ChromaCurve = {\n lRange: [number, number];\n midL: number;\n cBot: number;\n cPeak: number;\n cTop: number;\n};\n\nexport type ChromaCurvePoint = { L: number; C: number };\n\nexport function oklchToHex(L: number, C: number, Hdeg: number): string {\n // Delegate to the kit's OKLab pipeline (kit angle unit is radians) →\n // gamut-clipped u8 sRGB → `#rrggbb`.\n const [l, a, b] = oklchToOklab(L, C, (Hdeg * Math.PI) / 180);\n const [r, g, bl] = oklabToSrgbU8(l, a, b);\n return rgbaToHex([r / 255, g / 255, bl / 255]);\n}\n\nexport function chromaAt(L: number, curve: ChromaCurve): number {\n const [lo, hi] = curve.lRange;\n if (L <= lo) return curve.cBot;\n if (L >= hi) return curve.cTop;\n if (L <= curve.midL) return curve.cBot + (curve.cPeak - curve.cBot) * ((L - lo) / (curve.midL - lo));\n return curve.cPeak + (curve.cTop - curve.cPeak) * ((L - curve.midL) / (hi - curve.midL));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,SAAgB,GAAW,GAAW,GAAW,GAAsB;CAGrE,IAAM,CAAC,GAAG,GAAG,KAAK,GAAa,GAAG,GAAI,IAAO,KAAK,KAAM,IAAI,EACtD,CAAC,GAAG,GAAG,KAAM,GAAc,GAAG,GAAG,EAAE;AACzC,QAAO,GAAU;EAAC,IAAI;EAAK,IAAI;EAAK,IAAK;EAAI,CAAC;;AAGhD,SAAgB,GAAS,GAAW,GAA4B;CAC9D,IAAM,CAAC,GAAI,KAAM,EAAM;AAIvB,QAHI,KAAK,IAAW,EAAM,OACtB,KAAK,IAAW,EAAM,OACtB,KAAK,EAAM,OAAa,EAAM,QAAQ,EAAM,QAAQ,EAAM,UAAU,IAAI,MAAO,EAAM,OAAO,MACzF,EAAM,SAAS,EAAM,OAAO,EAAM,WAAW,IAAI,EAAM,SAAS,IAAK,EAAM"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/color/oklch.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchToOklab, oklabToSrgbU8, rgbaToHex } from '@weasel-js/core';\n\nexport type ChromaCurve = {\n lRange: [number, number];\n midL: number;\n cBot: number;\n cPeak: number;\n cTop: number;\n};\n\nexport type ChromaCurvePoint = { L: number; C: number };\n\nexport function oklchToHex(L: number, C: number, Hdeg: number): string {\n // Delegate to the kit's OKLab pipeline (kit angle unit is radians) →\n // gamut-clipped u8 sRGB → `#rrggbb`.\n const [l, a, b] = oklchToOklab(L, C, (Hdeg * Math.PI) / 180);\n const [r, g, bl] = oklabToSrgbU8(l, a, b);\n return rgbaToHex([r / 255, g / 255, bl / 255]);\n}\n\nexport function chromaAt(L: number, curve: ChromaCurve): number {\n const [lo, hi] = curve.lRange;\n if (L <= lo) return curve.cBot;\n if (L >= hi) return curve.cTop;\n if (L <= curve.midL) return curve.cBot + (curve.cPeak - curve.cBot) * ((L - lo) / (curve.midL - lo));\n return curve.cPeak + (curve.cTop - curve.cPeak) * ((L - curve.midL) / (hi - curve.midL));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,SAAgB,GAAW,GAAW,GAAW,GAAsB;CAGrE,IAAM,CAAC,GAAG,GAAG,KAAK,GAAa,GAAG,GAAI,IAAO,KAAK,KAAM,IAAI,EACtD,CAAC,GAAG,GAAG,KAAM,GAAc,GAAG,GAAG,EAAE;AACzC,QAAO,GAAU;EAAC,IAAI;EAAK,IAAI;EAAK,IAAK;EAAI,CAAC;;AAGhD,SAAgB,GAAS,GAAW,GAA4B;CAC9D,IAAM,CAAC,GAAI,KAAM,EAAM;AAIvB,QAHI,KAAK,IAAW,EAAM,OACtB,KAAK,IAAW,EAAM,OACtB,KAAK,EAAM,OAAa,EAAM,QAAQ,EAAM,QAAQ,EAAM,UAAU,IAAI,MAAO,EAAM,OAAO,MACzF,EAAM,SAAS,EAAM,OAAO,EAAM,WAAW,IAAI,EAAM,SAAS,IAAK,EAAM"}
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
- ._tooltip_1km1f_1{z-index:1200;background:var(--wzl-surface);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);color:var(--wzl-fg);font-family:var(--wzl-font-ui);max-width:260px;transition:opacity var(--wzl-motion-fast);padding:4px 8px;font-size:12px;line-height:1.3;box-shadow:0 4px 16px #00000059}._tooltip_1km1f_1[data-entering],._tooltip_1km1f_1[data-exiting]{opacity:0}._arrow_1km1f_22 svg{fill:var(--wzl-surface);stroke:var(--wzl-border);stroke-width:1px;display:block}._arrow_1km1f_22[data-placement=bottom] svg{transform:rotate(180deg)}._arrow_1km1f_22[data-placement=left] svg{transform:rotate(-90deg)}._arrow_1km1f_22[data-placement=right] svg{transform:rotate(90deg)}._bar_147qb_7{background:var(--wzl-surface);border:1px solid var(--wzl-border);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:row;gap:1px;padding:2px;display:flex}._bar_147qb_7._vertical_147qb_18{flex-direction:column}._button_147qb_22{width:28px;height:28px;color:var(--wzl-fg);cursor:default;background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;padding:0;display:inline-flex}._button_147qb_22:hover:not([disabled]){background:var(--wzl-border)}._button_147qb_22:active:not([disabled]){background:color-mix(in srgb, var(--wzl-border) 70%, transparent)}._button_147qb_22[disabled]{opacity:.4;cursor:default}._button_147qb_22>svg{display:block}._badge_16w4d_1{vertical-align:baseline;align-items:baseline;gap:var(--badge-gap,4px);font-size:var(--badge-font-size,10px);text-transform:uppercase;letter-spacing:.04em;color:var(--badge-fg,var(--wzl-fg-muted));--badge-edge:var(--wzl-border);--badge-fill:var(--wzl-surface);--badge-fg:var(--badge-edge);font:inherit;background:0 0;border:0;font-family:inherit;text-decoration:none;display:inline-flex;position:relative}._badge_16w4d_1 *{text-decoration:none}._badge_16w4d_1[data-size=md]{--badge-gap:6px;--badge-pad-x:10px;--badge-pad-y:3px;--badge-font-size:12px}._deco_16w4d_33{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}._deco_16w4d_33 .badge-fill{fill:var(--badge-fill);stroke:none}._deco_16w4d_33 .badge-stroke{fill:none;stroke:var(--badge-edge);stroke-width:var(--badge-stroke-width,1px);vector-effect:non-scaling-stroke}._deco_16w4d_33 .badge-focus{fill:none;stroke:var(--badge-edge);stroke-width:calc(var(--badge-stroke-width,1px) + 1px);vector-effect:non-scaling-stroke;opacity:.6}._deco_16w4d_33 .badge-bevel-light{fill:#ffffff38;stroke:none}._deco_16w4d_33 .badge-bevel-medium-light{fill:#ffffff1a;stroke:none}._deco_16w4d_33 .badge-bevel-medium-dark{fill:#00000029;stroke:none}._deco_16w4d_33 .badge-bevel-dark{fill:#00000052;stroke:none}._content_16w4d_49{align-items:baseline;gap:inherit;z-index:1;display:inline-flex;position:relative}._badge_16w4d_1[data-tone=accent]{--badge-edge:var(--wzl-accent-fg,var(--wzl-accent,#7fb069))}._badge_16w4d_1[data-tone=info]{--badge-edge:#7ab8d4}._badge_16w4d_1[data-tone=warn]{--badge-edge:#d4a574}._badge_16w4d_1[data-tone=danger]{--badge-edge:#c43c3c}._badge_16w4d_1[data-tone=muted]{--badge-edge:var(--wzl-fg-muted)}._badge_16w4d_1[data-tone=neutral]{--badge-edge:var(--wzl-border);--badge-fg:var(--wzl-fg-muted)}._badge_16w4d_1[data-variant=outline]{--badge-fill:var(--wzl-surface);--badge-fg:var(--badge-edge)}._badge_16w4d_1[data-variant=solid]{--badge-fill:var(--badge-edge);--badge-fg:#fff;font-weight:600}._badge_16w4d_1[data-variant=subtle]{--badge-fill:color-mix(in oklab, var(--badge-edge) 14%, transparent);--badge-fg:var(--badge-edge)}._badge_16w4d_1[data-tone=neutral]:not([data-variant=solid]){--badge-fg:var(--wzl-fg-muted)}._badge_16w4d_1{padding:calc(var(--badge-pad-y,1px) + var(--badge-inset-top,0px)) calc(var(--badge-pad-x,6px) + var(--badge-inset-right,0px)) calc(var(--badge-pad-y,1px) + var(--badge-inset-bottom,0px)) calc(var(--badge-pad-x,6px) + var(--badge-inset-left,0px))}._badge_16w4d_1[data-shape=pill]{box-sizing:border-box;-webkit-box-decoration-break:slice;box-decoration-break:slice;border-radius:9999px;display:inline}._badge_16w4d_1[data-shape=pill] ._content_16w4d_49,._badge_16w4d_1[data-shape=plain] ._content_16w4d_49{display:inline}._badge_16w4d_1[data-shape=pill][data-variant=solid],._badge_16w4d_1[data-shape=pill][data-variant=subtle]{background:var(--badge-fill)}._badge_16w4d_1[data-shape=pill]{border:var(--badge-stroke-width,1px) solid transparent}._badge_16w4d_1[data-shape=pill][data-variant=outline],._badge_16w4d_1[data-shape=pill][data-variant=solid]{border-color:var(--badge-edge)}._badge_16w4d_1[data-shape=pill][data-focused=true]{outline:2px solid color-mix(in oklab, var(--badge-edge) 60%, transparent);outline-offset:2px}._badge_16w4d_1[data-shape=plain]{letter-spacing:.04em;text-transform:none;color:var(--badge-fg);-webkit-box-decoration-break:slice;box-decoration-break:slice;background:0 0;padding:0;display:inline}._badge_16w4d_1[data-shape=plain][data-focused=true]{outline:2px solid color-mix(in oklab, var(--badge-edge) 60%, transparent);outline-offset:3px;border-radius:2px}._badge_16w4d_1[data-shape=plaque] ._content_16w4d_49{text-shadow:0 1px #ffffff24,0 -.5px #00000080}button._badge_16w4d_1,a._badge_16w4d_1{cursor:pointer;border:0 solid #0000;outline:0}button._badge_16w4d_1:hover,a._badge_16w4d_1:hover{--badge-edge:color-mix(in oklab, var(--badge-edge) 88%, white)}@media (prefers-reduced-motion:reduce){button._badge_16w4d_1:hover,a._badge_16w4d_1:hover{--badge-edge:var(--badge-edge)}}._remove_16w4d_161{width:14px;height:14px;color:var(--badge-fg);cursor:pointer;font:inherit;vertical-align:middle;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;font-size:14px;line-height:1;display:inline-flex}._remove_16w4d_161:hover{background:color-mix(in oklab, var(--badge-fg) 20%, transparent)}._remove_16w4d_161>svg{display:block}._badge_16w4d_1[data-size=md] ._remove_16w4d_161{width:16px;height:16px;font-size:16px}._badge_16w4d_1[data-size=md] ._remove_16w4d_161>svg{width:12px;height:12px}._button_yji6d_3{--btn-radius:calc(var(--btn-height) * .1);--btn-fontweight:400;--btn-fontsize:14px;--btn-height:24px;--btn-padx:12px;--btn-top-alpha:45%;--btn-upper-alpha:70%;--btn-equator:52%;--btn-equator-spread:12%;--btn-equator-tint:95%;--btn-base-tint:70%;--btn-blur:6px;--btn-saturate:1.3;--btn-gloss-top:.42;--btn-gloss-mid:.12;--btn-gloss-bottom:50%;--btn-rim:.22;--btn-drop-near:.3;--btn-drop-far:.18;--btn-inset-hi:.42;--btn-inset-lo:.3;--btn-text-shadow:.35;--btn-text-inset:.55;--btn-text-inset-x:0px;--btn-text-inset-y:1px;border-radius:var(--btn-radius);font-family:var(--wzl-font-ui);font-weight:var(--btn-fontweight);font-style:normal;font-size:var(--btn-fontsize);height:var(--btn-height);padding:0 var(--btn-padx);cursor:pointer;-webkit-user-select:none;user-select:none;isolation:isolate;transition:filter var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast), transform 80ms;border:none;justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._button_yji6d_3:before{content:"";inset:1px 1px var(--btn-gloss-bottom) 1px;border-top-left-radius:var(--btn-radius);border-top-right-radius:var(--btn-radius);background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid)) 60%, #fff0 100%);pointer-events:none;z-index:1;transition:opacity var(--wzl-motion-fast);border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._button_yji6d_3>*{z-index:2;position:relative}._button_yji6d_3:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:1px}._button_yji6d_3:disabled{opacity:.5;cursor:not-allowed}._size_sm_yji6d_110{--btn-height:20px;--btn-padx:8px;--btn-fontsize:13px}._size_md_yji6d_111{--btn-height:24px;--btn-padx:12px;--btn-fontsize:14px}._iconOnly_yji6d_113._size_sm_yji6d_110{--btn-padx:0;width:20px}._iconOnly_yji6d_113._size_md_yji6d_111{--btn-padx:0;width:24px}._variant_primary_yji6d_121{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha), transparent) calc(var(--btn-equator) - var(--btn-equator-spread)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint), white) var(--btn-equator), var(--wzl-accent) calc(var(--btn-equator) + var(--btn-equator-spread) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur)) saturate(var(--btn-saturate));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow)), var(--btn-text-inset-x) var(--btn-text-inset-y) 0 rgba(0, 0, 0, var(--btn-text-inset)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near)), 0 3px 6px rgba(0, 0, 0, var(--btn-drop-far))}._variant_primary_yji6d_121:hover:not(:disabled){filter:brightness(1.08)saturate(1.06)}._variant_primary_yji6d_121:active:not(:disabled){background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) 80%, black) 0%, color-mix(in srgb, var(--wzl-accent) 95%, black) 50%, color-mix(in srgb, var(--wzl-accent) 60%, white) 100%);box-shadow:inset 0 2px 4px #00000059, inset 0 -1px 0 #ffffff40, 0 0 0 1px rgba(0, 0, 0, calc(var(--btn-rim) + .06));transform:translateY(.5px)}._variant_primary_yji6d_121:active:before{opacity:.3}._variant_secondary_yji6d_168{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-fg) 25%, transparent) 0%, color-mix(in srgb, var(--wzl-fg) 10%, transparent) calc(var(--btn-equator) - var(--btn-equator-spread)), color-mix(in srgb, var(--wzl-surface-raised) 90%, white) var(--btn-equator), var(--wzl-surface-raised) calc(var(--btn-equator) + var(--btn-equator-spread) * 1.6), color-mix(in srgb, var(--wzl-surface-sunken) 80%, black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur)) saturate(var(--btn-saturate));color:var(--wzl-fg);text-shadow:0 1px 0 rgba(0, 0, 0, calc(var(--btn-text-shadow) * .7)), var(--btn-text-inset-x) var(--btn-text-inset-y) 0 rgba(0, 0, 0, calc(var(--btn-text-inset) * .7));box-shadow:inset 0 1px 0 rgba(255, 255, 255, calc(var(--btn-inset-hi) * .5)), inset 0 -1px 2px rgba(0, 0, 0, calc(var(--btn-inset-lo) * .83)), 0 0 0 1px rgba(0, 0, 0, calc(var(--btn-rim) + .03)), 0 1px 2px rgba(0, 0, 0, calc(var(--btn-drop-near) * .93)), 0 3px 6px rgba(0, 0, 0, calc(var(--btn-drop-far) * .89))}._variant_secondary_yji6d_168:hover:not(:disabled){filter:brightness(1.1)}._variant_secondary_yji6d_168:active:not(:disabled){background:linear-gradient(180deg, var(--wzl-surface-sunken) 0%, var(--wzl-surface-raised) 100%);transform:translateY(.5px);box-shadow:inset 0 2px 4px #0006,0 0 0 1px #0000004d}._variant_secondary_yji6d_168:active:before{opacity:.2}._variant_ghost_yji6d_203{color:var(--wzl-fg);box-shadow:none;background:0 0}._variant_ghost_yji6d_203:before{display:none}._variant_ghost_yji6d_203:hover:not(:disabled){background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._variant_ghost_yji6d_203:active:not(:disabled){background:color-mix(in srgb, var(--wzl-fg) 18%, transparent)}._fullWidth_yji6d_220{width:100%}._loading_yji6d_221 ._label_yji6d_221{opacity:.7}._iconSlot_yji6d_225{flex:none;justify-content:center;align-items:center;display:inline-flex}._size_sm_yji6d_110 ._iconSlot_yji6d_225>svg{width:12px;height:12px}._size_md_yji6d_111 ._iconSlot_yji6d_225>svg{width:14px;height:14px}._label_yji6d_221{display:inline-block}._spinner_yji6d_239{justify-content:center;align-items:center;animation:.7s linear infinite _wzl-btn-spin_yji6d_1;display:inline-flex}@keyframes _wzl-btn-spin_yji6d_1{to{transform:rotate(360deg)}}._anchor_18o4b_1{pointer-events:none;position:fixed}._popover_18o4b_6{z-index:1200;--callout-accent:var(--wzl-accent-strong);background:var(--wzl-surface);border:1px solid var(--callout-accent);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);max-width:320px;transition:opacity var(--wzl-motion-fast);box-shadow:0 12px 40px #0006}._popover_18o4b_6[data-entering],._popover_18o4b_6[data-exiting]{opacity:0}._toneWarning_18o4b_25{--callout-accent:var(--wzl-warning,#d99a3f)}._toneDanger_18o4b_29{--callout-accent:var(--wzl-danger,#d94a3f)}._arrow_18o4b_33 svg{fill:var(--wzl-surface);stroke:var(--callout-accent);stroke-width:1px;display:block}._arrow_18o4b_33[data-placement=bottom] svg{transform:rotate(180deg)}._arrow_18o4b_33[data-placement=left] svg{transform:rotate(-90deg)}._arrow_18o4b_33[data-placement=right] svg{transform:rotate(90deg)}._dialog_18o4b_52{max-height:inherit;outline:none;flex-direction:column;display:flex}._header_18o4b_59{align-items:center;gap:8px;padding:10px 12px 0;display:flex}._title_18o4b_66{flex:1;margin:0;font-size:13px;font-weight:600}._close_18o4b_73{color:var(--wzl-fg-muted);cursor:pointer;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:2px 4px;font-size:16px;line-height:1}._close_18o4b_73:hover{color:var(--wzl-fg)}._body_18o4b_89{padding:8px 12px 10px;font-size:13px;line-height:1.4;overflow-y:auto}._footer_18o4b_96{justify-content:flex-end;gap:8px;padding:0 12px 10px;display:flex}._checkbox_18mi9_1{cursor:pointer;font-family:var(--wzl-font-ui);color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._checkbox_18mi9_1[data-disabled]{opacity:.5;cursor:not-allowed}._box_18mi9_18{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);border-radius:var(--wzl-radius-sm);width:14px;height:14px;transition:background-color var(--wzl-motion-fast), border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);flex:none;position:relative}._checkbox_18mi9_1[data-focus-visible] ._box_18mi9_18{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._checkbox_18mi9_1[data-hovered]:not([data-disabled]) ._box_18mi9_18{border-color:var(--wzl-fg-muted)}._checkbox_18mi9_1[data-selected] ._box_18mi9_18,._checkbox_18mi9_1[data-indeterminate] ._box_18mi9_18{background:var(--wzl-accent-strong);border-color:var(--wzl-accent-strong)}._checkbox_18mi9_1[data-invalid] ._box_18mi9_18{border-color:var(--wzl-danger,#ff5b5b)}._checkmark_18mi9_47{color:var(--wzl-fg-on-accent);opacity:0;pointer-events:none;position:absolute;inset:0}._checkbox_18mi9_1[data-selected] ._checkmark_18mi9_47,._checkbox_18mi9_1[data-indeterminate] ._checkmark_18mi9_47{opacity:1}._label_18mi9_60{line-height:1.2}._root_r50jb_1{align-items:center;gap:6px;display:inline-flex}._chip_r50jb_7{border-radius:4px;display:inline-flex;position:relative;overflow:hidden}._color_r50jb_14{border:1px solid var(--wzl-border,#444);cursor:pointer;background:0 0;border-radius:4px;block-size:20px;inline-size:28px;padding:0}._root_r50jb_1[data-mixed] ._chip_r50jb_7:after{content:"";pointer-events:none;background:repeating-conic-gradient(var(--wzl-border,#666) 0% 25%, var(--wzl-surface,#2e2f36) 0% 50%) 50% / 8px 8px;border-radius:3px;position:absolute;inset:1px}._alphaRange_r50jb_39{min-inline-size:48px;accent-color:var(--wzl-accent,#7ab8d4);flex:1}._alphaRange_r50jb_39:disabled{opacity:.45}._alphaReadout_r50jb_49{text-align:end;opacity:.7;min-inline-size:3ch;font-size:11px}._field_aqiak_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._label_aqiak_9{color:var(--wzl-fg);cursor:default;font-size:12px;font-weight:500}._hint_aqiak_16{color:var(--wzl-fg-subtle);font-size:11px;line-height:1.4}._error_aqiak_22{color:var(--wzl-danger,#ff5b5b);font-size:11px;line-height:1.4}._row_aqiak_28{flex-direction:row;align-items:center;gap:8px}._row_aqiak_28 ._label_aqiak_9{flex:1;min-width:0}._field_7wlzm_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_7wlzm_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:stretch;font-size:13px;line-height:1;display:flex;overflow:hidden}._frame_7wlzm_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_7wlzm_1[data-invalid] ._frame_7wlzm_9{border-color:var(--wzl-danger,#ff5b5b)}._field_7wlzm_1[data-disabled] ._frame_7wlzm_9{opacity:.5;cursor:not-allowed}._frame_7wlzm_9 input{min-width:0;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0 8px}._frame_7wlzm_9 input::placeholder{color:var(--wzl-fg-subtle)}._openButton_7wlzm_53{border:none;border-left:1px solid var(--wzl-border);width:22px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}._openButton_7wlzm_53[data-hovered]:not([data-disabled]){color:var(--wzl-fg)}._openButton_7wlzm_53 svg{width:10px;height:10px}._popover_7wlzm_75{min-width:var(--trigger-width);outline:none}._listbox_7wlzm_80{background:var(--wzl-surface-raised);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);max-height:280px;font-family:var(--wzl-font-ui);outline:none;padding:4px;font-size:13px;overflow:auto;box-shadow:0 8px 24px #0000004d}._option_7wlzm_93{cursor:pointer;color:var(--wzl-fg);border-radius:3px;outline:none;align-items:center;padding:4px 8px;display:flex}._option_7wlzm_93[data-focused]{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._option_7wlzm_93[data-selected]{font-weight:500}._option_7wlzm_93[data-disabled]{opacity:.4;cursor:not-allowed}._empty_7wlzm_116{color:var(--wzl-fg-subtle);padding:6px 8px;font-size:12px}._root_1djm7_1{--plot-bg:var(--wzl-surface-sunken);--plot-grid:var(--wzl-line);--plot-axis:var(--wzl-fg);background:var(--plot-bg);-webkit-user-select:none;user-select:none;touch-action:none;outline:none;display:block;overflow:visible}._root_1djm7_1:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:2px}._grid_1djm7_28{stroke:var(--plot-grid);stroke-width:1px;fill:none}._axis_1djm7_34{stroke:var(--plot-axis);stroke-width:var(--wzl-line-width);fill:none}._root_ybpym_1{--curve-line:var(--wzl-curve-color);--curve-line-width:var(--wzl-curve-width);--curve-fill:color-mix(in srgb, var(--curve-line) 30%, transparent);--curve-anchor-fill:var(--wzl-surface);--curve-anchor-stroke:var(--curve-line);--curve-anchor-radius:4;--curve-anchor-active-fill:var(--curve-line);--curve-pinned-fill:var(--wzl-fg-subtle)}._fill_ybpym_19{fill:var(--curve-fill);stroke:none;pointer-events:none}._curve_ybpym_25{stroke:var(--curve-line);stroke-width:var(--curve-line-width);fill:none;pointer-events:stroke}._anchor_ybpym_32{fill:var(--curve-anchor-fill);stroke:var(--curve-anchor-stroke);stroke-width:1.5px;cursor:grab}._anchor_ybpym_32:hover{fill:var(--curve-anchor-active-fill)}._anchor_ybpym_32._active_ybpym_43{fill:var(--curve-anchor-active-fill);cursor:grabbing}._anchor_ybpym_32._pinned_ybpym_48{fill:var(--curve-pinned-fill);cursor:default}._anchor_ybpym_32._locked_ybpym_55{cursor:not-allowed}._hidden_ybpym_71{display:none}._grid_wvlvv_1{width:100%;position:relative}._table_wvlvv_6{border-collapse:collapse;width:100%;font-size:11px}._table_wvlvv_6 th,._table_wvlvv_6 td{text-align:left;vertical-align:middle;padding:3px 6px}._table_wvlvv_6 tbody tr{border-bottom:1px solid #ffffff0a}._table_wvlvv_6 th{color:var(--wzl-fg-muted);background:var(--wzl-surface,#2a2018);z-index:1;border-bottom:1px solid var(--wzl-border);font-weight:600;position:sticky;top:0}._sortable_wvlvv_34{cursor:pointer;-webkit-user-select:none;user-select:none}._sortable_wvlvv_34:hover,._sortActive_wvlvv_39{color:var(--wzl-fg,#e6e7e9)}._empty_wvlvv_41{color:var(--wzl-fg-muted);text-align:center;padding:8px 0;font-style:italic}._handleCol_wvlvv_49{width:14px}._handleCell_wvlvv_50{cursor:grab;width:14px;color:var(--wzl-fg-muted);-webkit-user-select:none;user-select:none;text-align:center}._handleCell_wvlvv_50:active{cursor:grabbing}._dragging_wvlvv_59{opacity:.4}._dropIndicator_wvlvv_61{background:var(--wzl-accent,#7fb069);pointer-events:none;height:2px;position:absolute;left:0;right:0}._overlay_13xy9_1{z-index:1000;opacity:0;transition:opacity var(--wzl-motion-fast);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}._overlay_13xy9_1[data-entering]{opacity:0}._overlay_13xy9_1[data-entering][data-rac]{opacity:1}._overlay_13xy9_1[data-exiting]{opacity:0}._overlay_13xy9_1[data-rac]:not([data-entering]):not([data-exiting]){opacity:1}._modal_13xy9_29{background:var(--wzl-surface);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);outline:none;flex-direction:column;max-width:min(900px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;box-shadow:0 24px 64px #00000073}._dialog_13xy9_43{outline:none;flex-direction:column;flex:1;min-height:0;display:flex}._header_13xy9_51{border-bottom:1px solid var(--wzl-border);flex:none;align-items:center;gap:12px;padding:14px 16px;display:flex}._title_13xy9_60{color:var(--wzl-fg);flex:1;margin:0;font-size:14px;font-weight:600}._close_13xy9_68{border-radius:var(--wzl-radius-sm);width:22px;height:22px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}._close_13xy9_68:hover{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent);color:var(--wzl-fg)}._body_13xy9_90{flex:1;min-height:0;padding:16px;overflow:auto}._footer_13xy9_97{border-top:1px solid var(--wzl-border);flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}._root_q2asl_1{-webkit-user-select:none;user-select:none;touch-action:none;position:relative}._row_q2asl_8{align-items:center;gap:8px;display:flex}._track_q2asl_14{min-width:0;height:var(--rp-track-height,24px);background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);cursor:crosshair;border-radius:3px;flex:1;position:relative}._trackInner_q2asl_25{border-radius:3px;position:absolute;inset:0;overflow:hidden}._thumb_q2asl_35{background:color-mix(in srgb, var(--wzl-fg-muted) 70%, transparent);border:1px solid var(--wzl-border-strong);cursor:ew-resize;-webkit-backdrop-filter:blur(3px);font-variant-numeric:tabular-nums;width:14px;color:var(--wzl-fg-inverse);text-shadow:0 0 2px #ffffffb3;border-radius:3px;justify-content:center;align-items:center;margin-left:-7px;font:500 .65rem/1 ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;top:-2px;bottom:-2px;box-shadow:0 1px 2px #0003}._thumb_q2asl_35:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:1px}._thumbActive_q2asl_74{z-index:1}._readoutsBelow_q2asl_79{height:14px;margin-top:4px;position:relative}._readoutBelow_q2asl_85{color:var(--wzl-fg-muted);white-space:nowrap;font:500 .65rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;transform:translate(-50%)}._readoutInline_q2asl_93{color:var(--wzl-fg-muted);vertical-align:middle;margin-left:8px;font:500 .7rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-block}._notched_q2asl_101{background:var(--thumb-svg,none);-webkit-backdrop-filter:none;box-shadow:none;filter:drop-shadow(0 1px 1px #00000040);--thumb-svg:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 30' preserveAspectRatio='none'%3E%3Cpolygon points='0,0 2.52,0 7,10.3 11.48,0 14,0 14,30 0,30' fill='rgba(255,255,255,0.62)' stroke='rgba(0,0,0,0.55)' stroke-width='0.75' stroke-linejoin='miter'/%3E%3C/svg%3E");background-color:#0000;background-repeat:no-repeat;background-size:100% 100%;border:none}._root_1pyfg_6{height:var(--wzl-tb-height,28px);-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#0000002e 0%,#0000000d 100%);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px 2px #0006,0 1px #ffffff0f}._segment_1pyfg_28{min-width:0;font-family:var(--wzl-font-ui);font-weight:300;font-size:var(--btn-fontsize,14px);color:var(--wzl-fg-muted);cursor:pointer;isolation:isolate;transition:color var(--wzl-motion-fast);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-content:center;align-items:center;margin:0;padding:0 12px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._segment_1pyfg_28:first-child{border-radius:999px 0 0 999px}._segment_1pyfg_28:last-child{border-radius:0 999px 999px 0}._segment_1pyfg_28:only-child{border-radius:999px}._segment_1pyfg_28:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._segment_1pyfg_28:disabled{opacity:.5;cursor:not-allowed}._segment_1pyfg_28:hover:not(:disabled):not(._segmentSelected_1pyfg_75){color:var(--wzl-fg)}._segmentSelected_1pyfg_75{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha,45%), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha,70%), transparent) calc(var(--btn-equator,52%) - var(--btn-equator-spread,12%)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint,95%), white) var(--btn-equator,52%), var(--wzl-accent) calc(var(--btn-equator,52%) + var(--btn-equator-spread,12%) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint,70%), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur,6px)) saturate(var(--btn-saturate,1.3));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow,.35)), var(--btn-text-inset-x,0px) var(--btn-text-inset-y,1px) 0 rgba(0, 0, 0, var(--btn-text-inset,.55)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow,.35) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi,.42)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo,.3)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim,.22)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near,.3)), 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far,.18) * .8))}._segmentSelected_1pyfg_75:before{content:"";inset:1px 1px var(--btn-gloss-bottom,50%) 1px;border-radius:inherit;background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top,.42)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid,.12)) 60%, #fff0 100%);pointer-events:none;z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._segmentSelected_1pyfg_75>*{z-index:2;position:relative}._segmentMixed_1pyfg_134{background:color-mix(in srgb, var(--wzl-accent) 22%, transparent);color:var(--wzl-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--wzl-accent) 45%, transparent)}._segmentMixed_1pyfg_134:hover:not(:disabled){background:color-mix(in srgb, var(--wzl-accent) 32%, transparent)}._variant_minimal_1pyfg_144 ._segmentMixed_1pyfg_134{background:color-mix(in srgb, var(--wzl-accent) 18%, transparent);box-shadow:none;color:var(--wzl-fg)}._size_sm_1pyfg_153{height:17px;padding:1px}._size_sm_1pyfg_153 ._segment_1pyfg_28{padding:0 8px;font-size:11px}._variant_minimal_1pyfg_144{border:1px solid var(--wzl-border,#ffffff2e);height:auto;box-shadow:none;background:0 0;border-radius:3px;gap:0;padding:0}._variant_minimal_1pyfg_144 ._segment_1pyfg_28{color:var(--wzl-fg-muted);border-radius:0;padding:0 6px;font-size:11px;font-weight:400;line-height:1.4;transition:none}._variant_minimal_1pyfg_144 ._segment_1pyfg_28+._segment_1pyfg_28{border-left:1px solid var(--wzl-border,#ffffff2e)}._variant_minimal_1pyfg_144 ._segment_1pyfg_28:first-child,._variant_minimal_1pyfg_144 ._segment_1pyfg_28:last-child,._variant_minimal_1pyfg_144 ._segment_1pyfg_28:only-child{border-radius:0}._variant_minimal_1pyfg_144 ._segment_1pyfg_28:hover:not(:disabled):not(._segmentSelected_1pyfg_75){color:var(--wzl-fg);background:#ffffff0f}._variant_minimal_1pyfg_144 ._segmentSelected_1pyfg_75{-webkit-backdrop-filter:none;color:var(--wzl-accent-fg,var(--wzl-accent));text-shadow:none;box-shadow:none;background:0 0;font-weight:500}._variant_minimal_1pyfg_144 ._segmentSelected_1pyfg_75:before{content:none}._root_15yko_1{flex-direction:column;gap:8px;min-inline-size:0;display:flex}._swatches_15yko_8{flex-wrap:wrap;gap:6px;display:flex}._swatch_15yko_8{flex:0 auto;min-inline-size:0}._overlay_6yu3h_3{pointer-events:none;position:absolute;inset:0}._guide_6yu3h_13{fill:none;stroke:#fff;stroke-opacity:.7;stroke-dasharray:4 4;paint-order:stroke}._handle_6yu3h_21{fill:#fff;stroke:#222;stroke-width:2px;cursor:grab;pointer-events:auto}._handle_6yu3h_21:active{cursor:grabbing}._handle_6yu3h_21:focus-visible{outline:2px solid var(--wzl-accent,#4a9eff);outline-offset:2px}._field_cahom_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_cahom_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:center;gap:6px;padding:0 8px;font-size:13px;line-height:1;display:flex}._frame_cahom_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_cahom_1[data-invalid] ._frame_cahom_9{border-color:var(--wzl-danger,#ff5b5b)}._field_cahom_1[data-disabled] ._frame_cahom_9{opacity:.5;cursor:not-allowed}._frame_cahom_9 input{min-width:0;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0}._frame_cahom_9 input::placeholder{color:var(--wzl-fg-subtle)}._adornment_cahom_54{color:var(--wzl-fg-subtle);pointer-events:none;align-items:center;font-size:12px;display:inline-flex}._keys_n4bkk_2{vertical-align:bottom;flex-wrap:wrap;align-items:flex-end;gap:3px;display:inline-flex}._keysEmpty_n4bkk_16{color:var(--wzl-fg-muted)}._sep_n4bkk_20{color:var(--wzl-fg-muted);font-size:11px;line-height:1}._key_n4bkk_2{box-sizing:border-box;background:var(--wzl-fg,#e6e7e9);height:18px;color:var(--wzl-surface);border:1px solid #25272c;border-bottom-width:2px;border-radius:3px;justify-content:center;align-items:center;padding:0 4px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:700;line-height:1;display:inline-flex}._key_n4bkk_2[data-kind=square]{width:18px;padding:0}._key_n4bkk_2[data-kind=modifier]{min-width:26px;padding:0 6px}._key_n4bkk_2[data-kind=wide]{min-width:32px;padding:0 8px}._key_n4bkk_2[data-inverted]{background:var(--wzl-surface);color:color-mix(in srgb, var(--wzl-fg,#e6e7e9) 60%, transparent);border-style:dotted;border-color:color-mix(in srgb, var(--wzl-fg,#e6e7e9) 40%, transparent);border-width:1.5px}._key_n4bkk_2[data-variant=minimal]{color:currentColor;background:0 0;border-color:currentColor}._key_n4bkk_2[data-variant=minimal][data-inverted]{color:currentColor;border:1.5px dotted}._field_e75yx_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_e75yx_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:stretch;font-size:13px;line-height:1;display:flex;overflow:hidden}._frame_e75yx_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_e75yx_1[data-invalid] ._frame_e75yx_9{border-color:var(--wzl-danger,#ff5b5b)}._field_e75yx_1[data-disabled] ._frame_e75yx_9{opacity:.5;cursor:not-allowed}._frame_e75yx_9 input{min-width:0;color:inherit;font:inherit;text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;flex:1;padding:0 8px}._frame_e75yx_9 input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}._frame_e75yx_9 input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._steppers_e75yx_57{border-left:1px solid var(--wzl-border);flex-direction:column;display:flex}._stepper_e75yx_57{width:18px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0;font-size:9px;line-height:1;display:inline-flex}._stepper_e75yx_57:not(:last-child){border-bottom:1px solid var(--wzl-border)}._stepper_e75yx_57[data-hovered]:not([data-disabled]){background:color-mix(in srgb, var(--wzl-fg) 10%, transparent);color:var(--wzl-fg)}._stepper_e75yx_57[data-pressed]:not([data-disabled]){background:color-mix(in srgb, var(--wzl-fg) 18%, transparent)}._stepper_e75yx_57[data-disabled]{opacity:.4;cursor:not-allowed}._root_13y7a_6{height:var(--wzl-tb-height,28px);-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#0000002e 0%,#0000000d 100%);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px 2px #0006,0 1px #ffffff0f}._segment_13y7a_28{min-width:0;font-family:var(--wzl-font-ui);font-weight:300;font-size:var(--btn-fontsize,14px);color:var(--wzl-fg-muted);cursor:pointer;isolation:isolate;transition:color var(--wzl-motion-fast);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-content:center;align-items:center;margin:0;padding:0 12px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._segment_13y7a_28:first-child{border-radius:999px 0 0 999px}._segment_13y7a_28:last-child{border-radius:0 999px 999px 0}._segment_13y7a_28:only-child{border-radius:999px}._segment_13y7a_28:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._segment_13y7a_28:disabled{opacity:.5;cursor:not-allowed}._segment_13y7a_28:hover:not(:disabled):not(._segmentSelected_13y7a_75){color:var(--wzl-fg)}._segmentSelected_13y7a_75{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha,45%), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha,70%), transparent) calc(var(--btn-equator,52%) - var(--btn-equator-spread,12%)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint,95%), white) var(--btn-equator,52%), var(--wzl-accent) calc(var(--btn-equator,52%) + var(--btn-equator-spread,12%) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint,70%), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur,6px)) saturate(var(--btn-saturate,1.3));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow,.35)), var(--btn-text-inset-x,0px) var(--btn-text-inset-y,1px) 0 rgba(0, 0, 0, var(--btn-text-inset,.55)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow,.35) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi,.42)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo,.3)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim,.22)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near,.3)), 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far,.18) * .8))}._segmentSelected_13y7a_75:before{content:"";inset:1px 1px var(--btn-gloss-bottom,50%) 1px;border-radius:inherit;background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top,.42)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid,.12)) 60%, #fff0 100%);pointer-events:none;z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._segmentSelected_13y7a_75>*{z-index:2;position:relative}._size_sm_13y7a_133{height:17px;padding:1px}._size_sm_13y7a_133 ._segment_13y7a_28{padding:0 8px;font-size:11px}._variant_minimal_13y7a_146{height:auto;box-shadow:none;background:0 0;border-radius:0;gap:2px;padding:0}._variant_minimal_13y7a_146 ._segment_13y7a_28{color:var(--wzl-fg-muted);border-radius:2px;padding:0 4px;font-size:11px;font-weight:400;line-height:1.4;transition:none}._variant_minimal_13y7a_146 ._segment_13y7a_28:first-child,._variant_minimal_13y7a_146 ._segment_13y7a_28:last-child,._variant_minimal_13y7a_146 ._segment_13y7a_28:only-child{border-radius:2px}._variant_minimal_13y7a_146 ._segment_13y7a_28:hover:not(:disabled):not(._segmentSelected_13y7a_75){color:var(--wzl-fg);background:#ffffff0f}._variant_minimal_13y7a_146 ._segmentSelected_13y7a_75{-webkit-backdrop-filter:none;color:var(--wzl-accent-fg,var(--wzl-accent));text-shadow:none;box-shadow:none;background:0 0;font-weight:500}._variant_minimal_13y7a_146 ._segmentSelected_13y7a_75:before{content:none}._row_q3wun_1{align-items:stretch;gap:var(--powerline-gap,.2em);display:inline-flex}._matrix_q3wun_7{gap:12px;display:grid}._segment_q3wun_15{font-size:inherit;text-transform:none;letter-spacing:normal}._group_kaubu_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:6px;display:flex}._group_kaubu_1[data-orientation=horizontal]{flex-direction:row;gap:16px}._legend_kaubu_14{color:var(--wzl-fg);font-size:12px;font-weight:500}._radio_kaubu_20{cursor:pointer;color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._radio_kaubu_20[data-disabled]{opacity:.5;cursor:not-allowed}._dot_kaubu_36{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);width:14px;height:14px;transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);border-radius:50%;flex:none;position:relative}._radio_kaubu_20[data-focus-visible] ._dot_kaubu_36{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._radio_kaubu_20[data-hovered]:not([data-disabled]) ._dot_kaubu_36{border-color:var(--wzl-fg-muted)}._radio_kaubu_20[data-selected] ._dot_kaubu_36{border-color:var(--wzl-accent-strong)}._dot_kaubu_36:after{content:"";background:var(--wzl-accent-strong);transition:transform var(--wzl-motion-fast);border-radius:50%;position:absolute;inset:3px;transform:scale(0)}._radio_kaubu_20[data-selected] ._dot_kaubu_36:after{transform:scale(1)}._slider_1644w_1{width:100%;font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._slider_1644w_1[data-orientation=vertical]{flex-direction:row;align-items:stretch;width:28px;height:160px}._head_1644w_17{justify-content:space-between;align-items:baseline;gap:8px;display:flex}._label_1644w_24{color:var(--wzl-fg);font-size:12px;font-weight:500}._output_1644w_30{color:var(--wzl-fg-subtle);font-variant-numeric:tabular-nums;font-size:12px}._track_1644w_36{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:3px;min-width:80px;height:6px;position:relative}._slider_1644w_1[data-orientation=vertical] ._track_1644w_36{width:6px;height:100%}._fill_1644w_50{background:var(--wzl-accent-strong);border-radius:3px;position:absolute;top:0;bottom:0;left:0}._thumb_1644w_59{background:var(--wzl-fg-muted);border:1px solid var(--wzl-border-strong);cursor:ew-resize;width:14px;height:14px;transition:box-shadow var(--wzl-motion-fast);border-radius:50%;outline:none}._slider_1644w_1[data-orientation=vertical] ._thumb_1644w_59{cursor:ns-resize}._thumb_1644w_59[data-focus-visible]{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._thumb_1644w_59[data-dragging]{background:var(--wzl-accent-strong)}._slider_1644w_1[data-disabled]{opacity:.5;cursor:not-allowed}._field_nq1le_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._trigger_nq1le_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);width:100%;height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);cursor:pointer;transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:center;gap:6px;padding:0 6px 0 10px;font-size:13px;line-height:1;display:flex}._trigger_nq1le_9[data-focus-visible]{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_nq1le_1[data-invalid] ._trigger_nq1le_9{border-color:var(--wzl-danger,#ff5b5b)}._trigger_nq1le_9[data-disabled]{opacity:.5;cursor:not-allowed}._value_nq1le_41{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._value_nq1le_41[data-placeholder]{color:var(--wzl-fg-subtle)}._chevron_nq1le_54{width:10px;height:10px;color:var(--wzl-fg-muted);flex:none}._popover_nq1le_61{min-width:var(--trigger-width);max-height:inherit;outline:none}._listbox_nq1le_67{background:var(--wzl-surface-raised);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);max-height:280px;font-family:var(--wzl-font-ui);outline:none;padding:4px;font-size:13px;overflow:auto;box-shadow:0 8px 24px #0000004d}._option_nq1le_80{cursor:pointer;color:var(--wzl-fg);border-radius:3px;outline:none;align-items:center;gap:8px;padding:4px 8px;display:flex}._option_nq1le_80[data-focused]{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._option_nq1le_80[data-selected]{color:var(--wzl-fg);font-weight:500}._option_nq1le_80[data-disabled]{opacity:.4;cursor:not-allowed}._check_nq1le_105{opacity:0;flex:none;width:10px;height:10px}._option_nq1le_80[data-selected] ._check_nq1le_105{opacity:1}._switch_qsj3o_1{cursor:pointer;font-family:var(--wzl-font-ui);color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._switch_qsj3o_1[data-disabled]{opacity:.5;cursor:not-allowed}._track_qsj3o_18{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);width:28px;height:16px;transition:background-color var(--wzl-motion-fast), border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);border-radius:8px;flex:none;position:relative}._switch_qsj3o_1[data-focus-visible] ._track_qsj3o_18{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._switch_qsj3o_1[data-selected] ._track_qsj3o_18{background:var(--wzl-accent-strong);border-color:var(--wzl-accent-strong)}._thumb_qsj3o_38{background:var(--wzl-fg);width:12px;height:12px;transition:transform var(--wzl-motion-fast);border-radius:50%;position:absolute;top:1px;left:1px}._switch_qsj3o_1[data-selected] ._thumb_qsj3o_38{background:var(--wzl-fg-on-accent);transform:translate(12px)}._label_qsj3o_54{line-height:1.2}._columns_y5ks5_5{flex-flow:wrap;align-items:flex-start;gap:12px;padding-right:4px;display:flex;overflow-y:auto}._column_y5ks5_5{flex:0 0 var(--wzl-prefs-column-width,300px);width:var(--wzl-prefs-column-width,300px);flex-direction:column;gap:8px;display:flex}._panel_y5ks5_23{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);flex-direction:column;gap:8px;padding:10px;display:flex}._subpanel_y5ks5_33{background:var(--wzl-surface-sunken);border-left:2px solid var(--wzl-border);border-radius:2px;flex-direction:column;gap:6px;margin-top:6px;padding:8px 8px 8px 10px;display:flex}._groupHeader_y5ks5_44{border-bottom:1px solid var(--wzl-border);flex-direction:column;gap:2px;padding-bottom:4px;display:flex}._subpanel_y5ks5_33 ._groupHeader_y5ks5_44{border-bottom:none;padding-bottom:2px}._groupTitle_y5ks5_57{color:var(--wzl-fg);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:12px;font-weight:600}._subpanel_y5ks5_33 ._groupTitle_y5ks5_57{text-transform:none;letter-spacing:0;font-size:11px}._groupDesc_y5ks5_72{color:var(--wzl-fg-subtle);margin:0;font-size:11px;line-height:1.35}._rows_y5ks5_79{flex-direction:column;gap:6px;display:flex}._row_y5ks5_79{color:var(--wzl-fg);cursor:default;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}._rowLabel_y5ks5_95{flex:auto;align-items:center;gap:4px;min-width:0;display:inline-flex}._help_y5ks5_104{color:var(--wzl-fg-subtle);cursor:help;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:0;font-size:11px;line-height:1}._help_y5ks5_104:hover{color:var(--wzl-fg)}._help_y5ks5_104:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:1px;color:var(--wzl-fg)}._rowControl_y5ks5_128{flex:0 0 110px;align-items:center;min-width:0;display:flex}._textarea_y5ks5_135{background:var(--wzl-surface-sunken);width:100%;color:var(--wzl-fg);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);font:inherit;resize:vertical;padding:4px 8px;font-size:12px}._unrenderable_y5ks5_147{font-family:var(--wzl-font-mono);color:var(--wzl-fg-subtle);font-size:11px}._titleRow_y5ks5_154{flex:1;align-items:center;gap:12px;min-width:0;display:flex}._titleRow_y5ks5_154>span:first-child{flex:1;min-width:0}._handle_c4v7n_1{cursor:ew-resize;border-left:1px solid var(--wzl-border);touch-action:none;background:0 0;flex-shrink:0;align-self:stretch;width:4px}._handle_c4v7n_1._horizontal_c4v7n_14{cursor:ns-resize;border-left:none;border-top:1px solid var(--wzl-border);align-self:auto;width:auto;height:4px}._handle_c4v7n_1:hover{background:var(--wzl-border)}._handle_c4v7n_1:focus-visible{outline:2px solid var(--wzl-focus-ring,var(--wzl-accent));outline-offset:-1px}._root_zqa5p_1{color:var(--wzl-fg);flex-direction:column;font-size:12px;display:flex}._header_zqa5p_8{border-block-end:1px solid var(--wzl-border);align-items:baseline;gap:8px;padding:8px 10px;display:flex}._kind_zqa5p_16{font-size:13px;font-weight:600}._breakdown_zqa5p_21{opacity:.6;font-size:11px}._section_zqa5p_26{border-block-end:1px solid var(--wzl-border);padding:6px 10px 8px}._section_zqa5p_26:last-child{border-block-end:none}._sectionTitle_zqa5p_35{text-transform:uppercase;letter-spacing:.06em;opacity:.55;margin:0 0 6px;font-size:10px;font-weight:600}._row_zqa5p_44{grid-template-columns:64px 1fr;align-items:center;gap:6px;margin-block-end:5px;display:grid}._rowLabel_zqa5p_52{opacity:.75}._rowControls_zqa5p_56{align-items:center;gap:6px;min-inline-size:0;display:flex}._rowControls_zqa5p_56>*{flex:1;min-inline-size:0}._number_zqa5p_68 input,._select_zqa5p_69{font-size:11px}._unitSuffix_zqa5p_73{opacity:.6;flex:none;font-size:11px}._mixedSwitch_zqa5p_79{opacity:.55}._unrenderable_zqa5p_83{opacity:.5;font-size:11px;font-style:italic}._sidebar_toyo8_1{background:var(--wzl-surface);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._sidebar_toyo8_1._left_toyo8_9{border-right:1px solid var(--wzl-border)}._sidebar_toyo8_1._right_toyo8_12{border-left:1px solid var(--wzl-border)}._panel_1u064_1{background:var(--wzl-surface);color:var(--wzl-fg);padding:8px}._title_1u064_7{text-transform:uppercase;letter-spacing:.05em;color:var(--wzl-fg-muted);font-size:11px;font-weight:600}._titleRow_1u064_15{justify-content:space-between;align-items:center;margin-bottom:4px;padding:0;display:flex}._titleButton_1u064_23{cursor:pointer;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex:auto;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}._titleButton_1u064_23:hover{color:var(--wzl-fg)}._chevron_1u064_40{color:var(--wzl-fg-muted);transition:transform var(--wzl-motion-fast) ease;font-size:10px;line-height:1;display:inline-block}._chevronCollapsed_1u064_47{transform:rotate(-90deg)}._hideButton_1u064_51{color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:0;padding:0 6px;font-size:14px;line-height:1}._hideButton_1u064_51:hover{color:var(--wzl-fg)}._panel_1u064_1._collapsed_1u064_64{padding-bottom:4px}._body_1u064_68{padding:0 4px}._bar_38xae_1{font-family:var(--wzl-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--wzl-fg-muted);background:var(--wzl-surface);border-top:1px solid var(--wzl-border);flex-shrink:0;align-items:center;gap:16px;padding:4px 12px;font-size:11px;display:flex}._item_38xae_14{white-space:nowrap}._muted_38xae_18{opacity:.6;font-variant-numeric:tabular-nums}._hasTitle_38xae_23{cursor:help}._spacer_38xae_27{margin-left:auto}._tabs_ce73l_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:0;display:flex}._tabs_ce73l_1[data-orientation=horizontal]{flex-direction:column}._tabs_ce73l_1[data-orientation=vertical]{flex-direction:row;gap:12px}._list_ce73l_18{border-bottom:1px solid var(--wzl-border);gap:2px;display:flex}._tabs_ce73l_1[data-orientation=vertical] ._list_ce73l_18{border-bottom:none;border-right:1px solid var(--wzl-border);flex-direction:column;padding-right:8px}._tab_ce73l_1{color:var(--wzl-fg-muted);font:inherit;cursor:pointer;transition:color var(--wzl-motion-fast);background:0 0;border:none;outline:none;padding:6px 10px;font-size:12px;position:relative}._tab_ce73l_1[data-hovered]:not([data-disabled]),._tab_ce73l_1[data-selected]{color:var(--wzl-fg)}._tab_ce73l_1[data-selected]:after{content:"";background:var(--wzl-accent-strong);height:2px;position:absolute;bottom:-1px;left:0;right:0}._tabs_ce73l_1[data-orientation=vertical] ._tab_ce73l_1[data-selected]:after{width:2px;height:auto;inset:0 -9px 0 auto}._tab_ce73l_1[data-focus-visible]{box-shadow:inset 0 0 0 2px var(--wzl-focus-ring);border-radius:var(--wzl-radius-sm)}._tab_ce73l_1[data-disabled]{opacity:.5;cursor:not-allowed}._panel_ce73l_81{outline:none;padding:12px 0}._panel_ce73l_81[data-focus-visible]{box-shadow:inset 0 0 0 2px var(--wzl-focus-ring);border-radius:var(--wzl-radius-sm)}._region_18i9b_1{z-index:1100;outline:none;flex-direction:column-reverse;gap:8px;max-width:360px;display:flex;position:fixed}._bottomRight_18i9b_17{bottom:16px;right:16px}._bottomLeft_18i9b_18{bottom:16px;left:16px}._topRight_18i9b_19{flex-direction:column;top:16px;right:16px}._topLeft_18i9b_20{flex-direction:column;top:16px;left:16px}._toast_18i9b_22{--toast-accent:var(--wzl-accent-strong);view-transition-class:wzl-toast;background:var(--wzl-surface);border:1px solid var(--wzl-border);border-left:3px solid var(--toast-accent);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);outline:none;align-items:flex-start;gap:8px;padding:10px 12px;display:flex;box-shadow:0 8px 24px #00000059}._region_18i9b_1[data-focus-visible],._toast_18i9b_22[data-focus-visible]{outline:2px solid var(--wzl-focus-ring);outline-offset:1px}._toneSuccess_18i9b_49{--toast-accent:var(--wzl-success,#2ec27e)}._toneWarning_18i9b_50{--toast-accent:var(--wzl-warning,#d99a3f)}._toneError_18i9b_51{--toast-accent:var(--wzl-danger,#d94a3f)}._content_18i9b_53{flex:1;min-width:0}._title_18i9b_58{font-size:13px;font-weight:600;display:block}._description_18i9b_64{color:var(--wzl-fg-muted);margin-top:2px;font-size:12px;display:block}._close_18i9b_71{color:var(--wzl-fg-muted);cursor:pointer;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:2px 4px;font-size:16px;line-height:1}._close_18i9b_71:hover{color:var(--wzl-fg)}:root.wzl-toast-vt{view-transition-name:none}:root.wzl-toast-vt::view-transition{pointer-events:none}:root.wzl-toast-vt::view-transition-new(.wzl-toast):only-child{animation:wzl-toast-enter var(--wzl-motion-medium,.24s) var(--wzl-ease-out-cubic,ease-out) both}:root.wzl-toast-vt::view-transition-old(.wzl-toast):only-child{animation:wzl-toast-exit var(--wzl-motion-fast,.12s) var(--wzl-ease-in-cubic,ease-in) both}@keyframes wzl-toast-enter{0%{opacity:0;translate:0 16px}}@keyframes wzl-toast-exit{to{opacity:0;scale:.92}}._button_1jvxe_1{min-width:44px;color:var(--wzl-fg);cursor:default;background:0 0;border:1px solid #0000;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-family:inherit;font-size:10px;line-height:1.1;display:inline-flex}._button_1jvxe_1:hover:not([disabled]){background:var(--wzl-surface-hover);color:var(--wzl-fg)}._button_1jvxe_1:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._button_1jvxe_1._active_1jvxe_26{background:var(--wzl-surface-pressed);border-color:var(--wzl-accent);color:var(--wzl-fg)}._button_1jvxe_1[disabled]{opacity:.4}._icon_1jvxe_35,._icon_1jvxe_35>svg{display:block}._label_1jvxe_37{font-size:10px}._shortcut_1jvxe_38{color:var(--wzl-fg-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}._group_o2pho_1{flex-direction:column;gap:2px;display:flex}._group_o2pho_1._horizontal_o2pho_6{flex-direction:row}._root_ps46a_13{height:var(--wzl-tb-height,28px);background:var(--wzl-surface);border-bottom:1px solid var(--wzl-border);color:var(--wzl-fg);align-items:center;gap:8px;padding:0 8px;display:flex;overflow:hidden}._label_ps46a_25{text-transform:uppercase;letter-spacing:.05em;color:var(--wzl-fg-muted);white-space:nowrap;flex:none;font-size:11px;font-weight:600}._controls_ps46a_6{scrollbar-width:thin;flex:auto;align-items:center;gap:6px;min-width:0;height:100%;display:flex;overflow:auto hidden}._controls_ps46a_6::-webkit-scrollbar{height:4px}._controls_ps46a_6::-webkit-scrollbar-track{background:0 0}._controls_ps46a_6::-webkit-scrollbar-thumb{background:var(--wzl-border);border-radius:2px}._palette_1ntz3_1{background:var(--wzl-surface);border:1px solid var(--wzl-border);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:column;gap:4px;padding:4px;display:flex}._palette_1ntz3_1._horizontal_1ntz3_11{flex-direction:row}._ineligibleBtn_1ntz3_16{opacity:.35;cursor:not-allowed}._separator_1ntz3_21{background:var(--wzl-border)}._palette_1ntz3_1:not(._horizontal_1ntz3_11) ._separator_1ntz3_21{height:1px;margin:2px 0}._palette_1ntz3_1._horizontal_1ntz3_11 ._separator_1ntz3_21{width:1px;margin:0 2px}
1
+ ._tooltip_1km1f_1{z-index:1200;background:var(--wzl-surface);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);color:var(--wzl-fg);font-family:var(--wzl-font-ui);max-width:260px;transition:opacity var(--wzl-motion-fast);padding:4px 8px;font-size:12px;line-height:1.3;box-shadow:0 4px 16px #00000059}._tooltip_1km1f_1[data-entering],._tooltip_1km1f_1[data-exiting]{opacity:0}._arrow_1km1f_22 svg{fill:var(--wzl-surface);stroke:var(--wzl-border);stroke-width:1px;display:block}._arrow_1km1f_22[data-placement=bottom] svg{transform:rotate(180deg)}._arrow_1km1f_22[data-placement=left] svg{transform:rotate(-90deg)}._arrow_1km1f_22[data-placement=right] svg{transform:rotate(90deg)}._bar_147qb_7{background:var(--wzl-surface);border:1px solid var(--wzl-border);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:row;gap:1px;padding:2px;display:flex}._bar_147qb_7._vertical_147qb_18{flex-direction:column}._button_147qb_22{width:28px;height:28px;color:var(--wzl-fg);cursor:default;background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;padding:0;display:inline-flex}._button_147qb_22:hover:not([disabled]){background:var(--wzl-border)}._button_147qb_22:active:not([disabled]){background:color-mix(in srgb, var(--wzl-border) 70%, transparent)}._button_147qb_22[disabled]{opacity:.4;cursor:default}._button_147qb_22>svg{display:block}._root_1hmjs_10{height:var(--wzl-tb-height,28px);-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#0000002e 0%,#0000000d 100%);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px 2px #0006,0 1px #ffffff0f}._segment_1hmjs_32{min-width:0;font-family:var(--wzl-font-ui);font-weight:300;font-size:var(--btn-fontsize,14px);color:var(--wzl-fg-muted);cursor:pointer;isolation:isolate;transition:color var(--wzl-motion-fast);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-content:center;align-items:center;margin:0;padding:0 12px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._segment_1hmjs_32:first-child{border-radius:999px 0 0 999px}._segment_1hmjs_32:last-child{border-radius:0 999px 999px 0}._segment_1hmjs_32:only-child{border-radius:999px}._segment_1hmjs_32:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._segment_1hmjs_32:disabled{opacity:.5;cursor:not-allowed}._segment_1hmjs_32:hover:not(:disabled):not(._segmentSelected_1hmjs_79){color:var(--wzl-fg)}._segmentSelected_1hmjs_79{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha,45%), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha,70%), transparent) calc(var(--btn-equator,52%) - var(--btn-equator-spread,12%)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint,95%), white) var(--btn-equator,52%), var(--wzl-accent) calc(var(--btn-equator,52%) + var(--btn-equator-spread,12%) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint,70%), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur,6px)) saturate(var(--btn-saturate,1.3));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow,.35)), var(--btn-text-inset-x,0px) var(--btn-text-inset-y,1px) 0 rgba(0, 0, 0, var(--btn-text-inset,.55)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow,.35) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi,.42)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo,.3)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim,.22)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near,.3)), 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far,.18) * .8))}._segmentSelected_1hmjs_79:before{content:"";inset:1px 1px var(--btn-gloss-bottom,50%) 1px;border-radius:inherit;background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top,.42)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid,.12)) 60%, #fff0 100%);pointer-events:none;z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._segmentSelected_1hmjs_79>*{z-index:2;position:relative}._size_sm_1hmjs_137{height:17px;padding:1px}._size_sm_1hmjs_137 ._segment_1hmjs_32{padding:0 8px;font-size:11px}._variant_minimal_1hmjs_150{height:auto;box-shadow:none;background:0 0;border-radius:0;gap:2px;padding:0}._variant_minimal_1hmjs_150 ._segment_1hmjs_32{color:var(--wzl-fg-muted);border-radius:2px;padding:0 4px;font-size:11px;font-weight:400;line-height:1.4;transition:none}._variant_minimal_1hmjs_150 ._segment_1hmjs_32:first-child,._variant_minimal_1hmjs_150 ._segment_1hmjs_32:last-child,._variant_minimal_1hmjs_150 ._segment_1hmjs_32:only-child{border-radius:2px}._variant_minimal_1hmjs_150 ._segment_1hmjs_32:hover:not(:disabled):not(._segmentSelected_1hmjs_79){color:var(--wzl-fg);background:#ffffff0f}._variant_minimal_1hmjs_150 ._segmentSelected_1hmjs_79{-webkit-backdrop-filter:none;color:var(--wzl-accent-fg,var(--wzl-accent));text-shadow:none;box-shadow:none;background:0 0;font-weight:500}._variant_minimal_1hmjs_150 ._segmentSelected_1hmjs_79:before{content:none}._badge_16w4d_1{vertical-align:baseline;align-items:baseline;gap:var(--badge-gap,4px);font-size:var(--badge-font-size,10px);text-transform:uppercase;letter-spacing:.04em;color:var(--badge-fg,var(--wzl-fg-muted));--badge-edge:var(--wzl-border);--badge-fill:var(--wzl-surface);--badge-fg:var(--badge-edge);font:inherit;background:0 0;border:0;font-family:inherit;text-decoration:none;display:inline-flex;position:relative}._badge_16w4d_1 *{text-decoration:none}._badge_16w4d_1[data-size=md]{--badge-gap:6px;--badge-pad-x:10px;--badge-pad-y:3px;--badge-font-size:12px}._deco_16w4d_33{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}._deco_16w4d_33 .badge-fill{fill:var(--badge-fill);stroke:none}._deco_16w4d_33 .badge-stroke{fill:none;stroke:var(--badge-edge);stroke-width:var(--badge-stroke-width,1px);vector-effect:non-scaling-stroke}._deco_16w4d_33 .badge-focus{fill:none;stroke:var(--badge-edge);stroke-width:calc(var(--badge-stroke-width,1px) + 1px);vector-effect:non-scaling-stroke;opacity:.6}._deco_16w4d_33 .badge-bevel-light{fill:#ffffff38;stroke:none}._deco_16w4d_33 .badge-bevel-medium-light{fill:#ffffff1a;stroke:none}._deco_16w4d_33 .badge-bevel-medium-dark{fill:#00000029;stroke:none}._deco_16w4d_33 .badge-bevel-dark{fill:#00000052;stroke:none}._content_16w4d_49{align-items:baseline;gap:inherit;z-index:1;display:inline-flex;position:relative}._badge_16w4d_1[data-tone=accent]{--badge-edge:var(--wzl-accent-fg,var(--wzl-accent,#7fb069))}._badge_16w4d_1[data-tone=info]{--badge-edge:#7ab8d4}._badge_16w4d_1[data-tone=warn]{--badge-edge:#d4a574}._badge_16w4d_1[data-tone=danger]{--badge-edge:#c43c3c}._badge_16w4d_1[data-tone=muted]{--badge-edge:var(--wzl-fg-muted)}._badge_16w4d_1[data-tone=neutral]{--badge-edge:var(--wzl-border);--badge-fg:var(--wzl-fg-muted)}._badge_16w4d_1[data-variant=outline]{--badge-fill:var(--wzl-surface);--badge-fg:var(--badge-edge)}._badge_16w4d_1[data-variant=solid]{--badge-fill:var(--badge-edge);--badge-fg:#fff;font-weight:600}._badge_16w4d_1[data-variant=subtle]{--badge-fill:color-mix(in oklab, var(--badge-edge) 14%, transparent);--badge-fg:var(--badge-edge)}._badge_16w4d_1[data-tone=neutral]:not([data-variant=solid]){--badge-fg:var(--wzl-fg-muted)}._badge_16w4d_1{padding:calc(var(--badge-pad-y,1px) + var(--badge-inset-top,0px)) calc(var(--badge-pad-x,6px) + var(--badge-inset-right,0px)) calc(var(--badge-pad-y,1px) + var(--badge-inset-bottom,0px)) calc(var(--badge-pad-x,6px) + var(--badge-inset-left,0px))}._badge_16w4d_1[data-shape=pill]{box-sizing:border-box;-webkit-box-decoration-break:slice;box-decoration-break:slice;border-radius:9999px;display:inline}._badge_16w4d_1[data-shape=pill] ._content_16w4d_49,._badge_16w4d_1[data-shape=plain] ._content_16w4d_49{display:inline}._badge_16w4d_1[data-shape=pill][data-variant=solid],._badge_16w4d_1[data-shape=pill][data-variant=subtle]{background:var(--badge-fill)}._badge_16w4d_1[data-shape=pill]{border:var(--badge-stroke-width,1px) solid transparent}._badge_16w4d_1[data-shape=pill][data-variant=outline],._badge_16w4d_1[data-shape=pill][data-variant=solid]{border-color:var(--badge-edge)}._badge_16w4d_1[data-shape=pill][data-focused=true]{outline:2px solid color-mix(in oklab, var(--badge-edge) 60%, transparent);outline-offset:2px}._badge_16w4d_1[data-shape=plain]{letter-spacing:.04em;text-transform:none;color:var(--badge-fg);-webkit-box-decoration-break:slice;box-decoration-break:slice;background:0 0;padding:0;display:inline}._badge_16w4d_1[data-shape=plain][data-focused=true]{outline:2px solid color-mix(in oklab, var(--badge-edge) 60%, transparent);outline-offset:3px;border-radius:2px}._badge_16w4d_1[data-shape=plaque] ._content_16w4d_49{text-shadow:0 1px #ffffff24,0 -.5px #00000080}button._badge_16w4d_1,a._badge_16w4d_1{cursor:pointer;border:0 solid #0000;outline:0}button._badge_16w4d_1:hover,a._badge_16w4d_1:hover{--badge-edge:color-mix(in oklab, var(--badge-edge) 88%, white)}@media (prefers-reduced-motion:reduce){button._badge_16w4d_1:hover,a._badge_16w4d_1:hover{--badge-edge:var(--badge-edge)}}._remove_16w4d_161{width:14px;height:14px;color:var(--badge-fg);cursor:pointer;font:inherit;vertical-align:middle;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;font-size:14px;line-height:1;display:inline-flex}._remove_16w4d_161:hover{background:color-mix(in oklab, var(--badge-fg) 20%, transparent)}._remove_16w4d_161>svg{display:block}._badge_16w4d_1[data-size=md] ._remove_16w4d_161{width:16px;height:16px;font-size:16px}._badge_16w4d_1[data-size=md] ._remove_16w4d_161>svg{width:12px;height:12px}._button_yji6d_3{--btn-radius:calc(var(--btn-height) * .1);--btn-fontweight:400;--btn-fontsize:14px;--btn-height:24px;--btn-padx:12px;--btn-top-alpha:45%;--btn-upper-alpha:70%;--btn-equator:52%;--btn-equator-spread:12%;--btn-equator-tint:95%;--btn-base-tint:70%;--btn-blur:6px;--btn-saturate:1.3;--btn-gloss-top:.42;--btn-gloss-mid:.12;--btn-gloss-bottom:50%;--btn-rim:.22;--btn-drop-near:.3;--btn-drop-far:.18;--btn-inset-hi:.42;--btn-inset-lo:.3;--btn-text-shadow:.35;--btn-text-inset:.55;--btn-text-inset-x:0px;--btn-text-inset-y:1px;border-radius:var(--btn-radius);font-family:var(--wzl-font-ui);font-weight:var(--btn-fontweight);font-style:normal;font-size:var(--btn-fontsize);height:var(--btn-height);padding:0 var(--btn-padx);cursor:pointer;-webkit-user-select:none;user-select:none;isolation:isolate;transition:filter var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast), transform 80ms;border:none;justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._button_yji6d_3:before{content:"";inset:1px 1px var(--btn-gloss-bottom) 1px;border-top-left-radius:var(--btn-radius);border-top-right-radius:var(--btn-radius);background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid)) 60%, #fff0 100%);pointer-events:none;z-index:1;transition:opacity var(--wzl-motion-fast);border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._button_yji6d_3>*{z-index:2;position:relative}._button_yji6d_3:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:1px}._button_yji6d_3:disabled{opacity:.5;cursor:not-allowed}._size_sm_yji6d_110{--btn-height:20px;--btn-padx:8px;--btn-fontsize:13px}._size_md_yji6d_111{--btn-height:24px;--btn-padx:12px;--btn-fontsize:14px}._iconOnly_yji6d_113._size_sm_yji6d_110{--btn-padx:0;width:20px}._iconOnly_yji6d_113._size_md_yji6d_111{--btn-padx:0;width:24px}._variant_primary_yji6d_121{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha), transparent) calc(var(--btn-equator) - var(--btn-equator-spread)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint), white) var(--btn-equator), var(--wzl-accent) calc(var(--btn-equator) + var(--btn-equator-spread) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur)) saturate(var(--btn-saturate));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow)), var(--btn-text-inset-x) var(--btn-text-inset-y) 0 rgba(0, 0, 0, var(--btn-text-inset)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near)), 0 3px 6px rgba(0, 0, 0, var(--btn-drop-far))}._variant_primary_yji6d_121:hover:not(:disabled){filter:brightness(1.08)saturate(1.06)}._variant_primary_yji6d_121:active:not(:disabled){background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) 80%, black) 0%, color-mix(in srgb, var(--wzl-accent) 95%, black) 50%, color-mix(in srgb, var(--wzl-accent) 60%, white) 100%);box-shadow:inset 0 2px 4px #00000059, inset 0 -1px 0 #ffffff40, 0 0 0 1px rgba(0, 0, 0, calc(var(--btn-rim) + .06));transform:translateY(.5px)}._variant_primary_yji6d_121:active:before{opacity:.3}._variant_secondary_yji6d_168{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-fg) 25%, transparent) 0%, color-mix(in srgb, var(--wzl-fg) 10%, transparent) calc(var(--btn-equator) - var(--btn-equator-spread)), color-mix(in srgb, var(--wzl-surface-raised) 90%, white) var(--btn-equator), var(--wzl-surface-raised) calc(var(--btn-equator) + var(--btn-equator-spread) * 1.6), color-mix(in srgb, var(--wzl-surface-sunken) 80%, black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur)) saturate(var(--btn-saturate));color:var(--wzl-fg);text-shadow:0 1px 0 rgba(0, 0, 0, calc(var(--btn-text-shadow) * .7)), var(--btn-text-inset-x) var(--btn-text-inset-y) 0 rgba(0, 0, 0, calc(var(--btn-text-inset) * .7));box-shadow:inset 0 1px 0 rgba(255, 255, 255, calc(var(--btn-inset-hi) * .5)), inset 0 -1px 2px rgba(0, 0, 0, calc(var(--btn-inset-lo) * .83)), 0 0 0 1px rgba(0, 0, 0, calc(var(--btn-rim) + .03)), 0 1px 2px rgba(0, 0, 0, calc(var(--btn-drop-near) * .93)), 0 3px 6px rgba(0, 0, 0, calc(var(--btn-drop-far) * .89))}._variant_secondary_yji6d_168:hover:not(:disabled){filter:brightness(1.1)}._variant_secondary_yji6d_168:active:not(:disabled){background:linear-gradient(180deg, var(--wzl-surface-sunken) 0%, var(--wzl-surface-raised) 100%);transform:translateY(.5px);box-shadow:inset 0 2px 4px #0006,0 0 0 1px #0000004d}._variant_secondary_yji6d_168:active:before{opacity:.2}._variant_ghost_yji6d_203{color:var(--wzl-fg);box-shadow:none;background:0 0}._variant_ghost_yji6d_203:before{display:none}._variant_ghost_yji6d_203:hover:not(:disabled){background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._variant_ghost_yji6d_203:active:not(:disabled){background:color-mix(in srgb, var(--wzl-fg) 18%, transparent)}._fullWidth_yji6d_220{width:100%}._loading_yji6d_221 ._label_yji6d_221{opacity:.7}._iconSlot_yji6d_225{flex:none;justify-content:center;align-items:center;display:inline-flex}._size_sm_yji6d_110 ._iconSlot_yji6d_225>svg{width:12px;height:12px}._size_md_yji6d_111 ._iconSlot_yji6d_225>svg{width:14px;height:14px}._label_yji6d_221{display:inline-block}._spinner_yji6d_239{justify-content:center;align-items:center;animation:.7s linear infinite _wzl-btn-spin_yji6d_1;display:inline-flex}@keyframes _wzl-btn-spin_yji6d_1{to{transform:rotate(360deg)}}._anchor_18o4b_1{pointer-events:none;position:fixed}._popover_18o4b_6{z-index:1200;--callout-accent:var(--wzl-accent-strong);background:var(--wzl-surface);border:1px solid var(--callout-accent);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);max-width:320px;transition:opacity var(--wzl-motion-fast);box-shadow:0 12px 40px #0006}._popover_18o4b_6[data-entering],._popover_18o4b_6[data-exiting]{opacity:0}._toneWarning_18o4b_25{--callout-accent:var(--wzl-warning,#d99a3f)}._toneDanger_18o4b_29{--callout-accent:var(--wzl-danger,#d94a3f)}._arrow_18o4b_33 svg{fill:var(--wzl-surface);stroke:var(--callout-accent);stroke-width:1px;display:block}._arrow_18o4b_33[data-placement=bottom] svg{transform:rotate(180deg)}._arrow_18o4b_33[data-placement=left] svg{transform:rotate(-90deg)}._arrow_18o4b_33[data-placement=right] svg{transform:rotate(90deg)}._dialog_18o4b_52{max-height:inherit;outline:none;flex-direction:column;display:flex}._header_18o4b_59{align-items:center;gap:8px;padding:10px 12px 0;display:flex}._title_18o4b_66{flex:1;margin:0;font-size:13px;font-weight:600}._close_18o4b_73{color:var(--wzl-fg-muted);cursor:pointer;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:2px 4px;font-size:16px;line-height:1}._close_18o4b_73:hover{color:var(--wzl-fg)}._body_18o4b_89{padding:8px 12px 10px;font-size:13px;line-height:1.4;overflow-y:auto}._footer_18o4b_96{justify-content:flex-end;gap:8px;padding:0 12px 10px;display:flex}._checkbox_18mi9_1{cursor:pointer;font-family:var(--wzl-font-ui);color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._checkbox_18mi9_1[data-disabled]{opacity:.5;cursor:not-allowed}._box_18mi9_18{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);border-radius:var(--wzl-radius-sm);width:14px;height:14px;transition:background-color var(--wzl-motion-fast), border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);flex:none;position:relative}._checkbox_18mi9_1[data-focus-visible] ._box_18mi9_18{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._checkbox_18mi9_1[data-hovered]:not([data-disabled]) ._box_18mi9_18{border-color:var(--wzl-fg-muted)}._checkbox_18mi9_1[data-selected] ._box_18mi9_18,._checkbox_18mi9_1[data-indeterminate] ._box_18mi9_18{background:var(--wzl-accent-strong);border-color:var(--wzl-accent-strong)}._checkbox_18mi9_1[data-invalid] ._box_18mi9_18{border-color:var(--wzl-danger,#ff5b5b)}._checkmark_18mi9_47{color:var(--wzl-fg-on-accent);opacity:0;pointer-events:none;position:absolute;inset:0}._checkbox_18mi9_1[data-selected] ._checkmark_18mi9_47,._checkbox_18mi9_1[data-indeterminate] ._checkmark_18mi9_47{opacity:1}._label_18mi9_60{line-height:1.2}._root_r50jb_1{align-items:center;gap:6px;display:inline-flex}._chip_r50jb_7{border-radius:4px;display:inline-flex;position:relative;overflow:hidden}._color_r50jb_14{border:1px solid var(--wzl-border,#444);cursor:pointer;background:0 0;border-radius:4px;block-size:20px;inline-size:28px;padding:0}._root_r50jb_1[data-mixed] ._chip_r50jb_7:after{content:"";pointer-events:none;background:repeating-conic-gradient(var(--wzl-border,#666) 0% 25%, var(--wzl-surface,#2e2f36) 0% 50%) 50% / 8px 8px;border-radius:3px;position:absolute;inset:1px}._alphaRange_r50jb_39{min-inline-size:48px;accent-color:var(--wzl-accent,#7ab8d4);flex:1}._alphaRange_r50jb_39:disabled{opacity:.45}._alphaReadout_r50jb_49{text-align:end;opacity:.7;min-inline-size:3ch;font-size:11px}._field_aqiak_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._label_aqiak_9{color:var(--wzl-fg);cursor:default;font-size:12px;font-weight:500}._hint_aqiak_16{color:var(--wzl-fg-subtle);font-size:11px;line-height:1.4}._error_aqiak_22{color:var(--wzl-danger,#ff5b5b);font-size:11px;line-height:1.4}._row_aqiak_28{flex-direction:row;align-items:center;gap:8px}._row_aqiak_28 ._label_aqiak_9{flex:1;min-width:0}._field_7wlzm_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_7wlzm_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:stretch;font-size:13px;line-height:1;display:flex;overflow:hidden}._frame_7wlzm_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_7wlzm_1[data-invalid] ._frame_7wlzm_9{border-color:var(--wzl-danger,#ff5b5b)}._field_7wlzm_1[data-disabled] ._frame_7wlzm_9{opacity:.5;cursor:not-allowed}._frame_7wlzm_9 input{min-width:0;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0 8px}._frame_7wlzm_9 input::placeholder{color:var(--wzl-fg-subtle)}._openButton_7wlzm_53{border:none;border-left:1px solid var(--wzl-border);width:22px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}._openButton_7wlzm_53[data-hovered]:not([data-disabled]){color:var(--wzl-fg)}._openButton_7wlzm_53 svg{width:10px;height:10px}._popover_7wlzm_75{min-width:var(--trigger-width);outline:none}._listbox_7wlzm_80{background:var(--wzl-surface-raised);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);max-height:280px;font-family:var(--wzl-font-ui);outline:none;padding:4px;font-size:13px;overflow:auto;box-shadow:0 8px 24px #0000004d}._option_7wlzm_93{cursor:pointer;color:var(--wzl-fg);border-radius:3px;outline:none;align-items:center;padding:4px 8px;display:flex}._option_7wlzm_93[data-focused]{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._option_7wlzm_93[data-selected]{font-weight:500}._option_7wlzm_93[data-disabled]{opacity:.4;cursor:not-allowed}._empty_7wlzm_116{color:var(--wzl-fg-subtle);padding:6px 8px;font-size:12px}._root_1djm7_1{--plot-bg:var(--wzl-surface-sunken);--plot-grid:var(--wzl-line);--plot-axis:var(--wzl-fg);background:var(--plot-bg);-webkit-user-select:none;user-select:none;touch-action:none;outline:none;display:block;overflow:visible}._root_1djm7_1:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:2px}._grid_1djm7_28{stroke:var(--plot-grid);stroke-width:1px;fill:none}._axis_1djm7_34{stroke:var(--plot-axis);stroke-width:var(--wzl-line-width);fill:none}._root_ybpym_1{--curve-line:var(--wzl-curve-color);--curve-line-width:var(--wzl-curve-width);--curve-fill:color-mix(in srgb, var(--curve-line) 30%, transparent);--curve-anchor-fill:var(--wzl-surface);--curve-anchor-stroke:var(--curve-line);--curve-anchor-radius:4;--curve-anchor-active-fill:var(--curve-line);--curve-pinned-fill:var(--wzl-fg-subtle)}._fill_ybpym_19{fill:var(--curve-fill);stroke:none;pointer-events:none}._curve_ybpym_25{stroke:var(--curve-line);stroke-width:var(--curve-line-width);fill:none;pointer-events:stroke}._anchor_ybpym_32{fill:var(--curve-anchor-fill);stroke:var(--curve-anchor-stroke);stroke-width:1.5px;cursor:grab}._anchor_ybpym_32:hover{fill:var(--curve-anchor-active-fill)}._anchor_ybpym_32._active_ybpym_43{fill:var(--curve-anchor-active-fill);cursor:grabbing}._anchor_ybpym_32._pinned_ybpym_48{fill:var(--curve-pinned-fill);cursor:default}._anchor_ybpym_32._locked_ybpym_55{cursor:not-allowed}._hidden_ybpym_71{display:none}._grid_wvlvv_1{width:100%;position:relative}._table_wvlvv_6{border-collapse:collapse;width:100%;font-size:11px}._table_wvlvv_6 th,._table_wvlvv_6 td{text-align:left;vertical-align:middle;padding:3px 6px}._table_wvlvv_6 tbody tr{border-bottom:1px solid #ffffff0a}._table_wvlvv_6 th{color:var(--wzl-fg-muted);background:var(--wzl-surface,#2a2018);z-index:1;border-bottom:1px solid var(--wzl-border);font-weight:600;position:sticky;top:0}._sortable_wvlvv_34{cursor:pointer;-webkit-user-select:none;user-select:none}._sortable_wvlvv_34:hover,._sortActive_wvlvv_39{color:var(--wzl-fg,#e6e7e9)}._empty_wvlvv_41{color:var(--wzl-fg-muted);text-align:center;padding:8px 0;font-style:italic}._handleCol_wvlvv_49{width:14px}._handleCell_wvlvv_50{cursor:grab;width:14px;color:var(--wzl-fg-muted);-webkit-user-select:none;user-select:none;text-align:center}._handleCell_wvlvv_50:active{cursor:grabbing}._dragging_wvlvv_59{opacity:.4}._dropIndicator_wvlvv_61{background:var(--wzl-accent,#7fb069);pointer-events:none;height:2px;position:absolute;left:0;right:0}._overlay_13xy9_1{z-index:1000;opacity:0;transition:opacity var(--wzl-motion-fast);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}._overlay_13xy9_1[data-entering]{opacity:0}._overlay_13xy9_1[data-entering][data-rac]{opacity:1}._overlay_13xy9_1[data-exiting]{opacity:0}._overlay_13xy9_1[data-rac]:not([data-entering]):not([data-exiting]){opacity:1}._modal_13xy9_29{background:var(--wzl-surface);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);outline:none;flex-direction:column;max-width:min(900px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;box-shadow:0 24px 64px #00000073}._dialog_13xy9_43{outline:none;flex-direction:column;flex:1;min-height:0;display:flex}._header_13xy9_51{border-bottom:1px solid var(--wzl-border);flex:none;align-items:center;gap:12px;padding:14px 16px;display:flex}._title_13xy9_60{color:var(--wzl-fg);flex:1;margin:0;font-size:14px;font-weight:600}._close_13xy9_68{border-radius:var(--wzl-radius-sm);width:22px;height:22px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}._close_13xy9_68:hover{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent);color:var(--wzl-fg)}._body_13xy9_90{flex:1;min-height:0;padding:16px;overflow:auto}._footer_13xy9_97{border-top:1px solid var(--wzl-border);flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}._root_q2asl_1{-webkit-user-select:none;user-select:none;touch-action:none;position:relative}._row_q2asl_8{align-items:center;gap:8px;display:flex}._track_q2asl_14{min-width:0;height:var(--rp-track-height,24px);background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);cursor:crosshair;border-radius:3px;flex:1;position:relative}._trackInner_q2asl_25{border-radius:3px;position:absolute;inset:0;overflow:hidden}._thumb_q2asl_35{background:color-mix(in srgb, var(--wzl-fg-muted) 70%, transparent);border:1px solid var(--wzl-border-strong);cursor:ew-resize;-webkit-backdrop-filter:blur(3px);font-variant-numeric:tabular-nums;width:14px;color:var(--wzl-fg-inverse);text-shadow:0 0 2px #ffffffb3;border-radius:3px;justify-content:center;align-items:center;margin-left:-7px;font:500 .65rem/1 ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;top:-2px;bottom:-2px;box-shadow:0 1px 2px #0003}._thumb_q2asl_35:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:1px}._thumbActive_q2asl_74{z-index:1}._readoutsBelow_q2asl_79{height:14px;margin-top:4px;position:relative}._readoutBelow_q2asl_85{color:var(--wzl-fg-muted);white-space:nowrap;font:500 .65rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;transform:translate(-50%)}._readoutInline_q2asl_93{color:var(--wzl-fg-muted);vertical-align:middle;margin-left:8px;font:500 .7rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-block}._notched_q2asl_101{background:var(--thumb-svg,none);-webkit-backdrop-filter:none;box-shadow:none;filter:drop-shadow(0 1px 1px #00000040);--thumb-svg:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 30' preserveAspectRatio='none'%3E%3Cpolygon points='0,0 2.52,0 7,10.3 11.48,0 14,0 14,30 0,30' fill='rgba(255,255,255,0.62)' stroke='rgba(0,0,0,0.55)' stroke-width='0.75' stroke-linejoin='miter'/%3E%3C/svg%3E");background-color:#0000;background-repeat:no-repeat;background-size:100% 100%;border:none}._root_1pyfg_6{height:var(--wzl-tb-height,28px);-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#0000002e 0%,#0000000d 100%);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px 2px #0006,0 1px #ffffff0f}._segment_1pyfg_28{min-width:0;font-family:var(--wzl-font-ui);font-weight:300;font-size:var(--btn-fontsize,14px);color:var(--wzl-fg-muted);cursor:pointer;isolation:isolate;transition:color var(--wzl-motion-fast);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-content:center;align-items:center;margin:0;padding:0 12px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._segment_1pyfg_28:first-child{border-radius:999px 0 0 999px}._segment_1pyfg_28:last-child{border-radius:0 999px 999px 0}._segment_1pyfg_28:only-child{border-radius:999px}._segment_1pyfg_28:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._segment_1pyfg_28:disabled{opacity:.5;cursor:not-allowed}._segment_1pyfg_28:hover:not(:disabled):not(._segmentSelected_1pyfg_75){color:var(--wzl-fg)}._segmentSelected_1pyfg_75{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha,45%), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha,70%), transparent) calc(var(--btn-equator,52%) - var(--btn-equator-spread,12%)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint,95%), white) var(--btn-equator,52%), var(--wzl-accent) calc(var(--btn-equator,52%) + var(--btn-equator-spread,12%) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint,70%), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur,6px)) saturate(var(--btn-saturate,1.3));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow,.35)), var(--btn-text-inset-x,0px) var(--btn-text-inset-y,1px) 0 rgba(0, 0, 0, var(--btn-text-inset,.55)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow,.35) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi,.42)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo,.3)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim,.22)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near,.3)), 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far,.18) * .8))}._segmentSelected_1pyfg_75:before{content:"";inset:1px 1px var(--btn-gloss-bottom,50%) 1px;border-radius:inherit;background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top,.42)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid,.12)) 60%, #fff0 100%);pointer-events:none;z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._segmentSelected_1pyfg_75>*{z-index:2;position:relative}._segmentMixed_1pyfg_134{background:color-mix(in srgb, var(--wzl-accent) 22%, transparent);color:var(--wzl-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--wzl-accent) 45%, transparent)}._segmentMixed_1pyfg_134:hover:not(:disabled){background:color-mix(in srgb, var(--wzl-accent) 32%, transparent)}._variant_minimal_1pyfg_144 ._segmentMixed_1pyfg_134{background:color-mix(in srgb, var(--wzl-accent) 18%, transparent);box-shadow:none;color:var(--wzl-fg)}._size_sm_1pyfg_153{height:17px;padding:1px}._size_sm_1pyfg_153 ._segment_1pyfg_28{padding:0 8px;font-size:11px}._variant_minimal_1pyfg_144{border:1px solid var(--wzl-border,#ffffff2e);height:auto;box-shadow:none;background:0 0;border-radius:3px;gap:0;padding:0}._variant_minimal_1pyfg_144 ._segment_1pyfg_28{color:var(--wzl-fg-muted);border-radius:0;padding:0 6px;font-size:11px;font-weight:400;line-height:1.4;transition:none}._variant_minimal_1pyfg_144 ._segment_1pyfg_28+._segment_1pyfg_28{border-left:1px solid var(--wzl-border,#ffffff2e)}._variant_minimal_1pyfg_144 ._segment_1pyfg_28:first-child,._variant_minimal_1pyfg_144 ._segment_1pyfg_28:last-child,._variant_minimal_1pyfg_144 ._segment_1pyfg_28:only-child{border-radius:0}._variant_minimal_1pyfg_144 ._segment_1pyfg_28:hover:not(:disabled):not(._segmentSelected_1pyfg_75){color:var(--wzl-fg);background:#ffffff0f}._variant_minimal_1pyfg_144 ._segmentSelected_1pyfg_75{-webkit-backdrop-filter:none;color:var(--wzl-accent-fg,var(--wzl-accent));text-shadow:none;box-shadow:none;background:0 0;font-weight:500}._variant_minimal_1pyfg_144 ._segmentSelected_1pyfg_75:before{content:none}._root_15yko_1{flex-direction:column;gap:8px;min-inline-size:0;display:flex}._swatches_15yko_8{flex-wrap:wrap;gap:6px;display:flex}._swatch_15yko_8{flex:0 auto;min-inline-size:0}._overlay_6yu3h_3{pointer-events:none;position:absolute;inset:0}._guide_6yu3h_13{fill:none;stroke:#fff;stroke-opacity:.7;stroke-dasharray:4 4;paint-order:stroke}._handle_6yu3h_21{fill:#fff;stroke:#222;stroke-width:2px;cursor:grab;pointer-events:auto}._handle_6yu3h_21:active{cursor:grabbing}._handle_6yu3h_21:focus-visible{outline:2px solid var(--wzl-accent,#4a9eff);outline-offset:2px}._field_cahom_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_cahom_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:center;gap:6px;padding:0 8px;font-size:13px;line-height:1;display:flex}._frame_cahom_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_cahom_1[data-invalid] ._frame_cahom_9{border-color:var(--wzl-danger,#ff5b5b)}._field_cahom_1[data-disabled] ._frame_cahom_9{opacity:.5;cursor:not-allowed}._frame_cahom_9 input{min-width:0;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0}._frame_cahom_9 input::placeholder{color:var(--wzl-fg-subtle)}._adornment_cahom_54{color:var(--wzl-fg-subtle);pointer-events:none;align-items:center;font-size:12px;display:inline-flex}._keys_n4bkk_2{vertical-align:bottom;flex-wrap:wrap;align-items:flex-end;gap:3px;display:inline-flex}._keysEmpty_n4bkk_16{color:var(--wzl-fg-muted)}._sep_n4bkk_20{color:var(--wzl-fg-muted);font-size:11px;line-height:1}._key_n4bkk_2{box-sizing:border-box;background:var(--wzl-fg,#e6e7e9);height:18px;color:var(--wzl-surface);border:1px solid #25272c;border-bottom-width:2px;border-radius:3px;justify-content:center;align-items:center;padding:0 4px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:700;line-height:1;display:inline-flex}._key_n4bkk_2[data-kind=square]{width:18px;padding:0}._key_n4bkk_2[data-kind=modifier]{min-width:26px;padding:0 6px}._key_n4bkk_2[data-kind=wide]{min-width:32px;padding:0 8px}._key_n4bkk_2[data-inverted]{background:var(--wzl-surface);color:color-mix(in srgb, var(--wzl-fg,#e6e7e9) 60%, transparent);border-style:dotted;border-color:color-mix(in srgb, var(--wzl-fg,#e6e7e9) 40%, transparent);border-width:1.5px}._key_n4bkk_2[data-variant=minimal]{color:currentColor;background:0 0;border-color:currentColor}._key_n4bkk_2[data-variant=minimal][data-inverted]{color:currentColor;border:1.5px dotted}._field_e75yx_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_e75yx_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:stretch;font-size:13px;line-height:1;display:flex;overflow:hidden}._frame_e75yx_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_e75yx_1[data-invalid] ._frame_e75yx_9{border-color:var(--wzl-danger,#ff5b5b)}._field_e75yx_1[data-disabled] ._frame_e75yx_9{opacity:.5;cursor:not-allowed}._frame_e75yx_9 input{min-width:0;color:inherit;font:inherit;text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;flex:1;padding:0 8px}._frame_e75yx_9 input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}._frame_e75yx_9 input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._steppers_e75yx_57{border-left:1px solid var(--wzl-border);flex-direction:column;display:flex}._stepper_e75yx_57{width:18px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0;font-size:9px;line-height:1;display:inline-flex}._stepper_e75yx_57:not(:last-child){border-bottom:1px solid var(--wzl-border)}._stepper_e75yx_57[data-hovered]:not([data-disabled]){background:color-mix(in srgb, var(--wzl-fg) 10%, transparent);color:var(--wzl-fg)}._stepper_e75yx_57[data-pressed]:not([data-disabled]){background:color-mix(in srgb, var(--wzl-fg) 18%, transparent)}._stepper_e75yx_57[data-disabled]{opacity:.4;cursor:not-allowed}._row_q3wun_1{align-items:stretch;gap:var(--powerline-gap,.2em);display:inline-flex}._matrix_q3wun_7{gap:12px;display:grid}._segment_q3wun_15{font-size:inherit;text-transform:none;letter-spacing:normal}._group_kaubu_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:6px;display:flex}._group_kaubu_1[data-orientation=horizontal]{flex-direction:row;gap:16px}._legend_kaubu_14{color:var(--wzl-fg);font-size:12px;font-weight:500}._radio_kaubu_20{cursor:pointer;color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._radio_kaubu_20[data-disabled]{opacity:.5;cursor:not-allowed}._dot_kaubu_36{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);width:14px;height:14px;transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);border-radius:50%;flex:none;position:relative}._radio_kaubu_20[data-focus-visible] ._dot_kaubu_36{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._radio_kaubu_20[data-hovered]:not([data-disabled]) ._dot_kaubu_36{border-color:var(--wzl-fg-muted)}._radio_kaubu_20[data-selected] ._dot_kaubu_36{border-color:var(--wzl-accent-strong)}._dot_kaubu_36:after{content:"";background:var(--wzl-accent-strong);transition:transform var(--wzl-motion-fast);border-radius:50%;position:absolute;inset:3px;transform:scale(0)}._radio_kaubu_20[data-selected] ._dot_kaubu_36:after{transform:scale(1)}._slider_1644w_1{width:100%;font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._slider_1644w_1[data-orientation=vertical]{flex-direction:row;align-items:stretch;width:28px;height:160px}._head_1644w_17{justify-content:space-between;align-items:baseline;gap:8px;display:flex}._label_1644w_24{color:var(--wzl-fg);font-size:12px;font-weight:500}._output_1644w_30{color:var(--wzl-fg-subtle);font-variant-numeric:tabular-nums;font-size:12px}._track_1644w_36{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:3px;min-width:80px;height:6px;position:relative}._slider_1644w_1[data-orientation=vertical] ._track_1644w_36{width:6px;height:100%}._fill_1644w_50{background:var(--wzl-accent-strong);border-radius:3px;position:absolute;top:0;bottom:0;left:0}._thumb_1644w_59{background:var(--wzl-fg-muted);border:1px solid var(--wzl-border-strong);cursor:ew-resize;width:14px;height:14px;transition:box-shadow var(--wzl-motion-fast);border-radius:50%;outline:none}._slider_1644w_1[data-orientation=vertical] ._thumb_1644w_59{cursor:ns-resize}._thumb_1644w_59[data-focus-visible]{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._thumb_1644w_59[data-dragging]{background:var(--wzl-accent-strong)}._slider_1644w_1[data-disabled]{opacity:.5;cursor:not-allowed}._field_nq1le_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._trigger_nq1le_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);width:100%;height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);cursor:pointer;transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:center;gap:6px;padding:0 6px 0 10px;font-size:13px;line-height:1;display:flex}._trigger_nq1le_9[data-focus-visible]{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_nq1le_1[data-invalid] ._trigger_nq1le_9{border-color:var(--wzl-danger,#ff5b5b)}._trigger_nq1le_9[data-disabled]{opacity:.5;cursor:not-allowed}._value_nq1le_41{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._value_nq1le_41[data-placeholder]{color:var(--wzl-fg-subtle)}._chevron_nq1le_54{width:10px;height:10px;color:var(--wzl-fg-muted);flex:none}._popover_nq1le_61{min-width:var(--trigger-width);max-height:inherit;outline:none}._listbox_nq1le_67{background:var(--wzl-surface-raised);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);max-height:280px;font-family:var(--wzl-font-ui);outline:none;padding:4px;font-size:13px;overflow:auto;box-shadow:0 8px 24px #0000004d}._option_nq1le_80{cursor:pointer;color:var(--wzl-fg);border-radius:3px;outline:none;align-items:center;gap:8px;padding:4px 8px;display:flex}._option_nq1le_80[data-focused]{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._option_nq1le_80[data-selected]{color:var(--wzl-fg);font-weight:500}._option_nq1le_80[data-disabled]{opacity:.4;cursor:not-allowed}._check_nq1le_105{opacity:0;flex:none;width:10px;height:10px}._option_nq1le_80[data-selected] ._check_nq1le_105{opacity:1}._switch_qsj3o_1{cursor:pointer;font-family:var(--wzl-font-ui);color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._switch_qsj3o_1[data-disabled]{opacity:.5;cursor:not-allowed}._track_qsj3o_18{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);width:28px;height:16px;transition:background-color var(--wzl-motion-fast), border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);border-radius:8px;flex:none;position:relative}._switch_qsj3o_1[data-focus-visible] ._track_qsj3o_18{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._switch_qsj3o_1[data-selected] ._track_qsj3o_18{background:var(--wzl-accent-strong);border-color:var(--wzl-accent-strong)}._thumb_qsj3o_38{background:var(--wzl-fg);width:12px;height:12px;transition:transform var(--wzl-motion-fast);border-radius:50%;position:absolute;top:1px;left:1px}._switch_qsj3o_1[data-selected] ._thumb_qsj3o_38{background:var(--wzl-fg-on-accent);transform:translate(12px)}._label_qsj3o_54{line-height:1.2}._columns_y5ks5_5{flex-flow:wrap;align-items:flex-start;gap:12px;padding-right:4px;display:flex;overflow-y:auto}._column_y5ks5_5{flex:0 0 var(--wzl-prefs-column-width,300px);width:var(--wzl-prefs-column-width,300px);flex-direction:column;gap:8px;display:flex}._panel_y5ks5_23{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);flex-direction:column;gap:8px;padding:10px;display:flex}._subpanel_y5ks5_33{background:var(--wzl-surface-sunken);border-left:2px solid var(--wzl-border);border-radius:2px;flex-direction:column;gap:6px;margin-top:6px;padding:8px 8px 8px 10px;display:flex}._groupHeader_y5ks5_44{border-bottom:1px solid var(--wzl-border);flex-direction:column;gap:2px;padding-bottom:4px;display:flex}._subpanel_y5ks5_33 ._groupHeader_y5ks5_44{border-bottom:none;padding-bottom:2px}._groupTitle_y5ks5_57{color:var(--wzl-fg);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:12px;font-weight:600}._subpanel_y5ks5_33 ._groupTitle_y5ks5_57{text-transform:none;letter-spacing:0;font-size:11px}._groupDesc_y5ks5_72{color:var(--wzl-fg-subtle);margin:0;font-size:11px;line-height:1.35}._rows_y5ks5_79{flex-direction:column;gap:6px;display:flex}._row_y5ks5_79{color:var(--wzl-fg);cursor:default;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}._rowLabel_y5ks5_95{flex:auto;align-items:center;gap:4px;min-width:0;display:inline-flex}._help_y5ks5_104{color:var(--wzl-fg-subtle);cursor:help;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:0;font-size:11px;line-height:1}._help_y5ks5_104:hover{color:var(--wzl-fg)}._help_y5ks5_104:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:1px;color:var(--wzl-fg)}._rowControl_y5ks5_128{flex:0 0 110px;align-items:center;min-width:0;display:flex}._textarea_y5ks5_135{background:var(--wzl-surface-sunken);width:100%;color:var(--wzl-fg);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);font:inherit;resize:vertical;padding:4px 8px;font-size:12px}._unrenderable_y5ks5_147{font-family:var(--wzl-font-mono);color:var(--wzl-fg-subtle);font-size:11px}._titleRow_y5ks5_154{flex:1;align-items:center;gap:12px;min-width:0;display:flex}._titleRow_y5ks5_154>span:first-child{flex:1;min-width:0}._handle_c4v7n_1{cursor:ew-resize;border-left:1px solid var(--wzl-border);touch-action:none;background:0 0;flex-shrink:0;align-self:stretch;width:4px}._handle_c4v7n_1._horizontal_c4v7n_14{cursor:ns-resize;border-left:none;border-top:1px solid var(--wzl-border);align-self:auto;width:auto;height:4px}._handle_c4v7n_1:hover{background:var(--wzl-border)}._handle_c4v7n_1:focus-visible{outline:2px solid var(--wzl-focus-ring,var(--wzl-accent));outline-offset:-1px}._root_zqa5p_1{color:var(--wzl-fg);flex-direction:column;font-size:12px;display:flex}._header_zqa5p_8{border-block-end:1px solid var(--wzl-border);align-items:baseline;gap:8px;padding:8px 10px;display:flex}._kind_zqa5p_16{font-size:13px;font-weight:600}._breakdown_zqa5p_21{opacity:.6;font-size:11px}._section_zqa5p_26{border-block-end:1px solid var(--wzl-border);padding:6px 10px 8px}._section_zqa5p_26:last-child{border-block-end:none}._sectionTitle_zqa5p_35{text-transform:uppercase;letter-spacing:.06em;opacity:.55;margin:0 0 6px;font-size:10px;font-weight:600}._row_zqa5p_44{grid-template-columns:64px 1fr;align-items:center;gap:6px;margin-block-end:5px;display:grid}._rowLabel_zqa5p_52{opacity:.75}._rowControls_zqa5p_56{align-items:center;gap:6px;min-inline-size:0;display:flex}._rowControls_zqa5p_56>*{flex:1;min-inline-size:0}._number_zqa5p_68 input,._select_zqa5p_69{font-size:11px}._unitSuffix_zqa5p_73{opacity:.6;flex:none;font-size:11px}._mixedSwitch_zqa5p_79{opacity:.55}._unrenderable_zqa5p_83{opacity:.5;font-size:11px;font-style:italic}._sidebar_toyo8_1{background:var(--wzl-surface);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._sidebar_toyo8_1._left_toyo8_9{border-right:1px solid var(--wzl-border)}._sidebar_toyo8_1._right_toyo8_12{border-left:1px solid var(--wzl-border)}._panel_1u064_1{background:var(--wzl-surface);color:var(--wzl-fg);padding:8px}._title_1u064_7{text-transform:uppercase;letter-spacing:.05em;color:var(--wzl-fg-muted);font-size:11px;font-weight:600}._titleRow_1u064_15{justify-content:space-between;align-items:center;margin-bottom:4px;padding:0;display:flex}._titleButton_1u064_23{cursor:pointer;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex:auto;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}._titleButton_1u064_23:hover{color:var(--wzl-fg)}._chevron_1u064_40{color:var(--wzl-fg-muted);transition:transform var(--wzl-motion-fast) ease;font-size:10px;line-height:1;display:inline-block}._chevronCollapsed_1u064_47{transform:rotate(-90deg)}._hideButton_1u064_51{color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:0;padding:0 6px;font-size:14px;line-height:1}._hideButton_1u064_51:hover{color:var(--wzl-fg)}._panel_1u064_1._collapsed_1u064_64{padding-bottom:4px}._body_1u064_68{padding:0 4px}._bar_38xae_1{font-family:var(--wzl-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--wzl-fg-muted);background:var(--wzl-surface);border-top:1px solid var(--wzl-border);flex-shrink:0;align-items:center;gap:16px;padding:4px 12px;font-size:11px;display:flex}._item_38xae_14{white-space:nowrap}._muted_38xae_18{opacity:.6;font-variant-numeric:tabular-nums}._hasTitle_38xae_23{cursor:help}._spacer_38xae_27{margin-left:auto}._tabs_ce73l_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:0;display:flex}._tabs_ce73l_1[data-orientation=horizontal]{flex-direction:column}._tabs_ce73l_1[data-orientation=vertical]{flex-direction:row;gap:12px}._list_ce73l_18{border-bottom:1px solid var(--wzl-border);gap:2px;display:flex}._tabs_ce73l_1[data-orientation=vertical] ._list_ce73l_18{border-bottom:none;border-right:1px solid var(--wzl-border);flex-direction:column;padding-right:8px}._tab_ce73l_1{color:var(--wzl-fg-muted);font:inherit;cursor:pointer;transition:color var(--wzl-motion-fast);background:0 0;border:none;outline:none;padding:6px 10px;font-size:12px;position:relative}._tab_ce73l_1[data-hovered]:not([data-disabled]),._tab_ce73l_1[data-selected]{color:var(--wzl-fg)}._tab_ce73l_1[data-selected]:after{content:"";background:var(--wzl-accent-strong);height:2px;position:absolute;bottom:-1px;left:0;right:0}._tabs_ce73l_1[data-orientation=vertical] ._tab_ce73l_1[data-selected]:after{width:2px;height:auto;inset:0 -9px 0 auto}._tab_ce73l_1[data-focus-visible]{box-shadow:inset 0 0 0 2px var(--wzl-focus-ring);border-radius:var(--wzl-radius-sm)}._tab_ce73l_1[data-disabled]{opacity:.5;cursor:not-allowed}._panel_ce73l_81{outline:none;padding:12px 0}._panel_ce73l_81[data-focus-visible]{box-shadow:inset 0 0 0 2px var(--wzl-focus-ring);border-radius:var(--wzl-radius-sm)}._region_18i9b_1{z-index:1100;outline:none;flex-direction:column-reverse;gap:8px;max-width:360px;display:flex;position:fixed}._bottomRight_18i9b_17{bottom:16px;right:16px}._bottomLeft_18i9b_18{bottom:16px;left:16px}._topRight_18i9b_19{flex-direction:column;top:16px;right:16px}._topLeft_18i9b_20{flex-direction:column;top:16px;left:16px}._toast_18i9b_22{--toast-accent:var(--wzl-accent-strong);view-transition-class:wzl-toast;background:var(--wzl-surface);border:1px solid var(--wzl-border);border-left:3px solid var(--toast-accent);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);outline:none;align-items:flex-start;gap:8px;padding:10px 12px;display:flex;box-shadow:0 8px 24px #00000059}._region_18i9b_1[data-focus-visible],._toast_18i9b_22[data-focus-visible]{outline:2px solid var(--wzl-focus-ring);outline-offset:1px}._toneSuccess_18i9b_49{--toast-accent:var(--wzl-success,#2ec27e)}._toneWarning_18i9b_50{--toast-accent:var(--wzl-warning,#d99a3f)}._toneError_18i9b_51{--toast-accent:var(--wzl-danger,#d94a3f)}._content_18i9b_53{flex:1;min-width:0}._title_18i9b_58{font-size:13px;font-weight:600;display:block}._description_18i9b_64{color:var(--wzl-fg-muted);margin-top:2px;font-size:12px;display:block}._close_18i9b_71{color:var(--wzl-fg-muted);cursor:pointer;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:2px 4px;font-size:16px;line-height:1}._close_18i9b_71:hover{color:var(--wzl-fg)}:root.wzl-toast-vt{view-transition-name:none}:root.wzl-toast-vt::view-transition{pointer-events:none}:root.wzl-toast-vt::view-transition-new(.wzl-toast):only-child{animation:wzl-toast-enter var(--wzl-motion-medium,.24s) var(--wzl-ease-out-cubic,ease-out) both}:root.wzl-toast-vt::view-transition-old(.wzl-toast):only-child{animation:wzl-toast-exit var(--wzl-motion-fast,.12s) var(--wzl-ease-in-cubic,ease-in) both}@keyframes wzl-toast-enter{0%{opacity:0;translate:0 16px}}@keyframes wzl-toast-exit{to{opacity:0;scale:.92}}._button_1jvxe_1{min-width:44px;color:var(--wzl-fg);cursor:default;background:0 0;border:1px solid #0000;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-family:inherit;font-size:10px;line-height:1.1;display:inline-flex}._button_1jvxe_1:hover:not([disabled]){background:var(--wzl-surface-hover);color:var(--wzl-fg)}._button_1jvxe_1:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._button_1jvxe_1._active_1jvxe_26{background:var(--wzl-surface-pressed);border-color:var(--wzl-accent);color:var(--wzl-fg)}._button_1jvxe_1[disabled]{opacity:.4}._icon_1jvxe_35,._icon_1jvxe_35>svg{display:block}._label_1jvxe_37{font-size:10px}._shortcut_1jvxe_38{color:var(--wzl-fg-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}._group_o2pho_1{flex-direction:column;gap:2px;display:flex}._group_o2pho_1._horizontal_o2pho_6{flex-direction:row}._root_ps46a_13{height:var(--wzl-tb-height,28px);background:var(--wzl-surface);border-bottom:1px solid var(--wzl-border);color:var(--wzl-fg);align-items:center;gap:8px;padding:0 8px;display:flex;overflow:hidden}._label_ps46a_25{text-transform:uppercase;letter-spacing:.05em;color:var(--wzl-fg-muted);white-space:nowrap;flex:none;font-size:11px;font-weight:600}._controls_ps46a_6{scrollbar-width:thin;flex:auto;align-items:center;gap:6px;min-width:0;height:100%;display:flex;overflow:auto hidden}._controls_ps46a_6::-webkit-scrollbar{height:4px}._controls_ps46a_6::-webkit-scrollbar-track{background:0 0}._controls_ps46a_6::-webkit-scrollbar-thumb{background:var(--wzl-border);border-radius:2px}._palette_1mz1c_1{background:var(--wzl-surface);border:1px solid var(--wzl-border);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:column;gap:4px;padding:4px;display:flex}._palette_1mz1c_1._horizontal_1mz1c_11{flex-direction:row}._ineligibleBtn_1mz1c_20{opacity:.35;cursor:not-allowed}._separator_1mz1c_25{background:var(--wzl-border)}._palette_1mz1c_1:not(._horizontal_1mz1c_11) ._separator_1mz1c_25{height:1px;margin:2px 0}._palette_1mz1c_1._horizontal_1mz1c_11 ._separator_1mz1c_25{width:1px;margin:0 2px}
2
2
  /*$vite$:1*/
@@ -0,0 +1,52 @@
1
+ import { type KeyboardEvent as ReactKeyboardEvent, type RefObject } from 'react';
2
+ /** The only thing the hook needs to know about a bar's items: which are
3
+ * skipped by arrow navigation. */
4
+ export type RovingItem = {
5
+ disabled?: boolean;
6
+ };
7
+ export type UseRovingTabIndexOptions = {
8
+ /** In the same order as the elements carrying `itemClassName`. */
9
+ items: readonly RovingItem[];
10
+ /** Class on the focusable element of each item, inside the container the
11
+ * returned `rootRef` is attached to. Their DOM order must match `items`. */
12
+ itemClassName: string;
13
+ /** Index that carries `tabIndex=0`. Defaults to the first enabled item; a
14
+ * radiogroup-style bar passes its selected index so Tab lands on the
15
+ * current value. */
16
+ tabStopIndex?: number;
17
+ /** Called with the new index as arrow/Home/End focus moves, before focus
18
+ * moves. This is where a selection-follows-focus bar commits the value. */
19
+ onNavigate?: (index: number) => void;
20
+ /** Space/Enter on the item at `index`. When omitted the keypress is left
21
+ * alone, which on a native `<button>` produces an ordinary click. */
22
+ onActivate?: (index: number) => void;
23
+ };
24
+ export type RovingTabIndex<T extends HTMLElement = HTMLDivElement> = {
25
+ /** Attach to the container element that holds the items. */
26
+ rootRef: RefObject<T | null>;
27
+ /** `tabIndex` value for the item at `index`. */
28
+ tabIndexFor: (index: number) => 0 | -1;
29
+ /** `onKeyDown` for the item at `index`. */
30
+ onKeyDown: (index: number) => (e: ReactKeyboardEvent<HTMLElement>) => void;
31
+ };
32
+ /**
33
+ * Roving tabindex for a bar of items: one item is in the tab order, and the
34
+ * arrow keys move focus among the rest, skipping disabled ones and wrapping
35
+ * at both ends. Home and End go to the first and last enabled item. Both axes
36
+ * navigate, so the same bar works laid out either way.
37
+ *
38
+ * Backs `ActionsBar`, `OptionsBar`, and `ToggleBar`.
39
+ *
40
+ * **When a bar should not use this.** Only when the bar owns its items. A
41
+ * container of arbitrary compound controls — a number field, a select, a
42
+ * color field — must leave the arrow keys alone, because those controls edit
43
+ * their own value with them; taking the arrows over would break the control
44
+ * to navigate between controls. `ToolOptionsBar` is that case and keeps plain
45
+ * DOM tab order. A bar whose items are all simple buttons is the case this
46
+ * hook is for.
47
+ *
48
+ * With every item disabled there is no tab stop and the bar drops out of the
49
+ * tab order entirely.
50
+ */
51
+ export declare function useRovingTabIndex<T extends HTMLElement = HTMLDivElement>(options: UseRovingTabIndexOptions): RovingTabIndex<T>;
52
+ //# sourceMappingURL=useRovingTabIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRovingTabIndex.d.ts","sourceRoot":"","sources":["../src/useRovingTabIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,IAAI,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzF;mCACmC;AACnC,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,kEAAkE;IAClE,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B;iFAC6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB;;yBAEqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;gFAC4E;IAC5E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;0EACsE;IACtE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,IAAI;IACnE,4DAA4D;IAC5D,OAAO,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,gDAAgD;IAChD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,2CAA2C;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAC5E,CAAC;AA8BF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EACtE,OAAO,EAAE,wBAAwB,GAChC,cAAc,CAAC,CAAC,CAAC,CAmDnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weasel-js/ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "UI chrome primitives for weasel apps (properties panel, etc.)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -23,7 +23,7 @@
23
23
  "./package.json": "./package.json"
24
24
  },
25
25
  "dependencies": {
26
- "@weasel-js/modes": "1.0.0",
26
+ "@weasel-js/modes": "1.0.2",
27
27
  "react-aria-components": "^1.5.0"
28
28
  },
29
29
  "peerDependencies": {
@@ -1,94 +0,0 @@
1
- import { useRef as e } from "react";
2
- import { jsx as t } from "react/jsx-runtime";
3
- var n = {
4
- root: "_root_13y7a_6",
5
- segment: "_segment_13y7a_28",
6
- segmentSelected: "_segmentSelected_13y7a_75",
7
- size_sm: "_size_sm_13y7a_133",
8
- variant_minimal: "_variant_minimal_13y7a_146"
9
- };
10
- //#endregion
11
- //#region src/components/ActionsBar/ActionsBar.tsx
12
- function r(e) {
13
- for (let t = 0; t < e.length; t++) if (!e[t].disabled) return t;
14
- return -1;
15
- }
16
- function i(e) {
17
- for (let t = e.length - 1; t >= 0; t--) if (!e[t].disabled) return t;
18
- return -1;
19
- }
20
- function a(e, t) {
21
- let n = e.length;
22
- for (let r = 1; r <= n; r++) {
23
- let i = (t + r + n) % n;
24
- if (!e[i].disabled) return i;
25
- }
26
- return t;
27
- }
28
- function o(e, t) {
29
- let n = e.length;
30
- for (let r = 1; r <= n; r++) {
31
- let i = (t - r + n) % n;
32
- if (!e[i].disabled) return i;
33
- }
34
- return t;
35
- }
36
- function s(s) {
37
- let { items: c, ariaLabel: l, className: u, height: d, size: f, variant: p } = s, m = e(null), h = r(c), g = (e) => {
38
- let t = c[e];
39
- t.disabled || t.onAction();
40
- }, _ = (e) => {
41
- let t = m.current;
42
- t && t.querySelectorAll(`.${n.segment}`)[e]?.focus();
43
- }, v = (e) => (t) => {
44
- let n = -1;
45
- switch (t.key) {
46
- case "ArrowLeft":
47
- case "ArrowUp":
48
- n = o(c, e);
49
- break;
50
- case "ArrowRight":
51
- case "ArrowDown":
52
- n = a(c, e);
53
- break;
54
- case "Home":
55
- n = r(c);
56
- break;
57
- case "End":
58
- n = i(c);
59
- break;
60
- case " ":
61
- case "Enter":
62
- t.preventDefault(), g(e);
63
- return;
64
- default: return;
65
- }
66
- n < 0 || n === e || (t.preventDefault(), _(n));
67
- }, y = d === void 0 ? void 0 : { "--wzl-tb-height": `${d}px` };
68
- return /* @__PURE__ */ t("div", {
69
- ref: m,
70
- className: [
71
- n.root,
72
- f && n[`size_${f}`],
73
- p && n[`variant_${p}`],
74
- u
75
- ].filter(Boolean).join(" "),
76
- role: "toolbar",
77
- "aria-label": l,
78
- style: y,
79
- children: c.map((e, r) => /* @__PURE__ */ t("button", {
80
- type: "button",
81
- "aria-label": e.ariaLabel,
82
- disabled: e.disabled,
83
- tabIndex: r === h ? 0 : -1,
84
- className: n.segment,
85
- onClick: () => g(r),
86
- onKeyDown: v(r),
87
- children: e.label
88
- }, e.value))
89
- });
90
- }
91
- //#endregion
92
- export { s as t };
93
-
94
- //# sourceMappingURL=ActionsBar-CzU6Of3B.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionsBar-CzU6Of3B.js","names":[],"sources":["../../src/components/ActionsBar/ActionsBar.module.css","../../src/components/ActionsBar/ActionsBar.tsx"],"sourcesContent":["/* Aqua-glass segmented control. The track is a pill-shaped well; the\n selected segment becomes a tinted glass cylinder that reads as the same\n \"lozenge\" family as the standalone Button. Visual params come from the\n `--btn-*` custom properties (see Button.module.css) so the Button Lab\n can tune both surfaces with one set of sliders. */\n.root {\n display: inline-flex;\n height: var(--wzl-tb-height, 28px);\n padding: 2px;\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.18) 0%,\n rgba(0, 0, 0, 0.05) 100%\n );\n border-radius: 999px;\n /* Clip segments to the track outline so interior corners read crisp and\n the selected segment's glass treatment doesn't paint over the rounded\n outer pixels. */\n overflow: hidden;\n box-shadow:\n inset 0 1px 2px rgba(0, 0, 0, 0.4),\n 0 1px 0 rgba(255, 255, 255, 0.06);\n user-select: none;\n -webkit-user-select: none;\n touch-action: none;\n}\n\n.segment {\n position: relative;\n flex: 1 1 0;\n min-width: 0;\n padding: 0 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n margin: 0;\n font-family: var(--wzl-font-ui);\n font-weight: 300;\n font-size: var(--btn-fontsize, 14px);\n line-height: 1;\n color: var(--wzl-fg-muted);\n cursor: pointer;\n /* Only round the outer corners of the bar — middle segments stay square\n so the seams between them don't render as facing parentheses. */\n border-radius: 0;\n isolation: isolate;\n overflow: hidden;\n transition: color var(--wzl-motion-fast);\n}\n\n.segment:first-child {\n border-radius: 999px 0 0 999px;\n}\n\n.segment:last-child {\n border-radius: 0 999px 999px 0;\n}\n\n.segment:only-child {\n border-radius: 999px;\n}\n\n.segment:focus-visible {\n outline: 2px solid var(--wzl-accent);\n outline-offset: -2px;\n}\n\n.segment:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.segment:hover:not(:disabled):not(.segmentSelected) {\n color: var(--wzl-fg);\n}\n\n/* Selected segment — full Aqua glass cylinder. Mirrors Button.variant_primary. */\n.segmentSelected {\n background: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha, 45%), transparent) 0%,\n color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha, 70%), transparent) calc(var(--btn-equator, 52%) - var(--btn-equator-spread, 12%)),\n color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint, 95%), white) var(--btn-equator, 52%),\n var(--wzl-accent) calc(var(--btn-equator, 52%) + var(--btn-equator-spread, 12%) * 1.6),\n color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint, 70%), black) 100%\n );\n backdrop-filter: blur(var(--btn-blur, 6px)) saturate(var(--btn-saturate, 1.3));\n -webkit-backdrop-filter: blur(var(--btn-blur, 6px)) saturate(var(--btn-saturate, 1.3));\n color: var(--wzl-fg-on-accent);\n text-shadow:\n 0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow, 0.35)),\n var(--btn-text-inset-x, 0px) var(--btn-text-inset-y, 1px) 0 rgba(0, 0, 0, var(--btn-text-inset, 0.55)),\n 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow, 0.35) * 0.5));\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi, 0.42)),\n inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo, 0.3)),\n 0 0 0 1px rgba(0, 0, 0, var(--btn-rim, 0.22)),\n 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near, 0.3)),\n 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far, 0.18) * 0.8));\n}\n\n/* Specular gloss on the selected segment. Top corners inherit the\n segment's radius so they hug the upper edge cleanly; bottom corners\n are flattened so the gloss ends in a straight line at the equator\n instead of two little curves that read as `)(` brackets. */\n.segmentSelected::before {\n content: '';\n position: absolute;\n inset: 1px 1px var(--btn-gloss-bottom, 50%) 1px;\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, var(--btn-gloss-top, 0.42)) 0%,\n rgba(255, 255, 255, var(--btn-gloss-mid, 0.12)) 60%,\n rgba(255, 255, 255, 0) 100%\n );\n pointer-events: none;\n z-index: 1;\n}\n\n.segmentSelected > * {\n position: relative;\n z-index: 2;\n}\n\n/* Small variant — ~60% of the default height, with proportionally reduced\n padding and font. Sized for dense surfaces (lab control panels, inline\n filters, etc.). */\n.size_sm {\n height: 17px;\n padding: 1px;\n}\n\n.size_sm .segment {\n padding: 0 8px;\n font-size: 11px;\n}\n\n/* Minimal variant — strips the pill track, glass selected state, inset\n shadows, and outer padding. Used in dense diagnostic surfaces (dispatch\n trace, lab inspectors) where the bar must read as plain text controls. */\n.variant_minimal {\n height: auto;\n padding: 0;\n background: none;\n border-radius: 0;\n box-shadow: none;\n gap: 2px;\n}\n\n.variant_minimal .segment {\n padding: 0 4px;\n font-size: 11px;\n font-weight: 400;\n line-height: 1.4;\n border-radius: 2px;\n color: var(--wzl-fg-muted);\n transition: none;\n}\n\n.variant_minimal .segment:first-child,\n.variant_minimal .segment:last-child,\n.variant_minimal .segment:only-child {\n border-radius: 2px;\n}\n\n.variant_minimal .segment:hover:not(:disabled):not(.segmentSelected) {\n color: var(--wzl-fg);\n background: rgba(255, 255, 255, 0.06);\n}\n\n.variant_minimal .segmentSelected {\n background: none;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n color: var(--wzl-accent-fg, var(--wzl-accent));\n text-shadow: none;\n box-shadow: none;\n font-weight: 500;\n}\n\n.variant_minimal .segmentSelected::before {\n content: none;\n}\n","import { useRef, type CSSProperties, type KeyboardEvent as ReactKeyboardEvent, type ReactElement, type ReactNode } from 'react';\nimport s from './ActionsBar.module.css';\n\nexport type ActionsBarItem<V extends string | number = string> = {\n value: V;\n label?: ReactNode;\n ariaLabel?: string;\n disabled?: boolean;\n onAction: () => void;\n};\n\nexport type ActionsBarSize = 'sm' | 'md';\nexport type ActionsBarVariant = 'default' | 'minimal';\n\nexport type ActionsBarProps<V extends string | number = string> = {\n items: readonly ActionsBarItem<V>[];\n ariaLabel?: string;\n className?: string;\n height?: number;\n size?: ActionsBarSize;\n variant?: ActionsBarVariant;\n};\n\nfunction firstEnabledIndex(items: readonly ActionsBarItem<string | number>[]): number {\n for (let i = 0; i < items.length; i++) if (!items[i].disabled) return i;\n return -1;\n}\n\nfunction lastEnabledIndex(items: readonly ActionsBarItem<string | number>[]): number {\n for (let i = items.length - 1; i >= 0; i--) if (!items[i].disabled) return i;\n return -1;\n}\n\nfunction nextEnabledIndex(items: readonly ActionsBarItem<string | number>[], from: number): number {\n const n = items.length;\n for (let k = 1; k <= n; k++) {\n const i = (from + k + n) % n;\n if (!items[i].disabled) return i;\n }\n return from;\n}\n\nfunction prevEnabledIndex(items: readonly ActionsBarItem<string | number>[], from: number): number {\n const n = items.length;\n for (let k = 1; k <= n; k++) {\n const i = (from - k + n) % n;\n if (!items[i].disabled) return i;\n }\n return from;\n}\n\nexport function ActionsBar<V extends string | number = string>(props: ActionsBarProps<V>): ReactElement {\n const { items, ariaLabel, className, height, size, variant } = props;\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const tabStopIndex = firstEnabledIndex(items);\n\n const fire = (index: number) => {\n const item = items[index];\n if (item.disabled) return;\n item.onAction();\n };\n\n const focusSegment = (index: number) => {\n const root = rootRef.current;\n if (!root) return;\n const buttons = root.querySelectorAll<HTMLButtonElement>(`.${s.segment}`);\n buttons[index]?.focus();\n };\n\n const handleKeyDown = (index: number) => (e: ReactKeyboardEvent<HTMLButtonElement>) => {\n let nextIndex = -1;\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextIndex = prevEnabledIndex(items, index);\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n nextIndex = nextEnabledIndex(items, index);\n break;\n case 'Home':\n nextIndex = firstEnabledIndex(items);\n break;\n case 'End':\n nextIndex = lastEnabledIndex(items);\n break;\n case ' ':\n case 'Enter':\n e.preventDefault();\n fire(index);\n return;\n default:\n return;\n }\n if (nextIndex < 0 || nextIndex === index) return;\n e.preventDefault();\n focusSegment(nextIndex);\n };\n\n const style: CSSProperties | undefined = height !== undefined\n ? ({ ['--wzl-tb-height' as string]: `${height}px` } as CSSProperties)\n : undefined;\n\n const rootCls = [\n s.root,\n size && s[`size_${size}`],\n variant && s[`variant_${variant}`],\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n ref={rootRef}\n className={rootCls}\n role=\"toolbar\"\n aria-label={ariaLabel}\n style={style}\n >\n {items.map((item, i) => (\n <button\n key={item.value}\n type=\"button\"\n aria-label={item.ariaLabel}\n disabled={item.disabled}\n tabIndex={i === tabStopIndex ? 0 : -1}\n className={s.segment}\n onClick={() => fire(i)}\n onKeyDown={handleKeyDown(i)}\n >\n {item.label}\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;ACuBA,SAAS,EAAkB,GAA2D;AACpF,MAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,IAAK,KAAI,CAAC,EAAM,GAAG,SAAU,QAAO;AACtE,QAAO;;AAGT,SAAS,EAAiB,GAA2D;AACnF,MAAK,IAAI,IAAI,EAAM,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,CAAC,EAAM,GAAG,SAAU,QAAO;AAC3E,QAAO;;AAGT,SAAS,EAAiB,GAAmD,GAAsB;CACjG,IAAM,IAAI,EAAM;AAChB,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,IAAM,KAAK,IAAO,IAAI,KAAK;AAC3B,MAAI,CAAC,EAAM,GAAG,SAAU,QAAO;;AAEjC,QAAO;;AAGT,SAAS,EAAiB,GAAmD,GAAsB;CACjG,IAAM,IAAI,EAAM;AAChB,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,IAAM,KAAK,IAAO,IAAI,KAAK;AAC3B,MAAI,CAAC,EAAM,GAAG,SAAU,QAAO;;AAEjC,QAAO;;AAGT,SAAgB,EAA+C,GAAyC;CACtG,IAAM,EAAE,UAAO,cAAW,cAAW,WAAQ,SAAM,eAAY,GACzD,IAAU,EAA8B,KAAK,EAE7C,IAAe,EAAkB,EAAM,EAEvC,KAAQ,MAAkB;EAC9B,IAAM,IAAO,EAAM;AACf,IAAK,YACT,EAAK,UAAU;IAGX,KAAgB,MAAkB;EACtC,IAAM,IAAO,EAAQ;AAChB,OACW,EAAK,iBAAoC,IAAI,EAAE,UAC/D,CAAQ,IAAQ,OAAO;IAGnB,KAAiB,OAAmB,MAA6C;EACrF,IAAI,IAAY;AAChB,UAAQ,EAAE,KAAV;GACE,KAAK;GACL,KAAK;AACH,QAAY,EAAiB,GAAO,EAAM;AAC1C;GACF,KAAK;GACL,KAAK;AACH,QAAY,EAAiB,GAAO,EAAM;AAC1C;GACF,KAAK;AACH,QAAY,EAAkB,EAAM;AACpC;GACF,KAAK;AACH,QAAY,EAAiB,EAAM;AACnC;GACF,KAAK;GACL,KAAK;AAEH,IADA,EAAE,gBAAgB,EAClB,EAAK,EAAM;AACX;GACF,QACE;;AAEA,MAAY,KAAK,MAAc,MACnC,EAAE,gBAAgB,EAClB,EAAa,EAAU;IAGnB,IAAmC,MAAW,KAAA,IAEhD,KAAA,IADC,EAAG,mBAA8B,GAAG,EAAO,KAAK;AAUrD,QACE,kBAAC,OAAD;EACE,KAAK;EACL,WAVY;GACd,EAAE;GACF,KAAQ,EAAE,QAAQ;GAClB,KAAW,EAAE,WAAW;GACxB;GACD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAKR;EACX,MAAK;EACL,cAAY;EACL;YAEN,EAAM,KAAK,GAAM,MAChB,kBAAC,UAAD;GAEE,MAAK;GACL,cAAY,EAAK;GACjB,UAAU,EAAK;GACf,UAAU,MAAM,IAAe,IAAI;GACnC,WAAW,EAAE;GACb,eAAe,EAAK,EAAE;GACtB,WAAW,EAAc,EAAE;aAE1B,EAAK;GACC,EAVF,EAAK,MAUH,CACT;EACE,CAAA"}
@@ -1,98 +0,0 @@
1
- import { useRef as e } from "react";
2
- import { jsx as t } from "react/jsx-runtime";
3
- var n = {
4
- root: "_root_13y7a_6",
5
- segment: "_segment_13y7a_28",
6
- segmentSelected: "_segmentSelected_13y7a_75",
7
- size_sm: "_size_sm_13y7a_133",
8
- variant_minimal: "_variant_minimal_13y7a_146"
9
- };
10
- //#endregion
11
- //#region src/components/OptionsBar/OptionsBar.tsx
12
- function r(e) {
13
- for (let t = 0; t < e.length; t++) if (!e[t].disabled) return t;
14
- return -1;
15
- }
16
- function i(e) {
17
- for (let t = e.length - 1; t >= 0; t--) if (!e[t].disabled) return t;
18
- return -1;
19
- }
20
- function a(e, t) {
21
- let n = e.length;
22
- for (let r = 1; r <= n; r++) {
23
- let i = (t + r + n) % n;
24
- if (!e[i].disabled) return i;
25
- }
26
- return t;
27
- }
28
- function o(e, t) {
29
- let n = e.length;
30
- for (let r = 1; r <= n; r++) {
31
- let i = (t - r + n) % n;
32
- if (!e[i].disabled) return i;
33
- }
34
- return t;
35
- }
36
- function s(s) {
37
- let { items: c, ariaLabel: l, className: u, height: d, size: f, variant: p } = s, m = e(null), h = r(c), g = (e) => {
38
- let t = c[e];
39
- t.disabled || t.onChange(!t.selected);
40
- }, _ = (e) => {
41
- let t = m.current;
42
- t && t.querySelectorAll(`.${n.segment}`)[e]?.focus();
43
- }, v = (e) => (t) => {
44
- let n = -1;
45
- switch (t.key) {
46
- case "ArrowLeft":
47
- case "ArrowUp":
48
- n = o(c, e);
49
- break;
50
- case "ArrowRight":
51
- case "ArrowDown":
52
- n = a(c, e);
53
- break;
54
- case "Home":
55
- n = r(c);
56
- break;
57
- case "End":
58
- n = i(c);
59
- break;
60
- case " ":
61
- case "Enter":
62
- t.preventDefault(), g(e);
63
- return;
64
- default: return;
65
- }
66
- n < 0 || n === e || (t.preventDefault(), _(n));
67
- }, y = d === void 0 ? void 0 : { "--wzl-tb-height": `${d}px` };
68
- return /* @__PURE__ */ t("div", {
69
- ref: m,
70
- className: [
71
- n.root,
72
- f && n[`size_${f}`],
73
- p && n[`variant_${p}`],
74
- u
75
- ].filter(Boolean).join(" "),
76
- role: "group",
77
- "aria-label": l,
78
- style: y,
79
- children: c.map((e, r) => {
80
- let i = `${n.segment}${e.selected ? ` ${n.segmentSelected}` : ""}`;
81
- return /* @__PURE__ */ t("button", {
82
- type: "button",
83
- "aria-pressed": e.selected,
84
- "aria-label": e.ariaLabel,
85
- disabled: e.disabled,
86
- tabIndex: r === h ? 0 : -1,
87
- className: i,
88
- onClick: () => g(r),
89
- onKeyDown: v(r),
90
- children: e.label
91
- }, e.value);
92
- })
93
- });
94
- }
95
- //#endregion
96
- export { s as t };
97
-
98
- //# sourceMappingURL=OptionsBar-CHOP_CiW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OptionsBar-CHOP_CiW.js","names":[],"sources":["../../src/components/OptionsBar/OptionsBar.module.css","../../src/components/OptionsBar/OptionsBar.tsx"],"sourcesContent":["/* Aqua-glass segmented control. The track is a pill-shaped well; the\n selected segment becomes a tinted glass cylinder that reads as the same\n \"lozenge\" family as the standalone Button. Visual params come from the\n `--btn-*` custom properties (see Button.module.css) so the Button Lab\n can tune both surfaces with one set of sliders. */\n.root {\n display: inline-flex;\n height: var(--wzl-tb-height, 28px);\n padding: 2px;\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0.18) 0%,\n rgba(0, 0, 0, 0.05) 100%\n );\n border-radius: 999px;\n /* Clip segments to the track outline so interior corners read crisp and\n the selected segment's glass treatment doesn't paint over the rounded\n outer pixels. */\n overflow: hidden;\n box-shadow:\n inset 0 1px 2px rgba(0, 0, 0, 0.4),\n 0 1px 0 rgba(255, 255, 255, 0.06);\n user-select: none;\n -webkit-user-select: none;\n touch-action: none;\n}\n\n.segment {\n position: relative;\n flex: 1 1 0;\n min-width: 0;\n padding: 0 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n margin: 0;\n font-family: var(--wzl-font-ui);\n font-weight: 300;\n font-size: var(--btn-fontsize, 14px);\n line-height: 1;\n color: var(--wzl-fg-muted);\n cursor: pointer;\n /* Only round the outer corners of the bar — middle segments stay square\n so the seams between them don't render as facing parentheses. */\n border-radius: 0;\n isolation: isolate;\n overflow: hidden;\n transition: color var(--wzl-motion-fast);\n}\n\n.segment:first-child {\n border-radius: 999px 0 0 999px;\n}\n\n.segment:last-child {\n border-radius: 0 999px 999px 0;\n}\n\n.segment:only-child {\n border-radius: 999px;\n}\n\n.segment:focus-visible {\n outline: 2px solid var(--wzl-accent);\n outline-offset: -2px;\n}\n\n.segment:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.segment:hover:not(:disabled):not(.segmentSelected) {\n color: var(--wzl-fg);\n}\n\n/* Selected segment — full Aqua glass cylinder. Mirrors Button.variant_primary. */\n.segmentSelected {\n background: linear-gradient(\n 180deg,\n color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha, 45%), transparent) 0%,\n color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha, 70%), transparent) calc(var(--btn-equator, 52%) - var(--btn-equator-spread, 12%)),\n color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint, 95%), white) var(--btn-equator, 52%),\n var(--wzl-accent) calc(var(--btn-equator, 52%) + var(--btn-equator-spread, 12%) * 1.6),\n color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint, 70%), black) 100%\n );\n backdrop-filter: blur(var(--btn-blur, 6px)) saturate(var(--btn-saturate, 1.3));\n -webkit-backdrop-filter: blur(var(--btn-blur, 6px)) saturate(var(--btn-saturate, 1.3));\n color: var(--wzl-fg-on-accent);\n text-shadow:\n 0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow, 0.35)),\n var(--btn-text-inset-x, 0px) var(--btn-text-inset-y, 1px) 0 rgba(0, 0, 0, var(--btn-text-inset, 0.55)),\n 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow, 0.35) * 0.5));\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi, 0.42)),\n inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo, 0.3)),\n 0 0 0 1px rgba(0, 0, 0, var(--btn-rim, 0.22)),\n 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near, 0.3)),\n 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far, 0.18) * 0.8));\n}\n\n/* Specular gloss on the selected segment. Top corners inherit the\n segment's radius so they hug the upper edge cleanly; bottom corners\n are flattened so the gloss ends in a straight line at the equator\n instead of two little curves that read as `)(` brackets. */\n.segmentSelected::before {\n content: '';\n position: absolute;\n inset: 1px 1px var(--btn-gloss-bottom, 50%) 1px;\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, var(--btn-gloss-top, 0.42)) 0%,\n rgba(255, 255, 255, var(--btn-gloss-mid, 0.12)) 60%,\n rgba(255, 255, 255, 0) 100%\n );\n pointer-events: none;\n z-index: 1;\n}\n\n.segmentSelected > * {\n position: relative;\n z-index: 2;\n}\n\n/* Small variant — ~60% of the default height, with proportionally reduced\n padding and font. Sized for dense surfaces (lab control panels, inline\n filters, etc.). */\n.size_sm {\n height: 17px;\n padding: 1px;\n}\n\n.size_sm .segment {\n padding: 0 8px;\n font-size: 11px;\n}\n\n/* Minimal variant — strips the pill track, glass selected state, inset\n shadows, and outer padding. Used in dense diagnostic surfaces (dispatch\n trace, lab inspectors) where the bar must read as plain text controls. */\n.variant_minimal {\n height: auto;\n padding: 0;\n background: none;\n border-radius: 0;\n box-shadow: none;\n gap: 2px;\n}\n\n.variant_minimal .segment {\n padding: 0 4px;\n font-size: 11px;\n font-weight: 400;\n line-height: 1.4;\n border-radius: 2px;\n color: var(--wzl-fg-muted);\n transition: none;\n}\n\n.variant_minimal .segment:first-child,\n.variant_minimal .segment:last-child,\n.variant_minimal .segment:only-child {\n border-radius: 2px;\n}\n\n.variant_minimal .segment:hover:not(:disabled):not(.segmentSelected) {\n color: var(--wzl-fg);\n background: rgba(255, 255, 255, 0.06);\n}\n\n.variant_minimal .segmentSelected {\n background: none;\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n color: var(--wzl-accent-fg, var(--wzl-accent));\n text-shadow: none;\n box-shadow: none;\n font-weight: 500;\n}\n\n.variant_minimal .segmentSelected::before {\n content: none;\n}\n","import { useRef, type CSSProperties, type KeyboardEvent as ReactKeyboardEvent, type ReactElement, type ReactNode } from 'react';\nimport s from './OptionsBar.module.css';\n\nexport type OptionsBarItem<V extends string | number = string> = {\n value: V;\n label?: ReactNode;\n ariaLabel?: string;\n disabled?: boolean;\n selected: boolean;\n onChange: (next: boolean) => void;\n};\n\nexport type OptionsBarSize = 'sm' | 'md';\nexport type OptionsBarVariant = 'default' | 'minimal';\n\nexport type OptionsBarProps<V extends string | number = string> = {\n items: readonly OptionsBarItem<V>[];\n ariaLabel?: string;\n className?: string;\n height?: number;\n /** Size variant. `sm` is ~60% of the default height with reduced padding\n * and font size — sized for dense surfaces like lab control panels. */\n size?: OptionsBarSize;\n /** Visual variant. `minimal` strips the pill track and glass treatment;\n * selection becomes a flat accent. For dense diagnostic surfaces. */\n variant?: OptionsBarVariant;\n};\n\nfunction firstEnabledIndex(items: readonly OptionsBarItem<string | number>[]): number {\n for (let i = 0; i < items.length; i++) if (!items[i].disabled) return i;\n return -1;\n}\n\nfunction lastEnabledIndex(items: readonly OptionsBarItem<string | number>[]): number {\n for (let i = items.length - 1; i >= 0; i--) if (!items[i].disabled) return i;\n return -1;\n}\n\nfunction nextEnabledIndex(items: readonly OptionsBarItem<string | number>[], from: number): number {\n const n = items.length;\n for (let k = 1; k <= n; k++) {\n const i = (from + k + n) % n;\n if (!items[i].disabled) return i;\n }\n return from;\n}\n\nfunction prevEnabledIndex(items: readonly OptionsBarItem<string | number>[], from: number): number {\n const n = items.length;\n for (let k = 1; k <= n; k++) {\n const i = (from - k + n) % n;\n if (!items[i].disabled) return i;\n }\n return from;\n}\n\nexport function OptionsBar<V extends string | number = string>(props: OptionsBarProps<V>): ReactElement {\n const { items, ariaLabel, className, height, size, variant } = props;\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const tabStopIndex = firstEnabledIndex(items);\n\n const toggle = (index: number) => {\n const item = items[index];\n if (item.disabled) return;\n item.onChange(!item.selected);\n };\n\n const focusSegment = (index: number) => {\n const root = rootRef.current;\n if (!root) return;\n const buttons = root.querySelectorAll<HTMLButtonElement>(`.${s.segment}`);\n buttons[index]?.focus();\n };\n\n const handleKeyDown = (index: number) => (e: ReactKeyboardEvent<HTMLButtonElement>) => {\n let nextIndex = -1;\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n nextIndex = prevEnabledIndex(items, index);\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n nextIndex = nextEnabledIndex(items, index);\n break;\n case 'Home':\n nextIndex = firstEnabledIndex(items);\n break;\n case 'End':\n nextIndex = lastEnabledIndex(items);\n break;\n case ' ':\n case 'Enter':\n e.preventDefault();\n toggle(index);\n return;\n default:\n return;\n }\n if (nextIndex < 0 || nextIndex === index) return;\n e.preventDefault();\n focusSegment(nextIndex);\n };\n\n const style: CSSProperties | undefined = height !== undefined\n ? ({ ['--wzl-tb-height' as string]: `${height}px` } as CSSProperties)\n : undefined;\n\n const rootCls = [\n s.root,\n size && s[`size_${size}`],\n variant && s[`variant_${variant}`],\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n ref={rootRef}\n className={rootCls}\n role=\"group\"\n aria-label={ariaLabel}\n style={style}\n >\n {items.map((item, i) => {\n const cls = `${s.segment}${item.selected ? ` ${s.segmentSelected}` : ''}`;\n return (\n <button\n key={item.value}\n type=\"button\"\n aria-pressed={item.selected}\n aria-label={item.ariaLabel}\n disabled={item.disabled}\n tabIndex={i === tabStopIndex ? 0 : -1}\n className={cls}\n onClick={() => toggle(i)}\n onKeyDown={handleKeyDown(i)}\n >\n {item.label}\n </button>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AC4BA,SAAS,EAAkB,GAA2D;AACpF,MAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,IAAK,KAAI,CAAC,EAAM,GAAG,SAAU,QAAO;AACtE,QAAO;;AAGT,SAAS,EAAiB,GAA2D;AACnF,MAAK,IAAI,IAAI,EAAM,SAAS,GAAG,KAAK,GAAG,IAAK,KAAI,CAAC,EAAM,GAAG,SAAU,QAAO;AAC3E,QAAO;;AAGT,SAAS,EAAiB,GAAmD,GAAsB;CACjG,IAAM,IAAI,EAAM;AAChB,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,IAAM,KAAK,IAAO,IAAI,KAAK;AAC3B,MAAI,CAAC,EAAM,GAAG,SAAU,QAAO;;AAEjC,QAAO;;AAGT,SAAS,EAAiB,GAAmD,GAAsB;CACjG,IAAM,IAAI,EAAM;AAChB,MAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC3B,IAAM,KAAK,IAAO,IAAI,KAAK;AAC3B,MAAI,CAAC,EAAM,GAAG,SAAU,QAAO;;AAEjC,QAAO;;AAGT,SAAgB,EAA+C,GAAyC;CACtG,IAAM,EAAE,UAAO,cAAW,cAAW,WAAQ,SAAM,eAAY,GACzD,IAAU,EAA8B,KAAK,EAE7C,IAAe,EAAkB,EAAM,EAEvC,KAAU,MAAkB;EAChC,IAAM,IAAO,EAAM;AACf,IAAK,YACT,EAAK,SAAS,CAAC,EAAK,SAAS;IAGzB,KAAgB,MAAkB;EACtC,IAAM,IAAO,EAAQ;AAChB,OACW,EAAK,iBAAoC,IAAI,EAAE,UAC/D,CAAQ,IAAQ,OAAO;IAGnB,KAAiB,OAAmB,MAA6C;EACrF,IAAI,IAAY;AAChB,UAAQ,EAAE,KAAV;GACE,KAAK;GACL,KAAK;AACH,QAAY,EAAiB,GAAO,EAAM;AAC1C;GACF,KAAK;GACL,KAAK;AACH,QAAY,EAAiB,GAAO,EAAM;AAC1C;GACF,KAAK;AACH,QAAY,EAAkB,EAAM;AACpC;GACF,KAAK;AACH,QAAY,EAAiB,EAAM;AACnC;GACF,KAAK;GACL,KAAK;AAEH,IADA,EAAE,gBAAgB,EAClB,EAAO,EAAM;AACb;GACF,QACE;;AAEA,MAAY,KAAK,MAAc,MACnC,EAAE,gBAAgB,EAClB,EAAa,EAAU;IAGnB,IAAmC,MAAW,KAAA,IAEhD,KAAA,IADC,EAAG,mBAA8B,GAAG,EAAO,KAAK;AAUrD,QACE,kBAAC,OAAD;EACE,KAAK;EACL,WAVY;GACd,EAAE;GACF,KAAQ,EAAE,QAAQ;GAClB,KAAW,EAAE,WAAW;GACxB;GACD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAKR;EACX,MAAK;EACL,cAAY;EACL;YAEN,EAAM,KAAK,GAAM,MAAM;GACtB,IAAM,IAAM,GAAG,EAAE,UAAU,EAAK,WAAW,IAAI,EAAE,oBAAoB;AACrE,UACE,kBAAC,UAAD;IAEE,MAAK;IACL,gBAAc,EAAK;IACnB,cAAY,EAAK;IACjB,UAAU,EAAK;IACf,UAAU,MAAM,IAAe,IAAI;IACnC,WAAW;IACX,eAAe,EAAO,EAAE;IACxB,WAAW,EAAc,EAAE;cAE1B,EAAK;IACC,EAXF,EAAK,MAWH;IAEX;EACE,CAAA"}